《软件基础》PPT课件.ppt
软件基础The Fundamentality Of Software主讲:刘志强西安交通大学计算机教学实验中心,第9单元存储器与设备管理,第 2 页,教学目标,了解存储器与设备管理的 概念、任务及采用的方法和技术,第 3 页,学习要求,通过本单元的学习,了解、弄清、掌握:存储器与设备管理的概念、目的、任务功能、存储分配、地址重定位、虚拟存储器存储器与设备管理的常用方法和技术单一连续区、多连续区、页式、段式等管理方法I/O设备的分类及用途I/O设备与CPU的通信方式循环测试、中断、DMA、通道方式设备分配、管理的常用方法和技术SDT、DCT、COCT、CHCT表在设备管理机制中的作用,第 4 页,一、存储器管理,存储器(Memory)能接收数据、保存数据、而且能根据命令提供这些数据的装置。存储管理 存储管理是针对内存的。主存是CPU直接存取指令和数据的设备,所以,它是系统程序和用户程序共享的重要系统资源。如何 分配和管理有限的存储资源,是设计人员甚至用户要研究、考虑的问题。,第 5 页,存储器管理的目的,尽量方便用户提高主存的利用率,第 6 页,存储管理的主要功能,存储分配 主存的分配和回收。为管理主存而设置的相应的组织机制,记录主存的状态信息、已分配、未分配块、分配策略等。存储容量 当用户所需存储空间大于可用主存容量时,系统采用存储器的多级机制、虚拟存储、自动覆盖等技术。地址变换 程序语言的符号地址空间到进程的物理地址的转换。存储保护 在多道程序系统中,系统进程和用户进程间、用户和用户进程间的存储空间的保护。,第 7 页,存储空间的分配和释放,在计算机中,无论是系统程序、还是用户程序,无论是数据、还是文件,凡要处理必须装入主存。如何管理分配存储空间?需要考虑和解决的问题:在多层次存储结构中,如何确定存储位置?系统程序和用户程序如何管理?大于主存的程序能否运行?多道程序处理系统如何管理各个程序的存储空间?如何分配存储器?采用何种分配策略?,第 8 页,多存储层次结构示意图,CPU,寄存器,高速缓冲存储器,主存储器,后援存储器,磁盘,外存储器,用于内、外存之间交换暂存。,内存储器,存放主存中程序的副本,再调用该程序时,从高速缓存读取。,靠近CPU的存储器,存取速度快。由触发器组成;存放一个Byte(Bit、Word),第 9 页,存储分配方式,直接分配 在源程序中直接使用主存的物理地址。对用户要求高、使用不方便、易出错。早期计算机系统中使用。静态分配 在作业装入前,由程序一次性说明作业所包含的地址空间。确定后在整个程序执行过程中不再改变。简单、利用率低、难于实现多道程序对资源的共享。动态分配 在作业被装入主存或在执行过程中,才确定其存储分配。管理复杂、但利用率高,容易实现主存的资源共享。在现代多道程序系统中,主要采用动态分配方式。,第 10 页,存储空间的地址变换,用户在程序中使用的是符号名,编译系统在产生的目标程序中使用的是逻辑地址(相对地址),而可执行程序在计算机中运行时使用的是物理地址(绝对地址)。由程序的符号名空间到运行时真正使用的物理地址空间转换叫“地址转换”,也称为程序的重定位。,int a;float b;char c;,源程序符号空间 目标程序地址空间 进程的存储空间,2FF0,a的绝对地址,3EC0,b的绝对地址,c的绝对地址,4DAA,0X,a的逻辑地址,b的逻辑地址,c的逻辑地址,第 11 页,图3-7 地址变换示意图,第 12 页,地址重定位,将一个作业从它的逻辑地址变换成它要装入的、或要重定位的主存地址的过程。在多道程序系统中,为了方便用户的使用,对于每个作业的主存空间可以看成是由地址0开始的连续的地址空间,称之为逻辑地址空间。但作业运行是在主存,因此,要进行地址的转换;称之为“地址重定位”(地址映射)。重定位两种方式:静态重定位和动态重定位。,第 13 页,静态地址重定位,是指在作业执行之前进行的重定位。地址转换工作主要靠重定位装入程序来完成。这种方式简单、容易实现,无需硬件的支持,是早期计算机采用的一种方式。缺点是:程序一经定位后就不能再在主存中移动;要求作业分配连续的主存空间,主存资源利用率低;难于实现主存的资源共享。,第 14 页,静态重定位示意图,作业A的地址空间,主存空间,0100 300500,100200400600,INPUT 1,300,1 3 5 7,INPUT 1,400,1 3 5 7,1 3 5 7,作业的逻辑地址100处是一个输入语句,从逻辑地址300处,读1个记录。重定位到主存空间后,因为作业从物理地址100处被装入,输入语句的地址按序被定位在200处,被读记录在400处。,第 15 页,第 16 页,动态地址重定位,动态地址重定位 是在程序执行过程中进行的重定位,更确切地说是在每次访问内存单元前才进行地址变换。它是通过硬件的地址变换机构实现的。设置一个重定位寄存器(RR),用来存放装入主存空间时的起始地址。作业访问主存空间的地址是由有效地址加重定位寄存器的地址来确定。主存实际地址=有效地址+重定位寄存器内容,第 17 页,动态地址重定位示意图,300,1000,+,0 100 300 600,0110013001600,I 1,3001 3 5 7,作业A地址空间,有效地址,重定位寄存器,主存空间,I 1,3001 3 5 7,第 18 页,第 19 页,动态地址重定位的特点,目标模块装入主存时无需任何修改,因而装入之后再移动也不会影响其正确运行,这对存储管理时解决碎块问题极为有利;若一个模块由若干个相对独立的目标模块组成,每个分别装入互不相邻的内存区域,只要各模块有自己对应的重定位寄存器。这样便于内存的充分利用和资源的共享。但是需要附加硬件的支持,增加了系统的开销。,第 20 页,存储空间的分区保护,在多道程序系统的主存中,为了保护系统程序的安全,系统程序和用户程序实际使用的区域是隔开的。这种分割是靠硬件实现的。用户程序只能使用用户区域的存储空间。,系统区域,用户区域,主存空间的分区保护示意图,第 21 页,第 22 页,主存空间的扩充,在计算机中,主存总是常数,要想处理大、多的作业,就要想办法扩充主存的空间。主导思想是:如何在有限的主存空间中,处理大于主存的作业。“自动覆盖”技术和“虚拟存储”技术是扩充主存常用的、有效的方法。,第 23 页,自动覆盖技术,这种方法的主要作法是将大的程序划分为主存中可以容纳的独立的逻辑处理段。每次只调入其中的一段进行处理。早期程序设计中,经常采用类似的方法处理大的问题。例如,求解大型线性方程组,就是采用“分块”算法将大的系数矩阵分为小块矩阵求解的。,第 24 页,虚拟存储器(Virtual Storage),它的基本思想是把作业的地址空间和物理地址空间视为两个不同的概念,采用内、外存结合的办法,把部分外存作为主存使用,以此为用户提供了足够大的地址空间虚存空间。用户可以在这个地址空间内编程,而完全不考虑主存的大小。虚拟存储器技术是在硬件和软件的共同支持下实现的。硬件负责虚实地址的转换;软件负责实存(主存)和虚存(外存)之间的信息调度管理。,第 25 页,第 26 页,存储管理方法,常用的存储管理方法有:单一连续区分配法多连续区分配法分页管理法分段管理法,第 27 页,单一连续区分配法,方法要点:把主存分为两个固定的存储区域;一个固定地分配给OS,另一个分配给用户程序。硬件支持:引入“篱笆(Fence)寄存器”,将OS和用户的使用区域分开。用户程序定位(地址转换)方法:采用“静态”法和“动态”法;前者是在程序装入前,一次性定位,之后不再改变。后者是采用硬件的定位寄存器,在程序执行过程中实现动态定位。,第 28 页,单一连续区分配法示意图,已分配空间,OS区域,用户区域,自由空间,特点:定位容易,使用简单 但在多道程序处理 情况下,主存资源 利用率低,浪费大。,第 29 页,单一连续区分配法示意图,2000,CPU,+,操作系统,自由空间,用户区域,主存空间,定位寄存器,1500(逻辑地址),2000,3500(绝对地址),说明:绝对地址=基地址+逻辑地址基地址不同产生的绝对地址就不同。,第 30 页,多连续区分配法,方法要点:把主存空间划分为若干个连续的区域,建立空间分区表进行管理。硬件支持:增加新的保护装置边界寄存器LOW、UP,限制分块的上、下边界。方法分类:采用“固定分区”和“变长分区”法。,第 31 页,固定分区(多连续分区),在作业前,把主存划分为几个固定大小的连续区域;建立一个分配表,记录每个分区的大小、区号、起始地址、及占用标志等信息。在作业调度时,根据作业表来确定程序的重定位地址。,第 32 页,固定分区示意图,区号,长度,起址,状态,1 8K 20K 已分2 14K 30K 已分,3 28K 50K 已分4 76K 80K 未分,分 区 表,操作系统,作业A,作业B,作业C,第1分区,第2分区,第3分区,未分区,20K30K50k80K,主存“垃圾”,第 33 页,固定分区法特点,优点:管理调度简单、分区策略适合于工作负荷比较确定的系统。缺点:主存”零头”太多,浪费严重;由此而产生”垃圾”回收问题。,第 34 页,变长分区(多连续分区),方法要点:根据需要装入作业的实际大小划分区域,且分区个数也可以调整;建立两张表:已分配分区表P和未分配分区表F,来管理主存空间。特点:作为优点来说,主存“零头”较小(但还有);作为缺点来说:选择剩下的空白区较小,无法使用;寻找一个较大的空白区费时(从头找起);归并主存“零头”,回收时费时。,第 35 页,多连续区分配法示意图,已分配分区表P,未分配分区表F,区号 长度 起始地址 状态,1 8K 20K 已分,2 16K 28K 已分,3-空表目,4 124K 108K 已分,区号 长度 起始地址 状态,1 64K 44K 可用,2 24K 232K 可用,3-空表目,4,5,操作系统,作业1,作业2,20K,28K,5,44K,可用分区1,108K,操作系统,可用分区1,作业3,可用分区2,232K,第 36 页,分页管理法基本概念,页 称划分为等长单位的作业地址空间为页。块 将主存存储空间划分为等长的单位,称为块。页表 每个页在页表中有一个表项,记录页号与该页在主存中的块号的对应关系;页表实际上是地址重定位表。作业表 作业与页号管理对照表,每个作业有一个表项;表项由作业号、页表长度、页表起始地址、状态等信息组成。动态地址变换机制 为了实现从作业的地址空间到主存物理空间的映射而设置的一种硬件部件;地址结构如下:,P W,P 为页号 W 为页内偏移量,第 37 页,分页管理法,方法要点:将主存空间按定长划分为页、与存储空间的存储块一一对应。通过对页表和作业表的管理,实现对作业管理的目的。硬件支持:自动将地址空间划分为两部分:页号+页内偏移,第 38 页,分页管理法算法描述,分页管理法是将作业在逻辑地址空间中划分为页,通过页表与主存空间的块一一对应起来。作业中的逻辑地址通过动态地址转换机制 转换为:,从而实现存储空间的管理。分页管理可以处理不连续的地址空间和物理空间。,第 39 页,分页管理法示意图,作业号 页表长 页表起址 状态,2 3 1032 已分,1 3 1024 已分,3 2 1040 已分,4 空表目,作业表JT,作业A,作业B,作业C,页号 块号,页号 块号,页号 块号,0 4,1 5,2 6,0 7,1 10,0 2,1 3,2 8,第 40 页,动态地址变换示意图,控制寄存器,作业地址空间,作业页表,1 2 3 4,LOAD 1,2500,页表长度 页表始址,有效地址,2 452,页号 块号,0 4,1 6,2 8,8 452,物理地址=8644=8 1024+452,页号,2500=2x1024+452,1 100 1K 2K 2500 3K,第 41 页,分页管理法特点,优点:有效地解决了存储空间的“零头垃圾“问题;易于实现代码段的共享;用户可以连续编址。缺点:采用硬件的动态变址机构,成本大、降低了CPU速度;各种管理表格占用了部分存储空间;块内还有“零头”;要求运行的作业必须全部装入主存。,第 42 页,分段管理的基本概念,段 将程序划分为相互独立、具有一定逻辑功能的模块、且分别按名单独存放,称这些模块为段。段表 为便于作业管理,系统建立的表格;每个作业一个表项。表项由段号、段长度、段起始地址组成。二维地址空间 用两个参数才能唯一确定地址的空间。地址映射 两个不同空间地址的一一对应的转换。,第 43 页,分段管理,方法要点:将作业分段后,段内的逻辑地址是二维空间的地址(段,段内偏移量)。通过分段表以及地址映射机构将二维地址空间的逻辑地址转换为一维主存空间中的物理地址。硬件支持:地址映射机构:自动将作业中的逻辑地址划分为段和段内偏移量。,第 44 页,分段管理举例,有一个程序划分为4段,如下图所示:,0 1K,0500,0300,0 200,主程序,子程序SUB,数据块DATA,工作区WORK,CALLSUB|LOAD 1,DATA|6STORE 1,WORK|,CALLSUB|转到子程序SUB中的入口处“Y”;LOAD 1,DATA|6 将数据区DATA的第6单元的值读入寄存器1;STORE 1,WORK|将寄存器1的内容存入WORK中C单元。,Y:,6,C:,第 45 页,分段管理示意图,6,0 1K,0100500,0300,0200,LOAD 1,1|100,Y:12345,C:,0段,1段,2段,3段,段号长度 起始地址,0 1K 6K,1 500 8K,2 300 4K,3 200 9200,分段地址空间,分段表,OS,0 2K 4K 6k 8k 8292 9200,DATA,LOAD1,1|100,主程序,SUB,WORK,12345,8292=1024x8+100,主存空间,第 46 页,分段管理特点,优点:便于模块化处理 便于动态连接 便于分段共享缺点:硬件成本高,地址转换花费CPU时间;要为表格提供主存空间;分段的最大尺寸受主存大小的限制。,第 47 页,分配算法简介,首次适应算法 从第1个空白区开始查寻,直到找到第1个适应要求的空白区为止。最佳适应算法 空白区按大小递增顺序链接,指针总是指向最小的一个;因此总是从最小的一个开始。这样,第1次找到的满足要求的空白区必然是最合适的。,第 48 页,段页式存储管理,为了获得分段在逻辑上的优点和分页在管理存储空间方面的优点,兼用分段和分页两种方法,即“段页式存储”管理。这种技术的基本思想是:用分段的方法来分配和管理虚拟存储器,而用分页方法来分配和管理实存储器(主存)。这样一来,新的地址空间结构就变成由三个部分组成:,段号 页号 页内位移量,S P W,第 49 页,段页式存储管理示意图,段表长度 段表始址,控制寄存器,段号 状态 页表长度 页表始址,0123,1 0,0 1,L0,L4,页号 状态 存储块号,页号 状态 存储块号,012,2,1,1,1,1,1,1,01,2,3,1,OS,第 50 页,段页式存储管理说明,必须指出的是:程序的分段,可由程序员根据信息的逻辑结构来划分;而分页和程序员无关,是系统自动进行的。也即程序员使用的编址方式给出的目标程序的地址形式仍然是二维的,即段号加段内相对地址。而只是由地址变换机构把段内相对地址的高位解释为页号,低位解释为页内相对地址。,第 51 页,DOS的主存管理,采用单一连续分区的方法,但却综合运用了多连续分区的管理技术。,第 52 页,UNIX的主存管理,采用分段管理方法,存储分配采用优先适应算法。,第 53 页,Windows98存储器管理,Windows98 OS不仅支持常规内存、扩展内存和扩充内存管理,还支持虚拟内存管理(VM)。VM是Win98内存管理的核心,它是通过硬盘来完成与物理内存相关的功能;它能够寻址4GB空间,包括硬盘空间;通过两个内存进程向应用程序提供大的虚拟内存空间;一个是换页进程,负责物理内存和硬盘之间移动数据;另一个是地址转换进程,负责将物理内存地址翻译成虚拟内存地址或映射文件;当一个进程所需要的存储空间超过了剩下可用的RAM时,虚拟内存管理器便开始使用换页技术,在物理内存和硬盘之间交换数据。,第 54 页,二、设备管理,计算机系统中的设备通常指I/O(输入/输出)设备。由于计算机技术的飞速发展,I/O设备的种类越来越多,设备管理和分配也越来越复杂。与设备管理有关的概念有:I/O设备分类 I/O设备与CPU的通信方式 设备管理中使用的数据结构 I/O设备分配的策略,第 55 页,1、I/O设备分类,从不同角度、按不同的方式,可对I/O设备进行分类。(1)按设备使用方式分输入设备 将信息由外部设备送入主机的设备。输出设备 将信息由主机送到外部设备的设备。(2)按设备的从属关系分系统设备 由OS管理的标准设备;如显示器、打印机、磁盘等。用户设备 用户按特殊需要选装的、非标准设备;如传真机、绘图仪等。,第 56 页,I/O设备分类(续),(3)按设备资源分配方式分独享设备 为保证信息传送的连贯性,通常是在该设备用完之后才分配给下一个作业。一般是低速设备,像打印机、磁带机等。共享设备 多用户可以同时使用的设备,如磁盘、服务器等。(4)按数据组织和存取方式分字符设备 以字符为单位存取数据的设备,如键盘、鼠标、打印机等。块设备 以数据块为单位存取数据的设备,如磁盘、光盘等。,第 57 页,I/O设备分类(续),(5)按通讯方式分串行设备 指每次按一位传送的设备,如键盘、串行打印机等。并行设备 指每次按多位传送的设备,如并行打印机。(6)按处理速度分低速设备 指传输速率较低的串行设备,如键盘等。高速设备 指传输速率较高的设备,如网络设备等。,第 58 页,设备管理的目的,方便性 方便用户使用和操作。并行性 要求I/O设备与CPU之间、设备与通道之间、通道于通道之间能并行处理,以提高系统的处理效率。均衡性 使I/O设备的使用保持平衡,这样才能最大限度的发挥设备的潜力和功效。解决设备均衡性的最好方法是利用SPOOLing技术和缓冲技术;例如将共享磁盘作为虚拟设备。与设备无关性 用户使用的设备与实际使用的设备无关。即用户在程序中使用的是逻辑设备名,即使在设备不开机或设备故障时,程序也能正常使用。而要使用物理设备时,再通过命令等方式完成逻辑设备到物理设备的转换。,第 59 页,SPOOLing技术(Simultaneous Peripheral Operation On Line),为解决高速CPU和低速I/O设备的矛盾,而采用的一种技术。(直译为:联机同步外设操作),输出数据送到输出机,早期采用脱机处理技术 如今采用假脱机处理技术,第 60 页,设备管理的任务,1)外部设备中断处理 2)外部设备接口程序设计和设备驱动 3)外部设备的分配与释放 4)虚拟设备的实现和管理,第 61 页,设备管理程序的任务,设备管理是由设备管理程序实现的,其任务:(1)按照用户需要控制I/O设备工作,完成用户所希望的I/O操作。(2)按照分配策略将I/O设备分配给对该设备提出请求的进程。(3)在大、中型计算机系统中,I/O设备种类繁多,其投资可占整个系统的50%80%。因此,充分而有效的使用这些设备,尽可能提高它们的并行操作程度是设备管理程序复杂而重要的任务。,第 62 页,设备管理的功能,记录系统中设备、控制器、通道的状态信息。根据用户请求按分配策略分配I/O设备、控制器、通道。实现I/O操作。在操作、控制过程中,要对通道发来的中断请求作出响应和处理。其它功能。包括,对缓冲区进行有效的管理,以提高CPU和I/O设备之间的并行操作,减少中断;为改善系统的可适应性和可扩展性,应使用户程序与实际使用的I/O物理设备无关等。,第 63 页,2、I/O与CPU的通信方式,CPU和I/O设备之间交换信息的方式不同,也决定了信息交换的效率不同。选用何种通信方式是需要考虑综合因素的。信息交换方式一般可分为:查询方式中断处理方式直接内存存取(DMA)方式通道方式,第 64 页,(1)循环探测I/O方式,通过设置一个测试I/O设备“忙/闲”状态标志的触发器。若它置“闲”,则执行I/O操作,若它置“忙”,则CPU不断对它进行监测,直至设备“闲”下来为止。在早期计算机系统中主要采用这种方式。由于CPU速度比I/O设备速度高得多,而循环测试I/O方式使得CPU与外部设备只能串行工作,因此CPU绝大部分时间都处于等待I/O设备完成的循环测试中,CPU资源浪费极大。优点:管理简单 缺点:浪费了CPU资源,第 65 页,(2)中断处理方式,为了克服循环测试方式的缺点(CPU必须不断主动测试I/O设备是否空闲),引入中断处理技术。该方式的核心就是使I/O设备具有主动“汇报”的能力;每当完成I/O操作后,便给CPU发一个通告信号。只有当CPU接到I/O设备中断请求后,才处理I/O操作。优点:速度快,提高了资源的利用率。缺点:I/O操作还依赖于CPU,如果I/O处理频繁,CPU也将很忙。特别是对字符设备,传送一个字符,就要响应一次中断处理;若字符I/O设备很多、传输量很大时,CPU可能完全陷入I/O处理中而不能自拔。,第 66 页,DMA方式(Direct Memory Access),中断方式只能提高CPU的利用率,但在传送数据量大、速度高的情况下,其处理效率就不理想了。目前在块设备的I/O系统中,采用DMA方式。它是一种简单的通道方式,即在硬件的支持下,通过占用总线控制权,实现信息交换。这种方法并不中断当前CPU的工作,而只是在CPU暂停的几个周期内由DMA控制器实现信息交换。即DMA为具有部分CPU功能的装置。优点:I/O操作处理速度快。缺点:DMA方式只能完成简单的数据传输,不能满足更复杂的I/O操作要求,在大、中型计算机系统中,普遍采用I/O处理机来管理外部设备和主存之间的信息交换。,第 67 页,直接内存存取方式示意图,第 68 页,(4)通道(Channel)方式,要想把CPU从繁忙的杂务中解放出来,必须使I/O设备的管理不再依赖于CPU。“通道”是具有相对独立的I/O处理能力的装置。如大型机的前端机,PC机的Intel 8090(I/O通道)等。在通道方式下,I/O处理变成了处理机之间的通讯问题。在采用通道方式的I/O系统中,CPU有两个作用:一是将I/O操作任务下达给通道,由通道代替CPU专门处理I/O工作;二是随时了解通道、控制器和设备工作的情况。,第 69 页,1、按通道的结构分(1)结合型通道 早期计算机采用的一种通道结构,为了节省设备,通道的大部分硬件和CPU结合在一起使用,所以其独立性、并行性都较差。(2)独立型通道 通道和CPU完全分开,通道和CPU的并行性、独立性都较强,但成本较高。2、按I/O信息传送方式分(1)字符多路通道(2)选择通道(3)数组多路通道,通道的分类,第 70 页,通道连接方式,由于通道的引入,使得CPU和通道、通道和通道、以及通道和设备之间充分并行,从此I/O系统就形成了一个完整的、独立的系统结构。通道的连接方式有两种:(1)单通道连接(2)多通道连接,第 71 页,字节多路通道,以字节为单位、按字节交叉方式传送信息的通道,即每次当前子通道控制I/O设备交换完一个字节后,便立即空出字节多路通道,让另一个子通道使用。因为字节多路通道速度很高,I/O设备速度低(如键盘、打印机),所以一个字节多路通道可以连接多个低速的I/O设备。优点:通道利用率高 缺点:数据传输的速率低(字符设备),第 72 页,数据选择通道,按成组方式传输数据,每次传送一批,故传送速率很高。选择通道只有一个分配型子通道,该子通道可以连接多台I/O设备,但在一段时间内,只允许一台I/O设备进行数据传输操作。当某一台设备的操作占用了该子通道后,它将以独占的方式运行,直到释放为止。因此这种方式的通道利用率很低。优点:传输数据的速度快 缺点:通道利用率低,第 73 页,数组多路通道,字符多路通道和选择通道各有利弊,数组多路通道就是结合前两者的优点而形成的通道方式。数组多路通道有多个非分配型子通道,它可以连接多台高速I/O设备,数据传输按成组方式进行,几个通道程序分时并行工作。因此,这种方式被广泛用来连接高、中速I/O设备。优点:较高传输速率和较高的通道利用率。缺点:成本较高,第 74 页,不同类型通道的使用,第 75 页,3、设备管理系统,当某进程发出I/O操作申请后,具体I/O操作的实现是由设备分配程序来完成的。这其中包括:根据分配策略对I/O设备进行分配、分配相应的控制器和通道、形成数据传输的通路、完成主存和设备之间的信息交换等。设备分配程序由I/O交通管制程序和I/O调度程序构成。,第 76 页,设备管理有关的数据结构,为了对系统中的设备实行有效的管理,设置了一整套数据结构,包括:系统设备表(SDT)、设备控制表(DCT)、控制器控制表(COCT)以及通道控制表(CHCT),称这些表格的数据为“设备管理数据基”。也可以说,设备的管理,实际上是对这些相关数据的表格的管理。,第 77 页,SDT 系统设备表(System Device Table),SDT表记录着系统中全部标准I/O设备,一种设备一个表项。内容包括:,设备1,设备i,.,SDT,设备i特征信息,设备类,设备标识符,进程标识符,设备接口模块标识符,每一种设备又建立相应的设备控制块、控制器控制块和通道控制块。,第 78 页,DCT 设备控制表(Device Control Table),为了实现对设备的控制,每一种设备都在DCT表中有一个表项,内容包括:,DCT,DCT1,DCTi,设备类型,设备标识符,设备状态(忙/闲),与设备连接的控制器表指针,重复执行次数或时间*,设备队列队头指针,设备队列队尾指针,注:表示若出错,重复执行的次数或时间。,第 79 页,COCT控制器控制表(COntroller Control Table),为了实现对控制器的控制,每一个控制器都在COCT表中有一个表项,内容包括:,COCT,COCT1,COCTi,控制器标识符,控制器状态(忙/闲),与控制器连接的通道表指针,控制器队列队头指针,控制器队列队尾指针,第 80 页,CHCT 通道控制表(CHannel Control Table),为了实现对通道的控制,每一个通道都在CHCT表中有一个表项,内容包括:,CHCT,CHCT1,CHCTi,通道标识符,通道状态(忙/闲),与通道连接的控制器表指针,通道队列队头指针,通道队列队尾指针,第 81 页,基于数据基的管理示意图,SDT,DCT,COCT,CHCT,申请I/O 申请控制器 申请通道 队列 队列 队列,设备管理程序,第 82 页,第 83 页,(2)I/O设备分配策略及实现,I/O设备分配程序(I/O调度程序)的主要功能是为了满足用户的I/O请求,确定设备、控制器和通道的分配策略。在多道程序系统中,进程数往往多于资源数,从而产生资源竞争。为使系统有条不紊地工作,I/O设备分配管理要遵循统一的、合理的分配原则。,第 84 页,与分配策略有关的因素,I/O设备的固有属性I/O设备的分配算法设备的安全性与设备的无关性,第 85 页,I/O设备的固有属性,设备属性不同要采用不同的分配方式。独享设备 是一些慢速的设备,它不允许交叉使用,并在使用过程中需要人工干预。因此,一旦占用,只能到用完才能释放、收回。共享设备 如磁盘,其定位操作时间短,可供直接存取操作,可由多进程共享使用,所以采用共享分配方式。共享设备在系统中主要用于存储文件。,第 86 页,I/O设备的分配算法,I/O调度程序的分配策略与进程调度策略基本相同,但由于I/O操作一旦启动,就不能停止的特点,因此,不能采用进程调度的时间片轮转法。先请求先分配 当多个进程对同一个设备提出I/O请求时,系统按请求的先后次序将进程排队。设备分配程序将I/O设备分配给队列中第1个进程。优先数最高优先 系统优先响应优先数最高的进程对I/O设备的请求。对优先数相同的I/O请求,则按先请求先分配的原则处理。,第 87 页,设备分配的安全性,在有些系统下,出于安全的考虑,限定一个进程只能提出一个I/O设备请求,以防止可能产生“死锁”,导致设备分配不安全。设备分配程序在多请求方式中,为保证不发生死锁,一般要采取预防发生死锁的措施。,第 88 页,与设备无关性,为提高系统的可适应性和可扩展性,应使用户程序和实际使用的物理设备无关。为此引入逻辑设备名和物理设备名的概念。系统规定,在用户程序中只允许使用逻辑设备名。与设备无关性通常是通过系统提供的逻辑设备和物理设备的映象表来实现的(也称为进程连接表PAT。若某逻辑设备已连接到相应的物理设备上,则PAT表中该物理设备表项由该类设备的逻辑设备名和物理设备名组成)。,第 89 页,(3)I/O设备分配的步骤,(1)分配设备 根据I/O请求的逻辑设备名,找到其对应的物理设备名,检索SDT表,再找出其DCT。判别设备是否“忙”;若忙,则将该进程插入到等待队列中排队;若闲,则调用分配程序进行分配。(2)分配控制器 当系统把设备分配给某进程后,从DCT中找出其对应的COCT,判别可分配否。若忙,则排队,否则,分配控制器。(3)分配通道 通过COCT可以找到CHCT,也判别该通道可分配否。不能分配,则排队等待;否则,就可以执行I/O操作了。,第 90 页,设备驱动程序,为了控制I/O传输,系统必须为每类设备分别编制一组I/O处理程序,称这组程序为设备驱动程序。驱动程序包括:设备预置程序 当系统启动I/O设备传输时,预置设备的初始状态。启动I/O程序 负责启动设备传输,包括启动通道。设备中断处理程序 负责处理设备发出的各种中断,如I/O传输过程中的“故障中断”等。,第 91 页,设备驱动程序的说明,设备驱动程序一般由I/O设备的生产厂家提供。现在大多数I/O设备是按统一的标准、规范生产的。基本上可以做到“即插即用”。但是,仍有少部分I/O设备是非标准的。这些非标准的I/O设备的驱动程序是不能通用的。使用时要注意。,第 92 页,思考与作业,1.第4章思考题:1、2、3、12、13、14OS存储管理的对象与任务是什么?什么是实存储管理和虚存储管理?常用的主存管理方法有哪几种?各自的特点是什么?OS设备管理包括哪些基本任务?主处理机与设备的信息交换有哪几种基本方法,各有何特点?什么是设备分配和驱动?2.第4章作业题:68、16,第 93 页,结束语,欢迎参加到中心网站软件基础课程的学习讨论中来。中心网址:课件下载地址:我的E-mail地址:谢谢,再见!,