《程序是怎样跑起来的》第十一章读后感
Windows 控制硬件时主要借助的是输入输出指令,最具代表性的就是 IN 与 OUT 指令,这两个指令也是汇编语言的助记符。
IN 指令: 通过指定端口号的端口输入数据,并将其存储在 CPU 内部的寄存器中。
OUT 指令: 把 CPU 寄存器中存储的数据,输出到指定端口号的端口。
端口号: IO 控制器中用于临时保存输入输出数据的内存,这个内存就是端口。
I/O 控制器: 计算机内部用来连接主机同外围设备之间进行电流交换的IC连接器的总称(外围设备,鼠标、显示器、键盘等),此外 IO 控制器内部的内存也叫寄存器,不过该寄存器主要用于临时存放数据,CPU 中的寄存器主要用于数据运算。
IRQ 中断请求: 主要用于暂停当前正在运行的程序,并跳转到其它程序运行的机制,该机制称为中断处理。
中断处理在硬件控制中尤为重要,没有中断,可能会出现程序无法顺畅运行,从中断处理开始到请求中断的程序(中断处理程序)运行结束之前,被中断的程序(主程序)的处理是停止的,类似于在处理文档时接电话,接完电话接着处理文档,没有中断的话必须等处理文档结束后才能接电话。
实施中断请求的是连接外围设备的IO控制器,负责实施中断的是CPU。
为了进行区分,外围设备的中断请求使用不同于 IO 端口的其它编号:该编号为中断编号(IRQ的值就是这个中断编号)。
同时多个外网设备进行中断请求需要使用中断控制器的 IC 进行缓冲,中断控制器会把从多个外网设备发出的中断请求有序的传递给 CPU。
DMA 直接内存访问机制:
在不通过 CPU 的情况下,外网设备直接与主内存进行数据传送,实现短时间内大量数据转送到主内存(一般磁盘都有使用到DMA),减少了通过 CPU 中转的耗时,在计算机中一般会存在 DMA 编号(这个编号也叫DMA通道),CPU 通过这个编号来识别是哪一个外围设备使用了 DMA。
文字图片的显示机制:
显示器中显示的信息一直存储在内存中,该内存称为VRAM,在程序中只要往VRAM中写入数据,数据就会在显示器中显示出来,实现该功能的程序,是由操作系统或者 BIOS 提供,并借助中断来实现,现在由于主内存的 VRAM 较小,显卡等专用硬件一般配备有与主内存独立的 VRAM 和 GPU(图形处理器)来进行图形处理,提升处理速度。

浙公网安备 33010602011771号