精选第五章设备管理-通道缓冲技术
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通道程序完成实际I/O,启动I/O设备,执行完毕后, 如果还有下一条指令,则继续执行, 否则表示传输完成,向 CPU发I/O中断,并且通道停止工作。CPU接收中断信号, 从CSW中取得有关信息,决定下一步做什么。
5.6 缓 冲 技术
1 缓冲的引入
在OS中,引入缓冲技术的主要原因有: 缓和CPU与I/O设备间速度不匹配的矛盾 减少对CPU的中断频率,放宽对中断响应时间的限制 (见下页图) 提高CPU和I/O设备之间的并行性 所以,为了提高I/O速度和设备利用率,许多计算机系 统通过设置缓冲区采用了缓冲技术来实现。
除了上述外,缓冲池还具有如下的工作缓冲区:
①用于收容输入数据的工作缓冲区; ②用于提取输入数据的工作缓冲区; ③用于收容输出数据的工作缓冲区; ④用于提取输出数据的工作缓冲区;
用户程序
三、缓冲区的工作方式
收容输入
hin
提取输出
sout
sin hout
提取输入 收容输出
①收容输入工作方式
输入数据时, 调用Getbuf(emq) 装满数据后, 调用Putbuf(inq, hin)
用户进程 用户区
操作系统
传送
缓冲区1
传送
缓冲区2
输入 I/O设备
输出 I/O设备
输入 I/O设备1
输出 I/O设备2
5.3.4 缓冲池(Buffer Pool)
目前广泛流行的公用缓冲池,由于可供多个进程共享, 可提高缓冲区的利用率。 一、缓冲池(Buffer Pool)的组成
对于可用于I/O的缓冲池,包含的缓冲区类型有: ①空(闲)缓冲区; ②装满输入数据的缓冲区; ③装满输出数据的缓冲区。 对应的有以下三个缓冲队列: ①空缓冲队列emq。由空缓冲区所链成的队列 ②输入队列inq。由装满输入数据的缓冲区所链成的 队列 ③输出队列outq。由装满输出数据的缓冲区所链成的 队列
(2)它没有自己的内存,通道所执行的通道程序 是存放在内存中的。即:通道与CPU共享内存。 返 回
主机I/O系统
由于主机所配置的I/O设备较多,为减轻CPU 和总线的负担,采用的是具有通道的I/O系统结构。 如图所示
计算机
I/O通道1 I/O通道2
控制器1 控制器2 控制器3 控制器4
设备 设备
设备 设备
I/O通道
(通道的引入)
引入通道的主要目的:是使一些原来由 CPU处 理的I/O任务转由通道来承担,从而把CPU从繁杂的 I/O任务中解脱出来,以保证CPU有更多的时间去进 行数据的处理。
I/O通道的特点: I/O通道是一种特殊的处理机, 与一般的处理机的区别主要表现在:
(1)它的指令类型单一。即:通道硬件简单,所 执行的指令主要局限于与I/O操作有关的指令。
通道:执行通道程序,向控制器发出命令,并
具有向CPU发中断信号的功能。 一旦CPU发出指令,
启动通道,则通道独立于CPU工作。由前面知,一
个通道可连接多个控制器,一个控制器可连接多个
设备,形成树形交叉连接。
返回
I/O通道控制方式
2. 通道程序 通道是通过执行通道程序,并与设备控制器一
起共同实现对I/O设备的控制。 1)通道运算控制部件 通道地址字CAW:记录通道程序在内存中的地
请求生成通道程序放入内存(也可事先编好放入内存), 并将该通道程序的首地址放入CAW中;之后执行“启动I/O” 指令,启动通道工作
通道:接收到“启动I/O”指令后,从CAW中取出通道 程序的首地址,并根据首地址取出第一条指令放入CCW中, 同时向CPU发回答信号,使CPU可继续执行其他程序,而 通道则开始执行通道程序,完成传输工作。
缓冲管理的主要功能是:组织好缓冲区,并提供获得和 释放缓冲区的手段。
缓冲区设置分为
硬缓冲:在设备中设置缓冲区,由硬件实现 软缓冲:在内存中开辟一个空间,用作缓冲区
2 单缓冲和双缓冲
1. 单缓冲(Single Buffer)
是OS提供的最简单的一种缓冲形式。
用户进程
操作系统
用户区
传送
传送
缓冲区
输入 I/O设备
(2)数据主存地址:标明数据送入内存(读)和从 内存取出(写)时的内存首址。或是控制信息;或是 转移地址
(3)传送字节个数:表示本条指令所要读(或写) 数据的字节数。
(5) 标志码R:
R=1表示本通道程序尚未结束 R=0表示通道程序的最后 一条指令,通道程序结束
返回
I/O通道控制方式
3) 工作原理 CPU:执行用户程序,当遇到I/O请求时,可根据该
图 具有通道的I/O系统结构
返回
I/O通道控制方式
1. 引入
I/O通道方式是DMA方式的发展,它可进一步 减少CPU的干预。即把对一个数据块的读(写)为 单位的干预,减少为对一组数据块的读(写)及有 关的控制和管理为单位的干预,同时又可实现CPU、 通道和I/O设备三者的并行工作,从而更有效地提 高了整个系统的资源利用率。
说明:由于只有一个缓冲区,读卡机和打印机是 串行工作的。即读卡机将数据读入缓冲区时,打印 机空闲,打印机工作时,读卡机空闲。
为了能让两者更好地工作,引入了双缓冲区。
单机缓冲系统
2. 双缓冲(Double Buffer)
用户进程 用户区
操作系统
传送
缓冲区1 缓冲区2
用户进程 用户区
操作系统
传送
缓冲区1 缓冲区2
②提取输入工作方式
输入数据时, 调用Getbuf(inq) 提完数据后, 调用Putbuf(emq, sin)
③收容输出工作方式
输出数据时, 装满数据后,
调用Getbuf(emq) 调用Putbuf(outq, hout)
④提取输出工作方式
输出数据时, 调用Getbuf(outq) 提完数据后, 调用Putbuf(emq, sout
址 通道命令字CCW:保存正在执行的通道指令 通道状态字CSW: 存放通道执行后的返回结果 通道数据字CDW:存放传输数据 通道和CPU共用内存,通过周期窃取方式取得
I/O通道控制方式
2) 通道命令及格式 通道程序是由一系列的通道指令(或称为通道
命令)所构成。 每条通道指令中应包含下列诸信息: (1)命令码:它规定了外围设备所执行的操作。
T+C
用户进程
a)
处 理(C) 工作区
传 送(M)
缓冲区
输 入(T)
I/O设 备
T1
T2
T3
T4
b)
M1
M2
M3
C1
C2
C3
t
用户进程
操作系统
传送
用户区
传送
缓冲区
输入
I/O设备
输出
对于字符设备输入(出),缓冲区是暂存用户 输入(出)的一行数据。
例:把一叠卡片读入并打印出来。设读卡机和打 印机的速度分别是600张/m、600行/m,则每读入并 打印出一张卡片上的记录需时为200ms。
二、SPOOLing系统的组成
输入进程SP1 输出进程SP0
输入 设备
输入缓冲区B1
磁盘 输入井
输出 设备
输出缓冲区B0
输出井
共享打印机
假定某系统的全部行式打印机采用了虚拟设备技术(即使 用了SPOOLing技术),当某进程要求打印输出时,SPOOLing 系统同意为它打印输出, 但并不真正立即把打印机分配给该 用户进程, 而只为它做两件事: ① 由输出进程在输出井中为 之申请一个空闲磁盘块区, 并将要打印的数据送入其中; ② 输出进程再为用户进程申请一张空白的用户请求打印表,为其 分配一块存储空间,同时为该进程的输出数据建立一个文件 (文件名可缺省),并将用户的打印要求填入其中, 再将该表挂 到请求打印队列上。该进程的输出数据实际上并未从打印机上 输出,而只是以文件形式输出,并暂存放在输出SPOOLing存 储区中。这个输出文件实际上相当于虚拟的行式打印机。各进 程的输出都以文件形式暂时存放在输出SPOOLing存储区中并 形成了一个输出队列,由输出SPOOLing控制打印机进程,依 次将输出队列中的各进程的输出文件最后实际地打印输出。
输出
下面通过数学方式说明单缓冲的作用。 对于块设备输入(出),设从磁盘把一块数据输入到缓冲 区(或从缓冲区把一块数据输出到磁盘)所需的时间为T,将 缓冲区的数据传送到用户区的时间为M,CPU计算数据的时间 为C,则系统对每整块数据的处理时间为:max(C,T)+M
(M<<T or C) 如果没有缓冲区,则系统对每整块数据的处理时间为:
5.7 SPOOLing技术
问:能否通过某种技术将一台独占设备改造成由多个用户共享的 设备?
答:能。SPOOLing技术就是用于将一台独占设备改造成共享设 备的行之有效的技术。
一、什么是SPOOLing
为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输 入、脱机输出技术。该技术是利用专门的外围控制机, 将低速I/O设备 上的数据传送到高速磁盘上;或者相反。事实上,当系统中引入了多 道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的 外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另 一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到 低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、 输出功能。 此时的外围操作与CPU对数据的处理同时进行,我们把这 种在联机情况下实现的同时外围操作称为称为假脱机操作,或称为 SPOOLing (Simultaneaus Periphernal Operating On-Line),
SPOOL系统的特点:
(1) 提高了I/O的速度。 (2) (2) 将独占设备改造为共享设备。 (3) (3) 实现了虚拟设备功能。
5.6 缓 冲 技术
1 缓冲的引入
在OS中,引入缓冲技术的主要原因有: 缓和CPU与I/O设备间速度不匹配的矛盾 减少对CPU的中断频率,放宽对中断响应时间的限制 (见下页图) 提高CPU和I/O设备之间的并行性 所以,为了提高I/O速度和设备利用率,许多计算机系 统通过设置缓冲区采用了缓冲技术来实现。
除了上述外,缓冲池还具有如下的工作缓冲区:
①用于收容输入数据的工作缓冲区; ②用于提取输入数据的工作缓冲区; ③用于收容输出数据的工作缓冲区; ④用于提取输出数据的工作缓冲区;
用户程序
三、缓冲区的工作方式
收容输入
hin
提取输出
sout
sin hout
提取输入 收容输出
①收容输入工作方式
输入数据时, 调用Getbuf(emq) 装满数据后, 调用Putbuf(inq, hin)
用户进程 用户区
操作系统
传送
缓冲区1
传送
缓冲区2
输入 I/O设备
输出 I/O设备
输入 I/O设备1
输出 I/O设备2
5.3.4 缓冲池(Buffer Pool)
目前广泛流行的公用缓冲池,由于可供多个进程共享, 可提高缓冲区的利用率。 一、缓冲池(Buffer Pool)的组成
对于可用于I/O的缓冲池,包含的缓冲区类型有: ①空(闲)缓冲区; ②装满输入数据的缓冲区; ③装满输出数据的缓冲区。 对应的有以下三个缓冲队列: ①空缓冲队列emq。由空缓冲区所链成的队列 ②输入队列inq。由装满输入数据的缓冲区所链成的 队列 ③输出队列outq。由装满输出数据的缓冲区所链成的 队列
(2)它没有自己的内存,通道所执行的通道程序 是存放在内存中的。即:通道与CPU共享内存。 返 回
主机I/O系统
由于主机所配置的I/O设备较多,为减轻CPU 和总线的负担,采用的是具有通道的I/O系统结构。 如图所示
计算机
I/O通道1 I/O通道2
控制器1 控制器2 控制器3 控制器4
设备 设备
设备 设备
I/O通道
(通道的引入)
引入通道的主要目的:是使一些原来由 CPU处 理的I/O任务转由通道来承担,从而把CPU从繁杂的 I/O任务中解脱出来,以保证CPU有更多的时间去进 行数据的处理。
I/O通道的特点: I/O通道是一种特殊的处理机, 与一般的处理机的区别主要表现在:
(1)它的指令类型单一。即:通道硬件简单,所 执行的指令主要局限于与I/O操作有关的指令。
通道:执行通道程序,向控制器发出命令,并
具有向CPU发中断信号的功能。 一旦CPU发出指令,
启动通道,则通道独立于CPU工作。由前面知,一
个通道可连接多个控制器,一个控制器可连接多个
设备,形成树形交叉连接。
返回
I/O通道控制方式
2. 通道程序 通道是通过执行通道程序,并与设备控制器一
起共同实现对I/O设备的控制。 1)通道运算控制部件 通道地址字CAW:记录通道程序在内存中的地
请求生成通道程序放入内存(也可事先编好放入内存), 并将该通道程序的首地址放入CAW中;之后执行“启动I/O” 指令,启动通道工作
通道:接收到“启动I/O”指令后,从CAW中取出通道 程序的首地址,并根据首地址取出第一条指令放入CCW中, 同时向CPU发回答信号,使CPU可继续执行其他程序,而 通道则开始执行通道程序,完成传输工作。
缓冲管理的主要功能是:组织好缓冲区,并提供获得和 释放缓冲区的手段。
缓冲区设置分为
硬缓冲:在设备中设置缓冲区,由硬件实现 软缓冲:在内存中开辟一个空间,用作缓冲区
2 单缓冲和双缓冲
1. 单缓冲(Single Buffer)
是OS提供的最简单的一种缓冲形式。
用户进程
操作系统
用户区
传送
传送
缓冲区
输入 I/O设备
(2)数据主存地址:标明数据送入内存(读)和从 内存取出(写)时的内存首址。或是控制信息;或是 转移地址
(3)传送字节个数:表示本条指令所要读(或写) 数据的字节数。
(5) 标志码R:
R=1表示本通道程序尚未结束 R=0表示通道程序的最后 一条指令,通道程序结束
返回
I/O通道控制方式
3) 工作原理 CPU:执行用户程序,当遇到I/O请求时,可根据该
图 具有通道的I/O系统结构
返回
I/O通道控制方式
1. 引入
I/O通道方式是DMA方式的发展,它可进一步 减少CPU的干预。即把对一个数据块的读(写)为 单位的干预,减少为对一组数据块的读(写)及有 关的控制和管理为单位的干预,同时又可实现CPU、 通道和I/O设备三者的并行工作,从而更有效地提 高了整个系统的资源利用率。
说明:由于只有一个缓冲区,读卡机和打印机是 串行工作的。即读卡机将数据读入缓冲区时,打印 机空闲,打印机工作时,读卡机空闲。
为了能让两者更好地工作,引入了双缓冲区。
单机缓冲系统
2. 双缓冲(Double Buffer)
用户进程 用户区
操作系统
传送
缓冲区1 缓冲区2
用户进程 用户区
操作系统
传送
缓冲区1 缓冲区2
②提取输入工作方式
输入数据时, 调用Getbuf(inq) 提完数据后, 调用Putbuf(emq, sin)
③收容输出工作方式
输出数据时, 装满数据后,
调用Getbuf(emq) 调用Putbuf(outq, hout)
④提取输出工作方式
输出数据时, 调用Getbuf(outq) 提完数据后, 调用Putbuf(emq, sout
址 通道命令字CCW:保存正在执行的通道指令 通道状态字CSW: 存放通道执行后的返回结果 通道数据字CDW:存放传输数据 通道和CPU共用内存,通过周期窃取方式取得
I/O通道控制方式
2) 通道命令及格式 通道程序是由一系列的通道指令(或称为通道
命令)所构成。 每条通道指令中应包含下列诸信息: (1)命令码:它规定了外围设备所执行的操作。
T+C
用户进程
a)
处 理(C) 工作区
传 送(M)
缓冲区
输 入(T)
I/O设 备
T1
T2
T3
T4
b)
M1
M2
M3
C1
C2
C3
t
用户进程
操作系统
传送
用户区
传送
缓冲区
输入
I/O设备
输出
对于字符设备输入(出),缓冲区是暂存用户 输入(出)的一行数据。
例:把一叠卡片读入并打印出来。设读卡机和打 印机的速度分别是600张/m、600行/m,则每读入并 打印出一张卡片上的记录需时为200ms。
二、SPOOLing系统的组成
输入进程SP1 输出进程SP0
输入 设备
输入缓冲区B1
磁盘 输入井
输出 设备
输出缓冲区B0
输出井
共享打印机
假定某系统的全部行式打印机采用了虚拟设备技术(即使 用了SPOOLing技术),当某进程要求打印输出时,SPOOLing 系统同意为它打印输出, 但并不真正立即把打印机分配给该 用户进程, 而只为它做两件事: ① 由输出进程在输出井中为 之申请一个空闲磁盘块区, 并将要打印的数据送入其中; ② 输出进程再为用户进程申请一张空白的用户请求打印表,为其 分配一块存储空间,同时为该进程的输出数据建立一个文件 (文件名可缺省),并将用户的打印要求填入其中, 再将该表挂 到请求打印队列上。该进程的输出数据实际上并未从打印机上 输出,而只是以文件形式输出,并暂存放在输出SPOOLing存 储区中。这个输出文件实际上相当于虚拟的行式打印机。各进 程的输出都以文件形式暂时存放在输出SPOOLing存储区中并 形成了一个输出队列,由输出SPOOLing控制打印机进程,依 次将输出队列中的各进程的输出文件最后实际地打印输出。
输出
下面通过数学方式说明单缓冲的作用。 对于块设备输入(出),设从磁盘把一块数据输入到缓冲 区(或从缓冲区把一块数据输出到磁盘)所需的时间为T,将 缓冲区的数据传送到用户区的时间为M,CPU计算数据的时间 为C,则系统对每整块数据的处理时间为:max(C,T)+M
(M<<T or C) 如果没有缓冲区,则系统对每整块数据的处理时间为:
5.7 SPOOLing技术
问:能否通过某种技术将一台独占设备改造成由多个用户共享的 设备?
答:能。SPOOLing技术就是用于将一台独占设备改造成共享设 备的行之有效的技术。
一、什么是SPOOLing
为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输 入、脱机输出技术。该技术是利用专门的外围控制机, 将低速I/O设备 上的数据传送到高速磁盘上;或者相反。事实上,当系统中引入了多 道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的 外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另 一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到 低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、 输出功能。 此时的外围操作与CPU对数据的处理同时进行,我们把这 种在联机情况下实现的同时外围操作称为称为假脱机操作,或称为 SPOOLing (Simultaneaus Periphernal Operating On-Line),
SPOOL系统的特点:
(1) 提高了I/O的速度。 (2) (2) 将独占设备改造为共享设备。 (3) (3) 实现了虚拟设备功能。