操作系统第5章课件.ppt

上传人(卖家):三亚风情 文档编号:3204069 上传时间:2022-08-03 格式:PPT 页数:74 大小:906KB
下载 相关 举报
操作系统第5章课件.ppt_第1页
第1页 / 共74页
操作系统第5章课件.ppt_第2页
第2页 / 共74页
操作系统第5章课件.ppt_第3页
第3页 / 共74页
操作系统第5章课件.ppt_第4页
第4页 / 共74页
操作系统第5章课件.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、2022年8月3日星期三第第5 5章章 设备管理设备管理 2022年8月3日星期三5.1 I/O系统系统5.2 I/O控制方式控制方式5.3 缓冲管理缓冲管理5.4 I/O软件软件5.5 设备分配设备分配5.6 磁盘存储器的管理磁盘存储器的管理2022年8月3日星期三熟练掌握:熟练掌握:I/O I/O系统的硬件结构;软件结构;系统的硬件结构;软件结构;I/OI/O系统的控制系统的控制方式;缓冲管理。方式;缓冲管理。掌握:掌握:缓冲的分类;设备分配;磁盘调度算法缓冲的分类;设备分配;磁盘调度算法。了解:了解:磁盘的性能。磁盘的性能。2022年8月3日星期三 操作系统操作系统的输入的输入/输出管理

2、(简称输出管理(简称I/OI/O管理,或称设备管理)管理,或称设备管理)负责管理和控制负责管理和控制I/OI/O操作和操作和I/OI/O设备。设备。1.I/O1.I/O设备类型设备类型 1 1)按所属关系分类)按所属关系分类 系统设备、用户设备系统设备、用户设备 2 2)按)按I/OI/O特性分类特性分类 字符设备、字符块设备字符设备、字符块设备 3 3)按自愿分配方式分类)按自愿分配方式分类 独占设备、共享设备、虚拟设备独占设备、共享设备、虚拟设备5.1 I/O5.1 I/O系统系统 5.1.1 I/O5.1.1 I/O设备设备2022年8月3日星期三缓冲缓冲转换器转换器控制逻辑控制逻辑I/

3、OI/O设备设备数据信号线数据信号线状态信号线状态信号线控制信号线控制信号线至设备至设备控制器控制器信号信号数据数据设备与控制器间接口的信号线设备与控制器间接口的信号线2.2.设备与控制器之间接口的数据线设备与控制器之间接口的数据线2022年8月3日星期三5.1.2 5.1.2 设备控制设备控制器器 接收和识别命令接收和识别命令标志和报告设备的状态标志和报告设备的状态交换数据交换数据地址识别地址识别基本功能基本功能1.1.设备控制器的基本功能设备控制器的基本功能2022年8月3日星期三CPU与设备控制器与设备控制器的接口的接口设备控制器与设备的接口设备控制器与设备的接口I/O逻辑逻辑2.2.设

4、备控制器的组成设备控制器的组成2022年8月3日星期三5.1.3 I/O5.1.3 I/O通道通道1.I/O1.I/O通道设备的引入通道设备的引入 当主机配置的外设很多时,仅有设备控制器是远远不够的,当主机配置的外设很多时,仅有设备控制器是远远不够的,CPUCPU的负担依然很重,于是在的负担依然很重,于是在CPUCPU和设备控制器之间又增设了通道,这样和设备控制器之间又增设了通道,这样可使一些原来由可使一些原来由CPUCPU处理的处理的I/OI/O任务转由通道来承担,从而把任务转由通道来承担,从而把CPUCPU从繁从繁杂的杂的I/OI/O任务中解脱出来,提高了计算机系统的任务中解脱出来,提高了

5、计算机系统的I/OI/O效率。效率。2.2.通道通道类型类型 1 1)字节多路通道)字节多路通道 2 2)数组选择通道)数组选择通道 3 3)数组多路通道)数组多路通道 3.3.瓶颈问题瓶颈问题2022年8月3日星期三5.2.15.2.1 程序程序I/OI/O方式方式CPUCPU发发startstart命令命令等待等待执行下一条指令执行下一条指令开始数据传送开始数据传送控制控制/状态寄存状态寄存器置为器置为donedone(a a)输入)输入是是外围设备外围设备接收到接收到startstart命令命令控制控制/状态寄存器置为状态寄存器置为donedone等待等待CPUCPU的下一条指令的下一条

6、指令准备完毕?准备完毕?(b b)输出)输出是是做接收或发送数据准备做接收或发送数据准备否否5.2 I/O5.2 I/O控制方式控制方式 2022年8月3日星期三使用中断机制的系统,输入请求的执行步骤如下:使用中断机制的系统,输入请求的执行步骤如下:(1 1)应用程序请求读操作)应用程序请求读操作(2 2)设备驱动程序查询设备状态寄存器,确定设备的忙闲状态。)设备驱动程序查询设备状态寄存器,确定设备的忙闲状态。(3 3)驱动程序向设备控制器命令寄存器输入命令,启动设备。)驱动程序向设备控制器命令寄存器输入命令,启动设备。(4 4)当驱动程序完成上述工作后,根据操作情况保存相应信息,这些信)当驱

7、动程序完成上述工作后,根据操作情况保存相应信息,这些信息一开始是保存在设备表中,系统中的每台设备都有对应的表项,然后息一开始是保存在设备表中,系统中的每台设备都有对应的表项,然后CPUCPU就可以分配其他应用程序使用。就可以分配其他应用程序使用。(5 5)设备完成了)设备完成了I/OCAOZUO,I/OCAOZUO,中断中断CPUCPU,引起中断处理程序的运行。,引起中断处理程序的运行。(6 6)中断处理程序确定哪个设备引起的中断,然后转移到该设备对应的)中断处理程序确定哪个设备引起的中断,然后转移到该设备对应的设备处理程序执行。设备处理程序执行。(7 7)设备处理程序重新从设备表中找到等待)

8、设备处理程序重新从设备表中找到等待I/OI/O操作的状态信息。操作的状态信息。(8 8)设备处理程序读控制器数据寄存器的内容,然后写到用户进程的内)设备处理程序读控制器数据寄存器的内容,然后写到用户进程的内存区。存区。5.2.25.2.2 中断驱动中断驱动I/OI/O控制方式控制方式2022年8月3日星期三5.2.35.2.3 直接直接存储器存储器访问访问I/OI/O控制方式控制方式1 1DMADMA控制器的组成控制器的组成DMADMA控制器由三部分组成:主机与控制器由三部分组成:主机与DMADMA控制器的接口;控制器的接口;DMADMA控控制器与块设备的接口;制器与块设备的接口;I/OI/O

9、控制逻辑。图示出了控制逻辑。图示出了DMADMA控制器的组成。控制器的组成。这里主要介绍主机与控制器之间的接口。这里主要介绍主机与控制器之间的接口。2022年8月3日星期三DMADMA控制器的组成控制器的组成 DRMARDCCRI/O控制逻辑主机控制器接口控制器与块设备接口count内存CPU命令系统总线DMA控制器2022年8月3日星期三2.DMA2.DMA工作过程工作过程DMADMA方式的工作流程图方式的工作流程图 设置M AR 和 DC 初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC=0?请求中断在继续执行用户程序的同时,准备又一次传送否是2022年8月

10、3日星期三1 1I/OI/O通道控制方式的引入通道控制方式的引入虽然虽然DMADMA方式比起中断方式来已经显著地减少了方式比起中断方式来已经显著地减少了CPUCPU的干预,即已由的干预,即已由以字以字(节节)为单位的干预减少到以数据块为单位的干预,但为单位的干预减少到以数据块为单位的干预,但CPUCPU每发出一条每发出一条I/OI/O指令,也只能去读指令,也只能去读(或写或写)一个连续的数据块。而当我们需要一次去读一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则须由多个数据块且将它们分别传送到不同的内存区域,或者相反时,则须由CPUCPU分别发出

11、多条分别发出多条I/OI/O指令及进行多次中断处理才能完成。指令及进行多次中断处理才能完成。5.2.45.2.4 I/OI/O通道控制方式通道控制方式2022年8月3日星期三I/OI/O通道控制方式通道控制方式2022年8月3日星期三I/OI/O通道方式是通道方式是DMADMA方式的发展,它可进一步减少方式的发展,它可进一步减少CPUCPU的干预,即把的干预,即把对一个数据块的读对一个数据块的读(或写或写)为单位的干预减少为对一组数据块的读为单位的干预减少为对一组数据块的读(或写或写)及有关的控制和管理为单位的干预。同时,又可实现及有关的控制和管理为单位的干预。同时,又可实现CPUCPU、通道

12、和、通道和I/OI/O设设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当当CPUCPU要完成一组相关的读要完成一组相关的读(或写或写)操作及有关控制时,只需向操作及有关控制时,只需向I/OI/O通道发通道发送一条送一条I/OI/O指令,以给出其所要执行的通道程序的首址和要访问的指令,以给出其所要执行的通道程序的首址和要访问的I/OI/O设设备,通道接到该指令后,通过执行通道程序便可完成备,通道接到该指令后,通过执行通道程序便可完成CPUCPU指定的指定的I/OI/O任务。任务。2022年8月3日星期三2 2通道程序

13、通道程序通道是通过执行通道程序,并与设备控制器共同实现对通道是通过执行通道程序,并与设备控制器共同实现对I/OI/O设备的控设备的控制的。通道程序是由一系列通道指令制的。通道程序是由一系列通道指令(或称为通道命令或称为通道命令)所构成的。通道所构成的。通道指令与一般的机器指令不同,在它的每条指令中都包含下列诸信息:指令与一般的机器指令不同,在它的每条指令中都包含下列诸信息:(1)(1)操作码。操作码规定了指令所执行的操作,如读、写、控制等操作码。操作码规定了指令所执行的操作,如读、写、控制等操作。操作。(2)(2)内存地址。内存地址标明字符送入内存内存地址。内存地址标明字符送入内存(读操作读操

14、作)和从内存取出和从内存取出(写操作写操作)时的内存首址。时的内存首址。(3)(3)计数。该信息表示本条指令所要读计数。该信息表示本条指令所要读(或写或写)数据的字节数据的字节数。数。(4)(4)通道程序结束位通道程序结束位P P。该位用于表示通道程序是否结束。该位用于表示通道程序是否结束。P=1P=1表示表示本条指令是通道程序的最后一条指令。本条指令是通道程序的最后一条指令。(5)(5)记录结束标志记录结束标志R R。R=0R=0表示本通道指令与下一条指令所处理的数表示本通道指令与下一条指令所处理的数据是同属于一个记录;据是同属于一个记录;R=1R=1表示这是处理某记录的最后一条指令。表示这

15、是处理某记录的最后一条指令。2022年8月3日星期三5.35.3 缓冲管理缓冲管理 引入缓冲的原因有如下几点:引入缓冲的原因有如下几点:(1 1)缓和)缓和CPUCPU与与I/OI/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。(2 2)协调逻辑记录大小和物理记录大小不一致)协调逻辑记录大小和物理记录大小不一致的问题。的问题。(3 3)减少对)减少对CPUCPU的中断次数,放宽对中断响应时间的中断次数,放宽对中断响应时间的限制。的限制。5.3.15.3.1 缓冲的引入缓冲的引入2022年8月3日星期三1 1单缓冲单缓冲(Single Buffer)(Single Buffer)在单缓冲情况

16、下,每当用户进程发出一在单缓冲情况下,每当用户进程发出一I/OI/O请求时,操作系统便在主请求时,操作系统便在主存中为之分配一缓冲区,如图所示。在块设备输入时,假定从磁盘把一存中为之分配一缓冲区,如图所示。在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为块数据输入到缓冲区的时间为T T,操作系统将该缓冲区中的数据传送到用,操作系统将该缓冲区中的数据传送到用户区的时间为户区的时间为M M,而,而CPUCPU对这一块数据处理对这一块数据处理(计算计算)的时间为的时间为C C。由于。由于T T和和C C是是可以并行的可以并行的(见书中图见书中图5-11)5-11),当,当T T C C时,系

17、统对每一块数据的处理时间为时,系统对每一块数据的处理时间为M M+T T,反之则为,反之则为M M+C C,故可把系统对每一块数据的处理时间表示为,故可把系统对每一块数据的处理时间表示为Max(Max(C C,T T)+)+M M。5.3.25.3.2 单缓冲和双缓冲单缓冲和双缓冲2022年8月3日星期三单缓冲工作示意图单缓冲工作示意图 工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程2022年8月3日星期三2 2双缓冲双缓冲(Double Buffer)(Double Buffer)为了加快输入和输出速度,提高设备利用率,人们

18、又引入了双为了加快输入和输出速度,提高设备利用率,人们又引入了双缓冲区机制,也称为缓冲对换缓冲区机制,也称为缓冲对换(Buffer Swapping)(Buffer Swapping)。在设备输入时,。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区中移出数据,并送入用户进程。接着由统可以从第一缓冲区中移出数据,并送入用户进程。接着由CPUCPU对对数据进行计算。在双缓冲时,系统处理一块数据的时间可以粗略地数据进行计算。在双缓冲时,系统处理一块数据的时间可以粗略地认为是认为是Max(CMax(C

19、,T)T)。如果。如果CTCTCT,则,则可使可使CPUCPU不必等待设备输入。对于字符设备,若采用行输入方式,不必等待设备输入。对于字符设备,若采用行输入方式,则采用双缓冲通常能消除用户的等待时间,即用户在输入完第一行则采用双缓冲通常能消除用户的等待时间,即用户在输入完第一行之后,在之后,在CPUCPU执行第一行中的命令时,用户可继续向第二缓冲区输执行第一行中的命令时,用户可继续向第二缓冲区输入下一行数据。入下一行数据。2022年8月3日星期三循环缓冲主要由以下几部分组成:循环缓冲主要由以下几部分组成:(1)(1)多个缓冲区。在循环缓冲中包括多个缓冲区,其每个缓冲区多个缓冲区。在循环缓冲中包

20、括多个缓冲区,其每个缓冲区的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的大小相同。作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区的空缓冲区R R、已装满数据的缓冲区、已装满数据的缓冲区G G以及计算进程正在使用的现行工以及计算进程正在使用的现行工作缓冲区作缓冲区C C。(2)(2)多个指针。作为输入的缓冲区可设置三个指针:用于指示计多个指针。作为输入的缓冲区可设置三个指针:用于指示计算进程下一个可用缓冲区算进程下一个可用缓冲区G G的指针的指针NextgNextg、指示输入进程下次可用的空、指示输入进程下次可用的空缓冲区缓冲区R R的指针的指针NextiNexti,

21、以及用于指示计算进程正在使用的缓冲区,以及用于指示计算进程正在使用的缓冲区C C的指的指针针CurrentCurrent。5.3.35.3.3 循环缓冲循环缓冲2022年8月3日星期三1 1缓冲池的组成缓冲池的组成对于既可用于输入又可用于输出的公用缓冲池,其中至少应含对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的有以下三种类型的缓冲区缓冲区:空空(闲闲)缓冲区;缓冲区;装满输入数据的装满输入数据的缓冲区;缓冲区;装满输出数据的缓冲区。装满输出数据的缓冲区。5.3.45.3.4 缓冲池缓冲池2022年8月3日星期三2 2缓冲区的工作方式缓冲区的工作方式缓冲区可以工作在收容

22、输入、提取输入、收容输出和提取输出四种缓冲区可以工作在收容输入、提取输入、收容输出和提取输出四种工作方式下,如图所示。工作方式下,如图所示。hinsoutsinhout收容输入提取输出用户程序提取输入收容输出缓冲池缓冲区的工作方式缓冲区的工作方式2022年8月3日星期三(1)(1)收容输入。在输入 进 程 需 要 输 入 数 据 时,便 调 用收容输入。在输入 进 程 需 要 输 入 数 据 时,便 调 用Getbuf(emq)Getbuf(emq)过程,从空缓冲队列过程,从空缓冲队列emqemq的队首摘下一空缓冲区,把它的队首摘下一空缓冲区,把它作为收容输入工作缓冲区作为收容输入工作缓冲区h

23、inhin。然后,把数据输入其中,装满后再调。然后,把数据输入其中,装满后再调用用Putbuf(inqPutbuf(inq,hin)hin)过程,将该缓冲区挂在输入队列过程,将该缓冲区挂在输入队列inqinq上。上。(2)(2)提取输入。当计算进程需要输入数据时,调用提取输入。当计算进程需要输入数据时,调用Getbuf(inq)Getbuf(inq)过程,从输入队列过程,从输入队列inqinq的队首取得一个缓冲区,作为提取输入工作缓的队首取得一个缓冲区,作为提取输入工作缓冲区冲区(sin)(sin),计算进程从中提取数据。计算进程用完该数据后,再调,计算进程从中提取数据。计算进程用完该数据后,

24、再调用用Putbuf(emqPutbuf(emq,sin)sin)过程,将该缓冲区挂到空缓冲队列过程,将该缓冲区挂到空缓冲队列emqemq上。上。2022年8月3日星期三(3)(3)收容输出。当计算进程需要输出时,调用收容输出。当计算进程需要输出时,调用Getbuf(emq)Getbuf(emq)过程从过程从空缓冲队列空缓冲队列emqemq的队首取得一个空缓冲区,作为收容输出工作缓冲区的队首取得一个空缓冲区,作为收容输出工作缓冲区houthout。当其中装满输出数据后,又调用。当其中装满输出数据后,又调用Putbuf(outqPutbuf(outq,hout)hout)过程,将过程,将该缓冲区

25、挂在该缓冲区挂在outqoutq末尾。末尾。(4)(4)提取输出。由输出进程调用提取输出。由输出进程调用Getbuf(outq)Getbuf(outq)过程,从输出队列过程,从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区soutsout。在数据提取完后,再调用在数据提取完后,再调用Putbuf(emqPutbuf(emq,sout)sout)过程,将该缓冲区挂在空过程,将该缓冲区挂在空缓冲队列末尾。缓冲队列末尾。2022年8月3日星期三5.45.4 I/O I/O 软件软件 用户必须掌握用户必须掌握I/O I/O 系统

26、的原理,对接口和控制器及设备的系统的原理,对接口和控制器及设备的物理特性要有深入了解,这就使计算机的推广应用受到很大限物理特性要有深入了解,这就使计算机的推广应用受到很大限制。所以,设法消除或屏蔽设备硬件内部的低级处理过程,为制。所以,设法消除或屏蔽设备硬件内部的低级处理过程,为用户提供一个简便、易用、抽象的逻辑设备接口,保证用户安用户提供一个简便、易用、抽象的逻辑设备接口,保证用户安全、方便地使用各类设备,也是全、方便地使用各类设备,也是I/OI/O软件设计的一个重要原则。软件设计的一个重要原则。5.4.1 I/O5.4.1 I/O软件的设计目标和原则软件的设计目标和原则2022年8月3日星

27、期三设备无关性设备无关性错误处理错误处理同步同步/异步传输异步传输设备的分配和释放设备的分配和释放目标目标具体而言,具体而言,I/OI/O软件应达到下面的几个目标:软件应达到下面的几个目标:2022年8月3日星期三在层次式结构的在层次式结构的I/OI/O软件中,只要层次间的接口不变,对每软件中,只要层次间的接口不变,对每个层次中的软件进行的修改都不会引起其下层或高层代码的变个层次中的软件进行的修改都不会引起其下层或高层代码的变更,仅最低层才会涉及到硬件的具体特性。通常把更,仅最低层才会涉及到硬件的具体特性。通常把I/O I/O 软件组软件组织成四个层次织成四个层次,各,各层次及其功能如下所述:

28、层次及其功能如下所述:(1)(1)用户层软件:实现与用户交互的接口,用户可直接调用户层软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与用在用户层提供的、与I/OI/O操作有关的库函数,对设备进行操作。操作有关的库函数,对设备进行操作。2022年8月3日星期三(2)(2)设备独立性软件:负责实现与设备驱动器的统一接口、设备独立性软件:负责实现与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。理和数据传送提供必要的存储空间。(3)(3)设备驱动程序:与硬件直接相关,负责

29、具体实现系统对设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动设备发出的操作指令,驱动I/OI/O设备工作的驱动程序。设备工作的驱动程序。(4)(4)中断处理程序:用于保存被中断进程的中断处理程序:用于保存被中断进程的CPUCPU环境,转入相环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回到被中断进程。后返回到被中断进程。2022年8月3日星期三中断是指设备发送给中断是指设备发送给CPUCPU的硬件信号。中断将通知的硬件信号。中断将通知CPUCPU需要注需要注意设备,并且意设备,并且CPU

30、CPU应该停止任何当前活动并对设备进行响应。如应该停止任何当前活动并对设备进行响应。如果果CPUCPU未执行优先级比中断优先级高的任务,则未执行优先级比中断优先级高的任务,则CPUCPU会暂停当前线会暂停当前线程。然后,程。然后,CPUCPU会调用发送中断信号的设备的中断处理程序。中会调用发送中断信号的设备的中断处理程序。中断处理程序的工作时服务设备并防止此设备中断。中断处理程序断处理程序的工作时服务设备并防止此设备中断。中断处理程序返回后,返回后,CPUCPU便会恢复出现中断之前所执行的工作。便会恢复出现中断之前所执行的工作。5.4.25.4.2 中断处理程序中断处理程序2022年8月3日星

31、期三12345发出发出I/O命令。命令。接收由设备独立性软件发接收由设备独立性软件发来的命令和参数,并将命来的命令和参数,并将命令中的抽象要求转换为具令中的抽象要求转换为具体要求。体要求。检查用户检查用户I/O请求的合理性。请求的合理性。响应中断请求响应中断请求根据用户的根据用户的I/O请求,请求,自动地构成通道程自动地构成通道程序。序。1.1.设备驱动程序的功能设备驱动程序的功能5.4.3 5.4.3 设备驱动程序设备驱动程序2022年8月3日星期三为每一类设备设置为每一类设备设置一个进程,专门用一个进程,专门用于执行这类设备的于执行这类设备的I/O操作。操作。在整个系统中设置一个在整个系统

32、中设置一个I/O进程,专门用于执行系统中进程,专门用于执行系统中所有各类设备的所有各类设备的I/O操作。操作。不设置专门的设备处理进程,不设置专门的设备处理进程,而只为各类设备设置响应的而只为各类设备设置响应的设备处理程序,共用户进程设备处理程序,共用户进程或系统进程调用。或系统进程调用。2.2.设备处理方式设备处理方式2022年8月3日星期三3.3.设备驱动程序设备驱动程序的特点的特点设备驱动程序属于低级的系统例程,它与一般的应用程序及系设备驱动程序属于低级的系统例程,它与一般的应用程序及系统程序之间有下述明显差异统程序之间有下述明显差异:(1)(1)驱动程序主要是指在请求驱动程序主要是指在

33、请求I/OI/O的进程与设备控制器之间的的进程与设备控制器之间的一个通信和转换程序。它将进程的一个通信和转换程序。它将进程的I/OI/O请求经过转换后,传送给控请求经过转换后,传送给控制器;又把控制器中所记录的设备状态和制器;又把控制器中所记录的设备状态和I/OI/O操作完成情况及时地操作完成情况及时地反映给请求反映给请求I/OI/O的进程。的进程。2022年8月3日星期三(2)(2)驱动程序与设备控制器和驱动程序与设备控制器和I/OI/O设备的硬件特性紧密相关,设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。例如,可以为相因而对不同类型的设备应配置不同的驱动程序。例如,可以

34、为相同的多个终端设置一个终端驱动程序,但有时即使是同一类型的同的多个终端设置一个终端驱动程序,但有时即使是同一类型的设备,由于其生产厂家不同,它们也可能并不完全兼容,此时也设备,由于其生产厂家不同,它们也可能并不完全兼容,此时也须为它们配置不同的驱动程序。须为它们配置不同的驱动程序。(3)(3)驱动程序与驱动程序与I/OI/O设备所采用的设备所采用的I/OI/O控制方式紧密相关。常控制方式紧密相关。常用的用的I/OI/O控制方式是中断驱动和控制方式是中断驱动和DMADMA方式,这两种方式的驱动程序方式,这两种方式的驱动程序明显不同,因为后者应按数组方式启动设备及进行中断处理。明显不同,因为后者

35、应按数组方式启动设备及进行中断处理。2022年8月3日星期三(4)(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分,已经固化在编语言书写。目前有很多驱动程序的基本部分,已经固化在ROMROM中。中。(5)(5)驱动程序应允许可重入。一个正在运行的驱动程序常会在一驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。例如,网络驱动程序正在处理一个到来的次调用完成前被再次调用。例如,网络驱动程序正在处理一个到来的数据包时,另一个数据包可能到达。数据包时,另一个数据包可能到达。

36、(6)(6)驱动程序不允许系统调用。但是为了满足其与内核其它部分驱动程序不允许系统调用。但是为了满足其与内核其它部分的交互,可以允许对某些内核过程的调用,如通过调用内核过程来分的交互,可以允许对某些内核过程的调用,如通过调用内核过程来分配和释放内存页面作为缓冲区,以及调用其它过程来管理配和释放内存页面作为缓冲区,以及调用其它过程来管理MMUMMU定时器、定时器、DMADMA控制器、中断控制器等。控制器、中断控制器等。2022年8月3日星期三1 1设备独立性的概念设备独立性的概念为了提高为了提高OSOS的可适应性和可扩展性,在现代的可适应性和可扩展性,在现代OSOS中都毫无例外地实中都毫无例外地

37、实现了设备独立性现了设备独立性(Device Independence)(Device Independence),也称为设备无关性。其基本,也称为设备无关性。其基本含义是含义是:用户用户 编写的应用程序独立于具体使用的物理设备,及时设备编写的应用程序独立于具体使用的物理设备,及时设备更换了,应用程序也不用改变。在更换了,应用程序也不用改变。在实现了设备独立性的功能后,可带实现了设备独立性的功能后,可带来以下两方面的好处。来以下两方面的好处。1 1)设备分配更加灵活)设备分配更加灵活 2 2)可以实现)可以实现I/OI/O重定向重定向5.4.4 5.4.4 设备独立性软件设备独立性软件2022

38、年8月3日星期三设备独立性软件的功能包括设备独立性软件的功能包括 (1)(1)执行所有设备的公有操作。这些公有操作包括执行所有设备的公有操作。这些公有操作包括:对独立设备的分配与回收;对独立设备的分配与回收;将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序;的驱动程序;对设备进行保护,禁止用户直接访问设备;对设备进行保护,禁止用户直接访问设备;缓冲管理,即对字符设备和块设备的缓冲区进行有效的管理,以缓冲管理,即对字符设备和块设备的缓冲区进行有效的管理,以提高提高I/OI/O的效率;的效率;差错控制,由于在差错控制,由于在

39、I/OI/O操作中的绝大多数错误都与设备无关,故操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误;法处理的错误;2.2.与设备无关的软件与设备无关的软件2022年8月3日星期三 提供独立于设备的逻辑块,不同类型的设备信息交换提供独立于设备的逻辑块,不同类型的设备信息交换单位是不同的,读取和传输速率也各不相同,如字符型设备以单位是不同的,读取和传输速率也各不相同,如字符型设备以单个字符为单位,块设备是以一个数据块为单位,即使同一类单个字符为单位,块设备是以一个数据块为单

40、位,即使同一类型的设备,其信息交换单位大小也是有差异的,如不同磁盘由型的设备,其信息交换单位大小也是有差异的,如不同磁盘由于扇区大小的不同,可能造成数据块大小的不一致,因此设备于扇区大小的不同,可能造成数据块大小的不一致,因此设备独立性软件应负责隐藏这些差异,对逻辑设备使用并向高层软独立性软件应负责隐藏这些差异,对逻辑设备使用并向高层软件提供大小统一的逻辑数据块。件提供大小统一的逻辑数据块。2022年8月3日星期三(2 2)向)向用户层用户层(或文件层或文件层)软件提供统一接口。无论何种设备,软件提供统一接口。无论何种设备,它们向用户所提供的接口应该是相同的。例如,对各种设备的读它们向用户所提

41、供的接口应该是相同的。例如,对各种设备的读操作,在应用程序中都使用操作,在应用程序中都使用readread;而对各种设备的写操作,也都;而对各种设备的写操作,也都使用使用writewrite。(3 3)设备维护。操作系统影响各个用户赋予不同的设备访问)设备维护。操作系统影响各个用户赋予不同的设备访问权限,以实现对设备的保护。权限,以实现对设备的保护。2022年8月3日星期三一般而言,大部分的一般而言,大部分的I/OI/O软件都在操作系统内部,但仍有一小部分软件都在操作系统内部,但仍有一小部分在用户层,包括与用户程序链接在一起的库函数,以及完全运行于内在用户层,包括与用户程序链接在一起的库函数,

42、以及完全运行于内核之外的一些程序。核之外的一些程序。用户层软件必须通过一组系统调用来取得操作系统服务。在现代用户层软件必须通过一组系统调用来取得操作系统服务。在现代的高级语言以及的高级语言以及C C语言中,通常提供了与各系统调用一一对应的库函数,语言中,通常提供了与各系统调用一一对应的库函数,用户程序通过调用对应的库函数使用系统调用。这些库函数与调用程用户程序通过调用对应的库函数使用系统调用。这些库函数与调用程序连接在一起,包含在运行时装入在内存的二进制程序中,如序连接在一起,包含在运行时装入在内存的二进制程序中,如C C语言中语言中的库函数的库函数writewrite等,显然这些库函数的集合

43、也是等,显然这些库函数的集合也是I/OI/O系统的组成部分。系统的组成部分。但在许多现代操作系统中,系统调用本身已经采用但在许多现代操作系统中,系统调用本身已经采用C C语言编写,并以函语言编写,并以函数形式提供,所以在使用数形式提供,所以在使用C C语言编写的用户程序中,可以直接使用这些语言编写的用户程序中,可以直接使用这些系统调用。系统调用。5.4.5 5.4.5 用户层的用户层的I/OI/O软件软件2022年8月3日星期三5.55.5 设备分配设备分配 1 1设备控制表设备控制表(DCT)(DCT)系统为每一个设备都配置了一张设备控制表,用于记录本设备系统为每一个设备都配置了一张设备控制

44、表,用于记录本设备的情况,如图所示。的情况,如图所示。5.5.15.5.1 设备分配中的数据结构设备分配中的数据结构2022年8月3日星期三设备控制表设备控制表 设备类型:type设备标识符:deviceid设备状态:等待/不等待 忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT 1DCT 2DCT n设备控制表集合2022年8月3日星期三设备控制表中,除了有用于指示设备类型的字段设备控制表中,除了有用于指示设备类型的字段typetype和设备标识和设备标识字段字段deviceiddeviceid外,还应含有下列字段:外,还应含有下列字段:(1)(1)设备状态。当设备自身正处

45、于使用状态时,应将设备的忙设备状态。当设备自身正处于使用状态时,应将设备的忙/闲闲标志置标志置“1”1”。若与该设备相连接的控制器或通道正忙,也不能启动该。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置设备,此时则应将设备的等待标志置“1”1”。(2)(2)指向控制器表的指针。该指针指向该设备所连接的控制器的指向控制器表的指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在个控制器相连接。此时,在DCTDCT中还应设置多个控制器表指

46、针。中还应设置多个控制器表指针。2022年8月3日星期三(3)(3)重复执行次数或时间。由于外部设备在传送数据时,较易发重复执行次数或时间。由于外部设备在传送数据时,较易发生数据传送错误,因而在许多系统中,如果发生传送错误,并不立即生数据传送错误,因而在许多系统中,如果发生传送错误,并不立即认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生错误时应重复执行的次数。在重复执行时,若能恢复正常传送,则仍错误时应重复执行的次数。在重复执行时,若能恢复正常传送,则仍认为传送成功。仅当屡次失败,致使重复执行次数达到规定值而传送认为传送

47、成功。仅当屡次失败,致使重复执行次数达到规定值而传送仍不成功时,才认为传送失败。仍不成功时,才认为传送失败。(4)(4)设备设备队列队首指针。凡因请求本设备而未得到满足的进程,队列队首指针。凡因请求本设备而未得到满足的进程,其其PCBPCB都应按照一定的策略排成一个队列,称该队列为设备请求队列都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首或简称设备队列。其队首指针指向队首PCBPCB。在有的系统中还设置了。在有的系统中还设置了队尾队尾指针。指针。2022年8月3日星期三2 2控制器控制表、通道控制表和系统设备表控制器控制表、通道控制表和系统设备表(1)

48、(1)控制器控制表控制器控制表(COCT)(COCT)。系统为每一个控制器都设置了一张用于。系统为每一个控制器都设置了一张用于记录本控制器情况的控制器控制表,如图记录本控制器情况的控制器控制表,如图a a所示。所示。(2)(2)通道控制表通道控制表(CHCT)(CHCT)。每个通道都配有一张通道控制表,如图。每个通道都配有一张通道控制表,如图b b所示。所示。(3)(3)系统设备表系统设备表(SDT)(SDT)。这是系统范围的数据结构,其中记录了系统。这是系统范围的数据结构,其中记录了系统中全部设备的情况。每个设备占一个表目,其中包括有设备类型、设备中全部设备的情况。每个设备占一个表目,其中包

49、括有设备类型、设备标识符、设备控制表及设备驱动程序的入口等项,如图标识符、设备控制表及设备驱动程序的入口等项,如图c c所示。所示。2022年8月3日星期三COCTCOCT、CHCTCHCT和和SDTSDT(c)系统设备表SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT表目1表目i设备类设备标识符DCT驱动程序入口2022年8月3日星期三为了使系统有条不紊地工作,系统在分

50、配设备时,应考虑这为了使系统有条不紊地工作,系统在分配设备时,应考虑这样几样几个因素:个因素:设备的固有属性设备的固有属性设备分配算法设备分配算法设备分配时的安全性设备分配时的安全性5.5.25.5.2 设备分配时应考虑的因素设备分配时应考虑的因素2022年8月3日星期三1 1设备的固有属性设备的固有属性在分配设备时,首先应考虑与设备分配有关的设备属性。设备的固在分配设备时,首先应考虑与设备分配有关的设备属性。设备的固有属性可分成三种有属性可分成三种:第一第一种是独占性,是指这种设备在一段时间内只允许一个进程独占,种是独占性,是指这种设备在一段时间内只允许一个进程独占,此即第二章所说的此即第二

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(操作系统第5章课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|