第六节 缓冲技术

1.缓冲的引入

中断、DMA和通道控制技术使得系统中各I/O设备之间、I/O设备和CPU之间可以并行工作,但I/O设备和cpu之间可以并行工作,但i/o设备和CPU的处理速度不匹配的问题是客观存在的,中断方式时容易造成数据丢失

引入缓冲区的作用:

解决I/O设备与处理机速度不匹配的问题

减少中断次数

根据I/O控制方式的不同,实现缓冲区的方法有两种:

(1)采用专用的硬件设置数据缓冲区。这种方法常常应用在外部设备的I/O控制器中。打印机、键盘

(2)在内存划出一定容量的专用数据缓冲区,以便存储输入/输出的数据,这种设置在内存的缓冲区又称为”软件缓冲“

2.缓冲区的种类

根据系统设置的缓冲区的个数,可把缓冲技术分为以下几种

1)单缓冲:在I/O设备和处理器之间设置一个缓冲区

2)双缓冲区:解决两台I/O设备或者打印机和终端之间的并行操作问题

3)多缓冲:一种具有多个缓冲区,其中一部分缓冲区专门用于输入,另一部分缓冲区专门用于输出的缓冲结构

4)缓冲池:把多个缓冲区连接起来统一管理,在缓冲池中的每个缓冲区即可用于输入又可用于输出的一种缓冲结构

3.缓冲池管理

缓冲区是一种临界资源,所以在使用缓冲区时都有一个申请、释放和互斥的问题需要考虑。缓冲池由多个缓冲区组成,而一个缓冲区由两部分组成

(1)用来标识和管理该缓冲器的缓冲首部

(2)用于存储数据的缓冲体

这两部分有一一对应的映射关系

缓冲首部包括:设备号、设备上的数据块号(使用块设备时)、互斥标识位以及缓冲队列连接指针和缓冲器号等

系统把各缓冲区按其使用状况连城三种队列:

(1)空闲缓冲队列em,其队首指针为F(em),队尾指针为L(em)

(2)装满输入数据的输入缓冲队列in,其队首指针为F(in),对尾指针尾L(in)

(3)装满输出数据的输出缓冲队列out,其队列指针为F(Out),对尾指针为L(out)

 

 

虚拟设备技术,又称为SPOOLing,是多道程序设计系统中处理独占I/O设备的一种方法,它可以提高设备利用率并缩短单个程序的响应时间

SPOOLing技术之所以被称为虚拟设备技术,是因为它可以使进程在所需的外部设备不存在或被占用的情况下使用该设备

一、虚拟设备的实现原理---SPOOLing系统工作原理

SPOOLing系统,全称为Simultaneous Peripheral  OperationsOn-Line,其含义是同时的外部设备联机操作,也称为假脱机技术

SPOOLing系统主要包括输入程序模块、输出程序模块、作业调度程序三部分

工作原理如下:

(1)利用输入程序模块。在作业执行前就利用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓,此时,这些磁盘、磁鼓称为输入井)中去,称为预输入

(2)作业进入内存运行后,使用数据时,直接从输入井中取出

(3)作业执行时不必直接启动外部设备输出数据,只需将这些数据写入输出井(专门用于存储将要输出信息的磁盘、磁鼓)中区,称为缓输出

(4)待作业全部运行完毕,再由外部设备输出全部设备和信息

按照上述工作方式,就实现了对作业的输入、组织调度和输出管理的统一进行。同时,使外部设备在处理器直接控制下,又与处理器并行工作(故称为假脱机)

 

posted @ 2024-10-26 12:34  夜星空雨  阅读(134)  评论(0)    收藏  举报