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

上传人:s****8 文档编号:82772060 上传时间:2023-03-26 格式:PPT 页数:54 大小:301.50KB
返回 下载 相关 举报
计算机操作系统---设备管理.ppt_第1页
第1页 / 共54页
计算机操作系统---设备管理.ppt_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《计算机操作系统---设备管理.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统---设备管理.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、制作者:张晓艳制作者:张晓艳 2010年年5月月第四章第四章 设备管理设备管理设备管理程序的功能设备管理程序的功能:(1)提供和进程管理系统的接口。)提供和进程管理系统的接口。(2)进行设备分类。按照设备类型和相应的分配算法把设备)进行设备分类。按照设备类型和相应的分配算法把设备和其他有关的硬件分别给请求该设备的进程,并把未分配到所和其他有关的硬件分别给请求该设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列。请求设备或其他有关硬件的进程放入等待队列。(3)实现设备和设备、设备和)实现设备和设备、设备和CPU等之间的并行操作。等之间的并行操作。(4)进行缓冲管理,解决低速)进行

2、缓冲管理,解决低速I/O设备与高速设备与高速CPU之间传送之间传送数据不匹配问题。数据不匹配问题。4.3 缓冲管理缓冲管理 引入缓冲技术的目的引入缓冲技术的目的 改善中央处理器与外围设备之间速度不配的矛盾,凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。减少对CPU的中断频率,放宽对CPU中断响应时间的限制,提高CPU和I/O设备的并行性。缓冲技术实现的基本思想:缓冲技术实现的基本思想:进程执行写操作进程执行写操作输出数据输出数据时,向系统申时,向系统申请一个缓冲区,若为顺序写请求,则不断把请一个缓冲区,若为顺序写请求,则不断把数据填到缓冲区,直到被装满。此后,进程数据填到缓冲区,直到被装

3、满。此后,进程继续它的计算,系统将缓冲区内容写到继续它的计算,系统将缓冲区内容写到I/O设设备上。备上。进程执行读操作进程执行读操作输入数据输入数据时,向系统申请时,向系统申请一个缓冲区,系统将一个物理记录的内容读一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程要求,把当前需要的逻到缓冲区,根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。辑记录从缓冲区中选出并传送给进程。在输出数据时,只有在系统还来不及腾空在输出数据时,只有在系统还来不及腾空缓冲而进程又要写数据时,它才需要等待;缓冲而进程又要写数据时,它才需要等待;在输入数据时,仅当缓冲区空而进程又要从在输入数据时,仅当

4、缓冲区空而进程又要从中读取数据时,它才被迫等待。中读取数据时,它才被迫等待。根据系统对缓冲区的不同设置,可把缓冲技根据系统对缓冲区的不同设置,可把缓冲技术分为以下几类:术分为以下几类:v 单缓冲单缓冲v 双缓冲双缓冲v 循环缓冲循环缓冲v 缓冲池缓冲池单缓冲单缓冲 单缓冲是操作系统提供的最简单的一种缓冲形式。每当一个进程发出一个I/O请求时,操作系统便在主存中为之分配一缓冲区,该缓冲区用来临时存放输入/输出数据。对于块设备块设备,单缓冲机制如下工作:OS为进程分配一缓冲区,块设备输入时从磁盘把一块数据输入缓冲区的时间为T,OS将缓冲区的数据传送给用户区的时间为M,计算时间为C,则T和C时可以并

5、行的。数据处理时间约为 maxC,T+M。对于字符设备字符设备,缓冲区用于暂存用户输入的一行数据,输入时,进程挂起等待输入完毕;输出时进程将一行数据输入到缓冲区,继续执行处理。如果前面的数据尚未提取完毕,则进程应阻塞。工作区用户进程用户进程 处理机单缓冲输入输入(T)传送传送(M)I/O设备设备 缓冲区属于临界资源临界资源,不允许多个进程同时对一个缓冲区操作,读、写在单缓冲上互斥发生,因此单缓冲无法实现CPU与设备的并行操作。缓冲区属于临界资源临界资源,不允许多个进程同时对一个缓冲区操作,读、写在单缓冲上互斥发生,因此单缓冲无法实现CPU与设备的并行操作。一次仅允许一个进程一次仅允许一个进程访

6、问的资源称为访问的资源称为临界临界资源资源。硬件资源硬件资源 如打印机、如打印机、磁带机等。磁带机等。软件资源软件资源 如共享变如共享变量、表格、队列、栈量、表格、队列、栈等。等。双缓冲双缓冲提高设备并行操作提高设备并行操作l 输入数据时,首先填满缓冲区A,操作系统可从缓冲区A把数据送到用户进程区,用户进程便可对数据进行加工计算;与此同时,输入设备填充缓冲区B。l 当缓冲区A空出后,输入设备再次向缓冲区1输入。操作系统又可把缓冲区B的数据传送到用户进程区,用户进程开始加工缓冲B的数据。双缓冲工作区用户进程用户进程处理机缓冲区A缓冲区BI/O设备设备写读 双缓冲工作区用户进程用户进程处理机缓冲区

7、A缓冲区BI/O设备设备写读 如果CT,当上一块数据计算完毕后,需把一个缓冲区中的数据传送到用户区,花费时间为M,再对这块数据进行计算,花费时间为C,所以,一块数据的传输和处理时间为C+M、即max(C,T)+M,这种情况下进程不必要等待I/O。计算机系统中的外围设备较多,读/写数据速度有很大的差异,在向缓冲区读/写数据的过程中,高速设备等待的情况仍然比较严重,设备利用率比较低。双缓冲双缓冲循环缓冲循环缓冲 环形缓冲技术是在主存中分配一组大小相等的存储区作为缓冲区,并将这些缓冲区链接起来,每个缓冲区中有一个指向下一个缓冲的指针,最后一个缓冲区的指针指向第一个缓冲区,这样n个缓冲区就成了一个环形

8、。三种类型的缓冲区:用于装输入数据的空缓冲区R、已经装满数据的缓冲区G、以及计算进程正在访问的工作缓冲区C。设置了四个指针。Current_W R RCGCGGNext iNext gCurrent_R循环缓冲循环缓冲Nexti :指示写进程下次可用的空缓冲区RCurrent_W R RCGCGGNext iNext gCurrent_R循环缓冲循环缓冲Nextg:指示读进程下一个可用的缓冲区GCurrent_W R R CGCGGNext iNext gCurrent_R 循环缓冲循环缓冲Current_R:指示读进程正在使用的缓冲区Current_W R RCGCGGNext iNext

9、gCurrent_R循环缓冲循环缓冲Current_W:指示写进程正在使用的缓冲区 v进程同步问题进程同步问题(1)Nexti指针追赶上Nextg指针。这意味着进程输入数据的速度大于进程取数据的速度,已把全部缓冲区装满。此时,写进程应阻塞,直到读进程把某个缓冲区的数据全部提取完,使之成为空缓冲区R,并调用Releasebuf过程将它释放时,才将写进程唤醒。(2)Nextg指针追赶上Nexti指针这意味着读进程取数据的速度高于写进程输入数据的速度,使全部缓冲区都被抽空,读进程只能阻塞,直到写进程装满某个缓冲区,调用Releasebuf过程将它释放时,才去唤醒计算进程。Current_W R RC

10、GC G GNext iNext gCurrent_R循环缓冲循环缓冲v 循环缓冲区的使用循环缓冲区的使用(1)访问缓冲区的过程Getbuf:Current_R=Nextg;Nextg=Nextg next;读操作;Current_W=Nexti;Nexti=Nexti next;写操作;(2)释放缓冲区过程Releasebuf:Current_R state=R;(读完)Current_W state=G;(写完)循环缓冲 循环缓冲区仅适用于某特定的I/O进程和计算进程,属于专用缓冲,共享程度低。当系统较大时,将会有许多这样的缓冲区,这不仅要消耗大量的内存空间,而且其利用率不高。缓冲池缓冲池

11、从自由主存中分配一组缓冲区即可构成缓池。1缓冲池的组成缓冲池的组成 缓冲池中的缓冲区一般有以下三种类型:空闲缓冲区、装满输入数据的缓冲区和装满输出数据的缓冲区。为了管理将相同类型的缓冲区链成三个队列:u 空缓冲队列emqu 输入队列inqu 输出队列outq 缓冲池缓冲池从自由主存中分配一组缓冲区即可构成缓池。1缓冲池的组成缓冲池的组成 缓冲池中的缓冲区一般有以下三种类型:空闲缓冲区、装满输入数据的缓冲区和装满输出数据的缓冲区。为了管理将相同类型的缓冲区链成三个队列:u 空缓冲队列emqu 输入队列inqu 输出队列outq 队首指针F(emq)和队尾指针L(emq)分别指向该队列的首缓冲区和

12、尾缓冲区。缓冲池缓冲池从自由主存中分配一组缓冲区即可构成缓冲池。1缓冲池的组成缓冲池的组成 缓冲池中的缓冲区一般有以下三种类型:空闲缓冲区、装满输入数据的缓冲区和装满输出数据的缓冲区。为了管理将相同类型的缓冲区链成三个队列:u 空缓冲队列emqu 输入队列inqu 输出队列outq 队首指针F(inq)和队尾指针L(inq)分别指向该队列的首缓冲区和尾缓冲区。缓冲池缓冲池从自由主存中分配一组缓冲区即可构成缓冲池。1缓冲池的组成缓冲池的组成 缓冲池中的缓冲区一般有以下三种类型:空闲缓冲区、装满输入数据的缓冲区和装满输出数据的缓冲区。为了管理将相同类型的缓冲区链成三个队列:u 空缓冲队列emqu

13、输入队列inqu 输出队列outq 队首指针F(outq)和队尾指针L(outq)分别指向该队列的首缓冲区和尾缓冲区。除了上述三种队列外,还应具有四种工作缓区:除了上述三种队列外,还应具有四种工作缓区:用于收容输入数据的工作缓冲区用于收容输入数据的工作缓冲区hin;用于提取输入数据的工作缓冲区用于提取输入数据的工作缓冲区sin;用于收容输出数据的工作缓冲区用于收容输出数据的工作缓冲区hout;用于提取输出数据的工作缓冲区用于提取输出数据的工作缓冲区sout;缓冲池缓冲池2.Getbuf过程和Putbuf过程队列是临界资源临界资源互斥且同步 信号量信号量 为使诸进程能互斥地和同步地访问缓冲池队列

14、,可分别为每一队列设置一个互斥访问信号量S1(type),初值为1。另外一个是资源同步信号量S2(type),初值为n,表示该类缓冲区的数目。按照type在相应队列上取队首缓冲区 Getbuf(type)V(S1(type)P(S1(type)P(S2(type)Getbuf与与Putbuf流程图流程图 Putbuf(type,num)V(S1(type)按照type将num号缓冲区挂到对应缓冲队列P(S1(type)V(S2(type)hinsouthoutsin 用户程序收容输入 收容输出 提取输入提取输出3.缓冲区的工作方式缓冲区的工作方式3.缓冲区的工作方式缓冲区的工作方式1)收容输入

15、工作方式收容输入工作方式 调用Getbuf(emp)emp队列的队首摘下一个空缓冲区 hin 输入数据 调用Putbuf(inq,hin)将hin挂到inq队列的队尾2)提取提取输输入工作方式入工作方式 调用Getbuf(inq)输入队列的队首摘下一个缓冲区 sin 提取数据 调用Putbuf(emp,sin)将sin挂到emp队列的队尾3)收容收容输输出工作方式出工作方式 调用Getbuf(emp)emp队列的队首摘下一个空缓冲区 hout 输出数据 调用Putbuf(outq,hout)将hout挂到outq队列的队尾4)提取提取输输出工作方式出工作方式 调用Getbuf(outp)输出队

16、列的队首摘下一个缓冲区 hin 提取数据 调用Putbuf(emp,sout)将sout挂到emp队列的队尾设备分配的总原则(1)既要充分发挥设备的使用效率,又要避免由于不合理的分配方法而造成进程死锁(2)实现设备的独立性,即把用户程序和具体物理设备隔离开来。4.44.4设备分配设备分配设备分配设备分配 系统分配时要考虑的因素1.设备分配方式 静态分配方式 不会出现死锁 设备利用率低,一般不使用 动态分配方式 提高了设备利用率,但可能造成死锁 1)先请求先分配 2)优先级高者先分配 系统分配时要考虑的因素2.设备特性 独占设备 独享分配策略(静态分配)设备利用率低 共享设备 虚拟设备 同时分配

17、给多个进程使用(动态分配)合理调度访问次序 系统分配时要考虑的因素3.设备分配中的安全性 安全分配方式 摒弃了“请求和保持”条件 CPU与I/O设备串行工作,进程进展缓慢 不安全分配方式 一个进程可同时操作多个设备,进程推进迅速 可能造成死锁,应进行安全性计算 设备分配中的数据结构 1.设备控制表DCTDCT 1DCT 2DCT n设备类型 type设备标识符设备地址设备状态指向控制表的指针等待设备队列指针重复执行次数 设备分配中的数据结构 2.系统设备表SDT表目 1表目i 设备类型设备标识符DCT指针驱动程序入口 设备分配中的数据结构 3.控制器控制表COCT控制器标识符控制器状态相连的通

18、道表指针等待控制器队列队首指针等待控制器队列队尾指针 设备分配中的数据结构 4.通道控制表CHCT通道标识符通道状态相连的控制器指针等待通道队列队首指针等待通道队列队尾指针 设备分配算法 设备分配算法按物理设备名查SDT 找到相应DCT忙?安全?等待等待分配设备找相连的COCT分配控制器找相连通道CHCT控制器忙?通道忙?分配通道开始I/O等待等待YNYYYNNN存储器存储器通道通道1通道通道2控制器控制器1控制器控制器1控制器控制器2控制器控制器2设备设备1设备设备2设备设备3设备设备4设备设备6设备设备7设备设备5存储器存储器通道通道1通道通道2控制器控制器1控制器控制器3控制器控制器2设

19、备设备1设备设备2设备设备3设备设备4设备设备6设备设备7设备设备5单通路I/O多通路I/O 设备独立性设备独立性应用程序独立于具体使用的物理设备应用程序独立于具体使用的物理设备u 设备分配时的灵活性设备分配时的灵活性u 易于实现易于实现I/O重定向重定向逻辑设备名物理设备名驱动程序入口地址/dev/tty11200/dev/print33021逻辑设备名系统设备表指针/dev/tty3/dev/print6 逻辑设备表(LUT)用于单用户系统 用于多用户系统 4.5 设备虚拟性设备虚拟性脱机输入输出 增加不与主机相连而专门用于 输入/输出的外围计算机SPOOLing(Simultaneous

20、 Peripheral Operations On-line 外围设备同时联机操作)假脱机操作 SPOOLing系统的组成系统的组成 磁盘 输入井输入井 输出井输出井 内存内存输入缓冲区输入缓冲区SPOOLing输出进程输出进程输出缓冲区输出缓冲区输输入入设设备备输输出出设设备备SPOOLing输入进程输入进程CPU输出数据输出数据CPU取数据取数据(1)提高了I/O的速度(2)将独占设备改造成了共享设备(3)实现了虚拟设备功能SPOOLing系统的特点系统的特点SPOOLing系统的应用系统的应用 共享打印机设备处理是通过设备处理程序来实现的,通常又称为设备驱动程序。它是I/O进程和设备控制

21、器之间的通信程序,常以进程的形式被CPU调度。4.6 设备处理过程设备处理过程 设备驱动程序的特点设备驱动程序的特点(1)驱动程序主要是在请求I/O的进程与设备控制器之间的一个通信程序。它将进程的I/O请求传送给控制器,而把设备控制器中所记录的设备状态、I/O操作完成情况,反映给请求I/O的进程。(2)驱动程序与I/O设备的特性紧密相关。一般情况下,各类设备包括不同厂家生产的同一类设备都采用不同的驱动程序。目前有很多驱动程序,其基本部分已经固化,放在ROM中。(3)根据不同的I/O控制方式,驱动程序驱动设备完成相应的I/O工作。设备驱动程序的主要功能设备驱动程序的主要功能(1)将接收到的抽象要

22、求转换为具体要求。(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有 关参数,设置设备的工作方式。(3)发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作。(4)及时响应由控制器或通道发来的中断请求,并根据其中断 类型调用相应的中断处理程序进行处理。(5)对于设置有通道的计算机系统,驱动程序还应能够根据 用户的I/O请求,自动地构成通道程序。抽象要求转为具体要求检查I/O请求合法性读出并检查设备状态传送参数设置工作方式启动I/O设备I/O操作,驱动程序阻塞I/O完成响应设备控制器中断唤醒驱动程序保护中断进程环境分析中断,转相应中断处理程序中断处理恢复现场整个I/O完成,驱动程序向上层软件报告本次I/O情况设备处理流程设备处理流程(1)每类(个)设备设置一个专门的I/O进程,且该进程只能在系统态下执行。(2)整个系统设置一个I/O进程,全面复杂系统的数据传送工作。(3)每类(个)设备设置一个专门的I/O进程,但该进程既可以用在用户态也可以在系统态下执行。设备处理方式设备处理方式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁