一、用户层的I/O软件
1、系统调用与库函数
¨不允许运行在用户态的应用进程,去直接调用运行在核心态(系统态)的OS过程。
¨应用进程在运行时,又必须取得OS所提供的服务。
于是:
¨OS在用户层中引入了系统调用,应用程序可以通过它,间接调用OS中的I/O过程,对I/O设备进行操作。
2、设备分配中的虚拟技术 —— SPOOLing技术
1)组成
1.输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。
2.输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备。
3.输入进程和输出进程。
2)特点
1.提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。
2.将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。
3.最终,实现了虚拟设备功能。多个进程可“同时”使用一台独占设备。
二、缓冲区管理
1、
I/O控制方式减少CPU对I/O的干预提高利用率;
缓冲则通过缓和CPU和I/O设备速度不匹配矛盾,增加CPU和I/O设备的并行性,提高利用率。
现代OS中,几乎所有的I/O设备与处理机交换数据时,都用了缓冲区。
2、引入缓冲区的主要原因:
§缓和CPU与I/O设备间速度不匹配的矛盾。
§缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率
§最终目的:提高CPU和I/O设备的并行性。
3、使用缓冲区的方式:
1)单缓冲、多缓冲
2)循环缓冲
3)缓冲池
三、磁盘存储器的性能和调度
1、磁盘性能简述:
1)与格式有关:数据的组织和格式
2)与速度有关:磁盘类型和访问时间的计算
2、磁盘调度方法:
¨FCFS
¨最短寻道时间优先SSTF
¨扫描算法SCAN(磁盘电梯调度算法)
循环扫描算法CSCAN
N-Step-SCAN算法
FSCAN算法
3、磁盘高速缓存
内存中划出,对外存磁盘读写进行缓存的区域
4、其他提速方法
1)提前读
2)延迟写
3)优化物理块分布
4)虚拟盘
5)磁盘冗余阵列