设备管理-操作系统-程序员面试
操作系统-设备管理
6 设备管理
设备的概念:以及算计系统就是由大量的设备构成的,例如CPU、磁盘、显卡、显示器、鼠标、键盘等。这些设备的特点和功能各不相同。在这些设备中,有一类是作为计算机系统与外界交互的工具使用的,它具体负责计算机与外部的输入输出(I/O工作)我们称这类设备为外部设备,简称外设。
设备管理的目标:提高设备的利用率
I/O系统概述
I/O系统的定义
计算机中负责管理I/O的机构(是硬件和软件的组合)称为I/O系统
I/O系统的结构
1)单总线结构
2)多总线结构
3)具有通道系统的I/O系统
I/O系统的控制方式
程序控制I/O(程序直接控制方式)
优点:简单
缺点:CPU与外设串行工作,CPU必须等待外设处理完数据才能继续执行,在此期间CPU一直查询外设是否准备好,直到外设准备好。导致CPU利用率低下
中断驱动(I/O)
优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或者其他程序,等到外设准备好,外设会向CPU发出中断请求,CPU响应请求去执行相应的中断处理程序。提高了CPU的利用率,中断技术使得CPU与外设之间的并行工作成为了可能。
缺点:数据仍然需要通过CPU进行传输,由于CPU每次处理的数据量较小,因此这种方式只适合数据传输率低的设备。
直接存储访问(DMA,Direct ?Memory Access)
通道控制方式I/O
一个CPU可以连接若干个通道,一个通道可以连接若干个控制器,一个控制器可以连接若干个设备。
优点:解决了I/O操作的独立性和各部件工作的并行性,通道把中央处理机从繁琐的输入输出操作中解放出来,采用通道技术后,不仅能实现CPU与通道的并行操作,而且通道与通道之间也能实现并行操作,各个通道上的外部设备也能实现并行操作,从而可达到提高整个系统的效率的根本目的
具有通道的设备管理
1)字节多路通道:可以获得较好的通道利用率,适合低速设备,传输单位为字节
2)数组选择通道:可以获得较好的数据传输率,适合高速设备,一次性传输一组数据。
3)数组多路通道:既具有很高的数据传输率,有能获得令人满意的通道利用率,
与设备管理有关的技术
缓冲技术
缓冲区时一种交换数据的区域
缓冲技术的分类
单缓冲技术
CPU和外设轮流使用。
计算过程和数据输入缓冲的过程可以并行
双缓冲
计算过程、数据输入缓冲的过程、数据传送的过程可以并行,适合于外设速度较高的情况
环形缓冲
系统受限计算:nextI 追上nextQ
系统受限I/O:nextQ 追上 nextI
缓冲池
可以供多个进程共享的双向缓冲技术(包括空缓冲队列、输入队列、输出队列)
UNIX设备管理
缓冲管理队列
为了方便对缓冲区进行管理,UNIX系统设置了三种队列,由于buf记录了与缓冲存储区有关的条件管理信息,所以缓冲区管理队列实际上就是对缓冲控制块buf队列的管理。
1 自由buf队列
可被分配工作它用的缓冲区
2 设备buf队列
每类设备都有一个buf队列用作读写某类块设备上的某一个字符块,其相应的buf就进入该类设备的buf队列中,除非被移作它用,否则一直保留在该队列中。
3 NODEV设备队列
当系统需要使用缓存,但不支持与它的设备字符块相连时,则将分配到的缓冲控制块buf送人NODEV设备队列中。
为什么缓冲控制块buf中药设置两对指针?
可以使得一个缓冲区同时处于两个队列中
一个设备buf队列中的缓冲区当使用完后,便同时处于原设备buf队列中和自由buf队列中。
避免了重复,费时的I/O操作过程,从而大大提高了系统的效率,如果要将一个缓冲区重新分配,只需简单的将它从自由buf设备buf队列中同时抽出,送入新的设备buf队列,实现了进程对缓冲区的共享。