第十一章 I/O设备和磁盘管理

第十一章 I/O设备和磁盘管理

11.1 I/O设备

1. I/O设备类别
人可读
机器可读
通信

2. I/O设备差异
数据速率
应用
控制的复杂性
传送单位
数据表示
错误条件

3. 执行I/O的三种技术
程序控制I/O
中断驱动I/O
直接存储器访问(DMA)

11.2.2 直接存储器访问
DMA单元能够模拟处理器,像处理器一样获得系统总线的控制权,利用系统总线与存储器进行双向数据传送。

这里写图片描述

1. DMA技术工作流程:
当处理器想读或写一块数据时,通过向DMA模块发送以下信息来给DMA模块发出一条命令:
请求读或写操作的信号,通过读写控制线发送。
相关的I/O设备地址,通过数据线发送。
从存储器中读或往存储器中写的起始地址,在数据线上传送,并由DMA模块保存在其地址寄存器中。
读或写的字数,通过数据线传送,并由DMA模块保存在其数据计数寄存器中。
处理器继续执行其工作;
DMA模块直接从存储器中或往存储器中传送整块数据,一次传送一个字;
传送结束后,DMA模块给处理器发送一个中断信号。

2. DMA机制的配置方法

这里写图片描述
这里写图片描述
这里写图片描述

11.3 操作系统设计问题

11.3.1 设计目标
效率
多道程序设计
交换技术

通用性
处理器看待I/O设备的方式
操作系统管理I/O设备和I/O操作的方式

11.3.2 I/O功能的逻辑结构

这里写图片描述

11.4 I/O缓冲

引入缓冲的目的
改善中央处理器与外围设备之间速度不配的矛盾
提高CPU和I/O设备的并行性

例:某个用户进程需要从磁盘中读入多个数据块,对磁盘单元执行一个I/O命令,并等待(忙等或进程挂起)数据传送完毕。

存在的问题:
程序被挂起,等待相对比较慢的I/O完成。
干扰了操作系统的交换决策。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

11.4.4 缓冲的作用

在多道程序设计环境中,当存在多种I/O活动和多种进程活动时,缓冲是提高操作系统效率和单个进程性能的一种方法。
但当进程的平均需求大于I/O设备的服务能力时,缓冲再多也不能让I/O设备与这个进程一直并驾齐驱。

11.5 磁盘调度

这里写图片描述

11.5.1 磁盘性能参数

寻道时间
将磁头臂移到指定磁道所需要的时间。

旋转延迟
将磁盘的待访问地址区域旋转到读/写磁头可访问的位置所需要的时间。

传输时间
读或写操作的数据传输所需的时间。

这里写图片描述

11.5.2 磁盘调度策略

题目:有一个磁盘队列,其I/O请求顺序如下:
98,183,37,122,14,124,65,67
磁头开始位于53

1、FIFO调度

先进先出( FIFO ):按请求到来的顺序进行服务
优点:比较公平
缺点:通常不能提供最快的服务

这里写图片描述

FIFO:平均寻道长度为640/8=80

2、SSTF调度

最短寻道时间优先算法(SSTF)
从当前磁头位置选择最短寻道时间的请求,即选择与当前磁头位置最近的待处理请求。
优点:较FCFS大大提高了性能
缺点:可能会导致一些请求得不到服务,并不是最佳。

这里写图片描述

SSTF:平均寻道长度为236/8=29.5

3、SCAN调度

SCAN算法又称电梯算法
磁臂从磁盘的一端向另一端移动,同时当磁头移过每个柱面时,处理位于该柱面上的服务请求。当到达另一端时,磁头改变方向,处理继续。
需要知道磁头的当前位置和磁头移动的方向。
某些请求处理可能不及时。

这里写图片描述

C-SCAN :平均寻道长度为322/8=40.25

4.其它磁盘调度方法

N-step-SCAN

把磁盘请求队列分成长度为N的子队列,每一次用SCAN处理一个子队列。在处理某一个队列时,新请求必须添加到其他某个队列中。

FSCAN

使用两个子队列。当扫描开始时,所有请求都在一个队列中,而另一个队列为空。在扫描过程中,所有新到的请求都被放入另一个队列中。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/yangquanhui/p/4937481.html