网站大量收购闲置独家精品文档,联系QQ:2885784924

5.3输入/输出软件组织.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3 输入/输出软件组织 5.3.1 输入/输出软件的层次结构 输入/输出软件的设计目标就是将软件组织成一种层次结构,底层的软件用来屏蔽输入/输出硬件的细节,从而实现上层的设备无关性(即设备独立性,将在5.3.4节介绍),高层软件则主要为用户提供一个统一、规范、方便的接口。 为了实现这个目标,操作系统把输入/输出软件组织分成以下层次: 中断处理程序、设备驱动程序、与设备无关的I/O软件、用户层的输入/输出软件。 图5.5列出了这四个层次以及每层软件的主要功能,其中箭头表示控制流。 5.3.2 中断处理程序 在设备控制器的控制下,I/O设备完成了I/O操作后,控制器便向CPU发出一个中断请求,CPU响应后便转向中断处理程序。 无论是哪种I/O设备,其中断处理程序的处理过程大体相同(如图5.6所示),主要有以下几个阶段: ① 检查CPU响应中断的条件是否满足 如果有来自于中断源的中断请求,并且CPU允许中断,则CPU响应中断的条件满足;否则中断处理无法进行。 5.3.3 设备驱动程序 不同类型的设备应有不同的设备驱动程序,所谓设备驱动程序是指驱动物理设备和DMA控制器或I/O控制等直接进行I/O操作的子程序集合。 设备驱动程序主要负责启动指定设备,即负责设置与相关设备有关的寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。 其具体处理过程是:用户进程发出I/O请求→系统接受这个I/O请求→设备驱动程序具体完成I/O操作→I/O完成后,用户进程重新开始执行。 图5.7是I/O请求处理过程示意图。 5.3.4 与设备无关的I/O软件 1. 设备无关性的概念 为了提高操作系统的可扩展性和适应性,人们提出了设备无关性(即设备独立性)的概念。 其含义是:用户编写的应用程序独立于具体使用的物理设备,即使设备更换了,应用程序也不用改变。 为了实现设备独立性而引入了逻辑设备和物理设备的概念。 所谓逻辑设备是实际物理设备属性的抽象,它并不局限于某个具体设备。 优点: ① 使得设备分配更加灵活。 ② 可以实现I/O重定向。 所谓I/O重定向是指可以更换I/O操作的设备而不必改变应用程序。 2. 与设备无关的软件 设备驱动程序是一个与硬件(或设备)紧密相关的软件,为了实现设备独立性,就必须在驱动程序之上设置一层与设备无关的软件。 其主要功能如下: ⑴ 向用户层软件提供统一接口。 ⑵ 设备命名。 ⑶ 设备维护。 ⑷ 提供一个独立于设备的块。 ⑸ 对独占设备的分配与回收。 ⑹ 缓冲管理。 ⑺ 差错控制。 5.3.5 用户层的I/O软件 用户层的I/O软件是I/O系统软件的最上层软件,负责与用户和设备无关的I/O软件通信,即它面向程序员,当接收到用户的I/O指令后,把具体的请求发送到设备无关的I/O软件,进行进一步的处理。 它主要包含用于I/O操作的库例程和SPOOLing(Simultaneous Peripheral Operations On-Line,即在联机情况下实现的同时外围操作)系统 * 硬件 中断处理程序 设备驱动程序 设备无关类软件 用户程序 层次 I/O请求 I/O应答 I/O功能 进行I/O调用 格式化I/O SPOOLing 命名 保护 阻塞 缓冲 分配 建立设备寄存器 检查状态 当I/O结束时,唤醒驱动程序 执行I/O操作 图5.5 I/O系统的层次结构 判断中断响应条件 关中断 保存被中断现场 分析中断原因,转入中断处理程序 执行中断处理程序 恢复现场 开中断 返回中断点 中断请求 图5.6 中断处理过程 ②CPU响应中断后立即关中断 如果CPU响应中断,则它立即关中断,使其不能再次响应其它中断。 ③保存被中断进程的CPU环境 ④分析中断原因,转入相应的设备中断处理程序 ⑤执行中断处理程序 ⑥恢复被中断进程的CPU现场 ⑦开中断,CPU继续执行 …… …… print(…); …… write(…); 文件操作 写文件 (文件系统) 设备驱动 终端输出 (文件管理) I/O完成中断处理 …… 用户空间 核心空间 系统调用处理 操作系统程序 图5.7 I/O请求处理过程示意图 下面简要说一下此过程,其中重点叙述设备驱动程序的处理过程。 ⑴用户进程发出I/O请求。 ⑵执行到与I/O请求相对应的系统调用后,转去执行操作系统的核心程序,此时进程的状态由用户态转到核心态。 ⑶设备驱动程序是控制设备动作(如设备的打开、关闭、读、写等)的核心模块,,用来控制设备上数据的传输。 一般来说,设备驱动程序接受来自上层与设备无关软件的抽象请求,并

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档