一、系统调用与库函数
大部分I/O软件都在操作系统内部,只有一小部分在用户层,包括与用户程序链接在一起的库函数,以及完全运行于内核以外的假脱机系统等。
二、假脱机技术(SPOOLing)
1.虚拟性是OS的四大特征之一
多道程序技术将一台物理CPU虚拟为多台逻辑CPU,从而允许多个用户共享一台主机 ;
SPOOLing技术将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。
2.假脱机技术
①SPOOLing技术是对脱机输入/输出系统的模拟,在主机的直接控制下,实现脱机输入输出功能:
- 利用一道程序模拟脱机输入时的外围控制机功能,把低速外设上的数据传送到高速磁盘上;
- 利用另一道程序模拟脱机输出时的外围控制机功能,把数据传送到低速外设上。
②SPOOLing系统的组成
- 输入井和输出井(在磁盘上的两个存储空间):输入井模拟脱机输入,暂存输入数据;输出井模拟脱机输出,暂存输出数据
- 输入缓冲区和输出缓冲区(内存中) :用来缓和CPU与磁盘之间的速度的矛盾
- 输入进程SPi和输出进程SPo :模拟脱机I/O时的外围控制机
- 井管理程序:用来控制作业与磁盘井之间的信息交换
3.SPOOLing系统的处理过程
①输入:
应用进程n请求—> SPi为进程n在输入井中分配空间—>备数据由输入缓冲区送输入井 —>生成输入请求表挂输入请求队列 —>当CPU空闲时,取请求表中的任务,送进程缓冲区
对外设来说,将数据送到输入井即完成输入任务,实际上数据此时还未到请求数据的进程的缓冲区。
②输出:(打印)
应用进程n请求 —>SPo为进程n在输出井中分配空间 —>将数据由进程缓冲区转到输出井 —>生成一打印请求表挂打印请求队列 —>当打印机空闲时,查打印请求表中的任务 —> 取输出井中对应的数据 —>输出缓冲区—>打印
对用户进程来说,打印请求表挂在打印请求队列上后,其打印请求即得到满足,虽然此时没有进行任何实际的打印输出。
标签:输出,输入输出,请求,5.6,脱机,打印,第五章,缓冲区,输入 From: https://www.cnblogs.com/05-ReFrain-19/p/17378384.html