[精选]08第八章 设备与IO管理1.pptx
《[精选]08第八章 设备与IO管理1.pptx》由会员分享,可在线阅读,更多相关《[精选]08第八章 设备与IO管理1.pptx(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 设备与I/O 管理n 设备及其分类n 设备的物理特性n IO 传输方式查询、中断、通道、DMA n 设备分配与去配n 设备驱动n 设备调度n 缓冲技术n 输入输出进程n RAID 技术n 虚拟设备8.1 设备及其分类n 用途n 存储型设备n 磁盘,磁带,光盘n IO 型设备n 扫描仪,打印机,mouse,keyboard,monitor,n 网络设备n 网卡,交换机,etc.8.1 设备及其分类n 管理n 共享型设备块型n 多个进程的IO 操作以块为单位可以交叉n 独占型设备块型n 多个进程的IO 操作以块为单位不宜交叉n 独占型设备字符型n 多个进程的IO 操作以字符为单位不能交叉I
2、O 设备的物理特性传输一字节发生一次中断存储设备的物理特性磁带的物理特性头标 信息块 信息块 信息块.尾标间隙操作:反绕,正向查找,反向查找,读,写,地址:一维文件:顺序结构(一个文件占若干连续块)8.2 设备的物理特性.磁盘组的物理特性.盘面0盘面1盘面2盘面m-1扇区1扇区0扇区n-1柱面0 柱面l-1.引臂柱面号i盘面号j扇区号k块号b 一维地址三维地址编址方法:使相邻块物理上最近例子:l=2;m=3;n=3柱面号:0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1盘面号:0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2扇区号:0 1 2 0 1
3、 2 0 1 2 0 1 2 0 1 2 0 1 2块 号:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17三维地址 一维地址:b=i m n+j n+k一维地址 三维地址:i=b m n j=b mod m n n k=b mod m n mod n未考虑读写延迟的扇区编号:扇区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.6
4、km,内侧转速:530转/分;外侧转速:200转/分密度均匀,读取速度均匀 DataECCP14个bit构成一个symble42个symble构成一个frame98个frame构成一个sectorSector2352bytes588bits的frame各包含24字节Preamble:16bytes,前12bytes为:00FFFFFFFFFFFFFFFFFFFF00后随3bytes扇区编号,最后字节为mode2048字节 288字节8.3 I/O 传输方式n IO 操作演变历史n 程序查询方式 programmed IO polling n CPU and Device can not wor
5、k in parallel n 中断方式 interrupt n CPU and device can work in parallel,too many interrupts for CPUn 通道方式 channel n special processor for dealing with io operationsn 直接内存方式 DMA n DMA controller in charge of block io8.3.1 程序控制查询方式CPU 启动设备完成F T缺点:处理机与设备串行工作;消耗大量处理机时间.8.3.2 中断驱动方式n CPUn 计算n 启动设备n 计算n n 计算
6、n 中断处理n 计算设备:工作特点:CPU 与设备并行工作 设备多时对CPU 打搅多8.3.3 DMA方式 数据传输CPUDMA控制器内存地 址计 数控 制缓冲磁盘 中断 DMA 请求总线磁盘控制器 答复 DMA 编程8.3.3 DMA方式.n CPU通过设置DMA控制器实现DMA编程,同时启动磁盘控制器由磁盘读入数据至内部缓冲区并进行和校验;n DMA控制器向磁盘控制器发出读请求,并将内存地址放在地址总线上;n 磁盘控制器将字节传到内存指定单元;n 磁盘控制器向DMA控制器发送答复;n DMA控制器将内部地址存放器加1同时将记数减1,重复上述过程直至计数值为0,此时DMA控制器向CPU发出中
7、断信号.8.3.4 通道方式n 通道n 负责IO 操作的处理机n 指令系统n 基本操作:读、写、控制、转移、结束n 指令格式:操作码,传输量,特征位,地址n 运控部件n CAW,CCW,CSW,CDWn 存储区域与CPU 共用内存,通道内有缓冲区n 通道程序,IO 数据channel does have its buffers通道程序执行过程:按CAW 取通道命令CCWCAW+1 CAW是通道结束命令执行此命令F向CPU 发中断一个通道程序可以控制假设干设备进行屡次IO 传输。T通道类型n 字节多路通道byte multiplexer channel n 多个非分配型子通道,连接低速外围设备n
8、 数组选择通道block selector channel n 一个分配型子通道,连接多台高速设备n 数组多路通道block multiplexer channel n 多个非分配型子通道,连接多台高速设备设备、通道、内存连接选择通道磁盘字节多路通道打印机输入机内存储器处理机磁带数组多路通道8.4 设备的分配与去配n 独占型设备的分配与去配n 块型独占n 字符型独占n 共享型设备的分配与去配n 块型共享数据结构设备控制块UCB 通道控制块CCB 设备标识设备状态占有设备进程通道标识通道状态通道类型占有通道进程系统设备表SDT 设备类 总数 设备等待队列 UCB 表指针 lp m Sm UCBU
9、CBUCB 独占型设备的分配与去配用户使用独占型设备活动:申请,使用,使用,使用,释放 申请:1 根据设备类查SDT 表 2 P Sm 3 查UCB 表找一空闲设备并分配 使用:1 IO 传输 释放:1 找SDT 表对应入口 2 查UCB 表,去配 3 V Sm 8.4 设备的分配与去配l 共享型设备的分配与去配 用户使用共享型设备活动 使用,使用,使用 特征 来自文件系统;每次读写一块;通常经过缓冲;排队优化。使用 IO 操作8.5 设备驱动n 通道程序n CCW 指令序列n 静态编制或动态生成n 设备启动n 通道启动n 中断处理n 通道向CPU 发的中断8.5 设备驱动设备CAWCCWCD
10、WCSWCCW1CCW2CCWi.CCWn数据区.形成通道程序.地址CAW.启动通道.中断处理.启动中断内存CPU通道 8.6 设备调度n 优化效劳顺序n 考虑因素n 公平性n 防止饿死n 高效性n 减少磁盘引臂移动量磁盘引臂调度disk head schedulingn 先到先效劳FCFS n 请求序列:130,42,180,15,108,68,970 15 42 53 68 97 108 130 180 199移动量:130-53+130-42+180-42+180-15+108-15+108-68+97-68=630磁盘引臂调度disk head schedulingn 最短寻找时间优先
11、SSTF n 请求序列:130,42,180,15,108,68,970 15 42 53 68 97 108 130 180 199移动量:53-42+180-42+180-15=314磁盘引臂调度disk head schedulingl SCAN LOOK 请求序列:130,42,180,15,108,68,97SCAN 移动量:53-0+180-0=233LOOK 移动量:53-15+180-15=2030 15 42 53 68 97 108 130 180 199 Look Scan磁盘引臂调度disk head schedulingl C-SCAN C-LOOK 请求序列:130
12、,42,180,15,108,68,97特点:所有磁道地位最长等待时间相同0 15 42 53 68 97 108 130 180 199 C-Look C-Scan8.7 缓冲技术n 设备处理数据到达与离开速度不一致所采用的技术。n Buffering vs.Cachingn buffering:one data copyn caching:multiple data copy slow 多,fast 少n 硬缓冲与软缓冲 n 硬缓冲区通常设在设备中 n 软缓冲区通常设在内存系统空间中 n 私用缓冲与公共缓冲 n 一个缓冲区与一个固定设备相联系,不同设备使用不同的缓冲区 n 利用率低 n 缓
13、冲区由系统统一管理,按需要动态分派给正在进行I/O 传输的设备空缓冲 空缓冲空缓冲.head共n 个Var buf_num:semaphore;init n mutex:semaphore;init 1 1.申请 2.释放1 P buf_num P mutex 2 P mutex 空缓冲入链尾3 取链头空缓冲 V mutex 4 V mutex V buf_num 缓冲池管理 tail8.7.5 缓冲技术实现:输入设备 进程空间缓冲输入设备缓冲缓冲.io链进程方面:中断方面:IO 链空设备忙申请空缓冲启动设备等待由io 链取一缓冲信息 进程空间释放空缓冲缓冲入io 链有等待进程唤醒传输完毕申请
14、空缓冲启动设备F TFTF TTF8.7.5 缓冲技术实现:输出设备 进程空间缓冲输出设备缓冲缓冲.io链进程方面:中断方面:申请一空缓冲信息 缓冲设备忙启动设备缓冲入io 链传输完T FF T释放空缓冲io 链空取一缓冲启动设备T F8.7.5 输入输出设备:磁带、磁盘 缓冲区头缓冲区体设备块号IO 标识等待进程块型缓冲区:进程空间缓冲IO 设备缓冲缓冲.io 链进程方面输入:进程方面输出:中断方面:申请空缓冲填写头部设备工作入io 链尾启动设备信息 进程释放缓冲申请空缓冲填写头部信息 缓冲设备工作启动设备入io 链输入唤醒等待者释放空缓冲io 链空取一缓冲启动设备F TF TT FF T等
15、待UNIX 缓冲n 字符型缓冲n 100 个缓冲区,长度8 字节6 字符+2 指针n 组成公共缓冲池,所有字符型设备公用n 缓冲区或属于cfreelist,或属于某字符设备eg.tty,lpn 块型缓冲n 50 个缓冲区,长度514 字节n 组成公共缓冲池,所有块型设备公用n 缓冲区可属于bfreelist and/or devtabn 预先读入的块breada n 延迟写出的块bdwrite 字符型设备缓冲struct cblock struct cblock*c_next;char info6;struct cblock*cfreelist;/free c blocks struct cl
16、ist/associated with a character device int c_cc;/character count int c_cf;/pointer to first block int c_cl;/pointer to last blockstruct buf/actually a buffer header,shared by all mounted disks int b_flags;/BUSY,ASYNC,DELWRI,DONE.struct buf*b_forw;/headed by devtab struct buf*b_back;struct buf*av_for
17、w;/position on free list struct buf*av_back;int b_dev;int b_wcount;/transfer count char*b_addr;/low order core buffer address char*b_xmem;/high order core buffer address char*b_blkno/block#on device char b_error;char*b_resid;/word not transferred after error bufNBUF块型设备缓冲头部15 14 13 12 11 10 9 8 7 6
18、5 4 3 2 1 0B_READ/B_WRITEB_DONEB_ERRORB_BUSYB_WANTEDB_RELOCB_ASYNCB_DELWRIb_flag:struct devtab/设备IO 队列 char d_active;/busy flag char d_errcnt;/error count struct buf*b_forw;/first buffer for this dev struct buf*b_back;/last buffer for this dev struct buf*d_actf;/head of IO queue struct buf*d_actl;/t
19、ail of IO queuechar buffersNBUF514;/块型缓冲区struct buf bfreelist;/缓冲区头部的链头相关操作:getblkdev,blkno/assign a buffer for the given block breaddev,blkno/read a blockif necessary,return buf pointerbreadadev,blkno,rablkno/read in first block,like read;but also start io on second block bwritebp/write the buffer,
20、wait for pletion,then releasebawritebp/start the io,release buffer,no wait for pletionbdwritebp/release buffer,mark it so that if it is grabbed for another purpose,it will be written out before being given upbrelsebp/release the buffer,with no io impliedgetblk dev,blkno n 参数:dev:设备号,blkno:设备块号n 返回:缓
21、冲区指针bpn 步骤:n 块在b 链中,且当前空闲n 由av 链摘除,标记BUSY,返回缓冲块指针n 块在b 链中,但BUSY 其它进程在用n sleep 空闲事件发生,由av 链摘除,标记BUSY,返回缓冲块指针n 不在b 的链中,在av 链上取到延迟写的块n 写出该块,分配下一个缓冲区n 不在b 的链中,av 链已空n 等待任意缓冲区变空闲的事件n 不在b 的链中,在av 链上得到空缓冲n 分配,由av 链摘除,返回缓冲块指针brelse bp n 参数:bp:缓冲区头指针n 返回:无n 步骤:n If 有等待者b_flag&B_WANTED!=0,唤醒;n Elsen bfreelist
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 精选08第八章 设备与IO管理1 08 第八 设备 IO 管理
限制150内