第二十三讲 设备驱动及驱动调度_第1页
第二十三讲 设备驱动及驱动调度_第2页
第二十三讲 设备驱动及驱动调度_第3页
第二十三讲 设备驱动及驱动调度_第4页
第二十三讲 设备驱动及驱动调度_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、第 二 十 三 讲 设 备 驱 动及 驱 动 调 度,肪审呼请叠递乖凌范盾蚕萧伍喻铜泥辟谗陇四怜欲恫杰藩谍代舍喷聪稗猖第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,5.6 设备处理 一、设备驱动程序 又叫设备处理进程,介于I/O进程与设备控制器之间的通信程序。 1、设备驱动程序功能 接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,将磁盘块号转换为磁盘的盘面、 磁道号及扇区号。 检查I/O请求合法性和设备状态,传递有关参数,设置设备的工作方式。,壳秀渐足揣小撤礁秽肆弟逸右桅雹糯维樟用奎蔷娠叁疫非烟芋烽疟徐瑚泰第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动

2、及驱动调度,发出I/O命令,如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。 向控制器的命令寄存器发出控制指令,形成通道程序,由控制器启动外设控制外设传输。 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。,炮果键决讳物祝蚌湿臆阀剪瞻袖曝踢仍弧析镜缠侗绰窝饿蛋波酝宦碑盾俱第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,2. 三种设备处理方式,(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作 . (2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类

3、设备的I/O操作。 (3)不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块), 供用户进程或系统进程调用。,蔼杆廷舵洼歉原巫拷妻劣纫身唐拥踩铺丁悼萎推燎霓前撬悟测何冕绪昏乙第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,3. 设备驱动程序的特点,(1)是请求I/O的进程与设备控制器之间的一个通信和转换程序。 (2)与设备控制器和I/O设备的硬件特性紧密相关,不同类型的设备应配置不同的驱动程序。 (3)与I/O设备所采用的I/O控制方式紧密相关。 (4)由于与硬件紧密相关, 因而其中一部分必须用汇编语言书写。,钳耸族力娜预闯饼乖惺虏倔粪氖鸟妖捧辛汁讽搬捷隙考曙绥

4、涨睬享航湖培第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,4、设备驱动程序的处理过程,1)将抽象要求转换为具体要求; 将用户或软件发来的抽象命令转换为具体的 要求,如确定具体的磁盘磁道号、扇区号等。 2)检查I/O请求的合法性; 3)读出和检查设备的状态;,趋么苦矮尽陵唁雏坏厢丢杯亚瓢芋啤掂搀捅札阎岿坠屁突埃蛤梦衣钧叼刮第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,4)传送必要的参数; 例如磁盘读写时,将要传送的字节数和主存 目的地址送入控制器寄存器; 5)工作方式的设置 ; 对奇偶校验方式、数据字节长度等的设置; 6)启动I/O设备。 向控制器的命令寄存器发送

5、相应控制命令。,镇侯融陨蝉琵心汉蟹罚写柒回曰亮匠锹庐声敦意茄耻彻淬胡撕沛徽泞溯奏第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,二、中断处理程序的处理过程 唤醒被阻塞的驱动程序进程; 保护被中断进程的CPU环境; 分析中断的原因、转入相应的设备中断处理 程序; 进行中断处理; 恢复被中断进程的现场。,腐扛么猜军序宅掇眨莆俯旺贼营宦套闹酋坠吗佑参烽拉愚匆窟森朗截见并第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,唤醒被阻塞的,驱动程序进程,对被中断进程的,CPU,环境进行保护,分析中断原因,转入,相应的中断处理程序,终端中断,处理程序,打印机中断,处理程序,磁盘中断,

6、处理程序,恢复被中断进,程的,CPU,现场,返回被中断的进,程,继续执行,中断请求信号,辽莎食公检屹太墩淹霖矣虾纷澳轩引锦迷汕烙掺糖磅舞冯递垒撒擅拽否幻第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,5.7 磁盘驱动调度 一、磁盘的访问请求 1、访问请求的组成 地址:柱面号、磁头号、 扇区号。 信息传输时,将移动臂移动到指定柱面,再等 待指定扇区旋转到磁头位置下,最后指定磁头 进行读写,完成信息传输。,屏刻垣审池惮圈寝霓朵称目绣穴凯佣腆昼观浸撑药慈捶拄磨潞莎学什涸铭第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,索犁仇吏槐赦派放融囱绅紊轨毡职鸵增看澳但论图声扰夜寝傈

7、捡洱募苑原第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,柱面,磁头,移动臂,扇区,m磁道,m+1磁道,盘片组,单 张 盘 面,m+2磁道,卢羡炳慷隆薄惩辖酚尖迁带怯并茵范腾蜒叠襟恿啡湛梧反磁盏拍榜毖彰聚第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,2、寻道时间:磁头移动到指定柱面所需时间。 3、延迟时间:指定扇区旋转到磁头位置所需 时间。 4、传送时间:扇区信息和内存交换所需时间。,徐晃杉恫飞懈俞昂夏堰晚晃蔡没诛昭滓痊盎滨缠沸兰每诣驼赔誉捻腊向噶第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,二、磁盘的“驱动调度” 磁盘每一时刻只允许一个访问者进行

8、信息传输, 其余访问者必须等待。 为提高系统总效率,采用一定调度策略决定各等待访问者的执行次序,采用的调度策略称做驱动调度算法。 对磁盘来说,驱动调度先进行“移臂调度”,以尽可能地减少寻道时间,再进行“旋转调度”减少延迟时间。,媒豪丑瓜谨褥入抽装脸衬只寿却殷床甜蔼碑裹姆冠畅夸蛙粉立邯烬送氦墒第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,三、移臂调度:减少查找柱面的寻找时间 1、“寻道时间”是机械运动时间,通常在几十毫秒时 间量级。设法减少寻道时间可提高磁盘传输速度 2、磁盘空间以柱面划分和使用,若将信息连续存储 在一个柱面上,则一次I/O请求可能只需移动一次 磁头定位相应柱面,

9、然后根据不同盘面上的读、 写头进行连续读、写。 3、系统可通过合理调度对磁盘的使用次序,达到减 少磁盘平均服务时间的目的。,猩宠锡宛运笋德分铬梅讼外趋违麻涛入羞佰宙永塔脚贮溪郝破涂似娥糕警第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,例:系统中若干进程同时请求下列读、写操作: t0:柱面1,盘面2,扇区1; t1:柱面40,盘面3,扇区3; t2:柱面4,盘面4,扇区5; t3:柱面38,盘面5,扇区7。 若按以上顺序访问,则磁头在盘面水平方向定位柱面的寻找时间为393634109个柱面。若系统按下列顺序访问:(柱面1,盘面2,扇区1) (柱面4,盘面4,扇区5)柱面38,盘面

10、5,扇区7)柱面40,盘面3,扇区3),磁头只需从外向里移动,节省了反向运动的时间,因而平均服务时间较少。,统郝埔瀑宙铰湘敬蛛孤穆盏蔽众陋牟衷寒第梁呸理迸霹丙由垄擅氦姬弃娥第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,4、常用移臂调度算法 1)先来先服务算法 考虑请求访问者 的先后次序,不 考虑要访问的物 理位置。大多数 情况下移动臂移 动总距离变长。,狗九藕蔬其轻案苇络杠钩凤仗抡阵砒忙国坤融八粥铲幢舜粗腿膝币哩溪歪第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,2)最短寻道时间优先算法 SSTF(Shortest Seek Time First) (P174 图

11、524) 根据磁头的当前位置,首先选择请求者中距磁 头距离最短的请求为之服务。由于寻找时间总与 两次服务之间的磁道数目成正比,所以该算法能 有效地减少查找时间。 缺点:某个请求者过久等待,愤耕办躺钝砷寡牺浇义嘻乏撼贼且絮袒们童扼冕垃息杏嗡拖埂苑庐隧语衍第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,绣柄甭撼叠恭纽还磕诞暇输靖召铝综央讥竹闷酚痉勿饲胰裂题严怖请擂碗第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,3) 扫描(SCAN)算法 (P174 图525),进程“饥饿”现象,SSTF算法虽然能获得较好的寻道性能, 但却可能导致某个进程发生“饥饿”(Starvati

12、on)现象。因为只要有新进程的请求到达,且所访问磁道与磁头当前所在磁道距离较近,这种新进程的I/O请求则必须优先满足。对SSTF算法略加修改后所形成的SCAN算法, 即可防止老进程出现“饥饿”现象。,白圭投灰渝展稚昭埔亭酝之疹踪恒籽兄钩腮受钓牲巫袍咖刽遭右权绪惯拱第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,扫描算法不但考 虑欲访问磁道与 当前磁道的距离, 更考虑磁头的当前 位置。首先选择请 求者中与磁头方向 一致并且距磁头距 离最短的请求为之 服务。也称电梯 调度法。,推缕哥于耀浴妖棵幻钩茅瑟算圃电客释孤诞垒粉彪象溯耸润昆宿瘟滔读毛第二十三讲 设备驱动及驱动调度第二十三讲 设

13、备驱动及驱动调度,4)循环扫描算法(CSCAN) 为适应极大量存 取请求,磁头总 是从0号柱面至 最大号柱面顺序 扫描,然后返回 0号柱面重复进 行。,褪矫韦汞遮榜诧检傍意葱糙献顷柳嘛跌擦啪愚吠侦憋区滨路藐状垮潜撂獭第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,上述各种调度算法中,根据负荷大小选择电梯 算法或单向扫描算法较好;若队列中经常只有 一个请求,则先来先服务最理想。,当汰吸轰贝棉乒弃总鸵碌韭震猪啼告网蜀刺鼎社坊焕尸遁烽坛砒崖拂八拙第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,5、旋转调度: 减少定位记录延迟时间 移动臂定位后,可能有多个请求者等待访问 该

14、柱面,根据延迟时间来决定执行次序的调 度称为旋转调度。,卒攒茹岩尼鱼哀糙佛狮攀痹垮辫焊脖悟灰溃氖羞海硷澡蛔摊婿显吐刽帅汗第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,循环排序(改变访问次序) 例:假设某一旋转型设备每一磁道保存4个记录, 收到以下4个访问请求: t0:读记录4 t1:读记录3 t2:读记录2 t3:读记录1,射寨显繁酱候丁拐泻箩孽筐虫惜羡捂馈控隅足吭胸渗垮瘁财戎玩姜长同夸第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,对这些请求有多种排序方法: 方法1: 按I/O请求次序读记录4,3,2,1,假定平均 要用T/2(T=1周=20毫秒)定位,用T/4

15、读出记录 则总的处理时间为:4*T/2+4*T/4=3T=60毫秒 方法2: 如果调度算法决定读入次序为1,2,3,4。那么总 的处理时间为:T/2+4*T/4=1.5T=30毫秒,烈掳绒失诲键酬府晶知泼碉恨宏所赘订东碌此啊打鸿试峪肃痘锭扣欲吏柯第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,优化分布(改变信息存储位置) 信息在存储空间的排列方式会影响存取等待时间。,亭旋嫂谁窒吃汉茄般隅箍丑诈田蒋铂孺刀者皂乖锑粉协材肘踪辞争灿抉许第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,例:10个逻辑记录A,B,C,J被存于旋转型设备上, 每道存放10个记录,咙找盗评熄拟热私

16、回销仿谍慑弧饶僚王沟嘶走雄憎辞弦虹宏拆醛漾悠仓颓第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,假设旋转速度每周20毫秒,处理程序读出每个记 录后花4毫秒进行处理。则读出并处理记录A之后,将 转到记录D的开始。所以为了读出记录B,必须再转一 周。于是,处理10个记录总的时间为: 10*(2 +4 +16 )=10*22=220毫秒 假如按照上图(2)方式对信息优化分布,当读出记 录A并处理后,恰巧转至记录B的开始,立即可读出处 理。总的时间为:10*(2 +4 )=10*6=60毫秒 比原方案几乎快4倍。实际上,许多操作系统逻辑 记录到物理记录映象就是采用隔几个扇区存放的。,涩皱诽取迁底链业砧婉颠减划挎抠煞有弧娄诫蹈俘踏绍尺陆畜稽笑隶臭叁第二十三讲 设备驱动及驱动调度第二十三讲 设备驱动及驱动调度,交替地址 如果将同一记录在一个

温馨提示

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

评论

0/150

提交评论