《操作系统课件os05设备管理5.15.3.ppt》由会员分享,可在线阅读,更多相关《操作系统课件os05设备管理5.15.3.ppt(35页珍藏版)》请在优知文库上搜索。
1、操作系统操作系统Operating Systems第五章第五章 设备管理设备管理 设备管理设备管理I/O系统是计算机系统的重要组成部分系统是计算机系统的重要组成部分I/O系统包括用于实现系统包括用于实现信息输入、输出和存储信息输入、输出和存储功能的设备功能的设备和相应的控制器和相应的控制器设备管理的设备管理的基本任务基本任务是:是:l完成用户提出的完成用户提出的I/O请求请求l提高提高I/O速率速率以及以及改善改善I/O设备的利用率设备的利用率设备管理的设备管理的主要功能主要功能:l缓冲区管理、设备分配、设备处理、虚拟设备及实现缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性设备独立性
2、5.1 I/O5.1 I/O系统系统 5.1.1 I/O5.1.1 I/O设备设备1 1I/OI/O设备的类型设备的类型1)1)设备使用特性设备使用特性l存储设备;输入存储设备;输入/输出设备;输出设备;2)2)传输速率传输速率l低速设备;中速设备;高速设备;低速设备;中速设备;高速设备;3)3)信息交换单位信息交换单位4)4)共享属性共享属性按信息交换的单位分类按信息交换的单位分类块设备块设备(Block Device)l信息的存取总是以数据块为单位信息的存取总是以数据块为单位l可寻址:可寻址:对它可随机地读对它可随机地读/写任一块写任一块l磁盘,每个盘块的大小为磁盘,每个盘块的大小为512
3、 B4 KB字符设备字符设备(Character Device)l基本单位是字符基本单位是字符l不可寻址不可寻址l交互式终端、打印机交互式终端、打印机按设备的共享属性分类按设备的共享属性分类独占设备独占设备 (临界资源临界资源)l指在一段时间内只允许一个用户指在一段时间内只允许一个用户(进程进程)访问的设备访问的设备l互斥访问、可能引起进程死锁互斥访问、可能引起进程死锁共享设备共享设备 l可供多个进程同时访问,如磁盘可供多个进程同时访问,如磁盘l对于每一时刻而言,该类设备仍然只允许一个进程访问。对于每一时刻而言,该类设备仍然只允许一个进程访问。l必须是可寻址访问的设备。必须是可寻址访问的设备。
4、虚拟设备虚拟设备l通过虚拟技术将一台独占设备变换为若干个逻辑设备通过虚拟技术将一台独占设备变换为若干个逻辑设备2 2设备与控制器之间的接口设备与控制器之间的接口设备并不是直接与设备并不是直接与CPU进行通信,而是与设备控制器通信进行通信,而是与设备控制器通信设备控制器是设备控制器是CPUCPU与与I/OI/O设备之间的接口设备之间的接口 三类信号线三类信号线l数据线、地址线、控制线数据线、地址线、控制线CPU存存储储器器磁磁盘盘控控制制器器打打印印机机控控制制器器其其它它控控制制器器磁磁盘盘驱驱动动器器打打印印机机系系统统总总线线缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控
5、制器I/O设备I/O设备设备从设备控制器经过数据从设备控制器经过数据信号线传送来的数据先信号线传送来的数据先暂存在缓冲器,经转换暂存在缓冲器,经转换器经过适当转换后,逐器经过适当转换后,逐个字符输出个字符输出由外界输入的信号经由外界输入的信号经转换器转换后送入缓转换器转换后送入缓冲器,数据达到一定冲器,数据达到一定的字符数后,再从缓的字符数后,再从缓冲器通过一组数据信冲器通过一组数据信号线送到控制器号线送到控制器缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备I/O设备设备信号规定信号规定设备要执设备要执行的操作行的操作指示设备指示设备当前状态,当前状态,正在读、
6、正在读、写或完成写或完成5.1.2 5.1.2 设备控制器设备控制器设备控制器是设备控制器是CPU与与I/O设备之间的接口设备之间的接口设备控制器是一个可编址的设备设备控制器是一个可编址的设备设备控制器分类设备控制器分类l控制字符设备控制字符设备l控制块设备控制块设备CPU存存储储器器磁磁盘盘控控制制器器打打印印机机控控制制器器其其它它控控制制器器磁磁盘盘驱驱动动器器打打印印机机系系统统总总线线5.1.3 I/O5.1.3 I/O通道通道I/OI/O通道设备的引入通道设备的引入l当主机所配置外设很多时,当主机所配置外设很多时,CPUCPU的负担仍然很重的负担仍然很重l使一些原来由使一些原来由C
7、PUCPU处理的处理的I/OI/O任务转由通道来承担。任务转由通道来承担。I/OI/O通道是一种通道是一种特殊的处理机特殊的处理机:l其指令类型单一。其指令类型单一。主要局限于与主要局限于与I/OI/O操作有关的指令;操作有关的指令;l通道没有自己的内存。通道没有自己的内存。通道所执行的通道程序是放在主机的内存中的通道所执行的通道程序是放在主机的内存中的通道与通道与CPUCPU共享内存。共享内存。2.通道类型通道类型 1)字节多路通道字节多路通道(Byte Multiplexor Channel)2)数组选择通道数组选择通道(Block Selector Channel)3)数组多路通道数组多
8、路通道(Block Multiplexor Channel)瓶颈问题瓶颈问题单通路单通路I/O系统系统 设备设备1设备设备2设备设备3设备设备4设备设备5设备设备6设备设备7控制器控制器1控制器控制器2控制器控制器3控制器控制器4通道通道1通道通道2存储器存储器解决解决“瓶颈瓶颈”问题的最有效的方法问题的最有效的方法多通路多通路I/O系统系统l解决了解决了“瓶颈瓶颈”问题问题l提高了系统的可靠性提高了系统的可靠性l个别通道或控制器的故障不会使设备和存储器之间没个别通道或控制器的故障不会使设备和存储器之间没有通路有通路5.2 I/O5.2 I/O控制方式控制方式 1.1.程序程序I/OI/O方式
9、方式2.2.中断驱动中断驱动I/OI/O控制方式控制方式3.3.直接存储访问直接存储访问(DMA)I/O(DMA)I/O控制方式控制方式4.4.I/OI/O通道控制方式通道控制方式主要差别在于:主要差别在于:l中央处理器和外围设备并行工作的方式不同,中央处理器和外围设备并行工作的方式不同,l并行工作的程度不同。并行工作的程度不同。5.2.4 I/O5.2.4 I/O通道控制方式通道控制方式1 1引入引入I/OI/O通道方式是通道方式是DMADMA方式的发展方式的发展它把对它把对一个数据块一个数据块的读的读(写写)为单位的干预减少为对为单位的干预减少为对一组数一组数据块据块的读的读(写写)及有关
10、的控制和管理为单位的干预。及有关的控制和管理为单位的干预。实现实现CPUCPU、通道和、通道和I/OI/O设备三者的并行操作设备三者的并行操作更有效地提高整个系统的资源利用率。更有效地提高整个系统的资源利用率。l例,当例,当CPUCPU要完成一组相关操作及控制时,只需向要完成一组相关操作及控制时,只需向I/OI/O通道发送一条通道发送一条I/OI/O指令。指令。2 2通道程序通道程序通道程序由一系列通道指令构成。通道程序由一系列通道指令构成。通道指令中都包含下列诸信息:通道指令中都包含下列诸信息:(1)(1)操作码操作码-规定指令所执行的操作。规定指令所执行的操作。(2)(2)内存地址内存地址
11、-标明字符从内存读标明字符从内存读/写时的首址。写时的首址。(3)(3)计数计数-表示本指令所要读表示本指令所要读(写写)数据的字节数。数据的字节数。(4)(4)通道程序结束位。通道程序结束位。P=1表示结束表示结束(5)(5)记录结束标志。记录结束标志。R=0,表示本指令与下一指令处理同一个记录,表示本指令与下一指令处理同一个记录 R=1,表示处理某记录的最后一条指令,表示处理某记录的最后一条指令通道程序通道程序例:一个由六条通道指令所构成的简单的通道程序。该程例:一个由六条通道指令所构成的简单的通道程序。该程序实现将内存中不同地址的数据写成多个记录。序实现将内存中不同地址的数据写成多个记录
12、。5.3 5.3 缓冲管理缓冲管理 缓冲的引入缓冲的引入单缓冲和双缓冲单缓冲和双缓冲循环缓冲循环缓冲缓冲池缓冲池缓冲的引入缓冲的引入缓和缓和CPU与与I/O设备间速度不匹配的矛盾设备间速度不匹配的矛盾l凡在数据到达速率与其离去速率不同的地方,都可设凡在数据到达速率与其离去速率不同的地方,都可设置缓冲区。置缓冲区。减少对减少对CPU的中断频率,放宽对的中断频率,放宽对CPU中断响应时间的限中断响应时间的限制制必须在每收到一位数据时,便中断一次必须在每收到一位数据时,便中断一次CPU并在下位到来之前要求并在下位到来之前要求CPU进行中断处理,以取走输入的进行中断处理,以取走输入的数据。数据。010
13、01位缓冲位缓冲9.6 Kb(bit)/s(a)中断中断CPU的频的频率为率为9.6Kb/s,每每100 s中断中断一次一次CPUCPU必须在必须在100 s内响应,否则内响应,否则数据会被冲掉数据会被冲掉1/(9.6*1024)0.1ms可以每收可以每收8位数据中断一次位数据中断一次CPU,但在第但在第9位数据到来之间必须完成中断处理。位数据到来之间必须完成中断处理。8位缓冲寄存器位缓冲寄存器送内存送内存9.6 Kb/s(b)CPU每隔每隔800 s 中断一次中断一次要求要求CPU必须必须在在100 s 时间时间内予以响应内予以响应0900800缓冲的引入缓冲的引入可每收可每收8位数据中断一
14、次,允许位数据中断一次,允许CPU在下一个在下一个8位数据到位数据到来期间完成前来期间完成前8位数据的中断处理。位数据的中断处理。提高提高CPU和和I/O设备之间的并行性设备之间的并行性l提高系统的吞吐量和设备的利用率提高系统的吞吐量和设备的利用率8位缓冲寄存器位缓冲寄存器9.6 Kb/s送内存送内存(c)发出中断,发出中断,响应时间响应时间可为可为800 s工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程5.3 5.3 缓冲管理缓冲管理 单缓冲单缓冲数据处理时间约为数据处理时间约为maxC,T+M双缓冲双缓冲-缓冲对换缓冲对换
15、数据处理时间约为数据处理时间约为maxM+C,T保证块设备连续工作保证块设备连续工作一块数据的传输和处理时间为一块数据的传输和处理时间为T=max(C,T),如果如果CT,一块数据的传输和处理时间为一块数据的传输和处理时间为max(C,T)+M=C+M,这种情况下进程不必要等待这种情况下进程不必要等待I/O。CMT双机通信时缓冲区的设置双机通信时缓冲区的设置缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲只能实现单向只能实现单向的数据传输的数据传输RGGGRG165423NextiNextgRGGGRC165423NextiNextgCurrent5
16、.3.3 5.3.3 循环缓冲循环缓冲 用于装输入数用于装输入数据的空缓冲区据的空缓冲区已装满数据已装满数据的缓冲区的缓冲区计算进程正计算进程正在使用的现在使用的现行工作缓冲行工作缓冲区区指示计算进程指示计算进程下一个可用缓下一个可用缓冲区冲区输入进程下次输入进程下次可用的空缓冲可用的空缓冲区区R R的指针的指针计算进程正在计算进程正在使用的缓冲区使用的缓冲区C C的指针的指针2 2循环缓冲区的使用循环缓冲区的使用计算进程和输入进程利用下述过程来使用循环缓冲区:计算进程和输入进程利用下述过程来使用循环缓冲区:(1)Getbuf(1)Getbuf过程过程l当计算进程要使用缓冲区中数据时,调用当计算进程要使用缓冲区中数据时,调用GetbufGetbuf过程过程l当输入进程要使用空缓冲区来装入数据时,调用当输入进程要使用空缓冲区来装入数据时,调用GetbufGetbuf(2)Releasebuf(2)Releasebuf过程过程l当计算进程把缓冲区中的数据提取完毕时当计算进程把缓冲区中的数据提取完毕时l当输入进程把缓冲区装满时当输入进程把缓冲区装满时当计算进程要使用缓冲区中数据时,可调用当计