4、5 I/O缓冲技术
缓冲技术的引入:缓解处理机与设备间速度不匹配;一定程度的并行操作;减少中断频率。
提前读:用户进程从I/O缓冲区中取走前一个数据以后,立即发出对下一个数据的输入请求。
延后写:当用户进程请求输出数据的时,操作系统将很快吧用户进程请求输出的数据从用户进程的工作区中取走并将其暂时存放在I/O缓冲区中。
硬件缓冲和软件缓冲
硬件缓冲区:对处理机透明,不需要处理机直接管理,不会影响系统性能。
软件实现的缓冲区:是内存空间的一部分,弥补硬件缓冲区的不足。
缓冲区的组织管理
单缓冲:仅在内存中为进程对某个设备的I/O访问分配一个缓冲区
双缓冲:增加一个缓冲区,两个缓冲区可以交替使用。
循环缓冲:多个I/O缓冲区常常被组织成一个环形队列,称为循环缓冲
缓冲池:为了提高缓冲区的利用率,可以采用公共缓冲池技术,其中的缓冲区可为多个设备和进程服务。
缓冲池
两种缓冲池:分别用于块型设备和字符型设备。
用于块型设备的缓冲池:缓冲区较大
用于字符型设备的缓冲池:缓冲区较小
缓冲池中的缓冲区通常组织成链表结构。
缓冲技术的实现
4、6 虚拟设备
虚拟设备的引入:独占型设备的速度一般较慢
虚拟设备技术的实现:可以认为是位设备提供了多个更大的、甚至在实际工作中是无限长度的缓冲区,是在独占型设备与进程之间加入一个共享性设备作为过渡。
输入型虚拟设备的实现
1、申请 分配一台虚拟设备(磁盘区域),分配一台实设备(一台读卡机),将信息由实设备连续地传输到虚拟设备,释放实设备。
2、使用 将数据从虚拟设备(磁盘区域)传输到进程空间。
3、释放 回收虚拟设备(磁盘区域)
输出型虚拟设备的实现
1、申请 分配一台虚拟设备(磁盘设备);
2、使用 将数据由进程空间传送到虚拟设备(磁盘设备)
3、释放 申请一台实设备(一台打印机),将数据由虚拟设备(磁盘区域)输出到实设备(打印机),回收实设备(打印机)。
SPOOLing系统
SPOOLing:联机情况下同时进行的外围设备操作,通常称其为“假脱机技术”。
SPOOLing系统是虚拟设备最典型的代表,包括假脱机输入和假脱机输出系统两个部分。
核心思想:在快速辅助存储系统设备中建立I/O缓冲区,用于缓存从慢速输入设备流入内存的数据,或缓存从内存流向慢速输出设备的数据。