计算机科学与工程系.ppt_第1页
计算机科学与工程系.ppt_第2页
计算机科学与工程系.ppt_第3页
计算机科学与工程系.ppt_第4页
计算机科学与工程系.ppt_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统原理,第五章 设备管理,2,5.1 概述,5.1.1 设备的概念与分类 一基本概念 1. I/O设备:指计算机所能控制的一切控制对象及相联系的媒体,既包括了I/O物理设备,又包括设备控制器,中断控制器,I/O通道,虚拟设备。 2. I/O系统:I/O硬件和OS设备管理的I/O软件统称为I/O系统。 3. I/O操作:内存与I/O设备之间的信息传送。,3,5.1 概述,二.设备分类 1. 按从属关系,可将外设分为: (1)系统设备:系统生成时就已登记在OS中,纳入OS的管理范围的标准设备。 例如:键盘,显示器,磁盘等。 (2)用户设备:OS生成时未登记的非标准设备,由用户向OS提供驱动程序以便OS代管。 例如:MS-DOS中,在系统配置文件config.sys,4,5.1 概述,中,使用DEVICE命令把特定的设备驱动程序安装,格式为: DEVICEC:CD-ROMIDESONYIDE.SYS 2. 按工作特性,分为: (1)I/O设备:又可分为输入设备和输出设备,这些设备都以字符为单位I/O,也称字符设备。 输入设备:把信息从外设输入到内存的设备,如键盘,扫描仪,鼠标等。,5,5.1 概述,输出设备:把信息从内存输出到外设的设备,如显示器,打印机,绘图仪等。 (2)存储设备:用于存储大容量信息,又可以随机访问这些信息的设备,OS中作为内存的扩充。交换信息以成块(组)方式,每块固定大小,为1281024字节,也称为块设备。 例如:磁盘和磁带,光盘等。 3. 按资源分配特性,分为: (1)独占设备:一段时间内只允许一个用户,6,5.1 概述,使用的设备,一旦分配给某个进程使用,就为其独占,直到运行完成 ,才释放给OS。否则,不能保证信息的完整和连续性。是排它性使用。 例如:打印机,终端等多数低速的字符设备都属于独占设备。 (2)共享设备:一段时间内允许多个进程同时使用的设备,宏观上它们同时使用,微观上交替的对它进行信息读和写操作。是可寻址和可随机访问的设备。 例如:磁盘,几个进程可以同时交替的从一台磁盘机上读/写信息。共享设备有较高的利用率,是文件系统的基础。,7,5.1 概述,(3)虚拟设备(virtual device):以大容量外存为支持,通过虚拟技术(spooling)将一台独占设备改造成共享的设备,这种改造后的设备是一种逻辑上概念上的设备,称为虚拟设备。 例如:采用假脱机技术,用磁盘的一部分空间来代替打印机,用户的打印操作实际上是对磁盘的写操作,一旦打印机不忙,再从盘上取出打印,将慢速的独占设备改造成了可共享的设备。,8,5.1 概述,5.1.2 设备管理的目标和功能 一. 设备管理的目标 1. 方便性 方便用户使用计算机,使用户从各种原始的设备使用方式中解脱出来,为此,OS提供了统一方便的外设使用界面,使用户感到方便灵活的使用方式。OS隐藏了设备的物理特性,为用户的I/O要求完成I/O程序设计,控制设备的传送。 2. 并行性,9,5.1 概述,既要使CPU与外设之间并行工作,也要使外部设备之间并行工作,以提高设备的利用率。OS的任务是合理地分配外设,协调其关系,发挥硬件的并行性。 3. 均衡性 现在OS中,由于多个进程的并发执行,共享系统资源必将引起对资源的竞争,因此,设备管理既要使设备保持忙碌,又要使设备保持忙碌的均衡性。避免由于传输特性而忙闲不均,充分发挥外设的潜力。 例如:通过外存实现虚拟设备。,10,5.1 概述,4. 独立性 即设备无关性,用户编程时尽量使用逻辑设备名,避免直接使用实际的设备名,由OS的设备管理建立其对应关系。可以解决外设故障,增加设备分配的灵活性。 二.设备管理功能 1. 设备的分配与回收 多道程序环境下,多个用户进程可能会同时对某一类设备提出使用请求,设备管理软件应按一定的算法决定把设备具体分配给哪个进 程,分配控制器和通道,11,5.1 概述,,建立从外设到内存之间的信息通路。 2. 地址转换和设备驱动 OS要将用户提供的逻辑设备名转换成设备的物理地址,设备管理还调用设备驱动程序,启动外设,进行实际的I/O操作,完成后将结果通知用户进程。 3. I/O中断处理 当信息传送完成后或有错时,由DMA或通道,12,5.1 概述,等硬件发出中断信号向CPU报告,设备管理程序将通过该类设备的I/O中断服务程序分别处理。 4. 缓冲区管理 目的是解决CPU和外设速度上的差距,提高并行性。OS在内存中开辟了缓冲区暂存信息。 例如:下图所示,13,5.1 概述,5.1.3 I/O设备的组成 I/O设备由机械部件和电子部件二部分组成。,14,5.1 概述,一.物理设备 泛指I/O设备中为完成规定的操作必有的物理装置,是设备的主体部分。 二.电子部件 负责接收和发送主机与物理设备之间的控制命令和I/O数据。主要有两种形式: 1. I/O设备控制器,主要功能有: (1)端口地址译码:将端口发来的设备总线,15,5.1 概述,地址译码,以确定是哪一台设备被系统选中。 (2)按规定的格式和过程,接受和发送控制信号或数据。 (3)数据的缓冲存储:控制器中有数据缓冲寄存器,以暂存I/O数据。 (4)控制I/O设备:如启动,停止,正转,反转,回车,换行等机械动作,并且进行数据加工。 2. I/O设备接口:主要功能有:,16,5.1 概述,(1)实现数据缓冲,使CPU与外设在工作速度上匹配。 (2)实现数据格式转换。如并/串行数据转换。 (3)提供I/O设备和接口的状态,使CPU根据状态信息对外设控制。接口中设立了状态寄存器供CPU读取和判断。 (4)实现主机与外设之间的通讯联络控制,包括:设备选择,操作时序控制,中断请求,批准,DMA方式请求,主机命令与I/O设备状态交换与传递等。,17,5.1 概述,三. I/O接口的分类 1. 按数据传输宽度分类 (1)并行接口 主机与接口,接口与外设之间都是可以同时传送多位数据(一个字节,一个字),因此并行接口的数据通路是按字或字节设置的。适用于离主机较近的设备,如打印机一般接在并行口上。 (2)串行接口(每次只传送一位数据) 接口与主机之间按并行的方式传递,接口与外设,18,5.1 概述,之间按串行方式,每个字节是按位依次传递。接口要求设立移位功能的数据缓冲器,每传来一位移位到相应的位上接收字位,实现数据格式的并串转换。适用于低速设备如鼠标和调制解调器。 2. 按操作节拍分类,根据接口与CPU之间的协调关系分 (1)同步接口:按照CPU的控制节拍进行数据传送,CPU与接口,接口与外设的交换都听从CPU的控制节拍的协调,与CPU节拍同步,操 作时间 必须与,19,5.1 概述,CPU时钟同步,取时钟的整数倍。 (2)异步接口:不由CPU的时钟控制,与时钟节拍无关,利用应答方式实现CPU与I/O设备的信息交换。CPU为主设备,向接口发出“请求”I/O信号,接口传给设备。I/O设备为从设备,完成I/O后向主设备发“回答”信号。 3. 按数据传送的控制方式分类 (1)程序控制的I/O接口 (2)程序中断I/O接口 (3)DMA接口(直接存储器存取),20,5.1 概述,5.1.4 I/O接口的概念和作用 一.接口的概念 1. 为什么设立I/O接口 (1)外设的结构和工作原理与主机差异很大,都有单独的时钟,时序控制和状态标志。 (2)主机与外设工作速度不同,相差几个数量级,主机在ns级而外设在秒,毫秒一级上。 (3)主机外设的数据格式不同,外设用,21,5.1 概述,ASCII码标识数据,而主机用二进制码表示数据,因此为了协调主机与外设之间的速度差异,进行数据的格式转换,提供状态信息,控制通讯联络。,22,5.2 I/O控制方式,5.2.0 数据传送的控制方式 1. 早期的I/O系统是由程序控制的,外设的启动,停止等全由CPU通过程序控制,外设与CPU不能并行工作,设备之间不能并行工作。 2. 为了提高速度,在外设接口中增设了缓冲器,数据I/O在主存和缓冲器之间进行,但CPU仍要停止工作等待外设数据。 3. 60年代发展了中断概念,程序中断来处理I/O。但中断过分频繁,使CPU忙于处理中断。,23,5.2 I/O控制方式,例如:输入机每秒传1000个字节,要发出1000次中断,如每次中断处理用100s,为传1000字节就要发生1000次中断,所以每秒内CPU就要用去0.1秒处理中断。 4. 系统结构的发展,在I/O系统增设了数据reg,地址reg,计数器等,使外设和MM内存之间不通过CPU而直接进行,成为DMA(direct memory access)工作方式。 5. 将这些控制部分统一起来,具有I/O指令程序来执行I/O的过程,就形成自成独立体系的,24,5.2 I/O控制方式,通道结构(channel),使各类设备的标准的接口连入系统,形成通道方式。 数据传送的五种控制方式如下图所示:,25,5.2 I/O控制方式,26,5.2 I/O控制方式,5.2.1 循环I/O测试方式(程序查询方式) 一. I/O总线 1. 总线:是连接计算机系统内各部件的共享高速通路,总线结构是决定计算机性能,功能,可扩展性和标准化程度的重要因素。早期微机使用ISA, EISA总线,现在用VESA, PCI总线。 2. I/O总线包括 (1)控制器总线:传送控制信号,指明数据,27,5.2 I/O控制方式,传送性质的信号(读,写数据宽度和数据定时信号)。 (2)地址总线:用于传送I/O设备的地址和数据的内存地址。 (3)数据总线:用于传送数据,状态和指令。 二. 程序直接控制的基本概念 由计算机程序控制数据在CPU和外设之间传输,是在CPU主动控制下完成的。,28,5.2 I/O控制方式,在用户程序中安排一段由I/O指令和其它指令组成的I/O服务程序,直接控制I/O设备。 当I/O时,CPU暂停执行主程序,转去执行I/O服务程序,根据其中的I/O指令进行数据传输。 这是一种简单,经济的I/O方式,只需很少硬件,多个外设时,CPU轮流查询多个外设的状态,又称为轮询方式。 三. 接口组成,29,5.2 I/O控制方式,1. 设备选择电路(设备地址译码器):包括片选端,地址寄存器,地址译码器。 功能:根据设备地址码来判别接口所接的设备是否被CPU选中。 2. 数据缓冲寄存器 功能:作为CPU与外设之间的数据传送的缓冲区,I/O中数据必须由它为中介。 3. 设备状态标志(位)(设备状态位),30,5.2 I/O控制方式,功能:标志设备的工作状态,以便接口对外设进行监视,它是接口中标志触发器,如:“忙”,“准备就绪”,“错误”。 四. 工作原理 1. CPU利用数据总线向接口输出命令字,启动外设输入,用测试指令先查看I/O设备状态是否“忙”,为1表示“忙”,则需要循环检测反复查;如为0表示不忙,将其设为“忙”,占有设备。,31,5.2 I/O控制方式,2. 接口接到CPU发来的命令后,启动外设输入。 3. 输入数据送到接口中的数据寄存器。 4. 外设I/O完成,将接口就绪位置为1。 5. CPU检测就绪位为1。 6. 从接口的数据缓冲器读入数据,将忙位置为0。 五. 特点,32,5.2 I/O控制方式,1. 优点:接口硬件简单,控制方式简单。 2. 缺点:CPU与外设串行工作,因为CPU比外设速度快,要等待;循环检测,效率很低。,33,5.2 I/O控制方式,34,5.2 I/O控制方式,其中服务子程序的功能: (1)实现数据传送,输入:从设备将数据输入到内存,输出正好相反。 (2)修改内存地址,为下一次I/O准备。 (3)修改传送字节数,以修改传送长度。 (4)状态分析。 5.2.3 程序中断方式 1. 中断(interrupt)的定义:计算机暂停执行当前程序,转而执行更紧急的程序,并能执行结,35,5.2 I/O控制方式,束后自动恢复原被中断的程序。 2. 程序中断方式 的传输过程如下: (1)进程请求I/O时,由程序启动I/O接口,I/O接口向外设发启动信号,启动外设。 (2)进程放弃CPU,等待完成。进程调度程序将CPU分配给其他进程,与外设并行工作。 (3)I/O完成时,I/O接口通过中断请求线向CPU发出中断信号,CPU在一条指令执行后响应中断,转入管态由OS的I/O中断服务程序处理。 (4)解除请求I/O的进程的阻塞态,转入就绪态,加入就绪队列。,36,5.2 I/O控制方式,5.2.4 DMAI/O方式 中断方式改善了CPU的利用率,但CPU仍直接控制I/O,并忙于处理I/O中断,耗费时间,不适合大批量数据传送的场合,为了大批量的进行数据传送,在I/O系统中引入了直接存储器存取方式。 一. 概述 1. DMA方式:在进行数据传送时,CPU让出总线控制权,由DMA控制器硬件从CPU中接管总线控制权,数据交换不经过CPU而直接在内存和外设之间大批量传送,以提高速度和传输效率。,37,5.2 I/O控制方式,2. CPU很少干预数据的I/O,只在数据传送开始前,初始化DMA控制器的设备地址寄存器,内存地址寄存器和传送字计数器,CPU不干预数据传送开始后的工作。 3. DMA方式的特点 (1)DMA使内存既可被CPU访问,也可被快速外设(盘)访问。 (2)由硬件完成地址确定,数据传送,计数,38,5.2 I/O控制方式,控制。 (3)内存中开辟专用缓冲区,及时提供或接收数据。 (4)外设完全与CPU并行工作,提高系统效率。 二. DMA控制器的组成 (在中断接口基础上再加上DMA机构组成) 1. 内存地址寄存器 存放内存交换数据的地址。DMA传送前,用程序将数据块的内存的首地址送入。而当DMA传送时,每传,39,5.2 I/O控制方式,送一次数据,地址加1,给出下一次交换的数据地址。 2. 字计数器 记录传送数据块的长度(字数)。DMA开始前,由程序预置,通常以补码形式表示,每传送一个字,加1,溢出,即最高位产生进位时,此数据块传送完毕,DMA控制器向CPU发出中断信号。,40,5.2 I/O控制方式,3. 数据缓冲寄存器 暂存每次传送的一个字,输入时由设备(盘)送往这里,再通过数据总线送到主存或相反。 4. DMA请求触发器 每当设备准备好一个数据后,给DMA控制器一个控制信号,使“DMA请求”标志置1,通知DMA数据已就绪,该标志置位后,向“控制/状态”逻辑发出DMA请求, “控制/状态”逻,41,5.2 I/O控制方式,辑向CPU发出总线使用权请求(HOLD)。 5. “控制/状态”逻辑 由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送方向(输入或输出),并对“DMA请求”信号和CPU响应信号协调和同步。 6. 中断机构 当字计数器溢出(全0)时,意味着一组数,42,5.2 I/O控制方式,据交换完毕,由溢出信号触发中断机构,向CPU提出中断,请求CPU处理DMA传送后工作。这与I/O中断用的技术相同,但目的不同,前者为了数据I/O,而这里是为了一组数据传送结束,是不同的中断事件。,43,5.2 I/O控制方式,44,5.2 I/O控制方式,三. DMA控制器的工作原理 1. DMA预处理 由CPU执行I/O指令测试设备状态,向DMA控制器发设备地址,将内存地址存入内存地址寄存器,字节计数存入字节计数器。设备准备好数据向DMA控制器发DMA请求,DMA控制器向CPU发DMA请求,CPU让出总线控制权。 2. 数据传送阶段:以数据块为单位传送 输入: (1)从外设中读入一个数据到数据缓冲器中; (2)地址计数器内容读入到内存地址寄存器,接口的数据缓冲器内容读入内存的数据寄存器,45,5.2 I/O控制方式,(3)控制启动内容的写操作,写入指定位置; (4)地址计数器加1,字计数器内容减1; (5)为0时向CPU发中断,否则循环(1)-(4)。 输出: (1)DMA内存地址计数器内容读入内存地址寄存器中;,46,5.2 I/O控制方式,(2)启动内存读操作,将内存数据寄存器内容读入DMA数据缓冲器中; (3)启动外设,将数据缓冲器内容输出到外设 ; (4)内存地址计数器加1,字计数器减1; (5)为0时,停止,发中断;否则循环(1)(4)。 3. DMA后处理阶段,47,5.2 I/O控制方式,DMA中断请求得到响应,CPU转入中断服务程序完成结束处理,对数据校验,出错处理,继续传送否。 5.2.5 通道控制方式和外围处理机方式 一. 通道(channel)的结构 1. 通道:是具有特殊功能的处理机,它有自己的指令和程序,专门负责数据I/O的传输控制。 2. CPU将传输控制权交给通道,由通道完成I/O控制,通道与CPU分时共享主存。,48,5.2 I/O控制方式,二. 通道分类 1. 字节多路通道(Byte multiplexor channel) 连接大量低速外设,如纸带机,卡读机,打印机等,这些设备速度很低。 字节多路通道包括多个子通道,如IBM 370通道为该类通道,有128条子通道,每个子通道服务一个设备控制器,控制多台设备,独立的执行通道指令。 所有子通道共享相同的控制部件,每个子,49,5.2 I/O控制方式,通道的指令和参数存放在内存固定的单元中,进行I/O时从内存读出,送公共控制部分。 采用分时的方式控制多台外设“并行”工作,每台设备轮流占用通道的一个时间片,各自执行各自的I/O。 信息传送方式:字节交叉方式。 2. 选择通道(selector channel) 连接高速外设,如磁盘,磁带;,50,5.2 I/O控制方式,由于设备速率快,每次只能从所连接的外设中选择一台设备的通道程序执行,独占通道,直到I/O完成 ; 信息以成组方式高速I/O; 只能一台设备独占,但高速外设的寻找,延迟时长,通道要等待,利用率低。 3. 数组多路通道 连接高速外设,以成组方式I/O ;,51,5.2 I/O控制方式,可以控制多台高速外设同时进行控制性操作; 每一时刻只能让一台设备占有通道I/O; 保留了选择通道高速传送的优点,又利用了字节多路通道分时控制外设并行进行控制性操作,使通道充分发挥,在实际系统中较多应用。 三. 通道的工作方式 通道的I/O操作由两种指令实现控制:,52,5.2 I/O控制方式, I/O指令:包括启动I/O(SIO),查询通道(TCH),停止I/O(HIO)等,均为特权指令。指令中,除操作码外,还包含通道地址和设备地址。 CCW通道命令字:CCW是通道本身执行的指令,一般有读,写控制和转移等功能。 1. SIO命令格式(start I/O),53,5.2 I/O控制方式,(B1)+D1形成了存放通道号和设备号的单元地址 功能:启动指定的通道和设备工作。 2. CCW的格式,54,5.2 I/O控制方式,通道程序的第一个CCW的地址由通道地址字CAW(channel address word)指明,必须把相应的CAW存入主存的(72)10号单元,在执行SIO命令时,通道硬件根据(72)10号单元中存放的CAW得到CCW链的首地址,取到第一条CCW命令,执行通道程序。CAW的格式为:,55,5.2 I/O控制方式, 03位:存储保护键,此键信息写入相应通道的寄存器,当数据写入主存时,即检验此键与存储器的保护键是否一致,无保护键时,应为0。 47位:为0。 831位:指出第一个CCW在主存的位置。 CCW命令字的格式为: 07位:通道指令码,指出应执行何种,56,5.2 I/O控制方式,操作。 831位:指出主存中I/O字节地址,它是CCW所确定的存储区的头一单元。对读操作表示目的地址,对写操作表示源地址。 3236位:表示特性,通道程序的连接方式或标志通道命令特点。 32位:数据链CD(chain data),为1:则在计数器为0后,取下一条CCW,下一条CCW确定了新的数据地址,新的特性,新的计数,,57,5.2 I/O控制方式,但是不管新的操作码是什么,继续执行原来的操作。 33位:命令链CC(chain command),为1:则在计数器为0后执行下一条CCW,新的CCW操作码有效,程序中每条CCW除了最后一条以下,或应给32位,或应给33位,或者说当32和33位全为0时,则是通道程序中的最后一条。 34位:封锁错误长度SLI(suppress length,58,5.2 I/O控制方式,indicator),为0:如通道程序给定的字节数同I/O设备所规定的字节数不符,便向程序发出错误长度信号;为1:便封锁出错信号,如有些读卡机中规定的字节数为80,而通道程序中规定的不是80,则34位置为0。 35位:封锁写入存储(SKIP),该位为1时,在做读出,反向读出或断定状态的操作时,不写入存储器,这样就可以掠过某些设备的某些信息,而不用在存储器内为它们留出位,59,5.2 I/O控制方式,置,实现假读。 36位:程序控制中断PCI(program controller interrupt),此位为1,则只要通道一取出该CCW并开始操作,通道立即向CPU发中断信号,该中断属于I/O中断,将通道程序操作沿链推进的程度用中断方式通知CPU。 3739位应为0,若不为0,看作通道程序出错。 4063位:给定该CCW所确定的存储区,60,5.2 I/O控制方式,的字节数。 3. 通道方式的I/O过程 (1)当进程发出I/O请求后,经过中断进入OS运行。 (2)当前发出I/O请求的进程被阻塞,加入该设备的阻塞队列,等待I/O完成。 (3)通道被启动后,自动到内存(72)10单元中取出CAW中的通道程序的首地址,按此地址到内存中取出第一条CCW执行。,61,5.2 I/O控制方式,(4)当执行完一条CCW后,即计数器为0时,如果32或33特征位为1,还有下一条CCW则继续执行;否则传输完成,通道向CPU发出I/O中断请求,同时把通道状态字CSW(channel status word)存入内存(64)10单元(IBM 370)。 (5)CPU响应I/O中断,再次转入管态,由OS的I/O中断服务程序进行处理,根据内存(64)10单元中的CSW分析本次中断的原因并处,62,5.2 I/O控制方式,理。,63,5.3 缓冲技术和Spooling技术,5.3.1 缓冲技术引入 一. 引入目的 1. 缓解CPU与外设速度差距,提高CPU与I/O设备之间的并行性 例1:打印机的字符缓冲队列,64,5.3 缓冲技术和Spooling技术,例2:,65,5.3 缓冲技术和Spooling技术,66,5.3 缓冲技术和Spooling技术,2. 减少I/O中断次数和CPU的中断处理时间,67,5.3 缓冲技术和Spooling技术,3. 解决DMA或通道方式中可能出现的瓶颈问题。 二. 实现缓冲区的方法 1. 硬件缓冲区:位于I/O接口,通道及I/O控制器以专用的数据缓冲寄存器作为缓冲区,暂存数据。但由于成本高,容量一般都小。 2. 软件缓冲区:在内存中开辟一片单元作为缓冲区,专用于存放I/O操作要存放的数据。,68,5.3 缓冲技术和Spooling技术,5.3.2 缓冲区的种类 1. 单缓冲区:让输入设备与输出设备共用一个buffer。 适于数据到达率与离去率相差很大的情况。如输入很慢,读出处理很快时,二者串行工作。 缺点:I/O设备并行性差,效率低。,69,5.3 缓冲技术和Spooling技术,2. 双缓冲区 为输入和输出分配两个缓冲区,交替使用。 例1:,70,5.3 缓冲技术和Spooling技术,例2:解决终端设备与打印机之间的并行操作问题。,71,5.3 缓冲技术和Spooling技术,3. 缓冲池(buffer pool) 将多个大小相同的buffer连接起来,统一管理,每个buffer既可以用于输入也可用于输出的一种结构。 OS中设立了有管理的数据结构,定义了分配,释放函数。缓冲池由多个缓冲区组成,每个缓冲区由两部分组成,一一对应。,72,5.3 缓冲技术和Spooling技术,(1)缓冲首部(buffer head):存放缓冲区管理控制信息。如:设备号,读/写标志,缓冲区首地址,I/O字节计数和与其他缓冲区首部的勾链指针等。 (2)缓冲区:存放数据用的缓冲体。 例:UNIX V6中,为磁盘定义了15个缓冲区的缓冲池 struct buffer ,73,5.3 缓冲技术和Spooling技术,int b-flags; 标志字位串, (0位1:读盘,1位1:I/O完成,2位1:I/O出错,3位1:忙, 6位1:忙等待, 8位1:异步I/O,9位1:延迟) struct buffer *b-forw; struct buffer *b-back; struct buffer *av-forw; struct buffer *av-back; int b-dev; 设备号,74,5.3 缓冲技术和Spooling技术,int b-wcount; 传送字补码 char *b-addr; 内存地址,为buffer首地址 char *b-blkno; 盘物理块号 buffer15; 5.3.3 虚拟设备 一. 问题提出 1. 提出虚拟设备的原因 (1)独占型设备数量少,不能满足多用户 的使用要求;,75,5.3 缓冲技术和Spooling技术,(2)独占型设备的工作时间短,大部分时间空闲,不能充分利用设备; (3)独占型设备速度低,由于等待I/O而延长了程序的执行时间; (4)独占型设备采用分配释放的方式,用户独占使用。 为此,现代OS提供了虚拟设备解决此问题。 2. 虚拟设备,76,5.3 缓冲技术和Spooling技术,1.定义 在一个具有大容量的直接存取的共享设备中(如盘)开辟一个区域来代替某台独享设备,把分散使用的信息集中起来保存在此区域中,这样需要用独占设备的并发进程都分到一个区域,称为虚拟设备。 2. 特点 (1)由独占设备变成共享,提高效率; (2) 增加了外围计算机;,77,5.3 缓冲技术和Spooling技术,(3)增加了操作员的手工操作; (4)不易实现作业搭配运行。 联机外设同时操作又称为假脱机操作,采用这种技术的OS提供虚拟设备,OS中实现此功能的模块称为Spooling系统(simultaneous peripheral operations on-line)。 二. Spooling系统的设计与实现 1. Spooling系统的结构,78,5.3 缓冲技术和Spooling技术,79,5.3 缓冲技术和Spooling技术,2. 数据结构 (1)作业表:SPOOLing系统设置了一张作业表,以便登记进入输入井的各个作业的管理信息。下图给出了作业表的格式。,80,5.3 缓冲技术和Spooling技术,(2)预输入表和缓输出表:每个作业有一张预输入表,也称为作业控制块(JCB),记录了作业的有关信息;缓输出表也是每个作业一张,用来登记作业产生的结果文件,其格式类似于预输入表。 3. Spooling预输入程序 功能:控制信息从设备 缓冲区 入井,为作业填写作业表,预输入表,分配井空间,读入作业信息。,81,5.3 缓冲技术和Spooling技术,井中作业状态:输入,收容,执行,完成。 4.井管理程序 输入井管理程序:当用户作业发出读的操作时,从井中取出信息送入主存,根据文件名查预输入表,得文件的位置。取出信息后,井归还OS。 输出井管理程序:将用户输出结果入井,并登记缓输出表(与预输入表类似),包含作业名,文件名,设备类,数据始地址等。 5.缓输出程序,82,5.3 缓冲技术和Spooling技术,将井中信息从设备输出,并回收空间,查看缓输出表,将输出信息 相应设备,格式加工。,83,5.4 I/O软件,5-4-1 I/O软件的目标与层次结构 1.I/O软件的设计目标 (1)设备无关性 这是I/O软件的一个关键的目标。设备无关性也称为设备独立性,是指I/O软件与实际使用的物理设备无关。 (2)错误处理 一般说来,对于I/O错误应尽可能地由靠近,84,5.4 I/O软件,它的硬件进行处理。 (3)同步传输与异步传输 异步传输:是指CPU发出I/O指令,启动设备传输后,不等待I/O完成就返回继续运行其他的程序。 同步传输:是用户程序请求系统执行I/O后,相应的进程则转入阻塞态,等待I/O完成后,再继续运行。 2. I/O软件的层次结构,85,5.4 I/O软件,操作系统中一般把I/O软件的结构分成四个层次。按照由高层向低层的排列次序,这四个层次是: 用户空间的I/O软件 与设备无关的操作系统软件 设备驱动程序 中断处理程序 I/O系统的层次结构如下图所示:,86,5.4 I/O软件,87,5.4 I/O软件,5.4.2 I/O中断的处理 1. 操作正常结束 当中断的原因为通道结束,控制器结束和设备结束时,表示设备已完成了预先规定的所有操作,形成了I/O操作正常结束的中断事件。 2. 操作异常结束 当I/O操作中发生了设备故障或者设备特殊情况时,就要产生操作异常结束的I/O中断事件。,88,5.4 I/O软件,(1)设备故障 当执行输入输出操作时,如果发现设备本身出现故障,例如,硬件接口错、控制错、通道故障以及数据错(如校验码不符合)等情况,则组织复执。 (2)设备特殊情况 各种设备在工作中都可能出现一些特殊情况。例如,打印机发现纸已经用完、写磁带时写到了带末点等等。,89,5.4 I/O软件,5.4.3 设备驱动程序 1. 设备驱动程序的功能 (1)根据传送要求设置I/O接口中有关的各种控制寄存器的值。 (2)向有关的I/O设备发出控制命令,启动设备、通道或DMA控制器工作,并且进行一些设备错误的检测和处理。 (3)对该类设备的I/O请求队列、睡眠、唤,90,5.4 I/O软件,醒等操作进行处理。 2. 设备驱动程序的结构 通常,设备驱动程序与设备类型是一一对应的,系统为每一种类型的设备设置一个设备驱动程序。 为了对驱动子程序进行统一管理,系统为每一类设备又设置了一个数据结构,来存放这些操作子程序的入口地址,这个数据结构称为设备开关表DST(Device Switch Table)。,91,5.4 I/O软件,5.4.4 与设备无关的I/O软件 在I/O软件中,除了设备驱动程序与设备的硬件特性相关以外,大部分软件是与设备无关的。 图5-7给出了与设备无关软件所实现的典型功能。,92,5.4 I/O软件,93,5.4 I/O软件,1. 设备命名 I/O软件中,对I/O设备采用了统一命名。设备名包含了主设备号和次设备号。 2. 设备保护 设备保护防止未授权的用户对设备的使用或者用户的非法使用。 3. 提供与设备无关的逻辑块 与设备无关的软件隐藏各种设备的空间大,94,5.4 I/O软件,小,存取速度上的差异,而向上层软件提供大小统一的逻辑块 。 4. 缓冲 缓冲技术可以解决数据传送过程中的瓶颈问题,提高并行程度。块设备和字符设备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论