第7章外部设备管理;7.0引言;7.0.0I/O管理的重要性;7.0.1外部设备类型和特征;3.按外设特性分类;4.按资源分配角度分类;5.从程序使用角度分
逻辑设备:用户程序中使用的设备
物理设备:实际完成I/O操作的设备;7.0.2外设管理的目的和功能;2.外设管理功能;;1.程序控制I/O(programmedI/O);特点;
2.中断驱动方式
;中断控制方式的处理过程;3.直接存储访问方式
(DMA,DirectMemoryAccess);当进程要求输入数据时,CPU将准备存放输入数据的内存起始地址、要传送的字节数送入DMA控制器的内存地址存放器和传送字节计数器,将中断允许位和启动位置成1,启动设备
发出传输要求的进程进入等待状态,执行指令被暂时挂起,进程调度其他进程占据CPU
输入设备不断窃取CPU工作周期,数据不断写入内存
传送完毕,发出中断信号
CPU接到中断信号转入中断处理程序处理
中断处理结束,CPU返回原进程或切换到新的进程;窃取总线控制权;DMA方式与中断方式的主要区别;4.通道控制方式(channelcontrol);引入通道的目的;通道分类;字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息
主要连接以字节为单位的低速I/O设备。如打印机,终端。;字节多路通道的工作原理;选择通道是以成组方式工作的,即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输;它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令
主要连接高速设备
这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现;硬件连接结构;通道:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能。一旦CPU发出指令,启动通道,那么通道独立于CPU工作。一个通道可连接多个控制器,一个控制器可连???多个设备,形成树形交叉连接
主要目的是启动外设时:
a提高了控制器效率
b提高可靠性
c提高并行度;设备、控制器、通道、内存之间的关系;交叉连接;;中断和陷入〔trap〕的区别;;;2.单方向缓冲;;3.缓冲池(bufferpool);;缓冲池的管理(P218);7.3设备分配;7.3.1设备分配数据结构;各表间的关系;7.3.2设备分配原那么;针对特定的设备采用特定的分配策略
先来先效劳(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列,队首指向被请求设备的DCT;按FCFS分配设备;
基于优先级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级上下分配设备;;为进程P分配所需的I/O设备;;假脱机的原理:
SPOOLing程序和外设进行数据交换,可以称为“实际I/O〞。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。〔输入spool和输出spool〕
在SPOOLing程序中,需要管理两级缓冲区:内存缓冲区和快速外存上的缓冲池,后者可以暂存多批I/O操作的较多数据。
应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为虚拟I/O。这时虚拟I/O实际上是从SPOOLing???序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。;优点:
高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间别离开来。
实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。
举例:打印机设备和可由打印机管理器管理的打印作业队列。
如:WindowsNT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。;7.3.4I/O进程控制;I/O控制的实现;设备驱动程序是驱动物理设备和DMA或I/O控制器等直接进行I/O操作的子程序的集合。他们负责完成设置相应设备有关存放器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。
与设备密切相关的代码放在