文章目录
- 设备管理概述
- 设备管理技术
- 磁盘调度
设备管理概述
设备管理是操作系统中最繁杂、与硬件关系紧密的部分。
设备可以按照数据组织、资源分配、数据传输率分类。
- 数据组织:分为块设备(ex. 磁盘)、字符设备(ex. 打印机)。
- 资源分配:独占设备(ex. 打印机)、共享设备(ex. 磁盘)、虚拟设备(假脱机技术使一台变多台)。
- 数据传输率:低速设备(ex. 键盘)、中速设备(ex. 打印机)、高速设备(ex. 磁盘机)。
设备管理的目标:提高设备利用率,为用户提供方便统一的界面。
设备管理的任务:多进程竞争设备时,分配和管理各设备。具体的,记录设备状态、分配和释放设备、管理缓冲区、实现物理I/O设备操作、提供用户接口、设备访问与控制。
设备管理技术
设备管理技术包括通道、DMA(直接内存存取)、缓冲和spooling技术(假脱机技术)。
- 通道技术:让数据的传输独立于CPU。
- DMA技术:实现数据在内存和I/O设备间的块传送,提高传送效率。
- 缓冲技术:缓和CPU与I/O速读不匹配的矛盾,让外设尽可能处于忙状态。
- spooling技术:使用一类物理设备模拟另一类物理设备,使独占设备变成多台虚拟设备。
spooling系统中包含程序和数据两大块。spooling系统记录作业表(登记所有作业名、状态、预输入表位置),每个作业记录各自的预输入表(登记该作业各文件情况)。
作业通过输入设备,被预输入程序捕捉,将作业信息装入输入井。经过作业调度程序,某个作业进入可运行状态,通过井管理程序,从输入井获取输入信息,并执行作业。作业执行完毕后,通过井管理程序,将输出结果放入输出井。输出井中的结果信息,经过缓输出程序,传送到输出设备上。
磁盘调度
磁盘是很多盘片堆叠而成的,磁盘的调度主要分移臂调度和旋转调度。
移臂调度确定移动臂在盘片纵向的位置,如图中红色箭头方向所示。
由于磁盘访问最耗时的是移臂寻道,有很多移臂调度算法,用于缩短平均寻道时间,包括先来先服务(FCFS),最短寻道时间优先(SSTF),扫描算法(SCAN),单向扫描算法(CSCAN)。这些算法都是用于决定移动臂的移动方向的。
- 先来先服务:哪个进程先提出请求,移动臂就先去对应的磁道。
- 最短寻道时间优先:先访问离当前磁头最近的磁道。
- 扫描算法:从内向外,再从外向内不断扫描,也叫电梯调度算法。
- 单向扫描算法:磁头只做单一方向的移动,到头后立刻回到起点。
旋转调度是移动臂定位后,确定不同进程访问柱面的顺序。
- 访问不同编号扇区:先到达磁头下方的扇区先做数据传输。
- 访问不同磁道相同编号扇区:任意磁头下的扇区先做数据传输。