《《操作系统》第5章IO设备管理.ppt》由会员分享,可在线阅读,更多相关《《操作系统》第5章IO设备管理.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统原理Principles of Operating System1n n结合实验浅谈命令行接口的作用。n n结合实验浅谈图形接口的作用。n n结合实验浅谈任务管理器。n n结合实验浅谈资源管理器。n n结合实验浅谈设备管理器。n n结合实验浅谈控制面板。n n结合实验浅谈资源管理。2第5章 I/O设备管理n n计算机系统中的I/O设备种类繁多,结构各异,特性各异,使用方法各异,用途各异。在许多方面它们总是计算机中最慢的部分,操作系统需要控制设备,向应用程序提供各种功能。操作系统I/O子系统的关键目标之一就是向系统的其他部分提供尽可能简单的接口。3设备管理的重要性主要体现在以下几点:n
2、nCPUCPU性能越高,输入输出设备性能同性能越高,输入输出设备性能同CPUCPU性能不匹配性能不匹配的反差也越大。如何解决这一矛盾,而又尽量不降低处的反差也越大。如何解决这一矛盾,而又尽量不降低处理机的性能。理机的性能。n nI/OI/O设备千变万化,如何对它们实现统一的管理,从设备千变万化,如何对它们实现统一的管理,从而方便用户使用。而方便用户使用。n nI/OI/O设备能否及时将各种信息传送给计算机系统,计设备能否及时将各种信息传送给计算机系统,计算机发出的各种命令能否通过算机发出的各种命令能否通过I/OI/O设备及时传送给执行设备及时传送给执行部件。部件。n n由设备传送的数据应该是安
3、全和保密的,数据不能被由设备传送的数据应该是安全和保密的,数据不能被破坏或被泄露。多用户多任务环境中的设备使用应该通破坏或被泄露。多用户多任务环境中的设备使用应该通过协调,避免冲突,不能破坏设备。过协调,避免冲突,不能破坏设备。n n设备硬件工作过程和各种硬件连接模式的复杂性、多样设备硬件工作过程和各种硬件连接模式的复杂性、多样性导致了整个硬件性导致了整个硬件I/OI/O过程的复杂多样,需要操作系统过程的复杂多样,需要操作系统的进一步配合来达到更高性能。的进一步配合来达到更高性能。45.1.2 计算机I/O系统结构5n n按照所属关系,可以将外部设备分为两类按照所属关系,可以将外部设备分为两类
4、:n n系统设备系统设备:系统生成时就已经登记的设备。如键盘、系统生成时就已经登记的设备。如键盘、磁盘和显示器等。磁盘和显示器等。n n用户设备用户设备:系统生成时未登记的设备。如移动硬盘、系统生成时未登记的设备。如移动硬盘、扫描仪和数码相机等。扫描仪和数码相机等。n n按传输的信息特点分类,可以将外部设备分为两类按传输的信息特点分类,可以将外部设备分为两类:n n字符设备。这类设备与内存之间交换信息是以字符为字符设备。这类设备与内存之间交换信息是以字符为单位来进行的。如键盘、鼠标等。单位来进行的。如键盘、鼠标等。n n块设备。这类设备与内存之间交换信息是以块为单位块设备。这类设备与内存之间交
5、换信息是以块为单位来进行的。如磁盘、磁带、光盘等。来进行的。如磁盘、磁带、光盘等。n n网络设备。网络设备与块设备和字符设备有所区别,网络设备。网络设备与块设备和字符设备有所区别,用户不能直接把数据交换到网络设备上,必须通过打开用户不能直接把数据交换到网络设备上,必须通过打开内核网络子系统的连接进行间接通信。内核网络子系统的连接进行间接通信。6n n按照工作和使用特性,可以将外部设备分成按照工作和使用特性,可以将外部设备分成:n nI/OI/O设备设备:输入设备是计算机用来将信息传送到内存,如键盘,输入设备是计算机用来将信息传送到内存,如键盘,扫描仪,鼠标等。输出设备是将计算机加工处理好的信息
6、从内存扫描仪,鼠标等。输出设备是将计算机加工处理好的信息从内存传送到设备,如显示器、扫描仪、绘图仪等。传送到设备,如显示器、扫描仪、绘图仪等。I/OI/O设备又分为输设备又分为输入设备、输出设备、输入输出设备入设备、输出设备、输入输出设备3 3类。类。n n存储设备存储设备:以存储大容量的信息和快速检索为目标,在系统中以存储大容量的信息和快速检索为目标,在系统中作为内存的扩充,又称为外存或者辅存。相对于内存而言,具有作为内存的扩充,又称为外存或者辅存。相对于内存而言,具有容量大,速度慢和价格相对便宜等特点。容量大,速度慢和价格相对便宜等特点。n n从资源分配角度,设备可分为以下三类从资源分配角
7、度,设备可分为以下三类:n n独占设备独占设备:是指在一段时间内只允许一个进程使用的设备。进是指在一段时间内只允许一个进程使用的设备。进程使用期间独占该设备,只有当进程将设备释放给操作系统时,程使用期间独占该设备,只有当进程将设备释放给操作系统时,才能再将该设备分配给其他进程使用。多数低速字符设备都属于才能再将该设备分配给其他进程使用。多数低速字符设备都属于独占设备,如行式打印机等。独占设备,如行式打印机等。n n共享设备共享设备:是指一段时间内允许多个进程同时访问的设备。宏是指一段时间内允许多个进程同时访问的设备。宏观上,多个进程同时使用设备,在微观上,多个进程在交替地访观上,多个进程同时使
8、用设备,在微观上,多个进程在交替地访问设备。共享设备必须是可寻址的和可随机访问的设备。典型的问设备。共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备是磁盘。n n虚拟设备虚拟设备:以大容量的外存为支持,通过虚拟技术将一台独占以大容量的外存为支持,通过虚拟技术将一台独占设备改造成能被多个进程共享的设备,以提高设备的利用率。这设备改造成能被多个进程共享的设备,以提高设备的利用率。这种经过虚拟技术改造后的设备,是一种逻辑上的,概念上的设备,种经过虚拟技术改造后的设备,是一种逻辑上的,概念上的设备,我们称为虚拟设备。我们称为虚拟设备。75.1.4 设备管理的基本功能n n缓冲管
9、理:缓冲管理:CPU CPU与设备之间、设备与设备之间交换信息时,都与设备之间、设备与设备之间交换信息时,都要利用缓冲区来缓解速度不匹配的矛盾,提高要利用缓冲区来缓解速度不匹配的矛盾,提高CPUCPU与设备之间、与设备之间、设备与设备之间操作的并行程度。设备与设备之间操作的并行程度。n n设备分配:系统根据进程所请求的设备类型,按分配算法对设设备分配:系统根据进程所请求的设备类型,按分配算法对设备和设备相应的控制器和通道进行分配,建立从设备到内存之间备和设备相应的控制器和通道进行分配,建立从设备到内存之间传输信息的通路。在进程的传输信息的通路。在进程的I/OI/O完成后,系统应及时回收设备,完
10、成后,系统应及时回收设备,以便重新分配给其他进程使用。将未获得所需设备的进程放进相以便重新分配给其他进程使用。将未获得所需设备的进程放进相应设备的等待队列。应设备的等待队列。n n设备驱动:逻辑设备名转换成设备的物理地址,启动指定的设备驱动:逻辑设备名转换成设备的物理地址,启动指定的I/OI/O设备,完成程序规定的设备,完成程序规定的I/OI/O操作,并对由设备发来的中断请求操作,并对由设备发来的中断请求进行及时响应,根据中断类型进行相应的处理。进行及时响应,根据中断类型进行相应的处理。n n设备无关性设备无关性:用户在编制程序时,应尽量避免直接使用实际的用户在编制程序时,应尽量避免直接使用实
11、际的设备名而使用逻辑设备名。这样,有利于解决设备的故障和增加设备名而使用逻辑设备名。这样,有利于解决设备的故障和增加设备分配的灵活性。设备分配的灵活性。n n虚拟设备:把一次仅允许一个进程使用的设备称为独占设备。虚拟设备:把一次仅允许一个进程使用的设备称为独占设备。独占设备使得系统效率很低,并且可能产生死锁。以大容量外存独占设备使得系统效率很低,并且可能产生死锁。以大容量外存为支持,通过虚拟技术将一台独占设备改造成能被多个进程共享为支持,通过虚拟技术将一台独占设备改造成能被多个进程共享的设备,以提高设备的利用率。这种经过虚拟技术改造后的设备,的设备,以提高设备的利用率。这种经过虚拟技术改造后的
12、设备,即逻辑上的设备称为虚拟设备。即逻辑上的设备称为虚拟设备。8程序I/On n控制寄存器有几个重要的信息位:启动位、完成位、忙控制寄存器有几个重要的信息位:启动位、完成位、忙位。位。n n当用户进程需要输入数据时,由处理机向设备控制器发当用户进程需要输入数据时,由处理机向设备控制器发出一条出一条I/OI/O指令,启动设备进行输入;在设备输入数据指令,启动设备进行输入;在设备输入数据期间,处理机通过循环执行测试指令不间断地检测设备期间,处理机通过循环执行测试指令不间断地检测设备状态寄存器的值,当状态寄存器的值显示设备输入完成状态寄存器的值,当状态寄存器的值显示设备输入完成时,处理机将数据寄存器
13、中的数据取出,送入内存指定时,处理机将数据寄存器中的数据取出,送入内存指定单元,然后再启动设备读下一个数据。反之,当用户进单元,然后再启动设备读下一个数据。反之,当用户进程需要向设备输出数据时,同样必须用启动命令启动设程需要向设备输出数据时,同样必须用启动命令启动设备输出,并等待输出操作完成。备输出,并等待输出操作完成。n n程序直接控制方式的工作过程非常简单,但在循环测试程序直接控制方式的工作过程非常简单,但在循环测试中浪费了大量的中浪费了大量的CPUCPU处理时间,所以处理时间,所以CPUCPU的利用率相当的利用率相当低。低。9中断技术n n采用中断控制方式具有以下好处:采用中断控制方式具
14、有以下好处:n nCPUCPU与外设在大部分时间内并行工作,有效地提高了与外设在大部分时间内并行工作,有效地提高了计算机的效率。计算机的效率。CPUCPU启动外设后,不需要查询其工作状启动外设后,不需要查询其工作状态,可继续执行主程序,因此两者可并行工作。等外设态,可继续执行主程序,因此两者可并行工作。等外设将数据准备好后,主动申请中断将数据准备好后,主动申请中断CPUCPU的工作,请求服务。的工作,请求服务。n n具有实时响应能力,可适用于实时控制场合。外部中具有实时响应能力,可适用于实时控制场合。外部中断源始终处于主动地位,随时可请求断源始终处于主动地位,随时可请求CPUCPU为其服务。可
15、为其服务。可保证实时控制中现场的许多实时信息随时得到响应。保证实时控制中现场的许多实时信息随时得到响应。n n及时处理异常情况,提高计算机的可靠性。计算机在及时处理异常情况,提高计算机的可靠性。计算机在运行过程中,有可能出现一些意想不到的情况或发生一运行过程中,有可能出现一些意想不到的情况或发生一些故障。利用中断功能就可以及时进行处理,而不至于些故障。利用中断功能就可以及时进行处理,而不至于造成无可挽回的局面。造成无可挽回的局面。10n n中断控制方式的处理过程如下:中断控制方式的处理过程如下:n nCPUCPU通过总线发出命令,启动外设工作,当前进程阻通过总线发出命令,启动外设工作,当前进程
16、阻塞,调度程序调度其他进程。塞,调度程序调度其他进程。n n外设数据准备好,将中断请求触发器置位。外设数据准备好,将中断请求触发器置位。n n若此时接口中断屏蔽触发器状态为非屏蔽状态,则接若此时接口中断屏蔽触发器状态为非屏蔽状态,则接口向口向CPUCPU发中断请求发中断请求(IR)(IR)。n nCPUCPU接受中断请求,且中断为允许中断状态,则中断接受中断请求,且中断为允许中断状态,则中断判优电路工作。判优电路工作。n n中断判优电路对优先级最高的中断请求给予响应,中断判优电路对优先级最高的中断请求给予响应,CPUCPU中断正在执行的其他进程,转而执行中断服务程序。中断正在执行的其他进程,转
17、而执行中断服务程序。n n在在I/OI/O设备输入每个数据的过程中,由于无须设备输入每个数据的过程中,由于无须CPUCPU干预,干预,因而可使因而可使CPUCPU与与I/OI/O设备并行工作。仅当输完一个数据设备并行工作。仅当输完一个数据时,才需时,才需CPUCPU花费极短的时间去做些中断处理。可见,花费极短的时间去做些中断处理。可见,这样可使这样可使CPUCPU和和I/OI/O设备都处于忙碌状态,从而提高了设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。整个系统的资源利用率及吞吐量。115.2.3 DMA技术n n用中断方式交换数据时,每处理一次用中断方式交换数据时,每处理一次I
18、/OI/O数据交换,都会耗去一数据交换,都会耗去一定的定的CPUCPU处理时间,对于一些高速的外围设备,以及成组交换数处理时间,对于一些高速的外围设备,以及成组交换数据的情形来说,仍然显得速度太慢。采用据的情形来说,仍然显得速度太慢。采用DMADMA方式可以解决这一方式可以解决这一问题。问题。n nDMADMA是直接存储器存取是直接存储器存取(Direct Memory Access(Direct Memory Access,DMA)DMA)的缩写,的缩写,它是一种完全由硬件执行它是一种完全由硬件执行I/OI/O数据交换的工作方式。在这种方式数据交换的工作方式。在这种方式中,中,DMADMA控
19、制器控制器(DMAC)(DMAC)从从CPUCPU完全接管对总线的控制,数据交换完全接管对总线的控制,数据交换不经过不经过CPUCPU而直接在内存和而直接在内存和I/OI/O设备之间进行。采用设备之间进行。采用DMADMA方式工方式工作时,由作时,由DMADMA控制器向内存发出地址和控制信号,进行地址修改,控制器向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向对传送字的个数计数,并且以中断方式向CPUCPU报告传送操作结束。报告传送操作结束。DMADMA方式的数据传送结构如图所示。方式的数据传送结构如图所示。12n nDMADMA方式的数据块传送过程可分为三个阶段:
20、传送前预处理、数方式的数据块传送过程可分为三个阶段:传送前预处理、数据传送、传送后处理。据传送、传送后处理。n n预处理阶段:由预处理阶段:由CPUCPU执行执行I/OI/O指令,对指令,对DMACDMAC进行初始化与启动。进行初始化与启动。n n数据传送阶段:由数据传送阶段:由DMACDMAC控制总线进行数据传送。当外设数据控制总线进行数据传送。当外设数据准备好后,发准备好后,发DMADMA请求,请求,CPUCPU当前机器周期结束,响应当前机器周期结束,响应DMADMA,DMACDMAC从从CPUCPU接管总线的控制权,完成对内存寻址,决定数据传接管总线的控制权,完成对内存寻址,决定数据传送
21、的内存单元地址,对数据传送字进行计数,执行数据传送的操送的内存单元地址,对数据传送字进行计数,执行数据传送的操作。作。n n后处理阶段:传送结束,后处理阶段:传送结束,DMACDMAC向向CPUCPU发中断请求,报告发中断请求,报告DMADMA操作结束。操作结束。CPUCPU响应,转入中断服务程序,完成响应,转入中断服务程序,完成DMADMA结束处理工结束处理工作,包括校验数据,决定是否结束传送等。作,包括校验数据,决定是否结束传送等。n nDMADMA方式优缺点如下:方式优缺点如下:n n优点:操作均由硬件电路实现,传输速度快,优点:操作均由硬件电路实现,传输速度快,CPUCPU仅在初始化和
22、仅在初始化和结束时参与,基本上不干预数据传送,可以减少大批量数据传输结束时参与,基本上不干预数据传送,可以减少大批量数据传输时时CPUCPU的开销;的开销;CPUCPU与外设并行工作,效率高。与外设并行工作,效率高。n n缺点:缺点:DMADMA方式也有一定的局限性,这是因为方式也有一定的局限性,这是因为DMADMA方式在初始化方式在初始化和结束时仍由和结束时仍由CPUCPU控制,控制,DMADMA方式窃取了方式窃取了CPUCPU的时钟周期,使得的时钟周期,使得CPUCPU处理的效率下降,为此可以采用处理的效率下降,为此可以采用CPUCPU和和DMADMA交替访问内存的交替访问内存的方法,通过
23、硬件线路分时地控制这两者对总线的使用权,来提高方法,通过硬件线路分时地控制这两者对总线的使用权,来提高整个系统的效率。整个系统的效率。13通道技术n n现代大、中型计算机系统中设置了专门的处理现代大、中型计算机系统中设置了专门的处理I/OI/O操作的处理机,操作的处理机,并把这种处理机称为通道(并把这种处理机称为通道(ChannelChannel)。)。n n字节多路通道字节多路通道n n字节多路通道是一种简单的共享通道,适用于连接慢速的字符设字节多路通道是一种简单的共享通道,适用于连接慢速的字符设备,如打印机、终端等设备。字节多路通道在时间片分时的基础备,如打印机、终端等设备。字节多路通道在
24、时间片分时的基础上为多台低速和中速设备服务,它的主要特点是:各设备与通道上为多台低速和中速设备服务,它的主要特点是:各设备与通道之间的数据传送是以字节为单位交替进行的,各设备轮流占用一之间的数据传送是以字节为单位交替进行的,各设备轮流占用一个很短的时间片,不同的设备在各自的时间片内经过通道执行各个很短的时间片,不同的设备在各自的时间片内经过通道执行各自的数据传送操作。自的数据传送操作。n n选择通道选择通道n n选择通道是一种高速通道,适用于连接高速选择通道是一种高速通道,适用于连接高速I/OI/O设备,如磁盘、设备,如磁盘、磁带等,信息以数据块为单位高速传输。在物理上它可以连接多磁带等,信息
25、以数据块为单位高速传输。在物理上它可以连接多个设备,但是这些设备不能同时工作。在某一段时间内,通道只个设备,但是这些设备不能同时工作。在某一段时间内,通道只能选择一个设备进行工作,即使暂时出现空闲,也不允许其他设能选择一个设备进行工作,即使暂时出现空闲,也不允许其他设备使用,直到该设备传送完成后才让出通道。选择通道的优点是备使用,直到该设备传送完成后才让出通道。选择通道的优点是以数据块为单位进行传输,传输率高;缺点是通道利用率低。以数据块为单位进行传输,传输率高;缺点是通道利用率低。14n n数组多路通道数组多路通道n n数组多路通道是对选择通道的一种改进,综合了字节多路通道分数组多路通道是对
26、选择通道的一种改进,综合了字节多路通道分时工作和选择通道传送速率高的特点。适用于连接高速时工作和选择通道传送速率高的特点。适用于连接高速I/OI/O设备,设备,如磁盘、磁带等。数组多路通道的工作原理如下:当某设备进行如磁盘、磁带等。数组多路通道的工作原理如下:当某设备进行数据传送时,通道只为该设备服务;当设备在执行寻址等控制性数据传送时,通道只为该设备服务;当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,去为其他设备服务,即执行其他设备的通道程序。其优点是序,去为其他设备服务,即执行其他设备的通道程序。
27、其优点是同选择通道一样,以数据块为单位进行传输,传输率高。同时又同选择通道一样,以数据块为单位进行传输,传输率高。同时又具有多路并行操作的能力,通道利用率高。缺点是控制复杂。具有多路并行操作的能力,通道利用率高。缺点是控制复杂。n n通道是一个特殊功能的处理机,它有自己的指令和程序,可以实通道是一个特殊功能的处理机,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。通现对外围设备的统一管理和外围设备与内存之间的数据传送。通道的工作过程为:道的工作过程为:n n根据根据CAWCAW,从内存取出通道指令,送入通道控制字寄存器,从内存取出通道指令,送入通道控制字寄存器
28、(CCWCCW),并修改),并修改CAWCAW,使其指向下一条通道指令。,使其指向下一条通道指令。n n执行执行CCWCCW中的通道指令,进行实际的中的通道指令,进行实际的I/OI/O操作,执行完毕后,操作,执行完毕后,如果还有下一条指令,则返回前一步,否则转下一步。如果还有下一条指令,则返回前一步,否则转下一步。n n发出中断信号通知发出中断信号通知CPUCPU通道程序已执行完成。通道程序已执行完成。155.3缓冲管理n n在现代操作系统中,几乎所有的I/O设备在与内存交换数据时,都使用缓冲区。缓冲是用来平滑I/O请求的峰值的一种技术,引入缓冲的主要原因是:n n改善CPU与I/O设备之间速
29、度不匹配和负荷不均衡的矛盾。n n减少对CPU的中断频率,放宽对中断响应时间的限制。n n以空间换取时间,提高CPU和I/O设备之间的并行性。n n在设备使用不均衡时缓冲区起到平滑作用。16缓冲区的种类n n1.1.单缓冲单缓冲n n单缓冲是操作系统提供的最简单的缓冲区形式,单缓冲(单缓冲是操作系统提供的最简单的缓冲区形式,单缓冲(single single bufferingbuffering)是)是I/OI/O设备与内存之间共用一个缓冲区的缓冲技术。设备与内存之间共用一个缓冲区的缓冲技术。如图所示,给出了使用单缓冲和不使用缓冲之间的性能比较。假如图所示,给出了使用单缓冲和不使用缓冲之间的性
30、能比较。假设设T T是输入一块所需要的时间,是输入一块所需要的时间,C C是输入请求之间的计算时间。如是输入请求之间的计算时间。如果没有缓冲,每块的执行时间为果没有缓冲,每块的执行时间为T+CT+C。如果有一个缓冲区执行时。如果有一个缓冲区执行时间为间为maxT,C+MmaxT,C+M,其中,其中MM是把数据从系统缓冲区移到用户存储空是把数据从系统缓冲区移到用户存储空间所需要的时间。我们可以得出结论使用单缓冲系统比不使用缓间所需要的时间。我们可以得出结论使用单缓冲系统比不使用缓冲系统的效率高。单缓冲(冲系统的效率高。单缓冲(Single BufferSingle Buffer)是)是I/OI/
31、O设备与内存之间设备与内存之间共用一个缓冲区的缓冲技术。它适用于数据的到达率与离去率相共用一个缓冲区的缓冲技术。它适用于数据的到达率与离去率相差很大的情况下。缓冲区被看作临界资源,对缓冲区的读差很大的情况下。缓冲区被看作临界资源,对缓冲区的读/写操写操作要互斥进行。作要互斥进行。17n n2.2.双缓冲双缓冲n n对于面向块的传送,我们可以粗略地估计执行时间为对于面向块的传送,我们可以粗略地估计执行时间为maxT,CmaxT,C。因此,如果因此,如果CTCT,就有可能使面向块的设备全速进行;另一方面,就有可能使面向块的设备全速进行;另一方面,如果如果CTCT,双缓冲能确保该进程不需要等待,双缓
32、冲能确保该进程不需要等待I/OI/O。在任何一种情。在任何一种情况下,比单缓冲都有所提高。两个缓冲区交替使用,使况下,比单缓冲都有所提高。两个缓冲区交替使用,使CPUCPU与与I/OI/O设备并行性进一步提高。设备并行性进一步提高。n n双缓冲(双缓冲(Double BufferDouble Buffer)是为)是为I/OI/O设备与内存之间分配两个缓冲设备与内存之间分配两个缓冲区的缓冲技术。在输入数据时,输入设备先填满缓冲区区的缓冲技术。在输入数据时,输入设备先填满缓冲区1 1,进程,进程从缓冲区从缓冲区1 1取走数据的同时,输入设备继续填充缓冲区取走数据的同时,输入设备继续填充缓冲区2 2
33、。当缓冲。当缓冲区区1 1空出来时,进程又可以从缓冲区空出来时,进程又可以从缓冲区2 2得到数据。两个缓冲区交替得到数据。两个缓冲区交替使用,使使用,使CPUCPU与与I/OI/O设备并行性进一步提高。如果数据的到达率和设备并行性进一步提高。如果数据的到达率和离去率相差不太大时,利用双缓冲技术效果非常好。离去率相差不太大时,利用双缓冲技术效果非常好。18n n3.3.循环缓冲循环缓冲n n双缓冲方案可以平滑双缓冲方案可以平滑I/OI/O设备和进程之间的数据流。如设备和进程之间的数据流。如果某个特定进程的性能是关注的焦点,常常会希望相关果某个特定进程的性能是关注的焦点,常常会希望相关I/OI/O
34、操作能够跟得上这个进程。如果进程突然快速执行操作能够跟得上这个进程。如果进程突然快速执行大量的大量的I/OI/O,仅有双缓冲就不够了,在这种情况下,如,仅有双缓冲就不够了,在这种情况下,如图图5-75-7所示所示,通常使用多个缓冲区来解决这个问题。这组通常使用多个缓冲区来解决这个问题。这组缓冲区自身被称作循环缓冲区(缓冲区自身被称作循环缓冲区(circular bufferingcircular buffering),),其中的每一个缓冲区是这个循环缓冲区的一个单元。其中的每一个缓冲区是这个循环缓冲区的一个单元。n n通常系统输入输出数据的特征为阵发性和随机性。在这通常系统输入输出数据的特征为
35、阵发性和随机性。在这种情况下,双缓冲的效果则不够理想,但可以增加缓冲种情况下,双缓冲的效果则不够理想,但可以增加缓冲区数量而使情况有所改善。因此,引入了多缓冲,并将区数量而使情况有所改善。因此,引入了多缓冲,并将多缓冲组织成循环缓冲(多缓冲组织成循环缓冲(Circular BufferCircular Buffer)形式。)形式。195.4 设备的分配n n设备分配中的数据结构n n设备分配的原则 n n独占设备的分配n n将一台独占设备分配给某个进程后,便一直由该进程独占,直至该进程完成并释放设备为止。在该进程占用这个设备期间,即使设备空置不用,也不能再让别的进程使用。独占设备每次只能分配给
36、一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法。20n n用户使用独占设备的活动如下:申请用户使用独占设备的活动如下:申请使用使用释放。释放。n n申请,系统将设备分配给申请进程,具体方法如下:申请,系统将设备分配给申请进程,具体方法如下:n n根据申请的设备类型查询系统设备表,找到对应入口。根据申请的设备类型查询系统设备表,找到对应入口。n nP(Sm)P(Sm)。n n查找对应的设备表,找到一个空闲设备并分配。查找对应的设备表,找到一个空闲设备并分配。n n使用,系统将转到设备驱动程序完成一次使用,系统将转到设备驱动程序完
37、成一次I/0I/0传输。传输。n n释放,系统将设备从占有进程收回,具体方法如下:释放,系统将设备从占有进程收回,具体方法如下:n n根据释放设备类型查询系统设备表,找到对应入口。根据释放设备类型查询系统设备表,找到对应入口。n n查找对应的设备表,找到要释放的设备并释放。查找对应的设备表,找到要释放的设备并释放。n nV(Sm)V(Sm)。21n n2.2.共享设备的使用共享设备的使用n n共享设备可由多个进程同时共享的设备,例如硬盘。共共享设备可由多个进程同时共享的设备,例如硬盘。共享设备大多是高速、大容量的直接存取存储设备。这类享设备大多是高速、大容量的直接存取存储设备。这类设备不必分配
38、,由多个进程同时使用。用户进程对共享设备不必分配,由多个进程同时使用。用户进程对共享设备的使用,一般以文件方式存取。因此,通过文件系设备的使用,一般以文件方式存取。因此,通过文件系统可以实现按名来存取共享设备上的信息。统可以实现按名来存取共享设备上的信息。n n虚拟设备的使用虚拟设备的使用n n虚拟设备技术可以就把独占设备改造成了共享设备,通虚拟设备技术可以就把独占设备改造成了共享设备,通过快速的共享的设备,把一台低速物理独占设备改造成过快速的共享的设备,把一台低速物理独占设备改造成为若干台虚拟的同类设备。从用户观点看,每个用户都为若干台虚拟的同类设备。从用户观点看,每个用户都感到是系统为自己
39、提供了一台物理设备似的。因为虚拟感到是系统为自己提供了一台物理设备似的。因为虚拟设备已属于共享设备,因而也可采用共享策略,让多个设备已属于共享设备,因而也可采用共享策略,让多个进程同时使用。进程同时使用。22n n5.4.4 5.4.4 设备分配策略设备分配策略n n与进程的调度相似,设备的分配也需要一定的策略,通与进程的调度相似,设备的分配也需要一定的策略,通常采用先来先服务和高优先级优先等策略。常采用先来先服务和高优先级优先等策略。n n先来先服务就是当多个进程同时对一个设备提出先来先服务就是当多个进程同时对一个设备提出I/0I/0请请求时,系统按照进程提出请求的先后次序,把它们排成求时,
40、系统按照进程提出请求的先后次序,把它们排成一个设备请求队列,并且总是把设备首先分配给排在队一个设备请求队列,并且总是把设备首先分配给排在队首的进程使用。首的进程使用。n n高优先级优先就是给每个进程提出的高优先级优先就是给每个进程提出的I/OI/O请求分配一个请求分配一个优先级,在设备请求队列中把优先级高的请求排在前面,优先级,在设备请求队列中把优先级高的请求排在前面,系统在设备空闲时,总是从队首取下最高优先级进程发系统在设备空闲时,总是从队首取下最高优先级进程发出的出的I/OI/O请求进行设备分配。这与进程调度的优先算法请求进行设备分配。这与进程调度的优先算法是一致的。即进程的优先级高,它的
41、是一致的。即进程的优先级高,它的I/OI/O请求优先级也请求优先级也优先予以满足,显然有助于该进程尽快完成,从而尽早优先予以满足,显然有助于该进程尽快完成,从而尽早释放它所占有的系统资源。对于优先级相同的释放它所占有的系统资源。对于优先级相同的I/OI/O请求,请求,则按先请求先服务的原则排队。则按先请求先服务的原则排队。235.5虚拟设备n n虚拟设备就是将一台独占设备改造成共享设备的一种行之有效的技术。这种技术是利用共享设备的空间,模拟独占设备的功能。通过快速的共享的设备,把一台低速独占设备改造成为多台虚拟的同类设备,这种经过虚拟技术改造后的设备,是一种逻辑上的,概念上的设备,我们称为虚拟
42、设备。24n n5.5.1 5.5.1 虚拟光驱虚拟光驱n n虚拟光驱虚拟光驱(Virtual Drive)(Virtual Drive)技术是利用硬盘的空间,模拟技术是利用硬盘的空间,模拟光驱的功能。它可以在系统中创建多个逻辑光驱。虚拟光驱的功能。它可以在系统中创建多个逻辑光驱。虚拟光驱具有读盘速度快,无磨损,使用方便等特点。虚拟光驱具有读盘速度快,无磨损,使用方便等特点。虚拟光驱主要有两部分组成的:光驱主要有两部分组成的:n n虚拟光驱控制进程是虚拟光驱的技术核心。虚拟光驱控制进程是虚拟光驱的技术核心。n n硬盘光盘柜,存放虚拟光驱文件(硬盘光盘柜,存放虚拟光驱文件(*.VCD*.VCD)
43、。)。n n虚拟光驱具体工作过程如下:启动虚拟光驱控制进程。虚拟光驱具体工作过程如下:启动虚拟光驱控制进程。将经常使用的光盘上软件和资料压缩成一个虚拟光驱文将经常使用的光盘上软件和资料压缩成一个虚拟光驱文件(件(*.VCD*.VCD)存放在硬盘光盘柜里。当以后要使用此光)存放在硬盘光盘柜里。当以后要使用此光盘的应用程序时,不必再将光盘放入物理光驱中盘的应用程序时,不必再将光盘放入物理光驱中(没有没有物理光驱亦可执行物理光驱亦可执行),更不需要等待光驱的缓慢启动,更不需要等待光驱的缓慢启动,只需将虚拟光碟(虚拟光驱文件)载入虚拟逻辑光驱中只需将虚拟光碟(虚拟光驱文件)载入虚拟逻辑光驱中即可执行,
44、既快速又方便。即可执行,既快速又方便。255.5.2 SPOOLing技术n n(Simultaneous Peripheral Operations OnLineSimultaneous Peripheral Operations OnLine)技术。技术。SPOOLingSPOOLing也称作假脱机操作。也称作假脱机操作。n n在多个进程并发环境中,可利用其中一个进程来在多个进程并发环境中,可利用其中一个进程来模拟输入时的外围控制机的功能,控制低速模拟输入时的外围控制机的功能,控制低速I/OI/O设设备把输入数据传送到高速磁盘上,供进程输入时备把输入数据传送到高速磁盘上,供进程输入时快速提
45、取。用另一个进程来模拟输出时外围控制快速提取。用另一个进程来模拟输出时外围控制机的功能,把用户程序的输出数据传送到高速磁机的功能,把用户程序的输出数据传送到高速磁盘上,从磁盘传送到低速的输出设备上。这样,盘上,从磁盘传送到低速的输出设备上。这样,便可在主机的直接控制下,实现了便可在主机的直接控制下,实现了SPOOLingSPOOLing输入、输入、输出功能。此时的外围操作与输出功能。此时的外围操作与CPUCPU对数据的处理对数据的处理同时进行,这就是在联机情况下实现的外围设备同时进行,这就是在联机情况下实现的外围设备同时在线操作。同时在线操作。265.5.3 SPOOLing的组成27n nS
46、POOLingSPOOLing系统主要有以下几部分组成:在共享设备的空间上开系统主要有以下几部分组成:在共享设备的空间上开辟输入井和输出井两个大存储空间;辟输入井和输出井两个大存储空间;SPOOLingSPOOLing输入值班进程输入值班进程SPiSPi和输出值班进程和输出值班进程SPoSPo;SPOOLingSPOOLing目录。目录。n n输入井和输出井输入井和输出井n n输入井用于收容输入井用于收容I/OI/O设备的输入数据,当设备的输入数据,当SPOOLingSPOOLing输入时为用户输入时为用户进程提供输入数据。进程提供输入数据。n n输出井用于收容用户进程的输出数据,当输出井用于
47、收容用户进程的输出数据,当SPOOLingSPOOLing输出时为输输出时为输出设备提供输出数据。出设备提供输出数据。n nSPOOLingSPOOLing值班进程值班进程n nSPOOLingSPOOLing值班进程即输入值班进程值班进程即输入值班进程SPiSPi和输出值班进程和输出值班进程SPoSPo。n n输入值班进程输入值班进程SPiSPi模拟模拟SPOOLingSPOOLing输入时的外围控制机的功能。控输入时的外围控制机的功能。控制输入设备把用户的数据传送到输入井中,当用户进程需要输入制输入设备把用户的数据传送到输入井中,当用户进程需要输入数据时,直接将输入井中预存的输入数据读入内
48、存,提供给用户数据时,直接将输入井中预存的输入数据读入内存,提供给用户进程使用。进程使用。n n输出值班进程输出值班进程SPoSPo模拟模拟SPOOLingSPOOLing输出时的外围控制机的功能。把输出时的外围控制机的功能。把用户进程的输出数据传送到输出井中,形成输出请求队列。控制用户进程的输出数据传送到输出井中,形成输出请求队列。控制输出井中的数据经输出缓冲区传送到低速的输出设备。输出井中的数据经输出缓冲区传送到低速的输出设备。n n创建创建SPOOLingSPOOLing目录目录n n创建创建SPOOLingSPOOLing目录,登记目录,登记SPOOLingSPOOLing数据文件,数
49、据文件,SPOOLingSPOOLing目录里目录里的输入请求文件和输出请求文件分别存放在输入井和输出井中。的输入请求文件和输出请求文件分别存放在输入井和输出井中。28n n打印机是一种典型的独占设备,一个进程打开了它,将会很长时间使用它,这样导致其他进程都无法使用这台打印机打印。SPOOLing技术可将打印机改造成可供多个用户使用的共享设备。SPOOLing创建一个特殊值班进程,以及一个特殊SPOOLing目录。当用户进程请求打印输出时,操作系统并不真正把打印机分配给该进程,由输出值班进程(SPo)在输出井中为之申请一个空闲区,生成整个要打印的文件,并将要打印的数据写入输出井中。再将该表放入
50、SPOOLing目录的请求打印队列。经过上述处理,用户进程的打印输出在逻辑上已经完成,用户进程继续执行,不必等待真正打印的过程的完成。29n n复习思考题复习思考题复习思考题复习思考题n n一一 选择题选择题n n1.CPU1.CPU输出数据的速度远远高于打印机的打印速度,为了解决这输出数据的速度远远高于打印机的打印速度,为了解决这一矛盾,可采用。一矛盾,可采用。n nA.A.并行技术并行技术 B.B.通道技术通道技术 C.C.缓冲技术缓冲技术 D.D.需存技术需存技术n n2.2.操作系统中采用缓冲技术的目的是为了增强系统的能力。操作系统中采用缓冲技术的目的是为了增强系统的能力。n nA.A