- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机操作系统》(孙雅如版)全套PPT电子课件教案-第4章 设备管理参考
图4-4 Getbuf与Putbuf流程图 3.缓冲区的工作方式 缓冲区可以工作在收容输入、提取输入、收容输出和提取输出四种工作方式下。 1) 收容输入工作方式 在输入进程需要输入数据时,便调用Getbuf(emq)过程,从emq队列的队首摘下一个空缓冲区,把它作为收容输入工作缓冲区hin。然后将数据输入其中,装满后再调用Putbuf (inq,hin)过程,将该缓冲区挂在输入队列inq的队尾。 2) 提取输入工作方式 当计算进程需要输入数据时,调用Getbuf(inq)过程,从输入队列取得一个缓冲区作为提取输入工作缓冲区,计算进程从中提取数据。计算进程用完该数据后,再调用Putbuf (emq,sin)过程,将该缓冲挂到空缓冲队列emq上。 3) 收容输出工作方式 当计算进程需要输出时调用Getbuf(emq)过程,从空缓冲队列emq的队首取得一个空缓冲,作为收容输出工作缓冲区hout。当其中装满输出数据后,又调用Putbuf(outq,hout)过程,将该缓冲区挂在outq末尾。 4) 提取输出工作方式 当要输出时,由输出进程调用Getbuf(outq)过程,从输出队列的队首取得一个装满输出数据的缓冲区,作为提取输出工作缓冲区sout。在数据提取完后,再调用Putbuf(emq,sout)过程,将它挂在空缓冲队列的末尾。 4.4 设 备 分 配 4.4.1 设备分配的原则与策略 1.设备分配原则 设备分配的原则是根据设备特性、用户要求和系统配置情况决定的。设备分配的总原则是既要充分发挥设备的使用效率,尽可能使设备忙,但又要避免由于不合理的分配方法而造成进程死锁;另外还要做到把用户程序和具体物理设备隔离开来,即用户程序面对的是逻辑设备,而分配程序将在系统把逻辑设备转换成物理设备之后,再根据相应的物理设备号进行分配。 设备分配方式有两种,即静态分配和动态分配。静态分配方式是在用户进程开始执行之前,由系统一次分配该进程所要求的全部设备、控制器和通道。一旦分配之后,此设备、控制器和通道就一直为该进程所占用,直到该进程被终止。静态分配方式不会出现死锁,但设备的使用效率低,因此静态分配方式并不符合设备分配的总原则。动态分配是在进程执行过程中根据执行时不同阶段的具体需要进行分配。当进程需要设备时,通过系统调用命令向系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备、I/O控制器和通道,一旦用完之后便立即释放。动态分配方式有利于提高设备的利用率,但如果分配算法使用不当,则有可能造成进程死锁。 2.设备分配策略 与进程调度相似,动态设备分配也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配策略等。 1) 先请求先分配 当有多个进程对某一设备提出I/O请求时,系统按提出I/O请求的先后顺序将进程发出的I/O请求消息排成队列。当该设备空闲时,系统从该设备的请求队列的队首取下一个I/O请求消息,将设备分配给发出这个请求消息的进程。 2) 优先级高者先分配 这种策略中的优先数和进程的优先数是一致的,即进程的优先级高,它的I/O请求也优先予以满足。对于相同优先级的进程来说,则按先请求先分配策略分配。优先级高者先分配策略把请求某设备的I/O请求命令按进程的优先级组成队列,从而保证在该设备空闲时,系统能从I/O请求队列取下一个具有最高优先级进程发来的I/O请求命令,并将设备分配给发出该命令的进程。 4.4.2 设备分配中使用的数据结构 设备的分配和管理通过下列数据结构进行。 1.设备控制表DCT(Device Control Table) 设备控制表DCT反映设备的特性、设备和I/O控制器连接情况。系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。DCT包括以下内容: (1) 设备标识符:用来区别设备。 (2) 设备类型:反映设备的特性,例如是终端设备、块设备或字符设备等。 (3) 设备地址或设备号:每个设备都有相应的地址或设备号,这个地址既可以是内存编址方式,也可以是单独编址的。 (4) 设备状态:指设备是处于工作状态还是处于空闲状态中。 (5) 等待设备队列指针:等待使用该设备的进程组成等待队列,其队首和队尾指针存放
您可能关注的文档
- Visual Basic.NET编程PPT电子课件教案-第1章 介绍Visual Basic.NET参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第2章 使用Visual Studio参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第5章 运行错误和异常处理参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第4章 Visual Basic语法:控制和过程参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第3章 Visual Basic语法基础参考.ppt
- TEM E6手机促销培训手册参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第6章 VB.NET框架(Framework)参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第9章 OOP(上)参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第8章 WINDOWS应用程序的控件参考.ppt
- Visual Basic.NET编程PPT电子课件教案-第7章 创建WINDOWS应用程序参考.ppt
文档评论(0)