操作系统第8章解读.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 8.14 I/O控制可用哪几种方式实现? 各有什么优缺点? 8.15 设备驱动程序是什么?为什么要有设备驱动程序?用户进程怎样使用驱动程序? * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 首先,输入进程调用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从中提取完所需数据之后,系统调用过程put_buf(em,sin)将该缓冲区释放和插入空白缓冲队列em中。 显然,对于各缓冲队列中缓冲区的排列以及每次取出和插入缓冲队列区的顺序都应有一定的规则。最简单的方法是FIFO,即先来先出的排列方法。采用FIFO方法,过程put_buf每次把缓冲区插入相应缓冲队列的队尾,而过程get_buf则取出相应缓冲队列的第一个缓冲区,从而get_buf中的第二个参数number可以省略。而且,采用FIFO方法也省略了对缓冲队列的有哪些信誉好的足球投注网站时间。 过程add_buf(type,number)和take_buf(type,number)分别用来把缓冲区number插入type队列和从type队列中取出缓冲区number。它们分别被过程get_buf和put_buf调用,其中, take_buf返回所取缓冲区number的指针, 而add_buf则将给定缓冲区number的指针链入队列。 下面给出过程get_buf和put_buf的描述。 首先,设互斥信号量S(type),其初值为1。 设描述资源数目的信号量RS(type),其初值为n(n为type队列长度)。 get_buf(type,number): begin P(RS(type)) P(S(type)) Pointer of buffer(number) = take_buf(type,number) V(S(type)) end put_buf(type,number): begin P(S(type)) add_buf(type,number) V(S(type)) V(RS(type)) end 设 备 分 配 前面已经介绍了I/O数据传送控制方式及与其紧密相关的中断技术与缓冲技术。在讨论这些问题时,已经做了如下假定:即每一个准备传送数据的进程都已申请到了它所需要的外围设备、控制器和通道。事实上,由于设备、控制器和通道资源的有限性,不是每一个进程随时随地都能得到这些资源。进程必须首先向设备管理程序提出资源申请,然后,由设备分配程序根据相应的分配算法为进程分配资源。如果申请进程得不到它所申请的资源时,将被放入资源等待队列中等待,直到所需要的资源被释放。 下面,讨论设备分配和管理的数据结构、分配策略原则以及分配算法等。 1 设备分配用数据结构 设备的分配和管理通过下列数据结构进行。 1.1. 设备控制表DCT(Device Control Table) 设备控制表DCT反映设备的特性、设备和I/O控制器的连接情况。包括设备标识、使用状态和等待使用该设备的进程队列等。系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。DCT包括以下内容: (1) 设备标识符,设备标识符用来区别设备。 (2) 设备类型,反映设备的特性,例如是终端设备、块设备或字符设备等。 (3) 设备

文档评论(0)

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

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

1亿VIP精品文档

相关文档