第6章 输入输出系统【稻谷书店)

上传人:桔**** 文档编号:567936645 上传时间:2024-07-22 格式:PPT 页数:137 大小:2.90MB
返回 下载 相关 举报
第6章 输入输出系统【稻谷书店)_第1页
第1页 / 共137页
第6章 输入输出系统【稻谷书店)_第2页
第2页 / 共137页
第6章 输入输出系统【稻谷书店)_第3页
第3页 / 共137页
第6章 输入输出系统【稻谷书店)_第4页
第4页 / 共137页
第6章 输入输出系统【稻谷书店)_第5页
第5页 / 共137页
点击查看更多>>
资源描述

《第6章 输入输出系统【稻谷书店)》由会员分享,可在线阅读,更多相关《第6章 输入输出系统【稻谷书店)(137页珍藏版)》请在金锄头文库上搜索。

1、1 1第六章输入输出系统6.1I/O系统的功能、模型和接口6.2I/O设备和设备控制器6.3中断机构和中断处理程序6.4设备驱动程序6.5与设备无关的I/O软件6.6用户层的I/O软件6.7缓冲区管理6.8磁盘存储器的性能和调度习题行业参考2 2第六章输入输出系统6.1I/O系统的功能、模型和接口系统的功能、模型和接口I/O系统管理的主要对象是I/O设备和相应的设备控制器。其最主要的任务是,完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。行业参考3 3第六章输入输出系统6.1.1I/O系统的基本功能系统的基本功能1.隐藏物理设备的细

2、节隐藏物理设备的细节I/O设备的类型非常多,且彼此间在多方面都有差异,诸如它们接收和产生数据的速度,传输方向、粒度、数据的表示形式及可靠性等方面。行业参考4 4第六章输入输出系统2.与设备的无关性与设备的无关性隐藏物理设备的细节,在早期的OS中就已实现,它可方便用户对设备的使用。与设备的无关性是在较晚时才实现的,这是在隐藏物理设备细节的基础上实现的。行业参考5 5第六章输入输出系统3.提高处理机和提高处理机和I/O设备的利用率设备的利用率在一般的系统中,许多I/O设备间是相互独立的,能够并行操作,在处理机与设备之间也能并行操作。I/O系统的第三个功能是要尽可能地让处理机和I/O设备并行操作,以

3、提高它们的利用率。一方面要求处理机能快速响应用户的I/O请求,使I/O设备尽快地运行起来;另一方面也应尽量减少在每个I/O设备运行时处理机的干预时间。行业参考6 6第六章输入输出系统4.对对I/O设备进行控制设备进行控制对I/O设备进行控制是驱动程序的功能。目前对I/O设备有四种控制方式:采用轮询的可编程I/O方式程序IO;采用中断的可编程I/O方式中断IO;直接存储器访问方式DMA;I/O通道方式通道。行业参考7 7第六章输入输出系统5.确保对设备的正确共享确保对设备的正确共享设备按共享属性分类分为如下两类:(1)独占设备,进程应互斥地访问这类设备,即系统一旦把这类设备分配给了某进程后,便由

4、该进程独占,直至用完释放。典型的独占设备有打印机、磁带机等。(2)共享设备,是指在一段时间内允许多个进程同时访问的设备。典型的共享设备是磁盘,当有多个进程需对磁盘执行读、写操作时,可以交叉进行,不会影响到读、写的正确性。行业参考8 8第六章输入输出系统6.错误处理错误处理大多数的设备都包括了较多的机械和电气部分,运行时容易出现错误和故障。从处理的角度,可将错误分为临时性错误和持久性错误。对于临时性错误,可通过重试操作来纠正,只有在发生了持久性错误时,才需要向上层报告。行业参考9 9第六章输入输出系统6.1.2I/O系统的层次结构和模型系统的层次结构和模型1.I/O软件的层次结构软件的层次结构通

5、常把I/O软件组织成四个层次,如图6-1所示。图图6-1I/O系统的层次结构系统的层次结构行业参考1010第六章输入输出系统2.I/O系统中各种模块之间的层次视图系统中各种模块之间的层次视图为了能更清晰地描述I/O系统中主要模块之间的关系,我们进一步介绍I/O系统中各种I/O模块之间的层次视图。见图6-2所示。1)I/O系统的上、下接口(1)I/O系统接口。(2)软件/硬件(RW/HW)接口。行业参考1111第六章输入输出系统图图6-2I/O系统中各种模块之间的层次视图系统中各种模块之间的层次视图行业参考1212第六章输入输出系统2)I/O系统的分层与前面所述的I/O软件组织的层次结构相对应,

6、I/O系统本身也可分为如下三个层次:(1)中断处理程序。(2)设备驱动程序。(3)设备独立性软件。行业参考1313第六章输入输出系统6.1.3I/O系统接口系统接口在I/O系统与高层之间的接口中,根据设备类型的不同,又进一步分为若干个接口。在图6-2中示出了块设备接口、流设备接口和网络接口。1.块设备接口块设备接口(1)块设备。(2)隐藏了磁盘的二维结构。(3)将抽象命令映射为低层操作。行业参考1414第六章输入输出系统2.流设备接口流设备接口流设备接口是流设备管理程序与高层之间的接口。该接口又称为字符设备接口,它反映了大部分字符设备的本质特征,用于控制字符设备的输入或输出。(1)字符设备。(

7、2)get和put操作。(3)in-control指令。行业参考1515第六章输入输出系统3.网络通信接口网络通信接口在现代OS中,都提供了面向网络的功能。但首先还需要通过某种方式把计算机连接到网络上。同时操作系统也必须提供相应的网络软件和网络通信接口,使计算机能通过网络与网络上的其它计算机进行通信或上网浏览。行业参考1616第六章输入输出系统6.2I/O设备和设备控制器设备和设备控制器I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成。通常将这两部分分开,执行I/O操作的机械部分就是一般的I/O设备,而执行控制I/O的电子部件则称为设备控制器或适配器(Adapter)。

8、在微型机和小型机中也常称为控制卡、接口卡或网卡,可将它插入计算机的扩展槽中。在有的大、中型计算机系统中,还配置了I/O通道或I/O处理机。行业参考1717第六章输入输出系统6.2.1I/O设备设备1.I/O设备的类型设备的类型1)按使用特性分类2)按传输速率分类行业参考1818第六章输入输出系统2.设备与控制器之间的接口设备与控制器之间的接口通常,设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号(见图6-3所示),各对应一条信号线。(1)数据信号线。(2)控制信号线。(3)状态信号线。行业参考1919第六章输入输出

9、系统图图6-3设备与控制器间的接口设备与控制器间的接口行业参考2020第六章输入输出系统6.2.2设备控制器设备控制器1.设备控制器的基本功能设备控制器的基本功能(1)接收和识别命令。(2)数据交换。(3)标识和报告设备的状态。(4)地址识别。(5)数据缓冲区。(6)差错控制。行业参考2121第六章输入输出系统2.设备控制器的组成设备控制器的组成由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令去控制设备工作的功能,因此,现有的大多数控制器都是由以下三部分组成:(1)设备控制器与处理机的接口。(2)设备控制器与设备的接口。(3)I/O逻辑。行

10、业参考2222第六章输入输出系统图图6-4设备控制器的组成设备控制器的组成行业参考2323第六章输入输出系统6.2.3内存映像内存映像I/O1.利用特定的利用特定的I/O指令指令在早期的计算机中,包括大型计算机,为实现CPU和设备控制器之间的通信,为每个控制寄存器分配一个I/O端口,这是一个8位或16位的整数,如图6-5(a)所示。另外还设置了一些特定的I/O指令。行业参考2424第六章输入输出系统2.内存映像内存映像I/O在这种方式中,在编址上不再区分内存单元地址和设备控制器中的寄存器地址,都采用k。当k值处于0n-1范围时,被认为是内存地址,若k大于等于n时,被认为是某个控制器的寄存器地址

11、。行业参考2525第六章输入输出系统图图6-5设备寻址形式设备寻址形式行业参考2626第六章输入输出系统6.2.4I/O通道通道1.I/O通道设备的引入通道设备的引入虽然在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了I/O通道(I/OChannel)。行业参考2727第六章输入输出系统2.通道类型通道类型1)字节多路通道(ByteMultiplexorChannel)这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台

12、I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道。行业参考2828第六章输入输出系统图图6-6字节多路通道的工作原理字节多路通道的工作原理行业参考2929第六章输入输出系统2)数组选择通道(BlockSelectorChannel)字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。3)数组多路通道(BlockMultiplexorChannel)数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。行业参考3

13、030第六章输入输出系统行业参考3131第六章输入输出系统行业参考3232第六章输入输出系统3.“瓶颈瓶颈”问题问题由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降。行业参考3333第六章输入输出系统图图6-7单通路单通路I/O系统系统行业参考3434第六章输入输出系统图图6-8多通路多通路I/O系统系统行业参考3535第六章输入输出系统6.3中断机构和中断处理程序中断机构和中断处理程序中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另一方面,中

14、断也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,也必需有中断的支持。中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。行业参考3636第六章输入输出系统6.3.1中断简介中断简介1.中断和陷入中断和陷入1)中断2)陷入行业参考3737第六章输入输出系统2.中断向量表和中断优先级中断向量表和中断优先级1)中断向量表2)中断优先级行业参考3838第六章输入输出系统3.对多中断源的处理方式对多中断源的处理方式1)屏蔽(禁止)中断2)嵌套中断行业参考3939第六章输入输出系统图图6-9对多中断的处理方式对多中断的处理方式行业参考4040第六章输入输出系统6.

15、3.2中断处理程序中断处理程序当一个进程请求I/O操作时,该进程将被挂起,直到I/O设备完成I/O操作后,设备控制器便向CPU发送一个中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态。行业参考4141第六章输入输出系统图图6-10中断现场保护示意图中断现场保护示意图行业参考4242第六章输入输出系统图图6-11中断处理流程中断处理流程行业参考4343第六章输入输出系统6.4设备驱动程序设备驱动程序设备处理程序通常又称为设备驱动程序,它是I/O系统的高层与设备控制器之间的通信程序,其主要任务:一是接收上层软件发来的抽象I/O要求,如read或w

16、rite命令,再把它转换为具体要求后,发送给设备控制器,启动设备去执行;反之,它也将由设备控制器发来的信号传送给上层软件。由于驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序。例如,打印机和显示器需要不同的驱动程序。行业参考4444第六章输入输出系统6.4.1设备驱动程序概述设备驱动程序概述1.设备驱动程序的功能设备驱动程序的功能 (1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列。(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式。(3)发出I/O命令,如果设备空闲,便立即启

17、动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待。(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。行业参考4545第六章输入输出系统2.设备驱动程序的特点设备驱动程序的特点设备驱动程序属于低级的系统例程,它与一般的应用程序及系统程序之间有下述明显差异:(1)驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序,具体说,它将抽象的I/O请求转换成具体的I/O操作后传送给控制器。又把控制器中所记录的设备状态和I/O操作完成情况,及时地反映给请求I/O的进程。行业参考4646第六章输入输出系统(2)驱动程序

18、与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。但可以为相同的多个终端设置一个终端驱动程序。(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式。行业参考4747第六章输入输出系统(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分已经固化在ROM中。(5)驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。3.设备处理方式设备处理方式在不同的操作系统中,所采用的设备处理方式并不完全相同。行业参考4848第六章输入输出系统6.4.2设备驱

19、动程序的处理过程设备驱动程序的处理过程设备驱动程序的主要任务是启动指定设备,完成上层指定的I/O工作。但在启动之前,应先完成必要的准备工作,如检测设备状态是否为“忙”等。在完成所有的准备工作后,才向设备控制器发送一条启动命令。行业参考4949第六章输入输出系统图图6-12状态寄存器中的格式状态寄存器中的格式行业参考5050第六章输入输出系统6.4.3对对I/O设备的控制方式设备的控制方式对设备的控制,早期是使用轮询的可编程I/O方式,后来发展为使用中断的可编程I/O方式。行业参考5151第六章输入输出系统1.使用轮询的可编程使用轮询的可编程I/O方式方式即在处理机向控制器发出一条I/O指令,启

20、动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy(称为轮询)。当busy=1时,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。接着再去启动读下一个数据,并置busy=1。行业参考5252第六章输入输出系统程序程序I/O和和中断驱动方式的流程中断驱动方式的流程行业参考5353第六章输入输出系统2.使用中断的可编程使用中断的可编程I/O方式方式当前,对I/O设备的控制,广泛采用中

21、断的可编程I/O方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。此时,CPU与I/O设备并行操作。行业参考5454第六章输入输出系统3.直接存储器访问方式直接存储器访问方式1)直接存储器访问方式的引入虽然中断驱动I/O比程序I/O方式更有效,但它仍是以字(节)为单位进行I/O的。每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断。行业参考5555第六章输入输出系统DMA方式的特点是:(1)数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少

22、一个数据块。(2)所传送的数据是从设备直接送入内存的,或者相反。(3)仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式又进一步提高了CPU与I/O设备的并行操作程度。行业参考5656第六章输入输出系统2)DMA控制器的组成DMA控制器由三部分组成:(1)主机与DMA控制器的接口;(2)DMA控制器与块设备的接口;(3)I/O控制逻辑。行业参考5757第六章输入输出系统图图6-14DMA控制器的组成控制器的组成DR:数据寄存器DC:数据计数器MAR:页内地址寄存器CR:命令/状态寄存器行业参考5858第六章输入输出系

23、统3)DMA工作过程当CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送入命令寄存器CR中。同时,需要将本次要读入数据在内存的起始目标地址送入内存地址寄存器MAR中。行业参考5959第六章输入输出系统图图6-15DMA方式的工作流程图方式的工作流程图行业参考6060第六章输入输出系统4.I/O通道控制方式1)I/O通道控制方式的引入虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相

24、反时,则须由CPU分别发出多条I/O指令及进行多次中断处理才能完成。行业参考6161第六章输入输出系统2)通道程序通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令(或称为通道命令)所构成的。其中,每条指令包括:操作码、内存地址、计其中,每条指令包括:操作码、内存地址、计数、通道程序结束位数、通道程序结束位P P和记录结束位和记录结束位R R 行业参考6262第六章输入输出系统下面示出了一个由六条通道指令所构成的简单的通道程序。该程序的功能是将内存中不同地址的数据写成多个记录。行业参考6363第六章输入输出系统6.5与设备无关的与设备无关的I/O软件软

25、件为了方便用户和提高OS的可适应性与可扩展性,在现代OS的I/O系统中,都无一例外地增加了与设备无关的I/O软件,以实现设备独立性,也称为设备无关性。【设备独立性】:应用程序中所用的设备,不局限于使用某个具体的物理设备。为每个设备所配置的设备驱动程序是与硬件紧密相关的软件。行业参考6464第六章输入输出系统6.5.1与设备无关软件的基本概念与设备无关软件的基本概念1.以物理设备名使用设备在早期OS中,应用程序在使用I/O设备时,都使用设备的物理名称,这使应用程序与系统中的物理设备直接相关。行业参考6565第六章输入输出系统2.引入了逻辑设备名为了实现与设备的无关性而引入了逻辑设备和物理设备两个

26、概念。逻辑设备是抽象的设备名。行业参考6666第六章输入输出系统3.逻辑设备名称到物理设备名称的转换在应用程序中,用逻辑设备名称使用设备虽然方便了用户,但系统却只识别物理设备名称,因此在实际执行时,还必须使用物理名称。为此,在系统中,必须具有将逻辑设备名称转换为某物理设备名称的功能。行业参考6767第六章输入输出系统6.5.2与设备无关的软件与设备无关的软件1.设备驱动程序的统一接口为了使所有的设备驱动程序有着统一的接口:一方面,要求每个设备驱动程序与OS之间都有着相同或相近的接口,可使添加一个新的设备驱动程序变得很容易,同时也方便了开发人员对设备驱动程序的编制。另一方面,要将抽象的设备名映射

27、到适当的驱动程序上,或者说,将抽象的设备名转换为具体的物理设备名,并进一步可以找到相应物理设备的驱动程序入口。此外,还应对设备进行保护,禁止用户直接访问设备,以防止无权访问的用户使用。行业参考6868第六章输入输出系统2.缓冲管理无论是字符设备还是块设备,它们的运行速度都远低于CPU的速度。为了缓和CPU和I/O设备之间的矛盾、提高CPU的利用率,在现代OS中都无一例外地分别为字符设备和块设备配置了相应的缓冲区。缓冲区有着多种形式,如:单缓冲区、双缓冲区、循环缓冲区、公用缓冲池等,以满足不同情况的需要。行业参考6969第六章输入输出系统3.差错控制由于设备中有着许多的机械和电气部分,因此,它们

28、比主机更容易出现故障,这就导致I/O操作中的绝大多数错误都与设备有关。错误可分为如下两类:(1)暂时性错误。(2)持久性错误。行业参考7070第六章输入输出系统4.对独立设备的分配与回收在系统中有两类设备:独占设备和共享设备。对于独占设备,为了避免诸进程对独占设备的争夺,必须由系统来统一分配,不允许进程自行使用。每当进程需要使用某(独占)设备时,必须先提出申请。OS接到对设备的请求后,先对进程所请求的独占设备进行检查,看该设备是否空闲。若空闲,才把该设备分配给请求进程。否则,进程将被阻塞,放入该设备的请求队列中等待。等到其它进程释放该设备时,再将队列中的第一个进程唤醒,该进程得到设备后继续运行

29、。行业参考7171第六章输入输出系统5.独立于设备的逻辑数据块不同类型的设备,其数据交换单位是不同的,读取和传输速率也各不相同。如,字符型设备以单个字符如,字符型设备以单个字符(字字)为单位,块设备是以为单位,块设备是以一个数据块为单位。一个数据块为单位。即使同一类型的设备,其数据交换单位的大小也是有差异的。如,不同磁盘由于扇区大小的不同,可能造成数据块如,不同磁盘由于扇区大小的不同,可能造成数据块大小的不一致。大小的不一致。设备独立性软件应能够隐藏这些差异而被逻辑设备使用,并向高层软件提供大小统一的逻辑数据块。行业参考7272第六章输入输出系统图图6-16与设备无关软件的功能层次与设备无关软

30、件的功能层次行业参考7373第六章输入输出系统6.5.3设备分配设备分配系统为实现对独占设备的分配,必须在系统中配置相应的数据结构。行业参考7474第六章输入输出系统行业参考7575第六章输入输出系统1.设备分配中的数据结构在用于设备分配的数据结构中,记录了对设备或控制器进行控制所需的信息。在进行设备分配时需要如下的数据结构。1)设备控制表DCT系统为每一个设备都配置了一张设备控制表,用于记录设备的情况,如图6-17所示。行业参考7676第六章输入输出系统2)控制器控制表、通道控制表和系统设备表(1)控制器控制表(COCT)。系统为每一个控制器都设置了用于记录控制器情况的控制器控制表。(2)通

31、道控制表(CHCT)。每个通道都有一张通道控制表。(3)系统设备表(SDT)。这是系统范围的数据结构,记录了系统中全部设备的情况,每个设备占一个表目,其中包括有设备类型、设备标识符、设备控制表及设备驱动程序的入口等项。行业参考7777第六章输入输出系统2.设备分配时应考虑的因素系统在分配设备时,应考虑如下几个因素:1)设备的固有属性设备的固有属性可分成三种,对它们应采取不同的分配策略:(1)独占设备的分配策略。(2)共享设备的分配策略。(3)虚拟设备的分配策略,虚拟设备属于可共享的设备,可以将它同时分配给多个进程使用。行业参考7878第六章输入输出系统2)设备分配算法对设备分配的算法,通常只采

32、用以下两种分配算法:(1)先来先服务。(2)优先级高者优先。行业参考7979第六章输入输出系统3)设备分配中的安全性从进程运行的安全性上考虑,设备分配有以下两种方式:(1)安全分配方式。(2)不安全分配方式。行业参考8080第六章输入输出系统行业参考8181第六章输入输出系统行业参考8282第六章输入输出系统行业参考8383第六章输入输出系统3.独占设备的分配程序独占设备的分配程序1)基本的设备分配程序我们通过一个例子来介绍设备分配过程。当某进程提出I/O请求后,系统的设备分配程序可按下述步骤进行设备分配:(1)分配设备。(2)分配控制器。(3)分配通道。行业参考8484第六章输入输出系统2)

33、设备分配程序的改进在上面的例子中,进程是以物理设备名提出I/O请求的。如果所指定的设备已分配给其它进程,则分配失败。或者说上面的设备分配程序不具有与设备无关性。为获得设备的独立性,进程应使用逻辑设备名请求I/O。行业参考8585第六章输入输出系统6.5.4逻辑设备名到物理设备名映射的实现逻辑设备名到物理设备名映射的实现1.逻辑设备表逻辑设备表LUT(LogicalUnitTable)在逻辑设备表的每个表目中包含了三项:逻辑设备名、物理设备名和设备驱动程序的入口地址,如图6-19(a)所示。行业参考8686第六章输入输出系统图图6-19逻辑设备表逻辑设备表行业参考8787第六章输入输出系统2.逻

34、辑设备表的设置问题逻辑设备表的设置问题在系统中可采取两种方式设置逻辑设备表:第一种方式,是在整个系统中只设置一张LUT。第二种方式,是为每个用户设置一张LUT。行业参考8888第六章输入输出系统6.6用户层的用户层的I/O软件软件6.6.1系统调用与库函数系统调用与库函数1.系统调用系统调用一方面,为使诸进程能有条不紊地使用I/O设备,且能保护设备的安全性,不允许运行在用户态的应用进程去直接调用运行在核心态(系统态)的OS过程。另一方面,应用进程在运行时,又必须取得OS所提供的服务,否则,应用程序几乎无法运行。为了解决此矛盾,OS在用户层中引入了一个中介过程系统调用,应用程序可以通过它间接调用

35、OS中的I/O过程,对I/O设备进行操作。行业参考8989第六章输入输出系统图图6-20系统调用的执行过程系统调用的执行过程行业参考9090第六章输入输出系统2.库函数库函数在C语言以及UNIX系统中,系统调用(如read)与各系统调用所使用的库函数(如read)之间几乎是一一对应的。而微软定义了一套过程,称为Win32API的应用程序接口(ApplicationProgramInterface),程序员利用它们取得OS服务,该接口与实际的系统调用并不一一对应。用户程序通过调用对应的库函数使用系统调用,这些库函数与调用程序连接在一起,被嵌入在运行时装入内存的二进制程序中。行业参考9191第六章

36、输入输出系统6.6.2假脱机假脱机(Spooling)系统系统1.假脱机技术假脱机技术在20世纪50年代,为了缓和CPU的高速性与I/O设备低速性间的矛盾,而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,先将低速I/O设备上的数据传送到高速磁盘上,或者相反。这样当处理机需要输入数据时,便可以直接从磁盘中读取数据,极大地提高了输入速度。反之,在处理机需要输出数据时,也可以很快的速度把数据先输出到磁盘上,处理机便可去做自己的事情。行业参考9292第六章输入输出系统2.SPOOLing的组成的组成如前所述,SPOOLing技术是对脱机输入/输出系统的模拟,相应地,如图6-21(a)所示

37、,SPOOLing系统建立在通道技术和多道程序技术的基础上,以高速随机外存(通常为磁盘)为后援存储器。SPOOLing的工作原理如图6-21(b)所示。行业参考9393第六章输入输出系统SPOOLing系统组成及工作原理系统组成及工作原理行业参考9494第六章输入输出系统SPOOLing系统主要由以下四部分构成:(1)输入井和输出井。(2)输入缓冲区和输出缓冲区。(3)输入进程和输出进程。(4)井管理程序。行业参考9595第六章输入输出系统3.SPOOLing系统的特点系统的特点(1)提高了I/O的速度。(2)将独占设备改造为共享设备。(3)实现了虚拟设备功能。行业参考9696第六章输入输出系

38、统4.假脱机打印机系统假脱机打印机系统打印机是经常用到的输出设备,属于独占设备。利用假脱机技术可将它改造为一台可供多个用户共享的打印设备,从而提高设备的利用率,也方便了用户。共享打印机技术已被广泛地用于多用户系统和局域网络中。假脱机打印系统主要有以下三部分:(1)磁盘缓冲区。(2)打印缓冲区。(3)假脱机管理进程和假脱机打印进程。行业参考9797第六章输入输出系统5.守护进程守护进程(daemon)前面是利用假脱机系统来实现打印机共享的一种方案,人们对该方案进行了某些修改,如取消该方案中的假脱机管理进程,为打印机建立一个守护进程,由它执行一部分原来由假脱机管理进程实现的功能,如为用户在磁盘缓冲

39、区中申请一个空闲盘块,并将要打印的数据送入其中,将该盘块的首址返回给请求进程。另一部分由请求进程自己完成,每个要求打印的进程首先生成一份要求打印的文件,其中包含对打印的要求和指向装有打印输出数据盘块的指针等信息,然后将用户请求打印文件放入假脱机文件队列(目录)中。行业参考9898第六章输入输出系统6.7缓缓冲冲区区管管理理在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲区是一个存储区域,它可以由专门的硬件寄存器组成,但由于硬件的成本较高,容量也较小,一般仅用在对速度要求非常高的场合,如存储器管理中所用的联想存储器;设备控制器中用的数据缓冲区等。行业参考9999第六章

40、输入输出系统6.7.1缓冲的引入缓冲的引入引入缓冲区的原因有很多,可归结为以下几点:(1)缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。(3)解决数据粒度不匹配的问题。(4)提高CPU和I/O设备之间的并行性。行业参考100100第六章输入输出系统图图6-22利用缓冲寄存器实现缓冲利用缓冲寄存器实现缓冲行业参考101101第六章输入输出系统6.7.2单缓冲区和双缓冲区单缓冲区和双缓冲区1.单缓冲区单缓冲区(SingleBuffer)在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区。行业参考102102第

41、六章输入输出系统图图6-23单缓冲工作示意图单缓冲工作示意图行业参考103103第六章输入输出系统2.双缓冲区双缓冲区(DoubleBuffer)由于缓冲区是共享资源,生产者与消费者在使用缓冲区时必须互斥。如果消费者尚未取走缓冲区中的数据,即使生产者又生产出新的数据,也无法将它送入缓冲区,生产者等待。如果为生产者与消费者设置了两个缓冲区,便能解决这一问题。行业参考104104第六章输入输出系统图图6-24双缓冲工作示意图双缓冲工作示意图行业参考105105第六章输入输出系统如果在实现两台机器之间的通信时仅为它们配置了单缓冲,如图6-25(a)所示,那么,它们之间在任一时刻都只能实现单方向的数据

42、传输。例如,只允许把数据从A传送到B,或者从B传送到A,而绝不允许双方同时向对方发送数据。为了实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区,如图6-25(b)所示。行业参考106106第六章输入输出系统图图6-25双机通信时缓冲区的设置双机通信时缓冲区的设置行业参考107107第六章输入输出系统6.7.3环形缓冲区环形缓冲区1.环形缓冲区的组成环形缓冲区的组成(1)多个缓冲区。在环形缓冲中包括多个缓冲区,其每个缓冲区的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C

43、,如图6-26所示。行业参考108108第六章输入输出系统图图6-26环形缓冲区环形缓冲区行业参考109109第六章输入输出系统2.环形缓冲区的使用环形缓冲区的使用计算进程和输入进程可利用下述两个过程来使用形环缓冲区。(1)Getbuf过程。(2)Releasebuf过程。行业参考110110第六章输入输出系统3.进程之间的同步问题进程之间的同步问题使用输入循环缓冲,可使输入进程和计算进程并行执行。相应地,指针Nexti和指针Nextg将不断地沿着顺时针方向移动,这样就可能出现下述两种情况:(1)Nexti指针追赶上Nextg指针。(2)Nextg指针追赶上Nexti指针。行业参考111111

44、第六章输入输出系统6.7.4缓冲池缓冲池(BufferPool)1.缓冲池的组成缓冲池的组成缓冲池管理着多个缓冲区,每个缓冲区由用于标识和管理的缓冲首部以及用于存放数据的缓冲体两部分组成。缓冲首部一般包括缓冲区号、设备号、设备上的数据块号、同步信号量以及队列链接指针等。行业参考112112第六章输入输出系统为了管理上的方便,一般将缓冲池中具有相同类型的缓冲区链接成一个队列,于是可形成以下三个队列:(1)空白缓冲队列emq。(2)输入队列inq。(3)输出队列outq。行业参考113113第六章输入输出系统2.Getbuf过程和过程和Putbuf过程过程在数据结构课程中,曾介绍过队列和对队列进行

45、操作的两个过程:第一个是Addbuf(type,number)过程。该过程用于将由参数number所指示的缓冲区B挂在type队列上。第二个是Takebuf(type)过程。它用于从type所指示的队列的队首摘下一个缓冲区。行业参考114114第六章输入输出系统3.缓冲区的工作方式缓冲区的工作方式缓冲区可以工作在如下四种工作方式。行业参考115115第六章输入输出系统6.8磁盘存储器的性能和调度磁盘存储器的性能和调度6.8.1磁盘性能简述磁盘性能简述磁盘设备是一种相当复杂的机电设备,在此仅对磁盘的某些性能,如数据的组织、磁盘的类型和访问时间等方面做扼要的阐述。行业参考116116第六章输入输出

46、系统1.数据的组织和格式数据的组织和格式磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface)(见图6-28(a),每个盘面上有若干个磁道(Track),磁道之间留有必要的间隙(Gap)。为使处理简单起见,在每条磁道上可存储相同数目的二进制位。行业参考117117第六章输入输出系统图6-28 磁盘的结构和布局行业参考118118第六章输入输出系统一个物理记录存储在一个扇区上,磁盘上存储的物理记录块数目是由扇区数、磁道数以及磁盘面数所决定的。【例如】一个10GB容量的磁盘,有8个双面可存储盘片,共16个存储面(盘面),每面有16383个磁道(也称柱面),63个扇区。每个

47、扇区600个字节。行业参考119119第六章输入输出系统图图6-29磁盘的格式化磁盘的格式化行业参考120120第六章输入输出系统2.磁盘的类型磁盘的类型对于磁盘,可以从不同的角度进行分类。最常见的有:将磁盘分成硬盘和软盘、单片盘和多片盘、固定头磁盘和活动头(移动头)磁盘等。下面仅对固定头磁盘和移动头磁盘做些介绍。(1)固定头磁盘。(2)移动头磁盘。行业参考121121第六章输入输出系统【访问时间】1、寻道时间Ts :将磁头从当前位置移到指定磁道所经历时间,该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m n +s其中,其中,m是一常数,与磁盘驱动器的速度有关。对是一常数

48、,与磁盘驱动器的速度有关。对于一般磁盘,于一般磁盘,m=0.2;对于高速磁盘,;对于高速磁盘,m0.1,磁,磁臂的启动时间约为臂的启动时间约为2ms。这样,对于一般的温盘,。这样,对于一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上其寻道时间将随寻道距离的增加而增大,大体上是是530ms。122122第六章输入输出系统2、旋转延迟时间Tr :指定扇区移动到磁头下面所经历时间。不同的磁盘类型中,旋转速度至少相差一个数量不同的磁盘类型中,旋转速度至少相差一个数量级,如软盘为级,如软盘为300r/min,硬盘一般为,硬盘一般为720015000r/min,甚至更高。对于磁盘旋转延迟时间,甚至更

49、高。对于磁盘旋转延迟时间而言,如硬盘,旋转速度为而言,如硬盘,旋转速度为15000r/min,每转,每转需时需时4ms,平均旋转延迟时间,平均旋转延迟时间Tr为为2ms;而软盘,;而软盘,其旋转速度为其旋转速度为300r/min或或600r/min,这样,平,这样,平均均Tr为为50100ms。123123第六章输入输出系统3、传输时间Tt:指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读的大小与每次所读/写的字节数写的字节数b和旋转速度和旋转速度有关有关:其中,其中,r为磁盘每秒钟的转数;为磁盘每秒钟的转数;N为一条磁道上为一条磁道上的字节数,当一次读的字节数,当一次读/

50、写的字节数相当于半条磁写的字节数相当于半条磁道上的字节数时,道上的字节数时,Tt与与Tr相同。因此,可将访相同。因此,可将访问时间问时间Ta表示为表示为124124第六章输入输出系统【例】读一个128KB大小的文件(1)文件由文件由8个连续磁道个连续磁道(每个磁道每个磁道32个扇区个扇区)上的上的256个扇区构成:个扇区构成:20ms+(9.2ms+16.7ms)*8=220ms;其中,柱面定位时间为其中,柱面定位时间为20ms,旋转延迟时间为,旋转延迟时间为9.2ms,32扇区数据传送时间为扇区数据传送时间为16.7ms;(2)文件由文件由256个随机分布的扇区构成:个随机分布的扇区构成:(

51、20ms+9.2ms+0.5ms)*256=7373ms;其中,其中,1扇区数据传送时间为扇区数据传送时间为0.5ms;随机分布时的访问时间为连续分布时的随机分布时的访问时间为连续分布时的33.5倍。倍。125125第六章输入输出系统6.8.2磁盘调度磁盘调度目标:减少寻道时间目标:减少寻道时间一、一、FCFS(FisrtComeFirstSecond)特点:简单,寻道时间长,相当于随机访问模式特点:简单,寻道时间长,相当于随机访问模式二、二、SSTF(最短寻道优先)(最短寻道优先)【例例】假设一个请求序列:假设一个请求序列:98,183,37,122,14,124,65,67磁头当前的位置在

52、磁头当前的位置在53。126126第六章输入输出系统v按请求访问磁盘的先后次序进行调度。按请求访问磁盘的先后次序进行调度。下磁道下磁道移道数移道数9845183853714612285141081241106559672总道数总道数640平均平均80特点特点:简单、较合理,但未对寻道进行优化。:简单、较合理,但未对寻道进行优化。1 1、FCFSFCFS先来先服务先来先服务先来先服务先来先服务127127第六章输入输出系统v选择从当前磁头位置所需寻道时间最选择从当前磁头位置所需寻道时间最短的请求。短的请求。下磁道下磁道移道数移道数651267237301423988412224124218359

53、总道数总道数236平均平均29.5特点特点:寻道性能比:寻道性能比FCFS好,但不能保证寻好,但不能保证寻道时间最短,且有可能引起某些请求的饥饿。道时间最短,且有可能引起某些请求的饥饿。2 2、最短寻道时间优先(、最短寻道时间优先(、最短寻道时间优先(、最短寻道时间优先(SSTFSSTF)128128第六章输入输出系统3 3、扫描算法、扫描算法、扫描算法、扫描算法磁头磁头从磁盘的一端开始向另一端移动,沿途响应访从磁盘的一端开始向另一端移动,沿途响应访问请求,直到到达了磁盘的另一端,此时磁头反向问请求,直到到达了磁盘的另一端,此时磁头反向移动并继续响应服务请求。有时也称为移动并继续响应服务请求。

54、有时也称为电梯算法电梯算法。特点特点:寻道性能较好,避免了饥饿,但不利于远离:寻道性能较好,避免了饥饿,但不利于远离磁头一端的访问请求。磁头一端的访问请求。129129第六章输入输出系统下磁道下磁道移道数移道数6512672983112224124218359371461423总道数总道数299平均平均37.43 3、扫描算法、扫描算法、扫描算法、扫描算法(SCAN)(SCAN)磁头向磁头向磁道号增加磁道号增加的方向移动。的方向移动。130130第六章输入输出系统下磁道下磁道移道数移道数371614236551672983112224124218359总道数总道数208平均平均263 3、扫描

55、算法、扫描算法、扫描算法、扫描算法(SCAN)(SCAN)磁头向磁头向磁道号减小磁道号减小的方向移动。的方向移动。131131第六章输入输出系统4 4、循环扫描算法(、循环扫描算法(、循环扫描算法(、循环扫描算法(CSCANCSCAN) 规定规定磁头单向移动,一个方向读完,不是象磁头单向移动,一个方向读完,不是象SCAN那样回头,而是循环。那样回头,而是循环。访问时间:访问时间:2TT+Smax特点特点:消除了对两端磁道请求的不公平。:消除了对两端磁道请求的不公平。132132第六章输入输出系统4 4、循环扫描算法、循环扫描算法、循环扫描算法、循环扫描算法(SCAN)(SCAN)下磁道下磁道移

56、道数移道数6512672983112224124218359141693723总道数总道数322平均平均40.3133133第六章输入输出系统5 5、N N步扫描和步扫描和步扫描和步扫描和FSCANFSCAN算法算法算法算法SSTF、SCAN及及CSCAN存在的问题存在的问题-磁臂粘着磁臂粘着在上述调度算法中,可能出现磁臂停留在某处在上述调度算法中,可能出现磁臂停留在某处的情况,即反复请求某一磁道,从而垄断了整个磁的情况,即反复请求某一磁道,从而垄断了整个磁盘设备,这种现象称为磁臂粘着。盘设备,这种现象称为磁臂粘着。【N-STEP-SCAN调度调度算法算法】将将磁盘请求队列分成若干个长度为磁盘

57、请求队列分成若干个长度为N的子队列,的子队列,磁盘调度将按磁盘调度将按FCFS算法依次处理这些子队列,而算法依次处理这些子队列,而每一子队列按每一子队列按SCAN算法处理。算法处理。N=1FCFS算法算法N很大很大SCAN算法算法N取半长度取半长度FSCAN算法算法134134第六章输入输出系统FSCANN步扫描步扫描135135第六章输入输出系统【练习练习练习练习】若某磁盘共有若某磁盘共有若某磁盘共有若某磁盘共有200200个磁道,其编号为个磁道,其编号为个磁道,其编号为个磁道,其编号为01990199,假设已完成假设已完成假设已完成假设已完成6868号磁道的访问请求,正在为访问号磁道的访问

58、请求,正在为访问号磁道的访问请求,正在为访问号磁道的访问请求,正在为访问9696号号号号磁道的请求者服务,还有若干个请求者在等待服务,磁道的请求者服务,还有若干个请求者在等待服务,磁道的请求者服务,还有若干个请求者在等待服务,磁道的请求者服务,还有若干个请求者在等待服务,他们依次要访问的磁道号为:他们依次要访问的磁道号为:他们依次要访问的磁道号为:他们依次要访问的磁道号为:175175,5252,157157,3636,159159、106106,l08l08,7272,(1)(1)请分别计算用请分别计算用请分别计算用请分别计算用FCFSFCFS调度算法、调度算法、调度算法、调度算法、SSTF

59、SSTF调度算法、调度算法、调度算法、调度算法、SCANSCAN和和和和CSCANCSCAN算法来确定实际服务的次序。算法来确定实际服务的次序。算法来确定实际服务的次序。算法来确定实际服务的次序。(2)(2)按实际服务次序计算按实际服务次序计算按实际服务次序计算按实际服务次序计算(1)(1)中四种算法下移动臂需移动中四种算法下移动臂需移动中四种算法下移动臂需移动中四种算法下移动臂需移动的距离。的距离。的距离。的距离。136136第六章输入输出系统【解答解答】(1)FCFS调度算法服务的次序:调度算法服务的次序:96175521573615910610872;(175-96)+(175-52)+

60、(157-52)+(157-36)+(159-36)+(159-106)+(108-106)+(108-72)=642移动臂需移动移动臂需移动642磁道的距离磁道的距离(2)SSTF调度算法的次序:调度算法的次序:96106108725236157159175;(106-96)+(108-l06)+(108-72)+(72-52)+(52-36)+(157-36)+(159-l57)+(175-159)=223移动臂需移动移动臂需移动223个磁道的距离个磁道的距离137137第六章输入输出系统(3)SCAN算法的次序:算法的次序:96106108157159175725236;(106-96)

61、+(108-l06)+(157-108)+(159-l57)+(175-159)+(175-72)+(72-52)+(52-36)=218移动臂需移动移动臂需移动218个磁道的距离个磁道的距离(4)CSCAN调度算法的次序:调度算法的次序:961061081571591751990365272;(106-96)+(108-l06)+(157-108)+(159-l57)+(175-159)+(199-175)+(199-0)+(36-0)+(52-36)+(72-52)=175+199=374除了移动臂由外向里返回所要移动的除了移动臂由外向里返回所要移动的199个磁道外,还需移个磁道外,还需移动动l75个磁道的距离个磁道的距离

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 化学工业

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号