设备管理、用户层I/O软件、缓冲、磁盘

一、SPOOLing系统
组成:
1、输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。
2、输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备。
3、输入进程和输出进程。
用一进程模拟脱机输入时外围设备控制器的功能,把低速输入设备上的数据传送到高速磁盘上;
用另一进程模拟脱机输出时外围设备控制器的功能,把数据从磁盘上传送到低速输出设备上。

特点:
1、提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。
2、将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。
3、最终,实现了虚拟设备功能。多个进程可“同时”使用一台独占设备。
二、缓冲
1、单缓冲
每当用户进程发出一I/O请求时,OS在主存中为之分配一个缓冲区。CPU和外设轮流使用,一方处理完后等待对方处理。
注意:当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。

设备管理、用户层I/O软件、缓冲、磁盘
多个缓冲区(大小相同):预备装输入数据的空缓冲区R;装满数据的缓冲区G;计算进程正在使用的现行工作缓冲区C。
多个指针:指示正在使用的缓冲区C的指针Current;指示计算进程下一个可取的缓冲区G的指针Nextg;指示输入进程下次可放的缓冲区R的指针Nexti

缺点:不能双向同时通讯;利用率不高;并发程序多时很复杂。

4、缓冲池
收容输入数据的工作缓冲区;hin
提取输入数据的工作缓冲区;sin
收容输出数据的工作缓冲区;hout
提取输出数据的工作缓冲区;sout

设备管理、用户层I/O软件、缓冲、磁盘
三、磁盘

访问时间的计算:寻道时间(到磁道);旋转延迟(到扇区);传输时间(硬件固有属性)。

磁盘调度方法:
(1)FCFS
多个进程的磁盘I/O请求构成一个随机分布的请求队列。磁盘I/O执行顺序按磁盘请求的先后顺序。
(2)最短寻道时间优先SSTF
选择从当前磁头位置出发移动最少的磁盘I/O请求。使每次磁头移动时间最少,但不一定是最短平均柱面定位时间。有可能产生饥饿状态。
(3)扫描算法SCAN(磁盘电梯调度算法)
规定磁头移动方向:自里向外,再自外向里移动。后续的I/O磁道请求,哪个在规定方向上距离最近,就先执行哪个。
(4)循环扫描CSCAN
将SCAN规定的移动方向改为“单向移动”:由里向外后,再由里向外。
(5)N-Step-SCAN
将磁盘请求队列分成长为N 的子队列。按FCFS选择子队列。队列内又按SCAN算法。处理子队列过程中产生的新I/O再依次排队列。
(6)F-SCAN
请求队列只分为两个子队列,当前一个队列,按SCAN算法执行;

来源:@学习ing

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月7日
下一篇 2018年11月7日

相关推荐