




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章,设备管理,2007年1月,内容,(1)I/O组成; (2)I/O控制; 指I/O完成的方法。 (3)I/O缓冲; (4)I/O分配; (5)I/O处理。 指具体I/O命令的完成过程。,2007年1月,5.1 I/O系统,5.1.1 I/O设备 一、类型 (1)按速度分: 低:键盘 中:打印机 高:磁盘。 (2)按信息交换单位分: 块:磁盘,可定位 字符:打印机、串口,2007年1月,5.1 I/O系统,5.1.1 I/O设备 一、类型 (3)按设备的共享属性分: 独占:如临界资源 共享:磁盘 虚拟:如本身因有属性为独占,但将其虚拟为几个逻辑设备。,2007年1月,二、设备与控制器之间的
2、接口,CPU控制器设备 三种信号: (1)数据信号:双向,有缓存 (2)控制信号:控制器发给设备;要求其完成相关操作 (3)状态信号:设备发给控制器,后者“显示”;,2007年1月,5.1.2 设备控制器,一、功能:接收CPU命令,控制I/O设备工作,解放CPU. 1.接收和识别命令。 应有相应的Register来存放命令(“命令寄存器”) 2.数据交换 CPU控制器的数据寄存器设备 3.设备状态的了解和报告 设备控制器中应用“状态寄存器” 4.地址识别 CPU通过“地址”与设备通信,设备控制器应能识别它所控制的设备地址以及其各寄存器的地址。,2007年1月,5.1.3 I/O通道,二、类型
3、1.字节多路通道: 各子通道以时间片轮转方式共享通道,适用于低、中速设备。 2.数组选择通道: 无子通道,仅一主通道,某时间由某设备独占,适于高速设备。 但通道未共享,利用率低。 3.数组多路通道: 在图5-3中,多子通道不是以时间片方式,而是“按需分配”,综合了前面2种通道类型的优点。,2007年1月,5.1.3 I/O通道,三、通道“瓶颈”问题: 解决:采用复联方式,2007年1月,5.1.4 总线系统,微机I/O系统,设备控制器:与设备是一对多的关系,系统是通过它与设备通信 系统设备控制器 设备 如:磁盘设备,打印设备 缺点:总线瓶颈,CPU瓶颈。,2007年1月,5.1.4 总线系统,
4、二、主机I/O系统(四级结构) 计算机I/O通道I/O控制器设备 I/O通道相当于对总线的扩展,即多总线方式,且通道有一定的智能性,能与CPU并行,解决其负担。 ISA/EISA/LocalBUS/VESA/PCI,2007年1月,5.2 I/O控制方式,四个阶段: 程序I/O中断I/ODMA控制通道控制。 趋势:提高并行度。,2007年1月,5.2.1 程序I/O(忙等待方式),查询方式:CPU需花代价不断查询I/O状态(图5-7a) CPU资源浪费极大。 例:99.9ms+0.1ms=100ms 在5.2.1中99.9在忙等,2007年1月,5.2.2 中断I/O,向I/O发命令返回执行其
5、它任务。 I/O中断产生CPU转相应中断处理程序。 如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O内存,2007年1月,5.2.3 DMA方式用于块设备中,一、引入 中断I/O,CPU“字节”干预一次,即每“字节”传送产生一次中断。 DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O内存。 图5.7c 二、组成 一组寄存器+控制逻辑。图5.8 CR(命令/状态); DR(数据); MAR(内存地址); DC(计数) DMA工作过程(例):,2007年1月,Direct Memory Access,2007年1月,DMA,2007年1月,DMA,2007年1月
6、,DMA,2007年1月,5.2.4 I/O通道控制方式,DMA方式:对需多离散块的读取仍需要多次中断。 通道方式:CPU只需给出 (1)通道程序首址。 (2)要访问I/O设备 后,通道程序就可完成一组块操作,2007年1月,5.3 缓冲管理,目的:组织管理、分配、释放buffer 5.3.1 引入 1.缓和CPU和I/O设备间速度不匹配的矛盾。 如:计算打印buffer打印 2.减少对CPU的中断频率 如:buffer越大,“buffer满”信号发生频率越低。 3.提高CPU和I/O并行性,2007年1月,5.3 缓冲管理,5.3.2 单缓冲,由于C和T可并行,M和C或M和T不能并行,因此处
7、理一块数据时间:Max(C,T)+M 用户进程何时阻塞?,2007年1月,5.3 缓冲管理,5.3.2双缓冲,效率有所提高,且进一步平滑了传输峰值。 系统处理一块数据的时间约为:MAX(C,T) 收发可双向同时传送。(图513),2007年1月,5.3 缓冲管理,5.3.3 循环多缓冲,类型: R:空缓冲;G:满缓冲;C:当前缓冲,2007年1月,循环多缓冲的使用,nextg:指示下一个应取数据的buf nexti:指示下一个空buf. Getbuf: 取nextg对应缓冲区提供使用,将Nextg置为空,Nextg=(Nextg+1)Mod N 将Nexti对应缓冲区提供使用,将Nexti置为
8、满,Nexti=(Nexti+1)Mod N Releasebuf: 若C满,则改为G; 若C空,则改为R;,2007年1月,循环多缓冲的同步问题,Nexti 追上Nextg: 表示输入速度输出速度,全部buf满,这时输入进程阻塞 Nextg追上Nexti: 输入速度输出速度,全部buf空,这时输出进程阻塞。,2007年1月,5.3.4 缓冲池,缓冲池:系统提供的公用缓冲 一、组成: 3个队列: 空缓冲队列emq 输入队列inq 输出队列outq 四个工作缓冲区: hin:收容输入数据 sin:提取输入数据 hout:收容输出数据 sout:提取输出数据,2007年1月,二、4种工作方式,1.
9、收容输入;2.提取输入 3.收容输出;4.提取输出,2007年1月,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),2007年1月,三、Getbuf和Putbuf过程,Getbuf(type) Begin wait(RS(type); wait(MS(type); B(number):=takebuf(type); sign
10、al(MS(type); end,Putbuf(type) Begin wait(MS(type); addbuf(type,number); signal(MS(type); signal(RS(type); end,2007年1月,5.4 设备分配,包括:对设备、设备控制器、通道的分配 5.4.1 数据结构 一、设备控制表DCT: 二、控制器控制表(COCT),通道表(CHCT),系统设备表(SDT),图5-17 SDT:记录了系统中全部设备及其驱动程序地址。,2007年1月,设备控制表DCT,2007年1月,5.4.2 设备分配应考虑的若干因素,一、设备的固有属性: 共享+虚拟:注意调度
11、的合理性; 独享:排它性分配,控制不好可能死锁。 二、分配算法: (1)FIFO; (2)优先权。,2007年1月,5.4.2 设备分配应考虑的若干因素,三、安全性: 安全分配(同步):每进程获得一I/O后,即block,直到其I/O完成。 即打破了死锁条件。 缺点:CPU、I/O对该进程是串行,进程进展缓慢。 不安全分配(异步):需进行安全性检查,进程执行效率高。,2007年1月,5.4.3 设备独立性,一、概念: 即设备无关性,指应用程序独立于具体使用的物理设备。 逻辑设备 物理设备 逻辑设备表(LUT):,2007年1月,5.4.3 设备独立性,分配流程:进程给出逻辑名通过LUT得到物理
12、设备及其driver入口。 优点: 设备分配更灵活; 逻辑设备和物理设备间可以是多多的映射关系。提高了物理设备的共享性,以及使用的灵活性。如: 某逻辑名可对应这一类设备,提高均衡性与容错性。 几个逻辑名可对应某一个设备,提高共享性。,2007年1月,5.4.3 设备独立性,易于实现I/O重定向。 不变程序,只需改变LUT表的映射关系。 二、设备独立性软件 执行所有设备的公有操作 分配回收 名字映射 保护 缓冲 差错控制 向用户层软件提供统一接口 read、write,Struct general_op int (*read)() int (*write)() ;,driver1: Struct
13、 general_op dev_op= dev1_read, dev1_write ; driver2: Struct general_op dev_op= dev2_read, dev2_write ; Gen_read(fd,) dev_op=map(fd); dev_op-read(); ,2007年1月,5.4.3 设备独立性,三.名字映射 LUT的生成 在用户进程第一次请求设备时完成映射并在LUT中生成相应项 LUT的配置 (1)整个系统一张LUT表: 要求:逻辑名不重复,(一般用于单用户系统) (2)每个用户一张LUT表。 可重名/可限制用户对某些设备的使用。,2007年1月,5.
14、4.4 独占设备分配程序,进程n请求设备:,begin search (sdt, phdevice) if not busy (phdevice) then begin compute(safe)对独占设备 if safe then alloc (n, phdevice); else begin insert (DL(phdevice), n);-将n插入设备等待队列DL上 return end; end;,2007年1月,设备忙else begin; insert (DL (phdevice), n); return; end; controllerid=controllerid (COCT
15、 ptr(dct); device分配成功 if not busy (COCT (controllerid) then alloc (n, controllerid); else begin insert (col, n); return; end; channeled=channeled(chatptr (controllerid); 控制器分配成功,2007年1月,if not busy (chct (channelid) then allocation (n, channelid); else begin insert (chl, n) return; end; end; 优化: 1)增
16、加设备的独立性 2)考虑多通路情况,2007年1月,5.4.5 SPOOLING技术,1概念 假脱机技术,在联机情况下同时出现外围操作 作用:通过缓冲方式,将独占设备改造为共享设备,2007年1月,2、spooling组成,1.输入和输出: 在磁盘上开辟的2个大存储空间,模拟输入和输出设备。 2.输入buf和输出buf(内存中) 输入设备输入buf输入#用户区(1) 用户区输出#输出buf设备(2) 3.输入Spi和输出SPo进程。 分别控制(1),(2)的动作。 SPi相当于脱机输入控制器。 SPo相当于脱机输出控制器。,2007年1月,3例,(1)输入 a.进程n请求 SPi为n在输入中分
17、配空间设备数据由输入buf送输入#生成输入请求表挂输入请求队列。 b.CPU空取请求表中的任务,送进程缓冲区。 (2)输出:(打印) a.进程n请求SPo为n在输出#中分配空间将数据由进程buf转到输出#生成一打印请求表挂打印请求队列。 b.打印机空查打印请求表中的任务 取输出中对于数据输出buf 打印,2007年1月,4特点,1.提高I/O速度: 对低速设备操作变为对输入/出#操作。 2.将独占设备改造为共享设备 分配设备的实质时分配输入/出# 3.实现了虚拟设备功能,2007年1月,5.5设备处理,设备处理程序即是设备驱动程序。 设备驱动程序的功能和特点 设备驱动程序的处理过程,2007年
18、1月,设备驱动程序的功能和特点,功能: 接收进程的I/O命令 检查命令合法性 检查设备状态 设置设备工作方式 驱动I/O操作 响应设备中断 构成通道程序,2007年1月,设备驱动程序的功能和特点,特点: 和硬件紧密相关、各个设备有自己的设备驱动,2007年1月,5.5.2设备驱动程序处理过程,包括 启动过程 中断处理过程 启动过程 将抽象要求转化为具体要求 检查I/O请求合法性 读出和检查设备状态 传送必要的参数 设置工作方式 启动I/O设备,2007年1月,5.5.3中断处理程序,流程 设备启动I/O完成发送中断CPU调用中断处理过程 中断处理过程 唤醒被阻塞的驱动程序进程 保护被中断进程环
19、境 转入相应的设备处理程序 中断处理(特性) 恢复被中断进程的现场,2007年1月,5.6磁盘存储器管理,5.6.1 磁盘性能简述 一、数据组织和格式(图522) 磁道扇区字节 二、类型 1.固定头磁盘: 每个磁道上有一个磁头,快 2.移动头磁盘: 每个盘面仅有一个磁头,慢,2007年1月,5.6.1 磁盘性能简述,三、磁盘访问时间: 1.寻道时间:TS=m*n+S m:常量,n:磁道数,s:磁盘启动时间。 2.旋转延时间Tr: 指定扇区旋转到磁头下所需时间。 设每秒r转,则Tr1/2r(均值) 3.数据传输时间Ttb/rN b:读写字节数 N:每道上的字节数 访问时间:Ta=Ts+1/2r+
20、b/rN 可见,由于特定磁盘,只有集中放数据,集中读写(b大)才能更好提高传输效率。,2007年1月,例子,寻道时间: 20ms 磁盘通道传输速率: 1MB/s 转速r=3600rpm 每扇区512字节 每磁道32 扇区 目标:读 128k 数据,2007年1月,时间比较,60*16k=960k1MB/s 顺序组织 (208.316.7)(8.316.7)7220(ms) 随机组织 (208.30.5)2567373(ms),2007年1月,5.6.2 磁盘调度,目标:减少寻道时间 一、FCFS(Fisrt Come First Second) 特点:简单,寻道时间长,相当于随机访问模式。 二
21、、SSTF(最短寻道优先) 三、扫描算法。 1.进程“饥饿现象” SSTF存在。 2.SCAN算法: 在移动方向固定的情况下采用了SSTF,以避免饥饿现象,FCFS调度算法 SSTF调度算法,2007年1月,5.6.2 磁盘调度,四、循环扫描CSCAN(图9-5) 一个方向读完,不是象SCAN那样回头,而是循环。 访问时间:2TT+Smax 五、NStepSCAN和FSCAN算法。 1. NStepSCAN 粘臂:由于连续对某磁道访问引起的垄断访问,将磁盘请求队列分为长为N的子队列m个,如下图处理。当N=1时,为FCFS。当N时,为SCAN.,2007年1月,5.6.2 磁盘调度,2.FSCAN,SCAN调度算法 CSCAN调度算法,2007年1月,5.6.3 磁盘高速缓存,形式 逻辑上是磁盘、物理上是驻留在内存中的盘块 固定大小和可变大小 数据交付方式 数据交付指将磁盘高速缓存中的数据传送给请求者进程 步骤:先查缓存、后查磁盘并更新缓存 方式: 数据交付 指针交付,2007年1月,5.6.3 磁盘高速缓存,置换算法 最近最久 访问频率 可预见性 数据一致性:将需要一致性的块放在替换队列的头部,优先回写。 周期性回写磁盘 例:msdos采用写穿透方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年项目管理中的法律法规考题试题及答案
- 项目管理战略分析试题及答案
- 2025年公司财务治理新趋势试题及答案
- 微生物检测新技术的探索试题及答案
- 2024年项目管理考题预测试题及答案
- 证券从业资格证考试制度理解试题及答案
- 重要致病菌的特征识别试题及答案
- 放射性金属矿的开采对土壤质量的影响考核试卷
- 生态环境监测在农业生态环境保护中的重要性考核试卷
- 新冠疫情下微生物检测的策略与实施试题及答案
- 110kVXX变电站预试定检施工方案试卷教案
- 《基金管理人》课件2
- 舞蹈培训机构校长聘用合同
- 物流行业无人机配送方案
- 风机事故完整版本
- 开工安全交底
- 北京市2020-2024年高考生物复习分类汇编:基因工程(含详解)
- 无人机应急处置预案及流程
- 压接端子检验标准
- 一年级语文下册in-ing拼音练习2018(部编版)
- 幼儿园 家具玩具类 设备采购相关参数(仅供参考)
评论
0/150
提交评论