首页 > 编程语言 >《程序是怎样跑起来的》第十一章

《程序是怎样跑起来的》第十一章

时间:2024-02-29 17:25:21浏览次数:16  
标签:DMA 控制器 外部设备 中断 第十一章 程序 指令 CPU 怎样

读书笔记:此章作者主要讲述了有关访问硬件的方法,和硬件输入指令。11.1:在用于x86架构CPU的汇编语言中,用in指令进行1/0输入,用out指令进行I/0输出。
.负责在计算机主机与外部设备之间进行输入输出的芯片称为1/0控制器,简称I/0。
为了区分连接到计算机上的不同外部设备,每个设备会被分配一个1/0地址。
.IRQ是指用于区分发出中断请求的外部设备的编号。
.DMA是指外部设备不经过CPU中转,直接与计算机内存传输数据。
.网络、磁盘等数据量大的外部设备会使用DMA,不同设备会通过DMA通道来进行区分
操作系统还是为应用程序提供了间接访问硬件的方法,那就是使用系统调用。在Windows中,系安统调用也被称为API。个API都是一个能够被应用程序调用的函数,这些函数的本体位于DLL文件中。
11.2:负责硬件输入输出的in指令和out指令
Windows使用输入输出指令来对硬件进行访问曲,其中最具代表性的两个指令就是in和out。这两个指令都是汇编语言的助记符,但应用程序并不能直接使用in和out指令,因为Windows禁止应用程序直接访问硬件。
下面来讲一讲端口号和端口是什计算机主机上有用于连接显示么。、键盘等外部设备的接口,这些接器、口内部都装有用于对主机和外部设备的电信号进行相互转换的芯片,这些芯片统称为1/0控制器(简称为1/0)。由于数据格式和电压不同,所以计算机主机并不能和外部设备直接相连,为此我们需要使用I/0控制器。
1/0是Input/0utput(输入/输出)的缩写,显示器、键盘等设备都有专用的1/0控制器。1/0控制器中有用于临时存放输入输出数据的存储器,这种存储器被称为端口。
11.3外部设备的中断请求
IRQ是一种让当前正在运行的程序暂停,转而运行其他程序的机制这被称为中断处理。中断处理在硬件控制中扮演着重要的角色。如果没有中断处理,有些任务就无法顺利进行。
发出中断请求的是连接外部设备的1/0控制器,运行中断处理程序的是CPU。要识别具体是哪个设备发出的中断请求,我们需要使用名为中断号的编号,而不是端口号。
11.4 通过中断实现实时处
那么,在主程序运行过程中,到底会发生多少次中断呢?其实,几乎所有的外部设备都会频繁地发出中断请求,这是因为外部设备输入的数据需要实时进行处理。当然,不使用中断也可以从外部设备输入数据,但在这种情况下主程序就需要不断查询外部设备有没有要输入的数据
外部设备的数量很多,因此需要依次查询。依次查询多个外部设备状态的操作称为轮询(poling)。轮询适用于那些不频繁产生中断的系统但不适用于个人计算机。
11.5能够快速传输大量数据的DMA
除了1/0和中断处理,还有一个机制希望大家了解,那就是DMA。DMA是指外部设备不经过CPU中转直接和内存进行数据传输,常用于网络、磁盘等设备。使用DMA可以将大量数据快速传输到内存中,它能够节省CPU中转所需的时间,而且还可以避免高速的CPU等待低速的外部设备,从而提高其他任务的处理效率。
DMA是通过名为 DMA控制器(DMA Controller, DMAC)的芯片实现的。DMA控制器中有多个用于进行DMA的窗口,这些窗口通过名为 DMA通道的编号来进行区分,进行DMA的外部设备也是通过分配给它们的DMA通道来进行区分的。与DMA相对,通过CPU在外部备和内存之间传输数据的方式称为P10(Programmed1/0)。
11.6计算机中有一个用于保存要显示的信息的存储器,这一存储器称为显存(VideoRAM,VRAM)。程序只要将数据写入显存,数据就可以在显示器上显示出来。

标签:DMA,控制器,外部设备,中断,第十一章,程序,指令,CPU,怎样
From: https://www.cnblogs.com/chenkail/p/18044837

相关文章

  • 《程序是怎么跑起来的》第五章
    磁盘中存储的程序,必须加载到内存后才能运行,也就是说不读入内存就无法运行,CPU需要通过内部程序计数器来指定内存地址,然后才能读出程序,即使CPU能直接读出来并运行磁盘中保存的程序,但是也会很慢。把低速设备的数据保存在高速设备上,需要时可以直接将其从高速设备中读出。虚拟内存能够......
  • VS2019 打包WPF安装程序
    说明最近开发了一个WPF的小工具,最初想发布成一个非安装版的可执行程序,发现有点困难,因为是基于.NetFramework4.7开发,还引用了一些其他库,WPF程序的运行是依赖.NetFramework环境的,所以必须提前安装。于是在官网上找到ClickOne的相关说明,可以把WPF打包成安装程序,当安装时会校......
  • 读《程序是怎样跑起来的》第十二章有感
    第十二章——让计算机“思考”1.作为“工具”的程序和为了“思考”的程序程序的使用目的:1)作为工具来使用;2)程序代替了现有的工具。2.用程序来表示人类的思考方式将人类的思考方式用程序表示来实现让计算机思考。3.用程序来表示人类的思考习惯真正的计算机并不具有习惯,但是可以......
  • 《程序是怎样跑起来的》第九章
    本章节讲述了操作系统在计算机系统中的重要地位,以及它与应用程序之间的密切关联。操作系统的诞生起先的计算机是没用操作系统的,也完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这一过程非常麻烦。于是,有人开发出......
  • 《程序是怎样运行的》第十二章读后感
    《程序是怎样跑起来的》这本书的第十二章主要探讨了如何让计算机“思考”。这一章节的核心思想是,通过程序来模拟人类的思考过程,从而使计算机表现出类似人类的思考能力。章节中提到,程序可以被用来表示人类的思考方式、习惯和直觉。例如,在游戏编程和计算机模拟中,经常使用随机数......
  • 《程序是怎样跑起来的》第八章读后感
    第八章为从源文件到可执行文件,看完标题后,我认识到,从源文件到可执行文件中肯定还要有一些加载东西,不可能直接生成了可执行文件,因为CPU只能对本机代码进行读写,而不是直接对源码读,EXE文件是编译后的文件但无法使用还必须得进行链接,任何源码都得通过编译来进行,才可得到可执行文件,链接......
  • 读《程序是怎样跑起来的》第十一章有感
    第十一章——硬件控制方法1,应用和硬件无关?Windows提供了通过应用来间接控制硬件的方法。利用操作系统可以实现对硬件的控制。Windows向CPU传递了某些指令,从而通过软件控制硬件。2.支撑硬件输入输出的in指令和out指令in指令:通过指定端口号的端口输入数据,并将其存储在CPU内部的......
  • 读《程序是怎样跑起来的》第十章有感
    第十章——通过汇编语言了解二程序的实际构成1.汇编语言和本地代码是一一对应的汇编语言:在各本地代码中,附带上表示其功能的英语单词缩写,这些缩写称为助记符,使用助记符的编程语言称为汇编语言。*通过查看汇编语言编写的源代码了解程序本质,同查看本地代码的源代码是同一级别。汇......
  • 程序员搞副业经验分享:卖书、做网课,探秘前同事的经验之谈
    为了更深入了解程序员如何进行创收,今天与一位曾在几年前成功通过卖书和网课获取收益的前同事进行了交流。由于他曾有过丰富的经验,我向他请教了一些相关经验,以下是我想获取的信息:你目前还在通过做网课获得收益吗?没有。不再从事网课的主要原因有两点:首先,工作非常繁忙,每天都在996(周......
  • java程序设计 - 第二次实验
    【实验目的】继续熟悉Eclipse的使用并尝试编写一个简单的Applet程序【实验过程】编写一个JavaApplet程序,并正在JavaApplet中写两行文字:“这是一个JavaApplet程序”和“我改变了字体”。importjava.applet.*;importjava.awt.*;publicclassJavaAppletextendsApplet......