第六章 输入输出系统2

6-5与设备无关的I/O软件
虚拟性是OS的四大特征之一。
多道程序技术将一台物理CPU虚拟为多台逻辑CPU,实现多个用户共享一台主机。
多道程序技术,专门利用程序模拟脱机I/O的外围机,完成设备I/O操作。称这种联机情况下实现的同时外围操作为SPOOLing 技术(Simultaneaus Periphernal Operating On—Line,或称为假脱机操作)
一般进程对独占设备的需求被假脱机模拟到磁盘上。所以实现设备虚拟,多道是前提,还需高速、大容量、可随机存取的外存支持。
SPOOLing系统的组成:
输入井和输出井
输入缓冲区和输出缓冲区。
输入进程和输出进程。
打印机属于独占设备,利用SPOOLing技术可将其改造为一台可供多个用户共享的设备。
SPOOLing系统的特点:
提高了I/O的速度。将独占设备改造为共享设备。最终,实现了虚拟设备功能。
6-6用户层的I/O软件
引入缓冲区的主要原因:
缓和CPU与I/O设备间速度不匹配的矛盾。
缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率
最终目的:提高CPU和I/O设备的并行性。
使用缓冲区的方式:
1)单缓冲、多缓冲
2)循环缓冲
3)缓冲池(Buffer Pool)
双缓冲(Double Buffer)
进一步加快输入和输出速度,提高设备利用率制,也称缓冲对换(Buffer Swapping)
输入:数据送入第一缓冲区,装满后转向第二缓冲区。
读出:OS从第一缓冲区中移出数据,送入用户进程,再由CPU对数据进行计算。
循环缓冲的组成:多个缓冲区。多个指针。
对于既可输入又可输出的公用缓冲池,至少应含有下列三种类型的缓冲区:
空缓冲区;
装满输入数据的缓冲区;
装满输出数据的缓冲区;
为方便管理,将上述类型相同的缓冲区连成队列
空缓冲区队列(所有进程都可用)
输入队列(n个进程有各自的队列)
输出队列(n个进程有各自的队列)
6-7缓冲区管理
磁盘类型
固定磁头(每道一磁头)
移动磁头(每盘一磁头)
磁盘调度方法:对所有请求访问磁盘的进程进行合理调度,使对磁盘的平均访问时间最小。
目标:使平均寻道时间最少。
算法:
FCFS
最短寻道时间优先SSTF:SSTF会导致“饥饿”现象
总选择最近的磁道访问,远磁道请求的进程会长时间得不到执行。
扫描算法SCAN(磁盘电梯调度算法)
程序直接控制方式、中断控制方式、通道控制方式和DMA控制方式,其中通道方式占用CPU时间最短。
进行设备分配时所需要的数据表格主要有:设备控制表、设备控制器控制表、通道控制表和系统设备表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值