第八章设备与I/O管理设备及其分类设备的物理特性IO传输方式(查询、中断、通道、DMA)设备分配与去配设备驱动设备调度缓冲技术输入输出进程RAID技术虚拟设备8.1设备及其分类用途存储型设备磁盘,磁带,光盘IO型设备扫描仪,打印机,mouse,keyboard,monitor,网络设备网卡,交换机,etc.8.1设备及其分类管理共享型设备(块型)多个进程的IO操作以块为单位可以交叉独占型设备(块型)多个进程的IO操作以块为单位不宜交叉独占型设备(字符型)多个进程的IO操作以字符为单位不能交叉IO设备的物理特性传输一字节发生一次中断存储设备的物理特性磁带的物理特性头标信息块信息块信息块…………….尾标间隙操作:反绕,正向查找,反向查找,读,写,…地址:一维文件:顺序结构(一个文件占若干连续块)8.2设备的物理特性...磁盘组的物理特性......……盘面0盘面1盘面2盘面m-1扇区1扇区0扇区n-1柱面0柱面l-1…...引臂柱面号i盘面号j扇区号k块号b(一维地址)(三维地址)编址方法:使相邻块物理上最近例子:l=2;m=3;n=3柱面号:000000000111111111盘面号:000111222000111222扇区号:012012012012012012块号:01234567891011121314151617三维地址一维地址:b=imn+jn+k一维地址三维地址:i=b(mn)j=bmod(mn)nk=bmod(mn)modn未考虑读写延迟的扇区编号:扇区0扇区7扇区6扇区5扇区4扇区3扇区2扇区1扇区0扇区7扇区3扇区6扇区2扇区5扇区1扇区4考虑读写延迟的扇区编号(单交错):扇区0扇区5扇区2扇区7扇区4扇区1扇区6扇区3考虑读写延迟的扇区编号(双交错):光盘的物理特性:读取原理:pit/land螺旋线,22188圈(展开5.6km),内侧转速:530转/分;外侧转速:200转/分(密度均匀,读取速度均匀)………DataECCP14个bit构成一个symble42个symble构成一个frame98个frame构成一个sectorSector2352bytes588bits的frame各包含24字节Preamble:16bytes,前12bytes为:00FFFFFFFFFFFFFFFFFFFF00后随3bytes扇区编号,最后字节为mode2048字节288字节8.3I/O传输方式IO操作演变历史程序查询方式(programmedIO)(polling)CPUandDevicecannotworkinparallel中断方式(interrupt)CPUanddevicecanworkinparallel,toomanyinterruptsforCPU通道方式(channel)specialprocessorfordealingwithiooperations直接内存方式(DMA)DMAcontrollerinchargeofblockio8.3.1程序控制查询方式CPU启动设备完成FT缺点:处理机与设备串行工作;消耗大量处理机时间.8.3.2中断驱动方式CPU计算启动设备计算…计算中断处理计算设备:工作特点:CPU与设备并行工作设备多时对CPU打扰多8.3.3DMA方式③数据传输CPUDMA控制器内存地址计数控制缓冲磁盘⑤中断②DMA请求总线磁盘控制器④回答①DMA编程启动中断状态8.3.3DMA方式.①CPU通过设置DMA控制器实现DMA编程,同时启动磁盘控制器由磁盘读入数据至内部缓冲区并进行和校验;②DMA控制器向磁盘控制器发出读请求,并将内存地址放在地址总线上;③磁盘控制器将字节传到内存指定单元;④磁盘控制器向DMA控制器发送回答;⑤DMA控制器将内部地址寄存器加1同时将记数减1,重复上述过程②─④直至计数器为0,此时DMA控制器向CPU发出中断信号.8.3.4通道方式通道负责IO操作的处理机指令系统基本操作:控制、读、写、转移、结束指令格式:(操作码,传输量,特征位,地址)运控部件CAW,CCW,CSW,CDW存储区域(与CPU共用内存,通道内有缓冲区)通道程序,IO数据(channeldoeshaveitsbuffers)通道程序执行过程:按CAW取通道命令CCW(CAW)+1CAW是通道结束命令执行此命令F向CPU发中断一个通道程序可以控制若干设备进行多次IO传输。T通道类型字节多路通道(bytemultiplexerchannel)多个非分配型子通道,连接低速外围设备数组选择通道(blockselectorchannel)一个分配型子通道,连接多台高速设备数组多路通道(blockmultiplexerchannel)多个非分配型子通道,连接多台高速设备设备、通道、内存连接选择通道磁盘字节多路通道打印机输入机内存储器处理机磁带数组多路通道8.4设备的分配与去配独占型设备的分配与去配块型独占字符型独占共享型设备的分配与去配块型共享数据结构设备控制块(UCB)通道控制块(CCB)设备标识设备状态相连通道占有设备进程通道标识通道状态通道类型占有通道进程系统设备表(SDT)设备类总数设备等待队列UCB表指针…………lpmSmUCBUCB…UCB…………独占型设备的分配与去配用户使用独占型设备活动:申请,使用,使用,…,使用,释放申请:(1)根据设备类查SDT表(2)P(Sm)(3)查UCB表找一空闲设备并分配使用:(1)分配通道(2)IO传输(3)去配通道释放:(1)找SDT表对应入口(2)查UCB表,去配(3)V(Sm)8.4设备的分配与去配共享型设备的分配与去配–用户使用共享型设备活动–使用,使用,…,使用–特征–来自文件系统;–每次读(写)一块;–通常经过缓冲;–排队优化。–使用–分配通道;IO操作;释放通道8.5设备驱动通道程序CCW指令序列静态编制或动态生成设备启动通道启动中断处理通道向CPU发的中断8.5设备驱动设备CAWCCWCDWCSWCCW1CCW2…CCWi...CCWn数据区...形成通道程序...地址CAW...启动通道...中断处理...启动中断内存CPU通道8.5设备驱动设备CAWCCWCDWCSWCCW1CCW2…CCWi...CCWn数据区...形成通道程序...地址CAW...启动通道...中断处理...启动中断内存CPU通道8.5设备驱动设备CAWCCWCDWCSWCCW1CCW2…CCWi...CCWn数据区...形成通道程序...地址CAW...启动通道...中断处理...启动中断内存CPU通道8.5设备驱动设备CAWCCWCDWCSWCCW1CCW2…CCWi...CCWn数据区...形成通道程序...地址CAW...启动通道...中断处理...启动中断内存CPU通道8.6设备调度优化服务顺序考虑因素公平性防止饿死高效性减少磁盘引臂移动量磁盘引臂调度(diskheadscheduling)先到先服务(FCFS)请求序列:130,42,180,15,108,68,9701542536897108130180199移动量:(130-53)+(130-42)+(180-42)+(180-15)+(108-15)+(108-68)+(97-68)=630磁盘引臂调度(diskheadscheduling)最短寻找时间优先(SSTF)请求序列:130,42,180,15,108,68,9701542536897108130180199移动量:(53-42)+(180-42)+(180-15)=314磁盘引臂调度(diskheadscheduling)SCAN(LOOK)–请求序列:130,42,180,15,108,68,97SCAN移动量:(53-0)+(180-0)=233LOOK移动量:(53-15)+(180-15)=20301542536897108130180199LookScan磁盘引臂调度(diskheadscheduling)C-SCAN(C-LOOK)–请求序列:130,42,180,15,108,68,97特点:所有磁道地位最长等待时间相同问题:diskheadstickiness(磁头粘性)01542536897108130180199C-LookC-Scan磁盘引臂调度(diskheadscheduling)N-stepSCAN(N步扫描)将磁盘请求队列分为若干个长度为N的子队列,每个队列内采用SCAN算法例子:磁道由外向内编号0-99,磁头当前位置20,向内移动,N=412,5,7,30,60,77,13,26,61,80,53,6620→30→12→7→5→13→26→60→77→80→66→61→53当N很大时,接近SCAN算法当N=1时,蜕化为FCFS算法磁盘引臂调度(diskheadscheduling)FSCAN(FreezingSCAN,冻结扫描)将磁盘请求分为两个子队列,服务队列请求队列用SCAN算法扫描服务队列,并为请求服务,服务期间新到达的请求入请求队列扫描完成后交换两个队列的地位8.6.1磁盘I/O参数首先分析一下读/写一个磁盘块需要多少时间。它一般由如下三个因素确定:寻道时间(seektime):将磁盘引臂移动到指定柱面所需要的时间;旋转延迟(rotationaldelay):指定扇区旋转到磁头下的时间;传输时间(transfertime):读/写一个扇区的时间。8.6.1磁盘I/O参数寻道时间Ts计算公式如下:Ts=m×n﹢s其中,n为跨越磁道数,m为跨越一个磁道所用时间,s为启动时间。旋转延迟Tr计算公式如下:Tr=1/(2r)其中,r为磁盘转速。该公式给出的是平均旋转延迟,它是磁盘旋转一周时间的一半,即旋转半周所花费的时间。8.6.1磁盘I/O参数传输时间Tt计算公式如下:Tt=b/(rN)其中,b为读/写字节数,r为磁盘转速,N为一条磁道上的字节数。8.6.1磁盘I/O参数因此,可将访问时间Ta表示为:访问磁盘通常是以扇区(块)为单位的,令M为一个磁道上扇区的个数,则一个扇区的访问时间为:rNbrsnmTTTTtrsa21rMrsnmTTTTtrsa121例题例8-1.设有一个只有一个移动磁头的磁盘,磁道由外向内编号0、1、2、…、199,磁头移动一个磁道所需时间为1ms,每个磁道有100个扇区,磁盘转速6000r/m。采用CLOOK引臂调度算法,当前引臂位置处于第100磁道,当前移动方向由外向内,并规定引臂向内扫描时为路经请求服务。对于如下磁道请求120、85、70、30,每个请求访问对应磁道上的一个扇区,问:(1)给出引臂移动序列,计算引臂移动量和寻道时间,忽略启动时间;(2)计算平均旋转延迟时间;(3)计算传输时间;(4)计算所有访问处理时间。例题解答:(1)磁盘引臂移动序列为:100→120→30→70→85,跨越磁道数:20+90+40+15=165。共需寻道时间165×1ms=165ms.(2)1次访盘的旋转延迟为:Tr=1/(2r)=1/(2×(6000/m))=1/(2×(100/s))=5ms,4次访盘的旋转延迟为4×5ms=20ms.(3)1次访盘的传输时间为:Tt=1/(rM)=1/((6000/m)×100)=1/((100/s)×100)=0.1ms,4次访盘的传输时间为4×0.1ms=0.4ms.(4)所有访问处理时间=165+20+0.4=185.4(ms)。8.7缓冲技术设备处理数据到达与离开速度不一致所采用的技术。Bufferingvs.Cachingbuffering:onedatacopycaching:multipledatacopy(slow多,