BY《程序是怎样跑起来的》

1.应用~硬件

【Note】I/O常规小结
利用操作系统提供的系统调用功能,实现应用对硬件的控制。WINDOWS中系统调用称为API。
各API就是应用调用的函数,函数的实体被存储在DLL文件中。

2.IN & OUT

IN指令:通过指定端口号的端口输入数据,将其存储在CPU内部的寄存器中。
OUT指令:把CPU寄存器中存储的数据,输出到指定端口号的端口。
【Note】I/O常规小结
计算机主机附带可连接外围设备的连接器,各连接器的内部连接可用来交换计算机主机同外围设备之间电流特性的IC,这些IC统称为I/O控制器。
I/O控制器中有用于临时保存输入输出数据的内存,这个内存就是端口(port),它们实质上是寄存器。端口号也称为I/O地址。
【Note】I/O常规小结

3.中断处理

从中断处理开始到请求中断的程序(中断处理程序)运行结束之前,被中断的程序(主程序)的处理是停止的。

实施中断请求的是连接外围设备的I/O控制器,负责实施中断处理程序的是CPU。
外围设备的中断请求会使用不同于I/O端口的其他编号,该编号称为中断编号。
操作系统及BIOS会提供相应中断编号的中断处理程序。
中断控制器——I/O控制器和CPU中间,管理中断请求。

过程:cpu接收到中断控制器的中断请求,把当前正运行的主程序中断,并切换到中断处理程序。

中断处理程序:
把CPU所有寄存器的数值保存到内存的栈中,在中断处理程序中完成外围设备的输入输出后,把栈中保存的数值还原到CPU寄存器中,然后再继续进行对主程序的处理。中断请求完毕后,各寄存器的值必须还原到中断前的状态。
!!!只要寄存器的值保持不变,主程序就可像没有发生任何事一样继续处理。!!!

4.中断实现实时

轮询:按照顺序调查多个外围设备的状态称为轮询。对于几乎不产生中断的系统来说,轮询是比较合适的处理。
但对于计算机,轮询不适宜,如打印机,那么此时可用中断,只需再中断请求发生时输出数据即可,其他时间CPU可集中处理别的程序,不需轮询。

5.DMA——短时间传送大量数据

DMA(Direct Memory Access),是指在不通过CPU的情况下,外围设备直接和主内存进行数据传送。磁盘等都用到了DMA机制。
节省时间是因为CPU作为中介的时间被节省了。
【Note】I/O常规小结

I/O端口号、IRQ、DMA通道,是识别外围设备的3点组合。
计算机主机通过软件控制硬件时所需的信息的最低限,是外围设备的I/O端口号。
IRQ只对需中断处理的外围设备来说是必须的。
DMA通道只对需DMA机制的外围设备来说是必须的。
假如多个外围设备都设定成同样端口号、IRQ、DMA通道的话,计算机就无法正常工作,会出现“设备冲突”的提示。

【Note】I/O常规小结

相关文章:

  • 2021-06-22
  • 2021-11-12
  • 2021-09-18
  • 2021-08-14
  • 2021-07-25
  • 2021-05-19
  • 2021-08-19
猜你喜欢
  • 2021-04-16
  • 2021-12-10
  • 2022-12-23
  • 2022-01-03
  • 2021-08-16
  • 2021-07-10
  • 2021-08-10
相关资源
相似解决方案