《程序是怎样跑起来的》第十一章
本章论述了计算机中硬件与软件之间的关系。
应用可以通过操作系统的系统调用功能实现间接对硬件的控制。Windows系统中,系统调用别称为API,各API就是应用调用的函数,这些实体被存储在DLL文件中。Windows控制硬件输入输出指令中。具有代表性的指令就是IN和OUT。IN 指令通过指定端口号的端口输入数据,并将其存储在 CPU内部的寄存器中。OUT指令则是把CPU 寄存器中存储的数据,输出到指定端口号的端口。
由于电压,电流特性不同, 因此需要I/O控制器。I/O控制器中有临时保存输入输出数据的内存,即端口。I/O控制器可以控制一个外围设备或多个,各个端口之间通过端口号来区分。端口号也称为I/O地址。
中断处理
中断处理可以将正在运行的程序暂停,并跳转到其他程序运行。中断处理中I/O控制器中断请求(IRQ),而CPU负责中断。为了防止多个设备同时请求中断,加入了中断控制器来进行缓冲。外围设备在输入数据时会不断的发出中断请求,从而将数据输入。
DMA指不通过CPU的情况下,外围设备和主内存进行数据传送。磁盘等都会用到。
文字显示机制
显示器的显示信息一直存储在内存VRAM中,只要往VRAM中写入数据便会在显示器中显示出来。该功能由操作系统或BIOS提供,并借助中断来进行处理。目前显卡等专用硬件中一般都配置有独立的VRAM和GPU。