- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第6章输入输出管理剖析
IN指向可接收数据的空闲缓冲区的首址,OUT指针指向装好数据且未取走的缓冲区首址。 系统初启时,指针被初始化为IN和OUT与首指针START相等,即START=IN=OUT。 对于输入信息而言,设备接收信息时,信息输入到IN指向的缓冲区,当一个缓冲区装满后,IN指针指向下一个空闲缓冲区; 当从缓冲区中提取信息时,提取由OUT指向的缓冲区中的信息,提取完毕,将OUT指针指向下一个装满信息的缓冲区。 系统必须考虑到这种方案的约束条件,即INOUT( 初始状态除外)。 从设备输入信息的操作和提取信息的操作共用环形缓冲时有一定的同步关系:OUTIN。当OUT到达IN时,处理数据的进程必等待。由于该方案是个环形链;故当IN指针达到最后一个缓冲区时,它将指向START指 当IN到达OUT时,从设备输入信息的操作也必须等待。? 四、缓冲池 环形缓冲区一般用于特定的进程,属于专用缓冲区,当系统较大时,将会有许多这样的环形缓冲区,这不仅要消耗大量的内存空间,利用率也不高。 为了提高缓冲区的利用率,目前广泛流行公用缓冲池,池中的缓冲区可供多个进程共享。 ? 缓冲池由内存中一组大小相等的缓冲区组成,池中各缓冲区的大小与用于I/O的设备的基本信息单位相似,缓冲池属于系统资源,由系统进行管理。 缓冲池中各缓冲区可用于输出信息,也可用于输入信息,并可根据需要组成各种缓冲区队列。 缓冲池技术示意图 缓冲区1 hin sin sout hout 缓冲区m 缓冲区n 缓冲区k 收容输入 提取输出 I/O设备 提取输入 收容输出 CPU 缓冲池中工作缓冲区 6.3 磁盘调度 6.3.1 常见存储外设 (1)光学存储设备 CD-ROM; CD-R,CD-RW。 (2)磁盘 数据组织 一个磁盘有多个盘面组成,盘面有同心圆磁道组成,磁道有扇区组成,扇区为基本传输单位。 物理特性 单磁头,多磁头。 多磁头活动头磁盘平面示意图 ①字节多路通道示例 ②数组选择通道 这种通道一次执行一个通道程序,控制一台设备连续地传送一批数据,当一个程序执行完后,才转向下一个程序,它的优点是传输速度高,缺点是一次只能控制一台设备进行I/O操作。它主要用来控制高速外设。如磁盘。 数组选 择通道 ③数组多路通道 这种通道是上述两种通道的折中,可以分时的方式执行多道程序,每道程序可传送一组数据。它主要用于中速设备的控制。如磁带机。 在一大型系统中可以同时存在这三种类型的通道以便控制各种不同类型的设备。 ※6.2 I/O软件 I/O软件的层次及其设计 (1)I/O软件的总体目标 按分层的思想构造软件,较低层的软件要使较高层的软件独立于硬件,较高层的软件则要向用户提供一个友好、规范、清晰的界面。 (2)I/O软件设计的具体目标 ①设备独立性。让应用程序独立于具体的物理设备。 ②统一命名。一个文件或一个设备的名字应该是一个简单的字符串或一个整数,它不应依赖于设备。 ③同步/异步传输。大多数物理I/O是异步的,但应可与CPU同步。 ④出错处理。一般说来,错误应尽可能地在接近硬件的层上处理。 ⑤设备共享与独占。有些I/O设备应共享,如磁盘,而有些I/O设备应独占,如打印机等。 (3)I/O软件的层次 根据I/O软件的设计目标,将I/O软件组织成以下4个层次:中断处理程序、设备驱动程序、与设备无关的I/O软件和用户空间的I/O软件。 用户进程 用户层I/O 设备无关的I/O 设备驱动程序 及中断处理程序 硬件 设备管理子系统 I/O软件层次的逻辑结构图 6.2.1 中断处理程序 (第一层) 中断处理程序的主要任务: 在采用中断驱动方式管理I/O设备时,当设备完成任务后,会向CPU发出中断信号,CPU分析中断原因,并调用对应的中断处理程序进行处理。中断处理程序进行相应的检查并取走数据,然后从中断处理程序返回至原来的执行点,继续执行。 中断处理程序的基本步骤: 无论是哪一种I/O设备,其中断处理程序的处理基本相同,其步骤为: ①唤醒被阻塞的驱动进程。 ②保护被中断进程的CPU环境。 ③分析中断原因,转入相应的中断处理程序。 ④进行中断处理。 ⑤恢复现场。 7.2.2设备驱动程序(第二层) 设备驱动程序中存放着所有与设备相关的代码,每一类设备配置一种驱动程序。设备驱动程序的功能有如下几点: ①将接收到的来自它上一层的与设备无关的抽象请求转为具体请求。 如:请求“读第N块”,磁盘驱动程序应计算请求块的物理地址,检查驱动器的电机是否正在运转,确定磁头臂是否定位在正确的柱面上等。 ②检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数、设置设备的工作方式。
文档评论(0)