计算机操作系统—设备管理.ppt

  1. 1、本文档共148页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
* I/O进程的实现 I/O进程也可分为三种方式实现。即: a. 每类(个)设备设一专门的I/O进程,且该进程只能在系统态下执行。 b. 整个系统设一I/O进程,全面负责系统的数据传送工作。又可把I/O进程分为输入进程和输出进程。 c. 每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行。 * 6、设备驱动程序 设备驱动程序是驱动物理设备和DMA控制器或I/O控制器等直接进行I/O操作的子程序的集合。负责设置相应设备有关寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。 为了对驱动程序进行管理,系统中设置有设备开关表DST。设备开关表中给出相应设备的各种操作子程序的入口地址,例如打开、关闭、读、写和启动设备子程序的入口地址。一般设备开关表是二维结构,其中的行和列分别表示设备类型和驱动程序类型。设备开关表也是I/O进程的一个数据结构。I/O控制过程为进程分配设备和缓冲区之后,可以使用设备开关表调用所需的驱动程序进行I/O操作。 * 7、磁盘存储器管理 磁盘概述 磁盘调度算法 磁盘容错技术 文件系统性能的改善 数据一致性控制 * 磁盘概述 目前,几乎所有随机存取的文件,都是存放在磁盘上,磁盘I/O速度的高低将直接影响文件系统的性能。 硬盘分为两种: 固定头磁盘:每个磁道设置一个磁头,变换磁道时不需要磁头的机械移动,速度快但成本高。 移动头磁盘:一个盘面只有一个磁头,变换磁道时需要移动磁头,速度慢但成本低。 * 柱面 扇区 磁臂 磁头 侧视图 * 磁道 扇区 俯视图 * 柱面、磁头、扇区 信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头 所有盘面中处于同一磁道号上的所有磁道组成一个柱面 每个扇区大小为512字节 物理地址形式: 柱面号 磁头号 扇区号 * 典型参数 20G: 39813 柱面 16 头 63 扇区 60G: 28733 柱面 16 头 255 扇区 * 磁盘的访问过程 由三个动作组成: 寻道 :磁头移动定位到指定磁道 旋转延迟:等待指定扇区从磁头下旋转经过 数据传输:数据在磁盘与内存之间的实际传输 * 磁盘的访问时间 寻道时间Ts:大约几ms到几十ms 旋转延迟时间Tr:对于7200转/分,平均延迟时间为4.2ms 数据传输时间Tt:目前磁盘的传输速度一般有几十M/s,传输一个扇区的时间小于0.05ms * 思考 要提高磁盘的数据访问速度,主要应在哪方面下功夫? * 分析 要提高磁盘的访问速度主要应从以下两方面入手: 数据的合理组织 磁盘的调度算法 * 磁盘调度算法 当多个访盘请求在等待时,采用一定的策略,对这些请求的服务顺序调整安排,旨在降低平均磁盘服务时间,达到公平、高效 公平:一个I/O请求在有限时间内满足 高效:减少设备机械运动所带来的时间浪费 先来先服务 最短寻道时间优先 扫描算法 单向扫描调度算法 * 按访问请求到达的先后次序服务 优点:简单,公平; 缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利 先来先服务 * 假设磁盘访问序列:98,183,37,122,14,124,65,67 读写头起始位置:53 安排磁头服务序列 计算磁头移动总距离(道数) 例 * 图解 98,183,37,122,14,124,65,67 磁头走过的总道数:640 * 缓冲池工作过程 使用这几个操作,缓冲池的工作过程可描述如下: 首先,输入进程调用get_buf(em,number)过程从空白缓冲区队列中取出一个缓冲号为number的空白缓冲区,将其作为收容输入缓冲区hin,当hin中装满了由输入设备输入的数据之后,系统调用过程put_buf(in,hin)将该缓冲区插入输入缓冲区队列in中。 另外,当进程需要输出数据时,输出进程经过缓冲管理程序调用过程get_buf(em,number)从空白缓冲区队列中取出一个空白缓冲区number作为收容输出缓冲区hout,待hout中装满输出数据之后,系统再调用过程put_buf(out,hout)将该缓冲区插入输出缓冲区队列out。 * 缓冲池工作过程(续) 对缓冲区的输入数据和输出数据的提取也是由过程get_buf和put_buf实现的。get_buf(out,number)从输出缓冲队列中取出装满输出数据的缓冲区number,将其作为sout。当sout中数据输出完毕时,系统调用过程put_buf(em,sout)将该缓冲区插入空白缓冲队列。而get_buf(in,number)则从输入缓冲队列中取出一个装满输入数据的缓冲区number作为输入缓冲区sin,当CPU从

文档评论(0)

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

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

认证主体欧**

1亿VIP精品文档免费下

相关文档

相关课程推荐