第五章 设备管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章设备管理设备管理内容(1)I/O组成;(2)I/O控制;٭指I/O完成的方法。(3)I/O缓冲;(4)I/O分配;(5)I/O处理。٭指具体I/O命令的完成过程。设备管理5.1I/O系统♣5.1.1I/O设备一、类型٭(1)按速度分:▪低:键盘▪中:打印机▪高:磁盘。٭(2)按信息交换单位分:▪块:磁盘,可定位▪字符:打印机、串口设备管理5.1I/O系统♣5.1.1I/O设备一、类型٭(3)按设备的共享属性分:▪独占:如临界资源▪共享:磁盘▪虚拟:如本身因有属性为独占,但将其虚拟为几个逻辑设备。设备管理二、设备与控制器之间的接口:(图5.1)CPU―――控制器―――设备三种信号:٭(1)数据信号:——双向,有缓存٭(2)控制信号:控制器发给设备;要求其完成相关操作٭(3)状态信号:设备发给控制器,后者“显示”;设备管理5.1.2设备控制器一、功能:接收CPU命令,控制I/O设备工作,解放CPU.٭1.接收和识别命令。▪应有相应的Register来存放命令(“命令寄存器”)٭2.数据交换▪CPU——控制器的数据寄存器——设备٭3.设备状态的了解和报告▪设备控制器中应用“状态寄存器”٭4.地址识别▪CPU通过“地址”与设备通信,设备控制器应能识别它所控制的设备地址以及其各寄存器的地址。设备管理5.1.2设备控制器一、功能:接收CPU命令,控制I/O设备工作,解放CPU,٭5.数据缓冲٭6.差错控制二、组成(图5.2)٭各类寄存器:数据、命令、状态٭信号线:数据线(独立寻址、内存寻址)、地址线、控制线٭I/O逻辑:在其控制下完成与CPU、设备的通信。设备管理5.1.3I/O通道一、引入٭通道一种特殊的执行I/O指令的处理机,与CPU共享内存,可以有自己的总线。٭引入目的解脱CPU对I/O的组织、管理。٭CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。设备管理5.1.3I/O通道二、类型٭1.字节多路通道:(图5-3)▪各子通道以时间片轮转方式共享通道,适用于低、中速设备。٭2.数组选择通道:▪无子通道,仅一主通道,某时间由某设备独占,适于高速设备。▪但通道未共享,利用率低。٭3.数组多路通道:▪在图5-3中,多子通道不是以时间片方式,而是“按需分配”,综合了前面2种通道类型的优点。设备管理5.1.3I/O通道三、通道“瓶颈”问题:٭解决:采用复联方式٭图5.4设备管理5.1.4总线系统•微机I/O系统CPURAM/ROMI/O控制器1I/O控制器n总线•设备控制器:与设备是一对多的关系,系统是通过它与设备通信•系统―――设备控制器―――设备•如:磁盘设备,打印设备•缺点:总线瓶颈,CPU瓶颈。设备管理5.1.4总线系统二、主机I/O系统(四级结构)٭计算机―――I/O通道―――I/O控制器―――设备٭I/O通道相当于对总线的扩展,即多总线方式,且通道有一定的智能性,能与CPU并行,解决其负担。٭ISA/EISA/LocalBUS/VESA/PCI设备管理5.2I/O控制方式四个阶段:٭程序I/O——中断I/O——DMA控制——通道控制。٭趋势:提高并行度。设备管理5.2.1程序I/O(忙—等待方式)٭查询方式:CPU需花代价不断查询I/O状态(图5-7a)٭CPU资源浪费极大。٭例:99.9ms+0.1ms=100ms在5.2.1中99.9在忙等设备管理5.2.2中断I/O向I/O发命令——返回——执行其它任务。I/O中断产生——CPU转相应中断处理程序。如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O——内存设备管理5.2.3DMA方式——用于块设备中一、引入٭中断I/O,CPU“字节”干预一次,即每“字节”传送产生一次中断。٭DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O——内存。٭图5.7c二、组成٭一组寄存器+控制逻辑。图5.8٭CR(命令/状态);DR(数据);MAR(内存地址);DC(计数)٭DMA工作过程(例):设备管理DirectMemoryAccess设置MAR,DC初值启动DMA传送命令传一字节MAR=MAR+1DC=DC-1dc=0请求中断在继续执行用户程序的同时,准备又一次传送出错否设备管理DMA设备管理DMA设备管理DMA设备管理5.2.4I/O通道控制方式DMA方式:对需多离散块的读取仍需要多次中断。通道方式:CPU只需给出٭(1)通道程序首址。٭(2)要访问I/O设备后,通道程序就可完成一组块操作操作PRecord计数内存地址Write0080813Write001401034Write01605830Write013002000Write002501850Write11250720设备管理5.3缓冲管理目的:组织管理、分配、释放buffer5.3.1引入٭1.缓和CPU和I/O设备间速度不匹配的矛盾。如:计算——打印buffer——打印٭2.减少对CPU的中断频率如:buffer越大,“buffer满”信号发生频率越低。٭3.提高CPU和I/O并行性设备管理5.3缓冲管理5.3.2单缓冲C用户进程buf系统单缓冲bufI/OMT•由于C和T可并行,M和C或M和T不能并行,因此处理一块数据时间:Max(C,T)+M•用户进程何时阻塞?设备管理5.3缓冲管理5.3.2双缓冲用户进程buf系统双缓冲bufI/O•效率有所提高,且进一步平滑了传输峰值。•系统处理一块数据的时间约为:MAX(C,T)•收发可双向同时传送。(图5-13)设备管理5.3缓冲管理5.3.3循环多缓冲类型:R:空缓冲;G:满缓冲;C:当前缓冲RRGGGGNextg123456NextiRRCGGGNextg123456Nexticurrent设备管理循环多缓冲的使用nextg:指示下一个应取数据的bufnexti:指示下一个空buf.Getbuf:٭取nextg对应缓冲区提供使用,将Nextg置为空,Nextg=(Nextg+1)ModN٭将Nexti对应缓冲区提供使用,将Nexti置为满,Nexti=(Nexti+1)ModNReleasebuf:٭若C满,则改为G;٭若C空,则改为R;设备管理循环多缓冲的同步问题Nexti追上Nextg:表示输入速度输出速度,全部buf满,这时输入进程阻塞Nextg追上Nexti:输入速度输出速度,全部buf空,这时输出进程阻塞。设备管理5.3.4缓冲池缓冲池:系统提供的公用缓冲一、组成:٭3个队列:▪空缓冲队列emq▪输入队列inq▪输出队列outq٭四个工作缓冲区:▪hin:收容输入数据▪sin:提取输入数据▪hout:收容输出数据▪sout:提取输出数据设备管理二、4种工作方式٭1.收容输入;2.提取输入٭3.收容输出;4.提取输出I/OI/O用户进程12hinsoutsinhoutinqemqemqoutq43设备管理5.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));end设备管理5.4设备分配包括:对设备、设备控制器、通道的分配5.4.1数据结构٭一、设备控制表DCT:٭二、控制器控制表(COCT),通道表(CHCT),系统设备表(SDT),图5-17٭SDT:记录了系统中全部设备及其驱动程序地址。设备管理设备控制表DCTDCT1DCT2DCTn设备类型type设备标识符:deviceid设备状态:等/不等忙/闲指向控制器表的指针重复执行次数或时间设备队列的对首指针设备管理5.4.2设备分配应考虑的若干因素一、设备的固有属性:٭共享+虚拟:注意调度的合理性;٭独享:排它性分配,控制不好可能死锁。二、分配算法:٭(1)FIFO;٭(2)优先权。设备管理5.4.2设备分配应考虑的若干因素三、安全性:٭安全分配(同步):每进程获得一I/O后,即block,直到其I/O完成。▪即打破了死锁条件。▪缺点:CPU、I/O对该进程是串行,进程进展缓慢。٭不安全分配(异步):需进行安全性检查,进程执行效率高。设备管理5.4.3设备独立性一、概念:٭即设备无关性,指应用程序独立于具体使用的物理设备。٭逻辑设备٭物理设备٭逻辑设备表(LUT):逻辑设备物理设备Driver入口设备管理5.4.3设备独立性٭分配流程:进程给出逻辑名——通过LUT得到物理设备及其driver入口。٭优点:٭设备分配更灵活;▪逻辑设备和物理设备间可以是多——多的映射关系。提高了物理设备的共享性,以及使用的灵活性。如:–某逻辑名可对应这一类设备,提高均衡性与容错性。–几个逻辑名可对应某一个设备,提高共享性。设备管理5.4.3设备独立性٭易于实现I/O重定向。▪不变程序,只需改变LUT表的映射关系。二、设备独立性软件٭执行所有设备的公有操作▪分配回收▪名字映射▪保护▪缓冲▪差错控制٭向用户层软件提供统一接口▪read、writeStructgeneral_op{int(*read)(…)int(*write)(…)};driver1:Structgeneral_opdev_op={dev1_read,dev1_write};driver2:Structgeneral_opdev_op={dev2_read,dev2_write};Gen_read(fd,…){dev_op=map(fd);dev_op-read(…);}设备管理5.4.3设备独立性٭三.名字映射▪LUT的生成–在用户进程第一次请求设备时完成映射并在LUT中生成相应项▪LUT的配置–(1)整个系统一张LUT表:»要求:逻辑名不重复,(一般用于单用户系统)–(2)每个用户一张LUT表。»可重名/可限制用户对某些设备的使用。逻辑设备物理设备Driver入口设备管理5.4.4独占设备分配程序进程n请求设备:beginsearch(sdt,phdevice)ifnotbusy(phdevice)thenbegincompute(safe)——对独占设备ifsafethenalloc(n,phdevice);elsebegininsert(DL(phdevice),n);-----将n插入设备等待队列DL上returnend;end;设备管理设备忙—elsebegin;insert(DL(phdevice),n);return;end;controllerid=controllerid(COCTptr(dct));――device分配成功ifnotbusy(COCT(controllerid))thenalloc(n,controllerid);elsebegininsert(col,n);return;end;channeled=channeled(chatptr(controllerid));――控制器分配成功设备管理ifnotbusy(chct(channelid))thenallocation(n,channelid);elsebegininsert(chl,n)return;end;end;优化:1)增加设备的独立性2)考虑多通路情况设备管理5.4.5SPOOLING技术1概念٭假脱机技术,在联机情况下同时出现外围操作٭作用:通过缓冲方式,将独占设备改造

1 / 78
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功