1 / 76

计算机科学与技术专业 2006 操作系统

第五章. 计算机科学与技术专业 2006 操作系统. 操作系统. I/O 软件管理. I/O 硬件管理. 底层硬件设备(物理层). I/O 设备管理概述. 上层用户程序(应用层). 用户进程. 设备无关程序. 设备驱动程序. 中断处理程序. 设备 控制器. DMA. 命令寄存器. I/O 软件体系结构. I/O 请求. I/O 响应. 命名、保护、阻塞、缓冲. 用户 I/O 软件. 设备无关软件. 提供系统库调用,供人员使用;提供类似 Spooling 这样的精灵守护进程管理共享设备. 处理中断信号. 设备驱动程序.

tuyen
Download Presentation

计算机科学与技术专业 2006 操作系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 计算机科学与技术专业2006操作系统 zhumin@scu.edu.cn

  2. 操作系统 I/O软件管理 I/O硬件管理 底层硬件设备(物理层) I/O设备管理概述 上层用户程序(应用层) 用户进程 设备无关程序 设备驱动程序 中断处理程序 设备 控制器 DMA 命令寄存器 2008年春 •操作系统 • 2006级

  3. I/O软件体系结构 I/O请求 I/O响应 命名、保护、阻塞、缓冲 用户I/O软件 设备无关软件 提供系统库调用,供人员使用;提供类似Spooling这样的精灵守护进程管理共享设备 处理中断信号 设备驱动程序 建立设备寄存器、解决错误 中断处理程序 底层硬件设备 2008年春 •操作系统 • 2006级

  4. 本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 • I/O设备 • 设备控制器 • I/O通道 • 总线系统 • 程序I/O控制方式 • 中断驱动I/O控制方式 • DMA I/O控制方式 • I/O通道控制方式 • 缓冲的引入 • 单缓冲和双缓冲 • 循环缓冲 • 缓冲池 • 设备分配中的数据结构 • 设备分配时应考虑的因素 • 设备独立性 • 独占设备的分配程序 • SPOOLing技术 • 磁盘性能简述 • 磁盘调度 • 磁盘高速缓存 • 提高磁盘I/O速度的其他方法 • 廉价磁盘冗余阵列 • 设备驱动程序的功能和特点 • 设备驱动程序的处理过程 • 中断处理程序的处理过程 2008年春 •操作系统 • 2006级

  5. 本章重点和难点 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 • 磁盘访问时间 • 磁盘调度:优化平均寻道时间 • 磁盘调度算法 • FCFS • SSTF • SCAN • CSCAN • N-Step-SCAN • FSCAN 2008年春 •操作系统 • 2006级

  6. 本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级

  7. 5.1 I/O系统 • 5.1.1 I/O设备 • 5.1.2 设备控制器 • 5.1.3 I/O通道 • 5.1.4 总线系统 2008年春 •操作系统 • 2006级

  8. 5.1.1 I/O设备-类型 • 按速度分: • 低:键盘 • 中:打印机 • 高:磁盘。 • 按信息交换单位分: • 块:磁盘,可定位 • 字符:打印机、串口 • 按设备的共享属性分: • 独占:如临界资源 • 共享:磁盘 • 虚拟:如本身因有属性为独占,但将其虚拟为几个逻辑设备 2008年春 •操作系统 • 2006级

  9. 5.1.1 I/O设备-类型 • 按交互对象分类: • 人机交互设备:视频显示设备、键盘、鼠标、打印机 • 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器 • 计算机间的通信设备:网卡、调制解调器 • 按交互方向分类: • 输入(可读):键盘、扫描仪 • 输出(可写):显示设备、打印机 • 输入/输出(可读写):磁盘、网卡 2008年春 •操作系统 • 2006级

  10. 5.1.1 I/O设备-接口 • CPU―控制器―设备 • 三种信号: • 数据信号:——双向,有缓存 • 控制信号:控制器发给设备;要求其完成相关操作 • 状态信号:设备发给控制器,后者“显示” 2008年春 •操作系统 • 2006级

  11. 5.1.2 设备控制器-功能 • 接收CPU命令,控制I/O设备工作,解放CPU • 接收和识别命令。 • 应有相应的Register来存放命令(“命令寄存器”) • 数据交换 • CPU——控制器的数据寄存器——设备 • 设备状态的了解和报告 • 设备控制器中应用“状态寄存器” • 地址识别 • CPU通过“地址”与设备通信,设备控制器应能识别它所控制的设备地址以及其各寄存器的地址。 • 数据缓冲 • 差错控制 2008年春 •操作系统 • 2006级

  12. 5.1.2 设备控制器-组成 • 组成 • 各类寄存器:数据、命令、状态 • 信号线:数据线(独立寻址、内存寻址)、地址线、控制线 • I/O逻辑:在其控制下完成与CPU、设备的通信。 2008年春 •操作系统 • 2006级

  13. 5.1.3 I/O通道-引入 • 通道 • 一种特殊的执行I/O指令的处理机,与CPU共享内存,可以有自己的总线。 • 引入目的 • 解脱CPU对I/O的组织、管理。 • CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。 2008年春 •操作系统 • 2006级

  14. 5.1.3 I/O通道-类型 • 字节多路通道: • 各子通道以时间片轮转方式共享通道,适用于低、中速设备。 • 数组选择通道: • 无子通道,仅一主通道,某时间由某设备独占,适于高速设备。 • 但通道未共享,利用率低。 • 数组多路通道: • 在图5-3中,多子通道不是以时间片方式,而是“按需分配”,综合了前面2种通道类型的优点。 2008年春 •操作系统 • 2006级

  15. 5.1.3 I/O通道 • 通道“瓶颈”问题: • 解决:采用复联方式 • 图5.4 2008年春 •操作系统 • 2006级

  16. 5.1.4 总线系统 • 微机I/O系统 • 设备控制器:与设备是一对多的关系,系统是通过它与设备通信 • 系统―――设备控制器―――设备 • 如:磁盘设备,打印设备 • 缺点:总线瓶颈,CPU瓶颈。 2008年春 •操作系统 • 2006级

  17. 5.1.4 总线系统 • 主机I/O系统(四级结构) • 计算机―I/O通道―I/O控制器―设备 • I/O通道相当于对总线的扩展,即多总线方式,且通道有一定的智能性,能与CPU并行,解决其负担。 • ISA/EISA/LocalBUS/VESA/PCI • 微机I/O系统 2008年春 •操作系统 • 2006级

  18. 本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级

  19. 5.2 I/O控制方式 • 5.2.1 程序I/O方式 (忙—等待方式) • 5.2.2 中断驱动I/O控制方式 • 5.2.3 直接存储器访问DMA I/O控制方式 (用于块设备中) • 5.2.4 I/O通道控制方式 2008年春 •操作系统 • 2006级

  20. 5.2 I/O控制方式 • 四个阶段: • 程序I/O——中断I/O——DMA控制——通道控制。 • 趋势:提高并行度 2008年春 •操作系统 • 2006级

  21. 5.2.1 程序I/O • 查询方式:CPU需花代价不断查询I/O状态 (图5-7a) • CPU资源浪费极大 例:99.9ms+0.1ms=100ms 在5.2.1中99.9在忙等 2008年春 •操作系统 • 2006级

  22. 5.2.1 中断I/O • I/O操作由程序发起,在操作完成时(如数据可读或已经写入,在此之前,该程序可进入等待状态或继续执行)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。 • 向I/O发命令——返回——执行其它任务。 • I/O中断产生——CPU转相应中断处理程序。 如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O——内存 2008年春 •操作系统 • 2006级

  23. 5.2.1 中断I/O • 优点: • 在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。 • 缺点: • CPU每次处理的数据量少(通常不超过几个字节:从设备控制器中的数据缓冲寄存器中存取数据),只适于数据传输率较低的设备。另外, I/O操作频繁,有可能丢失中断信号。 2008年春 •操作系统 • 2006级

  24. 5.2.3 DMA方式 • 引入 • 中断I/O,CPU“字节”干预一次,即每“字节”传送产生一次中断。 • DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O——内存。 • 图5.7c • 组成 • 一组寄存器+控制逻辑(图5.8) • CR(命令/状态);DR(数据);MAR(内存地址); DC(计数) • DMA工作过程(例): 2008年春 •操作系统 • 2006级

  25. Direct Memory Access 2008年春 •操作系统 • 2006级

  26. 2008年春 •操作系统 • 2006级

  27. DMA 2008年春 •操作系统 • 2006级

  28. DMA 2008年春 •操作系统 • 2006级

  29. DMA 2008年春 •操作系统 • 2006级

  30. 5.2.3 DMA方式 • 由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作,而由后者完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。 • 优点: • CPU只需干预I/O操作的开始和结束,而其中的数据读写无需CPU控制, CPU与DMA控制器并行工作。适于高速设备。 • 缺点: • 功能比较简单,不能完成较复杂的要求。 2008年春 •操作系统 • 2006级

  31. 中断方式和DMA方式的区别 • 中断方式在数据缓冲寄存器满时发中断请求,而DMA方式在数据全部传送完时发中断请求。 • 中断方式中,数据从数据缓冲寄存器到内存是CPU在进行中断处理时完成的。而DMA方式数据是直接在DMA控制下完成的。 2008年春 •操作系统 • 2006级

  32. 5.2.4 I/O通道控制方式 • DMA方式: • 对需多离散块的读取仍需要多次中断。 • 通道方式: • CPU只需给出以下信息,通道程序就可完成一组块操作 • 通道程序首址 • 要访问I/O设备 2008年春 •操作系统 • 2006级

  33. 本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级

  34. 5.3 缓冲管理 • 5.3.1 缓冲的引入 • 5.3.2 单缓冲和双缓冲 • 5.3.3 循环缓冲 • 5.3.4 缓冲池(Buffer Pool) 2008年春 •操作系统 • 2006级

  35. 5.3 缓冲管理 • 目的: • 组织管理、分配、释放buffer • 5.3.1 引入 • 缓和CPU和I/O设备间速度不匹配的矛盾。 如:计算——打印buffer——打印 • 减少对CPU的中断频率 如:buffer越大,“buffer满”信号发生频率越低。 • 提高CPU和I/O并行性 2008年春 •操作系统 • 2006级

  36. 缓冲的分类 • 单方向缓冲: • 单缓冲:一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。 • 双缓冲:两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。 • 循环缓冲:多个缓冲区,CPU和外设的处理速度可以相差较大。 • 双方向缓冲 • 缓冲池 2008年春 •操作系统 • 2006级

  37. 5.3.2 缓冲管理-单缓冲 • 由于C和T可并行,M和C或M和T不能并行,因此处理一块数据时间: Max(C,T)+M • 用户进程何时阻塞? 2008年春 •操作系统 • 2006级

  38. 5.3.2 缓冲管理-双缓冲 • 效率有所提高,且进一步平滑了传输峰值。 • 系统处理一块数据的时间约为: • MAX(C,T) • 收发可双向同时传送。(图5-13) 2008年春 •操作系统 • 2006级

  39. 5.3.3 缓冲管理-循环多缓冲 • 类型: • R:空缓冲;G:满缓冲;C:当前缓冲 2008年春 •操作系统 • 2006级

  40. 循环多缓冲的使用 • nextg:指示下一个应取数据的buf • nexti:指示下一个空buf. • Getbuf: • 取nextg对应缓冲区提供使用,将Nextg置为空, Nextg=(Nextg+1)Mod N • 将Nexti对应缓冲区提供使用,将Nexti置为满, Nexti=(Nexti+1)Mod N • Releasebuf: • 若C满,则改为G • 若C空,则改为R 2008年春 •操作系统 • 2006级

  41. 循环多缓冲的同步问题 • Nexti 追上Nextg: 表示输入速度>输出速度,全部buf满, 这时输入进程阻塞 • Nextg追上Nexti: 输入速度<输出速度,全部buf空, 这时输出进程阻塞。 2008年春 •操作系统 • 2006级

  42. 5.3.4 缓冲管理-缓冲池 • 缓冲池:系统提供的公用缓冲 • 组成: • 3个队列: • 空缓冲队列emq • 输入队列inq • 输出队列outq • 四个工作缓冲区: • hin:收容输入数据 • sin:提取输入数据 • hout:收容输出数据 • sout:提取输出数据 2008年春 •操作系统 • 2006级

  43. 5.3.4 缓冲管理-缓冲池 • 四种工作方式 • 1.收容输入 • 2.提取输入 • 3.收容输出 • 4.提取输出 2008年春 •操作系统 • 2006级

  44. 5.3.4 缓冲管理-缓冲池 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) 2008年春 •操作系统 • 2006级

  45. 5.3.4 缓冲管理-缓冲池 Getbuf和Putbuf过程 Getbuf(type) Begin wait(RS(type)); wait(MS(type)); B(number):=takebuf(type); signal(MS(type)); end Putbuf(type) Begin wait(MS(type)); addbuf(type,number); signal(MS(type)); signal(RS(type)); end 2008年春 •操作系统 • 2006级

  46. 本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级

  47. 设备管理的目的 • 提高效率: • 提高I/O访问效率,匹配CPU和多种不同处理速度的外设 • 方便使用: • 方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用 • 方便控制: • 方便OS内部对设备的控制:增加和删除设备,适应新的设备类型 2008年春 •操作系统 • 2006级

  48. 设备管理的功能 • 提供设备使用的用户接口: • 命令接口和编程接口 • 设备分配和释放: • 使用设备前,需要分配设备和相应的通道、控制器。 • 设备的访问和控制: • 包括并发访问和差错处理。 • I/O缓冲和调度: • 目标是提高I/O访问效率 2008年春 •操作系统 • 2006级

  49. 5.4 设备分配 • 5.4.1 设备分配中的数据结构 • 5.4.2 设备分配时应考虑的因素 • 5.4.3 设备独立性 • 5.4.4 独占设备的分配程序 • 5.4.5 SPOOLing技术 2008年春 •操作系统 • 2006级

  50. 5.4 设备分配 • 包括:对设备、设备控制器、通道的分配 • 5.4.1 数据结构 • 设备控制表DCT • 控制器控制表(COCT) • 通道表(CHCT) • 系统设备表(SDT)图5-17 SDT:记录了系统中全部设备及其驱动程序地址。 2008年春 •操作系统 • 2006级

More Related