您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 计算机操作系统第五章 设备管理
第五章设备管理设备管理的任务按用户需求提出的要求接入外部设备,系统按一定算法分配和管理控制,而用户不必关心设备的实际地址和控制指令.尽量提高输入输出设备的利用率,例如,发揮主机与外设以及外设与外设之间的真正并行工作能力.设备管理的功能分配设备控制和实现真正的输入输出操作对输入输出缓冲区进行管理在一些较大系统中实现虚拟设备技术5.1I/O系统♣5.1.1I/O设备1、I/O设备的类型(1)按使用特性分:存储设备,也称外存或后备存储器输入/输出设备,又可分为输入设备、输出设备和交互式设备。(2)按速度分:低速设备:键盘中速设备:打印机高速设备:磁盘。5.1I/O系统(3)按信息交换单位分:块设备:磁盘,速率高可寻址字符设备:打印机、速率低不可寻址(4)按设备的共享属性分:独占:如临界资源共享:磁盘虚拟:如本身因有属性为独占,但将其虚拟为几个逻辑设备。2、设备与控制器之间的接口三种信号:(1)数据信号:双向,有缓存(2)控制信号:控制器发给设备;要求其完成相关操作(3)状态信号:设备发给控制器,后者“显示”;控制器CPUI/O设备缓冲转换器控制逻辑数据状态控制5.1I/O系统5.1.2设备控制器1、功能:接收CPU命令,控制I/O设备工作,解放CPU.接收和识别命令。应有相应的Register来存放命令(“命令寄存器”)数据交换CPU——控制器的数据寄存器——设备设备状态的了解和报告设备控制器中应用“状态寄存器”地址识别CPU通过“地址”与设备通信,设备控制器应能识别它所控制的设备地址以及其各寄存器的地址。数据缓冲差错控制5.1.2设备控制器2、组成设备控制器与CPU的接口信号线:数据线(独立寻址、内存寻址)、地址线、控制线设备控制器与设备的接口I/O逻辑:在其控制下完成与CPU、设备的通信。数据寄存器控制/状态寄存器控制器与设备接口l控制器与设备接口i数据状态控制地址线控制线数据线CPU与控制器接口控制器与设备接口I/O逻辑…数据状态控制…5.1.3I/O通道1、引入通道一种特殊的执行I/O指令的处理机,与CPU共享内存,可以有自己的总线。引入目的解脱CPU对I/O的组织、管理。CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。5.1.3I/O通道2、类型字节多路通道:(图5-3)各子通道以时间片轮转方式共享通道,适用于低、中速设备。数组选择通道:无子通道,仅一主通道,某时间由某设备独占,适于高速设备。但通道未共享,利用率低。数组多路通道:综合了前面2种通道类型的优点。控制器A控制器B控制器C控制器D控制器N…A1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道NA1B1C1…A2B2C2…设备…5.1.3I/O通道3、通道“瓶颈”问题:价格贵数量少解决:采用复联方式存储器通道1通道2控制器1控制器2控制器3控制器4设备1设备2设备3设备4设备5设备6设备7存储器通道1通道2控制器1控制器2设备1设备2设备3设备45.1.4总线系统•微机I/O系统CPURAM/ROMI/O控制器1I/O控制器n总线ISA/EISALocalBUS:VESA/PCI。5.2I/O控制方式四个阶段:程序I/O——中断I/O——DMA控制——通道控制。趋势:减少主机对I/O控制的干预,解放CPU。5.2.1程序I/O(忙—等待方式)查询方式:CPU需花代价不断查询I/O状态(图5-7a)CPU资源浪费极大。例:99.9ms+0.1ms=100ms在5.2.1中99.9在忙等向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存完成未完中断CPU做其它事向I/O控制器发布读块命令CPU→DMACPU做其它事读DMA控制器的状态中断DMA→CPU下一条指令(a)程序I/O方式(b)中断驱动方式(c)DMA方式下一条指令下一条指令5.2.2中断I/O向I/O发命令——返回——执行其它任务。I/O中断产生——CPU转相应中断处理程序。如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O——内存向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存完成未完中断CPU做其它事向I/O控制器发布读块命令CPU→DMACPU做其它事读DMA控制器的状态中断DMA→CPU下一条指令(a)程序I/O方式(b)中断驱动方式(c)DMA方式下一条指令下一条指令5.2.3DMA方式—用于块设备中引入中断I/O,每完成一次“字节”传送CPU产生一次中断。DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O——内存。DMA控制器组成一组寄存器+控制逻辑。CR(命令/状态寄存器);DR(数据寄存器);MAR(内存地址寄存器);DC(计数寄存器)DMA工作过程(例):设置MAR,DC初值启动DMA传送命令传一字节MAR=MAR+1DC=DC-1dc=0请求中断在继续执行用户程序的同时,准备又一次传送出错否向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存完成未完中断CPU做其它事向I/O控制器发布读块命令CPU→DMACPU做其它事读DMA控制器的状态中断DMA→CPU下一条指令(a)程序I/O方式(b)中断驱动方式(c)DMA方式下一条指令下一条指令5.2.4I/O通道控制方式DMA方式:对读取多个离散块的仍需要多次中断。通道方式:CPU只需给出(1)通道程序首址。(2)要访问I/O设备后,通道程序就可完成一组块操作操作PRecord计数内存地址Write0080813Write001401034Write01605830Write013002000Write002501850Write112507205.3缓冲管理目的:组织管理、分配、释放buffer5.3.1引入1.缓和CPU和I/O设备间速度不匹配的矛盾。如:计算——打印buffer——打印2.减少对CPU的中断频率如:buffer越大,“buffer满”信号发生频率越低。3.提高CPU和I/O并行性5.3.2单缓冲•由于C和T可并行,M和C或M和T不能并行,因此处理一块数据时间:Max(C,T)+M•用户进程何时阻塞?工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程5.3.2双缓冲•效率有所提高。•系统处理一块数据的时间约为:MAX(C,T)•收发可双向同时传送。(图5-13)工作区用户进程缓冲区1缓冲区2I/O设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)图5-13双机通信时缓冲区的设置缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲5.3.3循环多缓冲类型:R:空缓冲;G:满缓冲;C:当前缓冲nextg:指示下一个应取数据的bufnexti:指示下一个空buf.RRGGGGNextg123456Nexti循环多缓冲的使用Getbuf:取nextg对应缓冲区提供使用,设置Current指针,Nextg=(Nextg+1)ModN将Nexti对应缓冲区提供使用,将Nexti置为满,Nexti=(Nexti+1)ModNReleasebuf:若C满,则改为G;若C空,则改为R;RRCGGGNextg123456NexticurrentRRGGGGNextg123456NextiRRRGGGNextg123456Nexti循环多缓冲的同步问题Nexti追上Nextg:表示输入速度输出速度,全部buf满,这时输入进程阻塞Nextg追上Nexti:输入速度输出速度,全部buf空,这时输出进程阻塞。RRRGGGNextg123456Nexti5.3.4缓冲池缓冲池:系统提供的公用缓冲一、组成:对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:①空(闲)缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。3个队列:空缓冲队列emq输入队列inq输出队列outq四个工作缓冲区:hin:收容输入数据sin:提取输入数据hout:收容输出数据sout:提取输出数据二、4种工作方式1.收容输入;2.提取输入3.收容输出;4.提取输出I/OI/O用户进程12hinsoutsinhoutinqemqemqoutq435.3缓冲管理1.hin=getbuf(emq);putbuf(inq,hin)2.sin=getbuf(inq);计算;putbuf(emq,sin)3.hout=getbuf(emq);putbuf(outq,hout)4.sout=getbuf(outq);输出;putbuf(emq,sout)三、Getbuf和Putbuf过程Getbuf(type)Beginwait(RS(type));wait(MS(type));B(number):=takebuf(type);signal(MS(type));endPutbuf(type)Beginwait(MS(type));addbuf(type,number);signal(MS(type));signal(RS(type));end5.4I/O软件5.4.1I/O软件的设计目标和原则提高系统效率提高通用性,方便用户1)与具体设备无关,无需了解实现细节2)统一命名,以逻辑名称访问设备3)对错误的处理,在接近硬件的层面处理4)缓冲技术,屏蔽设备间差异5)设备的分配和释放,独占设备和共享设备6)I/O控制方式,向高层软件提供统一的操作接口+I/O软件下与硬件有着密切的关系,上与用户直接交互,它与进程管理、存储器、文件管理等都存在着一定的联系,即它们都可能需要I/O软件来实现I/O操作。在I/O软件中已普遍采用了层次式结构,将系统中的设备操作和管理软件分为若干个层次,每一层都利用其下层提供的服务,完成输入、输出功能中的某些子功能,并屏蔽这些功能实现的细节,向高层提供服务。5.4.1I/O软件的设计目标和原则(1)用户层软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。(2)设备独立性软件:负责实现与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。(3)设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。(4)中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回到被中断进程。用户层软件设备独立性软件设备驱动程序中断处理程序硬件I/O应答产生I/O请求、格式化I/O、Spooling映射、保护、分块、缓冲、分配设置设备寄存器,检查寄存器状态执行I/O操作对I/O
本文标题:计算机操作系统第五章 设备管理
链接地址:https://www.777doc.com/doc-4106600 .html