9 输入输出设备管理

type
status
date
slug
summary
tags
category
icon
password

9.1 I/O设备

I/O设备管理是操作系统设计中最凌乱也最具挑战性的部分,涉及很多领域的不同设备,很难有通用一致的设计方案
按信息交换的主体分:
  • 人可读设备:适用于与人的交互,如:打印机、键盘、显示器
  • 机器可读设备:适用于设备间的数据交互,如磁盘、各控制器
  • 通信设备:适用于远程设备通信,如网卡
按照信息交换的单位分:
  • 块设备:信息交换以数据块为单位,有结构设备,可寻址
  • 字符设备:信息交换以字符为单位,无结构,不可寻址
按照传输速率分:
  • 低速设备:低于每秒千字节,如:键盘、鼠标
  • 中速设备:每秒数千字节到数万字节,如打印机
  • 高速设备:每秒数百千字节到数千兆字节,如磁盘

9.2 I/O控制方式

notion image
I/O控制方式的发展过程就是要尽量减少CPU对I/O过程的干预,将CPU从繁杂的I/O控制事务中解脱出来。
notion image

程序直接控制方式

notion image

中断驱动方式

notion image
notion image

DMA方式

notion image
notion image
notion image

通道控制方式

notion image

9.3 I/O功能的逻辑结构

通用性
逻辑I/O:把设备当作一个逻辑资源来处理,提供统一的接口,允许用户进程根据设备标识符,进行打开、关闭、读、写等操作。
设备I/O:请求的操作和数据被转换成适当的I/O指令序列、通道命令
调度和控制:I/O操作的排队、调度,处理中断,收集I/O状态,是与I/O模块和设备硬件真正发生交互的软件层。
其它的设备无关层:
  • 通信架构
  • 目录管理:通过文件描述符表或索引表直接或间接低访问文件。
  • 文件系统:文件的逻辑结构、处理用户指定的操作
  • 物理组织:将逻辑访问转化成物理外存地址

9.4 I/O缓冲

提高CPU与I/O设备的并发性,缓和CPU与I/O设备间速度不匹配的矛盾,解决数据粒度不匹配的问题
  1. 单缓冲:在内存中开辟一个固定大小的区域作为缓冲区,外设和CPU交换数据时,先将被交换的数据写入缓冲区,然后再由需要数据的CPU或外设从缓冲区中取出。该方式中,外设与CPU对缓冲区的操作是串行的。
notion image
  1. 双缓冲:内存中设置2个大小相同的缓冲区,外设和CPU可以交替使用这2个缓冲区,从而在一定程度上实现并行交换数据。
notion image
  1. 循环缓冲:在内存中设置大小相等的多个缓冲区,并将它们链接称为一个环形链表。
notion image
  1. 缓冲池
notion image
  • 当输入设备需要进行数据输入时,则从空缓冲队列的队首取下一个空缓冲区,将它作为收容输入工作缓冲区,当它被输入装满数据后,则被链接到输入缓冲队列的队尾;
  • 当某进程需要从缓冲池读入数据时,则从输入缓冲队列的队首取一个缓冲区作为提取输入工作缓冲区,该进程从中提取数据,取完后,则将该缓冲区链接到空缓冲区队列的队尾;
  • 当某进程需要输出数据到缓冲池时,则从空缓冲队列的队首取下一个空缓冲区,将它作为收容输出工作缓冲区,该进程向该缓冲区中存放数据,当它被装满数据后,则被链接到输出缓冲队列的队尾;
  • 当输出设备需要进行数据输出时,则从输出缓冲队列的队首取一个缓冲区作为提取输出工作缓冲区,并从中提取数据输出,取完后,则将该缓冲区链接到空缓冲区队列的队尾。

9.5 磁盘调度

notion image
notion image
操作系统为磁盘维护一个请求队列,有来自多个进程的许多I/O请求

先进先出(FIFO)磁盘调度算法

进程少时有较好的性能,进程多时接近随机调度
notion image

最短服务时间优先(SSTF)算法

选择从当前位置开始移动最少的磁盘IO请求,存在饥饿问题
notion image

电梯(SCAN)算法

磁头臂仅沿着一个方向移动,直到到达该方向最后一个磁道,或该方向没有其它请求为止(又称为LOOK策略),接着反转服务方向
对最近跨越过的区域不公平,不能很好地利用局部性,偏向对靠里或靠外磁道进行请求的作业
notion image

循环电梯(C-SCAN)算法

把扫描限制在一个方向上,扫描方向没有其它请求时,返回相反方向末端
notion image

9.6 磁盘高速缓存

提高磁盘I/O速度,利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。
逻辑上属于磁盘,物理上则驻留在内存中
两种形式:
  • 在内存中开辟一个单独的空间作为磁盘高速缓存,大小固定。
  • 把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘I/O共享

期末真题

2024秋

五、关于磁盘和文件管理,回答下列问题。(8分)
3)设当前磁头位于105磁道,正在向序号增大方向移动,依次有访问请求35 45 12 68 110 180 170 195,采用scan算法。给出访问序列,访问请求结束后经过的磁道数。(3分)
110 170 180 195 68 45 35 12
5+60+10+15+127+23+10+23=273

2020春

五、针对磁盘和文件系统回答下面的问题:(8分)
1)磁盘的旋转和寻道时间是影响磁盘与内存数据交换速度的主要因素,操作系统针对这两个因素有什么方法进行优化,并详细闸述每种方法的过程。(3分)
优化:通过磁盘调度算法(SSTF、SCAN、C-SCAN)减少寻道时间,通过旋转调度(OS 或磁盘控制器会选择在磁头刚好转到请求扇区时发出读写命令,尽量减少等待下一圈旋转的时间)、数据连续存放(将同一文件或逻辑上连续的数据块尽量存放在物理上相邻的扇区,使磁头不必频繁移动或等待旋转即可连续读写,提高吞吐率)减少旋转延迟。
2) 一个进程不断的产生盘块号连续的请求,会对别的进程提出的磁盘请求有什么样的影响(用电梯算法),为什么?(2分)
连续请求会使磁头停留在同一区域,导致其他进程请求长时间等待,产生饥饿现象。

2014

五.磁盘管理
1)延迟磁盘读写的因素
2)周转时间和等待时间的区别
3)磁盘调度算法,说明调度过程,求出平均周转时间
(1) 先来先服务算法(First Come First Served, FCFS)
(2) 最短寻找时间算法(shortest seek time first, SSTF)
(3) 扫描算算法,SCAN,又称电梯算法
Loading...