5、设备管理篇

厨子大约 3 分钟操作系统原创面试题设备管理程序厨

5.设备管理

设备控制器:位于CPU 和I/O之间,其接收来自CPU的指令,并控制I/O设备。

5.1 几种I/O控制方式

1.程序直接控制方式

向CPU和I/O设备设备控制器发出命令之后,然后就需要一直检测状态寄存器的值,判断是否结束任务,结束之后再去执行下一个任务。

2.中断控制方式

这个也很容易理解,当CPU 向设备控制器发出启动指令后,则去做其他工作,设备控制器完成任务后,则会发送一个中断指令,告诉他,我已经完成任务了,然后让其继续回来处理任务。但是这样也存在问题,中断过多的话,则会耗费大量CPU时间。

3.DMA控制方式

数据传输的基本单位是块,然后传输过程是DMA控制器直接于内存交换,仅在传送一个或多个块的开始或结束时,才需CPU干预。

中断控制方式在每个数据传输完之后中断CPU,DMA是一批数据全部传输完才进行中断。

4.通道控制方式

通道控制方式和DMA类似,但是所需要的CPU干预更少,我们可以将他理解成一个简单的控制器,代理CPU进行处理。

5.2 I/O软件的层次结构

5.3 I/O子系统

I/O核心子系统是设备控制的各类方法,其提供的主要服务就是I/O调度,高速缓存与缓冲区、设备分配与回收、假脱机。

I/O调度:就是确定一个好的顺序来执行I/O请求。因为应用程序所发布系统调用顺序不一定总是最佳选择,所以需要通过调度来改善系统的整体性能。主要是通过重新安排任务队列顺序以改善系统总体调用。

引入缓存:引入缓冲后可以降低设备对CPU的中断频率,放宽对中断响应时间的限制。

缓存的分类

  • 单缓存

  • 双缓存,可以交替使用,提高并行速度

  • 循环缓存:顾名思义

  • 缓冲区

5.4 假脱机技术

这个是经常用到的,我们系统中有一些独占设备,然后某个进程获得了独占设备的使用权,但是却不经常使用,却又卡着让别人用不了,这就造成了资源的浪费,所以我们将独占设备改造成共享设备,提高利用率。

主要原理是,利用输入缓冲区,输入井,输出缓冲区,输出井来完成。