操作系统(五)

第五章.输入/输出(I/O)管理

5.1.I/O管理概述

5.1.1 I/O设备

I/O设备: 就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。

按使用特性分类:
1.人机交互类外部设备:鼠标,键盘等用于人机交互;数据传输速度慢
2.储存设备:移动硬盘,光盘等用于数据存储;数据传输速度快
3.网络通信设备: 调制解调器等,用于网络通信;数据传输速度介于前两者之间

按传输速率分类:
1.低速设备:传输速率为每秒几个到几百字节
2.中速设备:传输速率每秒数千至上万个字节
3.高速设备:传输速率每秒数千字节至千兆字节的设备

按信息交换的单位分类:
1.块设备:数据传输的基本单位是“块”,传输速率较高,可寻址,即对它可随机地读写任一块
2.字符设备:数据传输的基本单位是字符;传输速率较慢,不可寻址,在输入输出时常采用中断驱动方式

I/O设备由机械部件和**电子部件(I/O控制器,设备控制器)**组成
机械部件:主要用来执行具体的I/O操作;显示屏等
电子部件:通常是一块插入主板扩充槽的印刷电路板。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.1.2 I/O控制方式

1.程序直接控制方式
在这里插入图片描述
在这里插入图片描述

2.中断驱动方式
在这里插入图片描述
在这里插入图片描述

3.DNA方式
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.通道控制方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1.3 I/O软件层次结构

在这里插入图片描述
在这里插入图片描述

设备独立性软件:又称设备无关性软件,与设备的硬件特性无关的功能几乎都在这一层实现
功能:
1.向上层提供统一的调用接口
2.设备的保护
3.差错处理
4.设备的分配与回收
5.数据缓冲区管理
6.建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1.4 应用程序I/O接口

在这里插入图片描述
在这里插入图片描述

阻塞I/O: 应用程序发出I/O系统调用,进程需转为阻塞态等待
非阻塞I/O: 应用程序发出I/O系统调用,系统掉哟给可迅速返回,进程无需阻塞等待
在这里插入图片描述

5.2 设备独立性软件

5.2.1 I/O核心子系统

IO核心子系统: 设备独立性软件,设备驱动程序,中断处理程序
在这里插入图片描述

I/O调度: 用某种算法来确定一个好的顺序来处理各个I/O请求
设备保护: 在UNIX系统中,设备被看作是一种特殊的文件,每个设备也有对应的FCB。当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限

5.2.2 假脱机技术

批处理阶段引入了脱机输入/输出技术(用磁带完成)
【脱离主机的控制进行的操作】
在外围脱机控制机的控制下,慢速输入设备的数据先被输入到更快速的磁带上。之后主机可以从快速的磁带上读入数据,从而缓解了速度矛盾;
引入脱机技术后,缓解了CPU与慢速I/O设备的速度矛盾,另一方面,即使CPU在忙碌,也可以提前将数据输入到磁带;即使慢速的输入设备在忙碌,也可以提前将数据输出到磁带。

假脱机技术(SPOOLing): 用软件的方式模拟脱机技术
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

独占式设备: 只允许各个进程串行使用的设备,一段时间只能满足一个进程的请求;
共享设备: 允许多个进程“同时”使用设备(宏观同时,微观交替)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.2.3 设备的分配与回收

在这里插入图片描述

设备的分配算法:FIFO,优先级高,短进程等
在这里插入图片描述

静态分配: 进程运行之前为其分配全部所需资源,运行结束后归还资源
(破坏了“请求和保持”条件,不会发生死锁)
动态分配: 进程运行过程中动态的请求设备资源

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

设备分配的步骤:
1.根据进程请求的物理设备名查找SDT
2.根据SDT找到DCT,若设备忙碌则将PCB挂到设备等待队列中,不忙碌则将设备分配给进程。
3.根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程
4.根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程
(只有设备,控制器,通道三者都分配成功时,这次设备分配才算成功,之后便可启动I/O设备进程数据传送)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2.4 缓冲区管理

在这里插入图片描述

在这里插入图片描述

1.单缓冲

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

双缓冲
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

循环缓冲区
在这里插入图片描述

缓冲池
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.3 磁盘和固态硬盘

5.3.1 磁盘

磁盘: 磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据
磁盘的盘面被划分成一个个磁道。这样的一个”圈“就是一个磁道;
一个磁道又被划分成一个个扇区,每个扇区就是一个”磁盘块“,各个扇区存放的数据量相同;
最内侧磁道上的扇形面积最小,因此数据密度最大。

如何在磁盘中读/写数据?
——需要把“磁头”移动到想要读/写的扇区所在的磁道;磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作。

一个盘片可能会有两个盘面;
每个盘面对应一个磁头;
所有磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”
所有盘面中相对位置相同的磁道组成柱面。

可用(柱面号,盘面号,扇区号)来定位任意一个“磁盘块”;
可以根据该地址读取一个“块”
1.根据柱面号移动磁臂,让磁头指向指定柱面。
2.激活指定盘面对应的磁头
3.磁盘旋转过程中,指定的扇区会从磁头下面划过,这样就完成了指定扇区的读/写。

磁盘的分类:

磁头可以移动的称为活动头磁盘。磁臂可以来回伸缩来带动磁头定位磁道
磁头不可移动的称为固定头磁盘。这种磁盘中每个磁道有一个磁头

可换盘磁盘: 盘片可以更换的
固定换盘磁盘: 盘片不可更换的

5.3.2 磁盘的管理

1.磁盘初始化
在这里插入图片描述

2.引导块
在这里插入图片描述

在这里插入图片描述

3.坏盘的管理
在这里插入图片描述

5.3.3 磁盘调度算法

在这里插入图片描述

总的平均存取时间:Ta=Ts+1/2r+b/(rN)
延迟时间和传输时间都与磁盘转速相关,且为线性相关。而转速时硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间;
但时操作系统的磁盘调度算法会直接影响寻道时间。

1.先来先服务算法(FCFS)
根据进程请求访问磁盘的先后顺序进行调度;
在这里插入图片描述
优点: 公平;如果请求访问的磁道比较集中的话,算法性能还算过得去
缺点: 如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间长。

2.最短寻找时间优先(SSTF)
SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是不能保证总的寻道时间最短。
在这里插入图片描述
优点: 性能比较好,平均寻道时间短
缺点: 可能产生“饥饿”现象

3.扫描算法:
只有在磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。(电梯算法)
在这里插入图片描述

优点: 性能较好,平均寻道时间较短,不会产生饥饿现象
缺点: 只有到达最边上的磁道时才能改变磁头移动的方向;对于各个位置磁道的响应频率不平均;

4.LOOK调度算法
如果磁头移动方向上已经没有别的请求,就可以立即改变磁头的移动方向了(边移动边观察)
在这里插入图片描述
优点: 寻道时间进一步缩短

5.循环扫描算法(C-SCAN)
规定只有磁头朝着某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始段而不处理任何请求。
在这里插入图片描述

优点: 对于各个位置磁道的响应频率很平均
缺点: 比起SCAN算法,平均寻道时间更长

6.C-LOOK算法
如果磁头移动方向上已经没有磁道访问请求了,就可以立即让磁头返回,并且磁头只需要返回到有磁道访问请求的位置即可
在这里插入图片描述

优点: 寻道时间进一步缩短

在这里插入图片描述

在这里插入图片描述

减少延迟时间的方法:交替编号
——若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小。

磁盘地址结构的设计?
在这里插入图片描述
在这里插入图片描述

减少延迟时间的方法:错位命名
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.3.4 固态硬盘

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值