操作系统重点快览第五章
第五章 设备管理
按信息交换的单位对设备进行分类
块设备(如磁盘,信息传送以块为单位,I/O控制方式通常采用DMA方式,其中的数据可寻址)
字符设备(如打印机,键盘等,信息传送以字节为单位,I/O控制方式通常采用中断方式,其中的数据不可寻址)
按设备的共享属性对设备进行分类
独占设备:一段时间内只允许一个进程访问。
共享设备:可同时访问。可寻址,可随机访问。
虚拟设备: 1个物理设备→若干个逻辑设备
设备控制器
设备控制器是CPU与I/O设备之间的接口,它接收从CPU发来的命令,并去控制一个或多个设备的工作。
通道
通道通常是一个硬件,相当于一个功能简单的处理机。
通道的指令类型单一,主要局限于与I/O操作有关的指令;
通道没有自己的内存,是与CPU共享内存。
I/O控制方式发展的主要推动力:
尽量减少主机对I/O的干预;
缓和CPU与I/O设备速度不匹配的矛盾;
提高CPU和I/O设备操作的并行程度。
I/O控制方式
程序I/O方式;
中断驱动方式;
DMA控制方式;
I/O设备直接与存储设备间之间交换数据,不需经过CPU
I/O通道控制方式。
缓冲引入的原因
(1)缓和CPU与I/O设备间速度不匹配的矛盾。
(2)减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。
(3)提高CPU和I/O设备之间的并行性。
设备独立性
是指应用程序独立于具体使用的物理设备。也称为设备无关性。
优点: 1) 增加设备分配时的灵活性 ; 2) 易于实现I/O重定向。
实现方式:1)应用程序通过逻辑设备名来请求使用某类设备;2)系统中必须设置一张逻辑设备表LUT用来进行逻辑设备到物理设备的映射;3)在设备驱动程序之上还应设置一层设备独立性软件。
设备驱动程序(用来启动I/O设备进行I/O)
(1) 接收由I/O进程发来的命令和参数, 并将命令中的抽象要求转换为具体要求。
(2) 检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。
(3) 发出I/O命令,启动I/O设备。
(4) 及时响应由控制器或通道发来的中断请求。
(5) 根据用户的I/O请求,自动地构成通道程序。
SPOOLing系统的组成:
①磁盘上的输入/出井:模拟脱机输入/出时的磁盘;
②内存中的输入缓冲区和输出缓冲区;
③内存中的输入进程SPi和输出进程SPo :模拟脱机输入/出时的外围机。
SPOOLing系统的特点
提高了I/O的速度。
将独占设备改造为共享设备。
实现了虚拟设备功能。
利用SPOOLing技术共享打印机
(1)当用户进程请求打印时,系统并不把打印机分配给它,而是为它做两件事:
① 在输出井中为之申请一个空闲磁盘分区, 并将要打印的数据送入其中;
② 再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中, 再将该表挂到打印请求队列上。
(2)打印机空闲时:输出进程取出一张打印请求表,再从输出井中取出打印数据到输出缓冲区,通过打印机进行打印。
磁盘访问时间(寻道时间+旋转延迟时间+数据传输时间)
相关因素:寻道距离,磁盘旋转速度,每道的字节数及数据传输量
磁盘移臂调度算法
先来先服务FCFS
最短寻道时间优先SSTF
电梯调度SCAN
循环扫描CSCAN
NStepSCAN
FSCAN