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

计算机操作系统6单元1节.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 多通路I/O系统的设备分配 假定某进程n向系统提出I/O请求,要求为它分配一台I/O设备。于是系统可选取该类设备中的任何一台设备分配给该进程。其步骤如下:  (1) 根据要求I/O的进程n所提供的设备类型, 检索SDT表,找到第一个该类物理设备的UCB,由状态信息可知其忙闲情况。若忙, 则检查第二个物理设备的UCB。若该类型的全部设备都处于忙碌状态, 表明该类设备已分配完毕。进程n的此次I/O请求无法满足, 只好把进程n插入到等待该类设备的队列中。 只要在该类设备中有一个空闲设备,系统便可对其计算分配该设备给进程n的安全性。 若安全,则把设备分配给进程n,否则将其插入该类设备的等待队列。 (2) 当系统把第i个设备分配给进程n后,便可通过检查与此设备相连的第一个CUCB,而得知该控制器是否忙碌;若忙, 再检查第二个CUCB表。若与此设备相连的所有的控制器都忙,则表明无控制器可分配给设备i。只要设备i不是该类设备中的最后一个,便可返回到步骤(1),试图再找下一个空闲设备;否则,仍将该进程插入控制器等待队列中。 (3) 若有空闲的控制器,便可进一步检查与此控制器相连的第一个通道是否忙碌。若忙,再查看第二个CCB表,若与此控制器相连的全部通道都忙,表明无通道可分配给控制器j。只要控制器j不是该设备i的最后一个控制器,便返回到步骤(2),试图找出一个空闲的控制器,否则,将该进程插入通道等待队列。 若有空闲通道可用,则此次设备分配成功,将相应的设备、控制器和通道分配给进程n,接着便可启动I/O设备,开始信息传送。 多通路I/O系统设备分配的流程示于图 6.21。 图 6.21 设备分配流程图 图 6.22 I/O系统概貌 1. I/O系统概貌 6.7.1 I/O系统的结构 6.7 Windows NT的I/O系统 NT执行体的I/O系统接收用户态和核心态进程的I/O请求, 以不同的方式传送到I/O设备。I/O系统由一组负责处理各种设备的输入/输出部件构成。 这些部件有:  (1) I/O管理程序;  (2) 文件系统;  (3) 缓冲存储管理器(Cache Manager);  (4) 设备驱动程序(Device Driver);  (5) 网络转发程序(NetWork Redirector)和网络服务程序(Network Server)。 2. I/O管理程序 I/O管理程序建立了NT执行体的I/O模型,它实现与设备无关的输入/输出,即它并不进行实际的I/O处理。它的主要工作是建立一个代表I/O操作的I/O请求包IRP(I/O Request Packet),把IRP传送给适当的驱动程序并在I/O完成后处理其结果,最后撤消IRP。 与此相反,驱动程序接收IRP,执行IRP规定的操作,并在完成后将IRP传回I/O管理程序或通过驱动程序再传到另一驱动程序, 以求进一步的处理。  I/O系统采用包驱动方式,每个I/O请求都用一个I/O请求包来表达。每个IRP是一个数据结构,用以控制在每一操作步骤上的I/O操作的处理。 3. 虚拟文件 除了I/O管理程序,该结构中还有四类驱动程序:文件系统、缓冲存储管理程序、 设备驱动程序、网络转发程序。要把这四类功能、特性均不相同的部件组合在一起,并建立一个一体化的统一系统,必须进行高层的抽象,建立一个统一的逻辑模型。 NT建立的逻辑模型吸收了UNIX I/O系统的概念,认为“所有的读写数据都看成是直接送往虚拟文件的字节流”。虚拟文件用文件描述符表示, 处理虚拟文件就像处理一个真正的文件。由操作系统判定这个虚拟文件究竟是设备、管道、网络还是磁盘上的真正文件。 图 6.23 打开一个文件对象 6.7.2 驱动程序模型 每一个驱动程序都由以下标准成套(或组合)组成: (1) 一个初始化程序;  (2) 一组调度程序;  (3) 一个启动I/O的程序;  (4) 一个中断服务程序;  (5) 一个中断服务DPC(延迟过程调用)程序;  (6) 一个完成例程;  (7) 一个撤消I/O例程;  (8) 一个卸载例程;  (9) 一个出错记录例程。 6.7.3 异步I/O操作 图 6.24 同步I/O操作 同步I/O操作过程可归纳如下:  (1) 按用户要求,I/O管理程序为之形成IRP, 并把它传送给驱动程序, 由驱动程序完成I/O操作。  (2) 设备完成I/O操作后,发中断请求,设备驱动程序中的中断处理程序进行

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档