第六章 用户层的I/O软件与缓冲区管理

2018-11-24  本文已影响0人  杀手的手刹

回顾脱机技术:


假脱机技术:

多道程序技术,专门利用程序模拟脱机I/O的外围机,完成设备I/O操作。

称这种联机情况下实现的同时外围操作为SPOOLing 技术(Simultaneaus Periphernal Operating On—Line,或称为假脱机操作)

一般进程对独占设备的需求被假脱机模拟到磁盘上。所以实现设备虚拟,多道是前提,还需高速、大容量、可随机存取的外存支持。

SPOOLing系统的组成:

主要有三大部分

1.输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。

2.输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备。

3.输入进程和输出进程。

     用一进程模拟脱机输入时外围设备控制器的功能,把低速输入设备上的数据传送到高速磁盘上;

     用另一进程模拟脱机输出时外围设备控制器的功能,把数据从磁盘上传送到低速输出设备上。


SPOOLing系统的特点:

1.提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。

2.将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。

3.最终,实现了虚拟设备功能。多个进程可“同时”使用一台独占设备。


缓冲管理:

I/O控制方式减少CPU对I/O的干预提高利用率;

缓冲则通过缓和CPU和I/O设备速度不匹配矛盾,增加CPU和I/O设备的并行性,提高利用率。

现代OS中,几乎所有的I/O设备与处理机交换数据时,都用了缓冲区。

引入缓冲区的主要原因:

1、缓和CPU与I/O设备间速度不匹配的矛盾。

2、缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率

3、最终目的:提高CPU和I/O设备的并行性。

使用缓冲区的方式:

1)单缓冲、多缓冲

2)循环缓冲

3)缓冲池(Buffer Pool)

上一篇下一篇

猜你喜欢

热点阅读