操作系统|操作系统整理-第五章-输入/输出(I/O)管理
输入/输出(I/O)管理
- 一、I/O管理概述
-
- 1.1 I/O设备
- 1.2 I/O控制方式
- 1.3 I/O子系统的层次结构
- 二、I/O核心子系统
-
- 2.1 I/O子系统概述
- 2.2 I/O调度概念
- 2.3 高速缓存与缓冲区
- 2.4 设备分配与回收
- 2.5 SPOOLing技术(假脱机技术)
一、I/O管理概述 1.1 I/O设备
I/O设备类型多种多样,导致I/O设备管理成为操作系统管理最凌乱也最具有挑战性的一部分。1.2 I/O控制方式
按使用特性可分为
1)人机交互类外部设备,用于计算机与用户之间的交互设备,如键盘和显示屏。
2)存储设备,用户存储数据的设备,如磁盘、U盘。
3)网络通信设备,与远程设备通信的设备,如各自网络接口、调制解调器等。
- 按传输速率
1)低速设备,每秒几字节到百字节,如键盘、鼠标等。
2)中速设备,几千到几万字节的设备,如打印机、显示器等。
3)高速设备,数十万到千兆字节的设备,如磁盘。- 按信息交换的单位分类
1)块设备,数据存取以数据块为单位,如磁盘。
2)字符设备,以字符为基本单位,如打印机。
- 程序直接控制方式
用显示的程序来控制数据的读写。
文章图片
实现简单,但是CPU要和不在一个数量级的I/O并行操作,导致CPU利用率很低。- 中断驱动方式
运行I/O设备可以通过中断主动打断CPU,CPU给I/O设备控制器发送命令之后,其它时间就让CPU去忙。
文章图片
问题在于数据中的每个字在存储器与I/O控制器之间传输都需要CPU的干预。1.3 I/O子系统的层次结构
3. DMA方式
其基本单位不是一个字,而是数据块,仅在传输一个或多个数据块的开始和结束时,才需要CPU的干预,整块的数据在传送过程中是在DMA控制器下完成的。
文章图片
文章图片
1)命令/状态寄存器(CR),用于记录CPU向I/O设备控制器发来的控制信息或设备状态。
2)内存地址寄存器(MAR),输入时,记录数据在设备的起始目标地址;输出时,记录数据在内存的源地址。
3)数据寄存器(DR),用于暂存设备到内存或内存到设备的数据。
4)数据计数器(DC),存放本次要传送的字节数。
该问题在于传输每一批数据前后都要CPU的干预。
4. 通道控制方式(小处理机)
I/O通道方式是DMA的发展,是指专门负责输入/输出的处理机。可以进一步减少CPU的干预。传多少数据在让CPU干预,数据放在那里?多设备同时控制,这都由小处理机通道来控制。
实现了CPU、通道和I/O设备三者的并行操作,大大的提高了系统利用率。
当CPU要完成一组相关的读写时,只需像I/O通道发送一条I/O指令,其它的控制都交给通道控制,等数据传完时在中断CPU。
通道与一般的CPU的区别是,通道指令类型单一,没有自己的内存,和CPU共享内存。
二、I/O核心子系统 2.1 I/O子系统概述
文章图片
文章图片
管理各类设备的方法共同组成OS内核的I/O子系统,与内核其它方面独立。其I/O核心子系统提供的服务主要由I/O调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理等。2.2 I/O调度概念
目的就是为了使进程之间公平高效有序的对共享设备的访问,减少I/O完成所需要的平均等待时间。2.3 高速缓存与缓冲区
原本有一个I/O请求队列,但是I/O调度会重新安排队列顺序,以改善系统的总体效率和应用程序的平均响应时间。
- 磁盘高速缓存
把数据预先存到介于CPU与内存之间的小容量高速存储器上,以提高CPU取指令或数据的速度。 - 缓冲区
用来缓冲CPU与I/O速度不匹配的问题,有单缓冲、双缓冲、循环缓冲、缓冲池四种。
单缓冲,一次只能读或写,一个在进行的时候,另一个就必须阻塞。设数据进入缓冲区时间为T,数据转移时间为M,数据处理时间为C,则用单缓冲区处理每块数据的用时为max(C,T)+M
文章图片
按照上面的规则,则双缓冲的用时为max(C+M,T)
若M+C < T ,则可使块设备连续输入;反则CPU可不必等待设备输入。
文章图片
文章图片
而循环缓冲是用一个循环链表表示,有两个指针in和out,in指针指向可以输入数据的第一个空缓区。out指针指向可以输出数据的第一个缓冲区
缓冲池则有三个链表,4种缓冲区。空缓冲队列、装满输入数据队列、装满输出数据缓冲队列。
文章图片
- 高速缓冲与缓冲区的对比
文章图片
- 高速缓冲与缓冲区的对比
2.5 SPOOLing技术(假脱机技术)
- 设备分配概述
合理公平高效的分配,让设备尽可能的忙,要避免死锁。
1)独占式使用设备
2)分时式共享使用设备
3)以SPOOLing方式使用外部设备- 设备分配的数据结构
这些数据结构通过指针一环套一环,注意下图。
文章图片
文章图片
- 设备分配的策略
在避免死锁的情况下,利用合理高效的设备分配算法(FIFO、优先级高优先等)来动态分配。- 设备分配的安全性
1)安全分配方式,一旦进程请求I/O便进入阻塞态,不保持资源也不再请求其它资源,直到I/O完成才被唤醒。但是CPU与I/O是串行工作。
2)不安全分配方式,需要一个请求一个,请求后继续运行,需要另一个I/O请求时,又请求,直到所请求的I/O在被的进程占用时。
优点:一个进程同时操作多个设备,从而快速推进进程。缺点:可能产生死锁。
为了解决CPU的高速性与I/O设备低速性之间的矛盾,引入脱机技术。将独占设备看似改造成共享设备的技术。
在磁盘上开辟输入井和输出井,然后自动一个进程一个进程的I/O任务完成。
如用户A和B同时操控打印机,而OS将两个任务放在磁盘的井中,然后通过井中的数据一个进程一个进程的I/O任务自动有序运行。
内存中的数据传到输出井,外设的数据传到输入井。
文章图片
推荐阅读
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 20190302|20190302 复盘翻盘
- 《格列佛游记》第二卷第五章概括
- 【韩语学习】(韩语随堂笔记整理)
- 阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15|阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15 20191025
- 操作系统|[译]从内部了解现代浏览器(1)
- 学习基金第五课:认识巴菲特赌输了的指数基金|学习基金第五课:认识巴菲特赌输了的指数基金 2018-10-12
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会
- 三国谋略22(找准你的定位)
- 第五十章|第五十章 毕业聚会