操作系统6-2.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 第十五讲 设备管理、磁盘设备 目的与要求:理解设备管理子系统的层次,功能及技术、了解磁盘设备。 重点与难点:层次结构;设备驱动程序;缓冲技术;磁盘调度的方法;盘阵选择。 作业: 6,8,11,16,18 6.2.2 输入输出层次结构 通常,操作系统将设备管理系统划分并组织成三个层次: 用户层I/O 设备无关的I/O 设备驱动及中断处理 用户层I/O 设备驱动及中断处理 硬件 系统调用接口,设备无关的操作系统软件 用户进程 用户层I/O 设备无关的I/O 设备驱动及中断处理 硬件 设备管理子系统 逻辑结构图 核心态运行 用户程序 标准C库I/O函数 内核总控 系统调用处理总控 Write处理(文件系统、TCP/IP) 磁盘控制器/网卡 盘/网卡中断处理 用户态 核心态 异步调用接口 磁盘驱动程序/网卡驱动 系统调用各模块关系图 系统调用接口 用户程序 一、用户层I/O 这一层与设备的控制细节无关,不直接与设备打交道。 它将设备(或在设备上的逻辑对象)看作逻辑资源,为用户进程提供各类I/O函数。用户以设备标识符和一些简单的函数来使用设备,如打开、关闭、读、写等。 如C库中的函数fopen(); fread(); fwrite(); fclose()等 。 二、设备无关的I/O 这一层的基本功能:执行适用于所有设备的公共I/O功能,并向其上层提供统一的系统调用接口。主要任务: 设备命名及与设备驱动程序的映射。在UNIX中,如/dev/tty00唯一地确定了一个inode数据结构,其中包含了主设备号,通过主设备号可以找到相应的设备驱动程序。 设备访问保护。 分配及释放独占型设备。 设备I/O数据缓冲机制。 文件系统功能、TCP/IP协议等(支持设备上的逻辑存储、通讯对象) 三、设备驱动与中断处理 设备驱动程序 包括了所有与设备相关的代码,其功能是从与设备无关的软件中接收I/O的请求,排入请求队列或执行之。 中断处理 当进程进行I/O操作时,将其阻塞至I/O操作结束并发生中断。中断发生时,由中断处理程序启动请求排队的下一请求(如果有)并解除等I/O进程的阻塞状态,使其能够继续执行。 6.2.3. 缓冲技术 一、单缓冲 当用户进程发出I/O请求时,操作系统在主存的系统空间为该操作分配一个缓冲区,可以实现预读和滞后写。 在进程数据区与外设之间设立缓冲区可以改善进程运行速度与I/O传输速度之间的速差矛盾。 二、双缓冲 可以实现用户数据区—缓冲区之间交换数据和缓冲区—外设之间交换数据并行。 三、循环缓冲 引入系统缓冲池,采用有限缓冲区的生产者/消费者模型对缓冲池中的缓冲区进行循环使用。 缓冲区结合预读和滞后写技术对具有重复性及阵发性I/O进程提高I/O速度很有帮助。 缓冲A 缓冲G 缓冲E 缓冲C 缓冲B 缓冲D 缓冲F 缓冲H Hash表方式的设备缓冲队列 空闲队列头 缓冲区管理示例 6.2.4.设备驱动程序 一.设备驱动程序接口函数 驱动程序初始化函数:这个函数是为了使驱动程序其它函数能被上层正常调用,而做一些针对驱动程序本身的初始化工作。如向操作系统登记该驱动程序的接口函数,该初始化函数在系统启动时或驱动程序安装入内核时执行。 驱动程序卸载函数:是驱动程序初始化函数的逆过程,在支持驱动程序可动态加载卸载的系统中才需要。 申请设备函数:该函数申请一个驱动程序所管理的设备,按照设备特性进行独占式占用或者分时共享式占用,如果是独占式申请成功还应该对设备做初始化工作。 释放设备函数:是申请设备函数的逆过程。 I/O操作函数:这个函数实现对设备的I/O。如果对独占型设备,包含了启动I/O的指令,对分时共享型设备,该函数通常将I/O请求形成一个请求包,将其排到设备请求队列,如果请求队列空,则直接启动设备。 中断处理函数:这个函数在设备I/O完成时向CPU发中断后被调用。该函数对I/O完成作善后处理,一般是找到等待刚完成I/O请求的阻塞进程,将其就绪,使其能进一步作后续工作。如果存在I/O请求队列,则启动下一个I/O请求。 5.设备管理有关的数据结构 描述设备、控制器等部件的表格。系统中常常为每一个部件、每一台设备分别设置一张表格,常称为部件控制块或设备表。这类表格具体描述设备的类型、标识符、进行状态,以及当前使用者的进程标识符等。 建立同类资源的队列。系统为了方便对I/O设备的分配管理,通常在设备表的基础上通过指针将相同物理属性的设备联成队列(称设备队列)。 面向进程I/O请求的动态数据结构。每当进程发出块I/O请求时,系统建立一张表格(称I/O请求包)。将此次I/O请求的参数填入表中,同时

文档评论(0)

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

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

1亿VIP精品文档

相关文档