系统分析师考试资料整理-操作系统基本原理_第1页
系统分析师考试资料整理-操作系统基本原理_第2页
系统分析师考试资料整理-操作系统基本原理_第3页
系统分析师考试资料整理-操作系统基本原理_第4页
系统分析师考试资料整理-操作系统基本原理_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 操作系统的基本原理资源共享、程序并发执行是现代操作系统的重要特征,而进程则是操作系统中独立运行的动态实体,同时又是申请资源和分配资源的基本单位。这个分配资源的基本单位和动态实体被称为“进程”(Process)。2.1 处理器管理 处理器管理的主要任务就是对中央处理器(CPU)的进程进行高效、合理的调度,解决多任务环境下如何把中央处理器的工作时间按既定的调度算法分配给各个执行进程,进而提高其使用效率。21.1 进程的引入和定义1单道程序与顺序执行系统每次只允许一道程序运行,在运行期间,该程序将独占整个计算机系统资源,且系统按照程序规定的步骤顺序地执行,在该程序执行完之前,其它程序只能等待

2、。顺序执行的特点:顺序性、封闭性和可再现性。顺序执行使系统管理简单,程序编制调试都很容易,但系统资源利用率低。2. 多道程序与并发执行系统允许多个程序交替执行,一道程序不用CPU时,另一道程序就马上使用,这种交替执行在宏观上表现为同时执行,这就是程序的并发性,其目的可大大提高处理器的利用率。并发执行的特点:异步性、竞争性、失去可再现性。3. 概念的引入在单用户、单任务操作系统中,所有计算机资源在某一时刻只能为一个任务(程序)所占有,如有多个任务,它们只能顺序执行,不存在资源共享问题。但是在多任务的操作系统中,则允许多个任务并发运行,如在Windows操作系统的PC机上,用户可以一边编程,一边欣

3、赏音乐,这对于运行在DOS系统的PC机来讲只能望洋兴叹。这就在于计算机资源分配单位的进程与程序的不同。由于在多道程序系统中,程序已经不能很好地描述并发性的问题,也不能表达并发程序的执行过程。而且,由于并发执行时程序也已经失去了封闭性和可再现性,因此,如何通过操作系统的有效管理来保证并发执行程序时的封闭性和可再现性,这就引入了“进程”的概念。4进程的定义进程(process)是执行中的程序,这个程序是一个具有一定独立功能的程序。归纳为:进程是一个具有独立功能的、可并发执行的程序关于某个数据集合上的一次动态执行过程。21.2 进程的特征 动态性进程是一个运行过程,它具有生命周期,一个由产生到消亡的

4、过程。进程具有动态的地址空间,因资源分配等而使地址空间的大小和内容都动态变化。地址空间的内容包括代码(指令执行和处理器状态的改变)、数据(变量的生成和赋值)和系统控制信息(进程控制块的生成和删除)。 独立性进程是一个可以独立运行的基本单位。各进程的地址空间相互独立,除非采用进程间的通讯,否则不能相互影响。 并发性也称异步性,指从宏观上看,多个进程能在同一时间段内同时运行,它们轮流占有CPU和各种资源。 结构化进程地址空间均为结构划分,如代码段、数据段和核心段。进程和程序是两个相关的不同概念,它们在以下几个方面存在区别和联系。进程是动态的,程序是静态的。进程会因条件的变化而发生状态的改变。程序是

5、有序代码的集合;进程是程序的执行。进程通常不可以在计算机之间迁移;而程序通常可以复制。进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序则可长久保存。进程与程序的组成不同,进程包括程序、数据和进程控制块。进程与程序是密切相关的。通过多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以包括多个程序。进程可创建另一个进程,而程序并不能形成新的程序。21.3 进程的状态及转换1. 进程的状态代表进程生命周期的三种基本状态:就绪、运行和等待。 就绪。进程已经获得除CPU以外的所有运行所需的资源,只要分配到CPU就可运行。 运行。已经获得CPU和其它系统资源,正在运行中。 阻塞。正在运

6、行的进程,因某种原因暂停运行,等待某个事件的发生,处于等待状态而被阻塞。2. 进程状态的转换进程在某种时刻总是处于某种状态,也只能处于某一种状态,随着进程自身的推进和外界条件的变化,进程的状态也随之变化,其状态变化如图21所示。运 行 调度 等待事件阻 塞就 绪 超时 事件出现被唤醒 图21 进程状态变化图 就绪态 运行态等待分配CPU的进程,系统按某种选定的策略,从处于就绪状态的进程队列中,选择一个进程让它占用CPU,被选中的进程就变为运行态,即所谓的调度。 运行态 就绪态进程用完了规定的一个CPU时间片后,就强迫该进程暂时退出CPU,或者是当有更高优先权的进程要运行时,也迫使正在运行的进程

7、让出CPU。不是由于自身或外界原因成为等待状态的进程让出CPU时,它的状态就变为就绪状态。 运行态 阻塞态当一个运行的进程提出某些请求而必须等待时,就进入了等待状态(也称阻塞状态)。在该状态下,进程失去了CPU资源。例如,某一进程在运行中要求启动I/O设备,它就变成等待I/O设备传输信息的状态。就是说,当进程在运行中申请资源得不到满足时,就会变成等待资源状态。 阻塞态 就绪态当某个被阻塞的进程所等待的事件发生后,该进程就变为就绪态。例如,某等待进程得到了所要求的I/O设备后就结束等待,进入就绪状态。任何一个结束等待的进程,必须先变成就绪状态,待分配到CPU后才能运行。21.4 进程的描述进程的

8、实体包括程序、数据集合和进程控制块3个部分。1 程序。进程运行所对应的执行代码。一个进程可以对应整个程序本身,也可以只对应程序的一部分。多个进程还可以对应一个程序(被多个进程所共享)。2 数据集合。进程运行过程中必需的资源,包括对CPU的占用、存储器、堆栈、缓冲区、I/O通道和I/O设备等的需求信息。3 进程控制块(PCB)。这是系统为进程定义的一种专门的数据结构,用PCB描述进程的运动变化过程,记忆进程的外部特征和其它进程的联系等。PCB是进程存在的唯一标志,操作系统通过PCB来管理和控制进程。PCB与进程一一对应,系统创建一个进程,在系统中就为该进程设置了一个PCB,然后利用PCB对进程进

9、行管理和控制,当进程被撤消时,系统就收回它的PCB,随之进程消亡。一般情况下,进程控制块包含四类信息。见书P18 表2.1 。 对进程执行活动的全过程的静态描述称为进程上下文。用户级上下文是指用户的地址空间,寄存器上下文是指程序寄存器、处理器状态寄存器、通用寄存器、栈指针等。系统级上下文包括进程的静态部分(PCB的资源表格)和由核心栈等构成的动态部分。21.5 进程的控制操作系统对进程的控制是依据用户命令和系统状态来决定的。进程控制的功能是创建和撤消进程,完成进程状态的转换。进程控制程序属于操作系统的内核程序。1. 原语概念一条原语由若干条机器指令组成,是机器指令的延伸,能完成一个特定的功能,

10、是一种特殊的系统调用命令。它的特点是执行时不可中断,且不允许原语并发执行,即原子性。对系统中所有进程的生命历程进行控制的原语称为进程控制原语,与进程控制有关的操作原语有:创建原语(create)、停止原语(halt)、挂起原语(sus-pend)、激活原语(activate)、阻塞原语(block)、唤醒原语(wakeup)等基本原语。2内核概念所有的原语组成了操作系统的一个核心,即系统内核。内核处于操作系统的最底层,最接近裸机,它只占操作系统的一小部分,但使用最频繁,一般常驻内存。内核是系统的控制和协调的中心,在管态下运行。它的基本功能可以归结为以下三条: 中断处理。中断处理是操作系统内核的

11、基本功能,是整个操作系统赖以活动的基础,如进程调度、设备驱动、文件操作以及程序并发等,都由中断进行驱动。 进程管理。 进程管理包括进程的创建和撤消、进程状态的转换、进程调度以及控制进程的并发执行。 资源管理的基本操作。资源管理的基本操作包括时钟管理、设备管理,以及对文件系统进行基本控制和驱动。3. 线程的概念在操作系统中引入进程的目的,是为了使多个任务并发,以提高资源利用率,那么在操作系统中再引入线程的目的,则主要是为了提高系统的执行效率,减小并发执行的时间和调度切换时间,使操作系统具有更好的并发性。进程是一个资源拥有者,因而,在进程的创建、撤消和切换中,系统必须为之付出较大的时间开销。如果将

12、资源分配和处理器调度放在不同的活动实体中,也就是把进程所占资源与进程中的运行代码分离,那么在一个地址空间中便可运行多个指令流,这样就产生了线程。线程是进程中一个可独立调度的实体。它的优点体现在以下几个方面: 线程的创建时间比进程短; 线程的终止时间比进程短; 同进程内的线程切换时间比进程短; 由于同进程内的线程共享内存和文件资源,因此可直接进行不通过内存的通信。21.6 进程的调度在多道程序环境下,一旦为用户作业建立了进程并装入到内存,则多个进程就要共享处理器资源,这就必然会引起对处理器的竞争。进程调度的主要任务就是按照一定的策略动态地把处理器分配给就绪队列中的某个进程,以实现进程在就绪和执行

13、状态间的转换,直到该进程完成为止。1. 调度级别引起处理器调度的原因很多,可归纳为:正在执行的进程运行完毕;正在执行的进程因等待某一事件的发生而不能继续执行;为了实现进程同步而执行了某种原语操作;有一个优先级更高的进程进入了就绪队列;在时间片轮转中,时间片用完等。处理器调度按调度的级别分为三级:高级调度、中级调度、低级调度,如图22所示。活动进程 主 机 执行就绪阻塞阻塞挂起(外存交换区)后备作业(外存输入)低级调度中级调度高级调度就绪挂起(外存交换区) 激活 挂起 挂起 激活 图22 处理器的三级调度 高级调度。高级调度又称作业调度或宏观调度它决定从外存的后备队列中选出哪些作业调入内存,并为

14、它建立一个或多个就绪进程,准备执行 中级调度。主要任务是在内存和外存交换区之间调出被阻塞的进程和过多的就绪队列,换进被选中要执行的进程,从而达到扩充内存的目的。它特别适用于分时系统和那些具有虚拟存储器的系统中。 低级调度。低级调度也称进程调度或微观调度。它的任务是按调度算法从就绪进程队列中现选择一个进程来执行,即分派程序。2. 进程调度功能进程调度应具备如下三个功能: 记录进程的执行情况。利用进程控制块PCB记录进程的运行状态。 分配CPU。选择可以享有处理器的进程,将它移出就绪队列并设置成运行态,同时立即启动CPU执行该程序。 进程上下文切换。进程是在进程的上下文中执行的。当发生调度时,选出

15、一个就绪进程替换当前正在执行的进程,这时就要做上下文切换,系统要保存当前进程的上下文信息,以便再切换到该进程时,可从上次的断点继续执行。3. 进程调度方式进程调度方式通常有以下两种: 剥夺方式剥夺方式也称抢占方式。当一个进程正在执行它的CPU周期期间,系统可基于某种原则强行剥夺现行进程占用CPU,并把CPU让给其它进程。剥夺原则: 优先级原则。优先级高的进程可剥夺优先级低的进程占有的CPU. 短进程优先原则。当到达的进程比正在执行的进程明显的短时,剥夺长进程的执行而优先执行短进程。 时间片原则。某进程分配的时间片用完后则重新调度。 强制性剥夺。重要进程或人工干预,强制调度。 非剥夺方式采用这种

16、调度方式时,一旦把CPU分配给某个进程后,便让该进程一直执行,直到个进程执行完成或等待某个事件而被阻塞时,才把CPU分配给其它进程。4. 进程调度策略先来先服务(First Come First Service)算法FCFS先来先服务算法是最简单的调度算法,它的基本思想是按照进程到达的先后次序进行调度。它的特点是:比较有利于长作业,不利于短作业;有利于处理器繁忙的作业,不利于I/O繁忙的作业。最短作业优先(Shortest Job First)算法SJF它从作业的后备队列中选择估计运行时间短的作业优先调度执行。它是一个非剥夺的策略,它一旦选中某个短作业后,就保证该作业尽快执行完。这样就减少了在

17、后备队列中的作业数,同时也降低了作业的平均等待时间,提高了系统的吞吐量。但是它也有缺点:对长作业不利,可能长时间得不到执行;不能根据作业的紧迫程度来划分优先级。最高响应比优先(Highest Response Ratio Next)算法HRN最高响应比优先算法是为了克服先来先服务算法和最短作业优先算法的缺点提出来的一种折中算法。先来看一下响应比的定义,一个作业或进程的响应比R和它的执行时间t以及等待时间W的关系如下: R(W + t)/ t = 1 + W/t最高响应比优先算法首先计算各个后备作业和各个就绪进程的响应比R,然后选择R值最大的作业或进程调度执行。由于R与运行时间成反比,故长作业或

18、长进程可获得较高的响应比,这就是说,该算法即优待了短作业和进程,又照顾了先来者。轮转(Round Robin)算法RR轮转算法将CPU的处理时间分成大小相等的时间片,轮流地为每个就绪进程分配一个时间片。时间片的长度一般为毫秒级,例如100毫秒。RR算法一般用在分时系统中,通过轮转调度,系统能够及时响应用户,让用户感觉到系统好像专门在为他服务。最高优先级(Highest Priority First)算法HPF最高优先级算法按照给予高优先级的作业或进程以优先服务的原则,调度程序每次选择当前优先级最高的后备作业和就绪进程,而不管作业时间的长短和进程的执行时间等其它因素。优先级的设置有静态优先级和动

19、态优先级两种方式。静态优先级方式。在一个作业和进程被建立时由系统为它确定一个优先级,它在作业或进程的整个生命周期内一直保持不变。静态优先级易于实现,系统开销小,但缺乏灵活性,且有可能导致某些低优先级的作业或进程长期得不到处理器。动态优先级方式。在创建一个进程时,先根据该进程的特性为其设置一个初始优先级,然后在进程运行过程中,随着进程的特性和运行环境的变化而动态地改变优先级。动态优先级较准确地体现了进程的动态特性,使得进程调度更为灵活,使调度性能也得到改善。多级反馈队列(Round robin with multiple feedback)算法前面介绍了几种基本的调度算法,在实际系统中,所采用的

20、调度算法往往是这些基本调度算法的综合。多级反馈队列算法就是综合了FCFS、RR和HPF的一种调度算法。该算法允许一个作业从一个队列移到另外的队列。表21是为几种常用的调度算法的各种指标特性总结的一张表格 表21 几种常用调度算法的各种指标特性 特性调度算法调度方式 吞 吐 量 响 应 时 间系统开销对进程的影响 FCFS非剥夺 不 定 可能很高,尤其是进程执行时间很大时 最小 对倾向于I/O的进程不利 SJF 非剥夺 高对短进程提供好的响应时间可能高对长进程不利 HRN非剥夺 高提供较好的响应时间可能高平衡性好 RR剥夺(时间片)时间片很小时,吞吐量可能很低) 对短进程提供较好的响应时间 低公

21、平等待 HPF剥夺(到达时) 高 提供较好的响应时间 可能高对长进程不利多级反馈队列剥夺(时间片) 不 定 不定 可能高有利于倾向I/O的进程 21.7 进程互斥与同步由于多进程在操作系统中的并发执行,它们对有限资源会有争夺与共享,存在着相互制约的关系。这就是进程间的互斥与同步。1. 进程互斥进程互斥是指由于共享资源所要求的排他性,进程间要相互竞争,以使用这些共享资源。我们先弄清几个概念:临界资源:一次只允许一个进程使用的资源,例如,打印机、磁带机,程序中的表格、变量,进程就绪队列。临界区:一个进程访问这种临界资源的那段程序代码。调用临界区应遵循的原则:有空让进,无空等待,多中择一,有限等待和

22、让权等。进程互斥的解决办法有两种,一是由竞争各方平等协商;二是引入进程管理者,由管理者来协调竞争各方对互斥资源的使用。操作系统中实现进程互斥和同步的机制都称为同步机构。通常采用“锁”和“信号量”的机制。一个控制这些同步机构的程序被称为同步原语。 锁操作通常在机器中设置硬件指令“测试并设置”来实现。锁只有两种状态:锁定(lock)和非锁定(unlock)。图23所示为测试与设置锁解决互斥问题的流程图。测试临界资源可用否? 否 是开锁 进入临界区退出临界区并开锁 图23 测试与设置锁 利用关锁原语和开锁原语可以解决并发进程对临界区访问的互斥问题 。它的优点是实现简单,易于验证,但是要不停地循环检测

23、lock值,浪费处理器资源,效率低。 信号量操作前面的互斥算法都是平等协商机制,有些问题是平等协商无法解决的,需要引入一个地位高于进程的管理者来解决共享资源的互斥问题,信号量就是由操作系统提供的管理共享资源的有效手段。信号量代表可用资源实体的数量,信号量是一个仅能由同步原语进行操作的整型变量,用来实现进程之间的互斥和同步。【二元信号量它仅允许取值0和1,主要用作互斥变量。一般信号量它允许取任意整数值,主要用于进程之间的同步。信号量为0时,说明没有资源可用;为正整数n时表示有n个同类资源可用;为负整数m时表示有m个进程被阻塞在该临界资源之外。操作系统利用信号量对进程和资源进行控制和管理,信号量的

24、值只能由P、V操作来改变。 P、V原语通过在信号量上引入一对P、V原语(P和V分别是荷兰语“等待”和“发信”的首字母)来实现并发进程对临界区的互斥访问。P、V操作的定义: P操作记为P(S),S为一信号量,它执行:S = S-1 。若S0,则进程继续执行。若S0,则进程继续执行。若S0,则从信号量等待队列中移出第一个进程,使其变为就绪状态,然后再返回原进程继续执行。】2进程同步同步一般是指两个事件的发生有着某种时序上的关系,进程同步是指系统中的几个进程为共同完成一个任务而产生的相互合作、协同运行关系。把一组并发进程因直接制约而互相发送消息,互相合作,互相等待,使得各进程按一定的速度执行的过程叫

25、做进程间的同步。进程同步同样可以用P、V操作来实现。例如,系统中有两个进程,计算进程P1和打印进程P2,通过共享同一缓冲区buf合作完成一项任务,P1每次把计算结果放入缓冲区buf,P2则每次把P1放入缓冲区的数据取走,通过打印机打印输出,如图24所示。 计算进程P1 缓冲区buf 打印进程P2 计算结果 数据图24 计算进程和打印进程合作完成任务由于这两个进程的执行时间和执行速度是独立的,可能会出现打印进程P2还没有把缓冲区内的数据取走,计算进程 P1就把新的数据送进缓冲区而覆盖了还未打印的数据;或者计算进程P1还没有计算出新的结果放入缓冲区,打印进程P2就又去缓冲区取数据。显然,必须采取某

26、种制约来避免出现上述情况。也就是说,要使得进程P1、P2要保持一种时间上的制约关系:计算进程P1把新的计算结果放入缓冲区buf后,就通知打印进程P2,告诉它有新的数据要打印了。打印进程P2取走了缓冲区的数据后,就通知计算进程P1,告诉它,缓冲区的数据已经取走,你可以往里放入新的数据了。这样,两个过程互相握手,不需CPU时刻查询是否读写,既节省了处理器资源,计算进程P1和打印进程P2 又得以同步的了。【21.8 经典的进程同步/互斥问题生产者消费者问题生产者消费者问题是指多个进程通过有限的共享缓冲区交换数据时,同步使用缓冲区资源的问题。设有M个生产者P1、P2Pm和k个消费者C1、C2Ck共享一

27、个长度为n( n0 )的缓冲区资源。生产者每次生产一件产品向其中投放,消费者每次从中取一件产品去消费。但是,生产者和消费者对缓冲区的访问必须满足以下条件:生产者要往缓冲区中放产品时,缓冲区至少还有一个空单元,同样,消费者要从缓冲区取产品时,缓冲区至少还有一个产品可供消费。如图25所示。生产者和消费者的同步关系将禁止生产者向满的缓冲区送产品,也禁止消费者从空的缓冲区提取物品。我们用C语言来描述生产者消费者的问题。设置两个同步信号量:empty,说明空缓冲区单元的数目,初值为有界缓冲区的大小n;full,满缓冲区单元的数目,初值为0;设置一个互斥信号量mutex,初值为1。Int full=0 ;

28、int empty=n ;int mutex=1;Main() cobegin Pi(); /*i=1,2,m;j=1,2,,k;*/ Cj(); CoendPi() /*i=1,2,m;*/ while (生产未完成) : 生产一个产品; P(empty); P(mutex); 送一个产品到缓冲区;V(mutex); V(full); Cj() /*j=1,2,K;*/ while (还需继续消费) P (full); P(mutex); 从缓冲区中取产品; V(mutex); V (empty); : 消费一个产品; 生产指针 生产者P1 消费者C1 生产者p2 消费者C2 生产者Pm 消

29、费者Cm 消费指针 图25 生产者消费者问题】21.9 进程通信进程间的信息交换叫做进程间通信(interprocess communication)。前面介绍的锁、信号量以及P、V操作,进程只能获得它们是否能够继续执行下去的简单信息,实际上也是一种进程间的通信,只不过信息量非常小,称作低级通信方式。为了适应进程间大量数据交换的需要,就引进了进程间通信的机制。按照进程的通信方式分以下两种: 一种是直接通信,即信息直接通过进程共享存储区共享,双方没有数据的移动。另一种是间接通信,即由发送进程先把消息送至信箱,再由接受进程从该信箱中取走消息。1. 共享存储器(shared memory)共享存储器

30、方式是一种直接通信方式。它把需要交换的信息发送到某一约定的存储区域,接收进程从该区域读取信息,从而实现两个或两个以上进程间的通信,这就是共享存储器方式。共享存储器方式有两种,一种是共享数据结构,另一种是共享存储器,前者交换数据量不大,效率低,后者可以传送大量信息。我们主要介绍后者。共享存储区的通信方式,是在主存中划定一块专门的区域来作为进程共享的存储区。进程通过对共享存储区的读或写来实现通信。图26是共享存储通信的示意图。OS 进程A虚空间 OSO共享区地址变换 进程B虚空间 虚存 主存 图26 共享存储器通信示意图 图中表明,共享区虚地址既出现在进程A中又出现在进程B中,因此A.B都可以访问

31、共享区,而且,访问地址又映射成主存地址。A进程把信息写入共享区,B进程从共享区读取信息,实现了两个进程的通信。例如:Windows中的剪贴板就是一种共享数据区的直接通信方式。2消息传递(message passing)我们把需要传送的一组信息称消息。消息缓冲通信是一种直接通信方式。它是利用在内存中设立一个大的缓冲区作为公用消息缓冲池实现进程之间的信息交换。一个进程直接发送一个消息给接收进程,并将它挂在接收进程的消息缓冲队列上,接收进程则从自己的消息缓冲队列中取得消息。3. 信箱通信信箱通信是一种间接通信。它把需要发送的一组信息视为一封信。信箱通信由发送进程建立一个与接收进程链接的信箱,信箱作为

32、通信的中间实体,发送进程把消息发往信箱,接收进程从信箱取出消息,从而完成信息交换。设置信箱的最大好处是发送进程与接收进程之间没有处理时间上的限制,既可用于实时通信,也可用于非实时通信。在操作系统中,信箱实际上是一个数据结构,分为信箱头和信箱体。信箱头存放信箱名、信箱大小、以及拥有该信箱的进程名等描述。信箱体分为许多格子,每一格子存放一个信件。信箱通信中,发送进程和接收进程要满足:发送进程要发送消息时,信箱中至少要有一个空格子存放消息;接收进程接收消息时,信箱中至少要有一个格子有消息。从而可看出,发送进程和接收进程之间需要同步。4. 管道管道实质上是一个文件。在逻辑上 被看做是管道文件,在物理上

33、 则是由文件系统的高速缓冲区构成。管道文件也可以以文件的方式存储在外部存储设备上。一个进程打开一个共享文件将消息写入,另外一个进程打开文件读取其中内容,从而达到大量消息通信的目的。2.2 存储管理存储器管理要处理的问题是如何有效地管理计算机存储器(包括内存、虚拟内存和高速缓存)来为进程提供方便、安全和足够的存储空间。2.2.1 基本概念1.存储器存储器由内存和外存组成。 内存内存又称主存,是CPU直接存取指令和数据的存储器。它的特点是存取速度快但容量小。内存包括系统区和用户区。 外存外存是一种大容量的存储器。它的特点是,CPU不能直接访问,它储存的数据必须调入内存才能执行,访问速度慢,通常用作

34、内存的后援设备。2. 物理内存与虚拟内存 物理内存物理内存是系统实际提供的存储单元,大小由系统硬件配置所决定。 虚拟内存为扩充内存将外存储器划分出来一块存储区当作内存的一部分(辅助内存),连同内存一起称虚拟内存,其大小只受计算机的地址位数限制。 高速缓存(Cache)高速缓存指的是在CPU寄存器和主存储器之间增设的一个小容量高速存储器。它可以辅助提高CPU访问内存的速度。如果按速度分,常见的结构是“寄存器高速缓存内存外存”。3. 存储空间地址 物理地址物理地址又称绝对地址或实地址。主存储器单元以字节为编址单位,每个单元都对应一个地址,这些地址称为主存储器的物理地址。由物理地址对应的主存空间称物

35、理地址空间。 逻辑地址逻辑地址又称相对地址或虚拟地址。它是程序经编译连接后的目标程序地址,通常是从0开始的一维连续地址。它所对应的空间称虚拟空间。 地址映射逻辑虚地址变换成物理实地址的过程称地址映射,也叫重定位。2.2.2 存储器管理的功能 1. 内存的分配与回收 存储管理的一个主要功能就是实现主存的分配和回收。它涉及当多个进程同时进入主存时,怎样合理分配主存空间,哪些区域是已分配的,哪些区域未分配,按什么策略和算法进行分配使得主存空间得到充分利用。当一个作业撤离或执行完后,系统必须收回它所占用的主存空间。2. 存储共享与保护 内存共享的原因有两个:一是为了更有效地利用内存空间;二是为了使多个

36、进程能动态地共享内存缓冲区。由于每个进程都有各自的独享内存空间,必须保证它们之间互不干扰,还要防止它们破坏系统程序,一般都需要采取某种保护措施。 上下界保护 通过对一个用户进程所分配的内存空间地址,设定一个上界寄存器和一个下界寄存器,将其限定在一个地址范围内,即不允许自己越界,也不允许其它进程入侵。 开关键保护将受保护的内存空间编号(保护键),同时也将每个进程设置相应的匹配字段,当进程访问内存时,首先匹配保护键,若不同,则不允许访问。3. “扩充”主存容量 虚拟存储当所运行进程需要较大内存空间,而内存空间又有限时,存储管理提供虚拟存储功能,将内存和大容量外存有机地结合起来,建立虚拟内存(VM:

37、Virtual Memory),从而大大地扩展了程序可运行空间。 虚拟容量只与系统硬件寻址范围有关,譬如,地址线为32条,则寻址能力达2324G。实际应用时,虚存设置的大小一般是当前系统安装内存的两倍。 覆盖技术 就是使一个程序的若干个数据段或程序段按照时间先后占用内存空间的某一部分。通常是将程序的必要部分常驻内存,可选部分放在外存(覆盖文件)中,当需要时再分期分批调入内存。见书P29,图2.7。 交换技术 当多个程序并发执行时,将暂时不需要内存的程序送到外存中,腾出空间来装载另外需要内存的程序。交换单位是整个进程占用的空间。2.2.3 存储器管理1. 分区管理 . 单一连续分区 该方式将内存

38、分为两个区: 系统常驻区。它固定分配给操作系统。 用户区。分配给用户程序。该方式管理简单,但效率低。. 分区式存储 把内存分成若干个分区,操作系统占用其中一个分区,其余的分区由不同的用户分别使用。这样就可以同时运行多个用户程序。 固定分区管理(静态分区管理) 系统初始化时,将内存分为若干分区,分区大小和分区总数预先被确定,一旦划分好,分区的大小和分区的总数都固定不变。由于用户程序不可能正好就是一个分区的大小,余下的部分不可用,称为“内碎片”。 可变分区管理(动态分区管理)系统运行过程中,在作业装入时动态建立。分区大小不是事先设定,而是根据作业对内存的需求量而分配,分区的个数是变化的。随着对内存

39、的一系列分配与回收,内存会形成若干占用区与空闲区交错的布局,这些交错的空闲区由于不连续,其它程序无法装入使用,形成了所谓的“外碎片”。无论内碎片或是外碎片均造成了内存的极大浪费,应采取其它策略解决之。 可重定位分区该方式与可变分区相近,区别是:利用硬件支持的地址重定位技术,使分配出去的“占用区”连成一片,并使“空闲区”也连成一片,腾出的空间可以装入新程序。这种将分区拼接的技术,称为内存紧缩技术,它可以减少外碎片造成内存的浪费,但是,这种拼接需要花费大量的CPU时间。2. 分页管理 页式存储基本原理页:将用户程序的逻辑地址空间划分成若干大小相同的块,每一块称为页。对所有的页从0开始依次编有一个页

40、号。块:又称作帧。把内存物理空间也分成与页大小相同的“块”,也编上号。当把程序调入内存时,恰好把程序的某一页装入内存的某一块,而且可以见缝插针地将若干连续的页装入分散的不连续块中。由于页和块大小相等,所以除了最后一页外,其余都很合适,这样每一个内存碎片的大小不会超过一块的大小当把程序调入内存时,恰好把程序的某一页装入内存的某一块,而且可以见缝插针地将若干连续的页装入分散的不连续块中,从而实现了离散分配。由于页和块大小相等,所有除了最后一页外,其余都很合适,而且每一个内存碎片的大小不会超过一个块的大小。这样也就减少了内存碎片。分页管理的主要任务是实现页的虚地址到块的物理地址的转换。从页号到块号是

41、从逻辑地址到物理地址的映射,系统需建立一张页表,由系统的硬件自动完成,不需要软件参与。见书P26,图2.5。页表一般是放在主存中,于是,当要按逻辑地址读写时,必须访问主存两次,第一次读出页表中的块号,第二次按块号计算出的物理地址进行读写。 页式虚拟存储技术(动态分页管理)页式虚拟存储就是把内存和外存作为一个整体来划分块。先只装入作业的一部分,其余部分则在执行过程中动态装入。见书P27,图2.6。调入策略:程序在运行过程中,一旦发现所需的页面不在内存,存储管理便发出缺页中断,执行该中断后才从外存调入所需要的页。淘汰策略:当从外存调入一页时,若内存中已无空闲的块,这时需把内存中的某一块淘汰,以便腾

42、出空间接纳新调入的页。常用的淘汰策略有循环法(按一定循环顺序轮流被淘汰)、先进先出法(优先淘汰在内存时间最长的页)、最近最少使用法(优先淘汰最近最少被访问的页)等。优点: 有效消除了内存碎片。 作业地址空间不受内存容量大小限制。 有利于组织多道作业。 内存利用率大大提高。缺点: 增加了系统时间和空间开销。 可能引起抖动,使系统性能下降。3. 分段管理段:一个有特定逻辑意义的程序或数据块。每个段都有段名,从0开始顺序编址,具有连续的空间。一个作业的地址由段号和段内偏移地址组成。断长由相应逻辑信息单位的长度决定,故段的长度是不等的。段表:系统为每一个运行的作业建立一个段表,它由段号、段长、内存起始

43、地址和状态标志组成。 简单分段管理以段为单位进行分配,每段是一个连续存储空间,作业的各段可装到不同的区域中,操作系统为每个作业各建立一个段表,指出该作业每个分段的长度和内存起始地址。作业执行时,按逻辑地址中的段号查“段表”,得到该段在主存中的起始地址,再把起始地址与逻辑地址中的段内地址相加就得到欲访问的主存地址。如图2.8所示。 段表 内存0段3段2段4段1段段号段长起始地址0 1000 14001 400 63002 400 43003 1000 32004 1000 470014002400320043004700570063006700 图2.8 分段映射存储但是,段式存储管理需要有硬件

44、的转换机构支持,而且一个段也不能过大,否则就很不方便甚至不可行。 段页式管理段页式存储管理综合了段式和页式存储技术的特点,作业是按段划分的,每个段再划分成若干大小相同的页,同一段中的各页可以不连续存放,也不需要整段同时调入内存。段页式地址映射需要通过段表和页表两级实现,其地址结构由段号、段内页号和页内相对地址三部分组成。如图2.9所示。段页式管理提高了内存的利用率,但是增加了硬件成本和系统开销。 段号 页号 页内地址 图2.9 段内地址一个段可以装入到若干个不连续的块内,段的大小也不受内存可用空间的限制。内存按页划分,按页装入。所以,作业地址空间的最小单位不是段,而是页。段是信息的逻辑单位,页

45、是信息的物理单位,分段管理的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址;而分页管理的地址空间是一维的,即单一的线性地址空间,程序员只需一个标识符,就可表示一个地址。2.3 设备管理 设备管理是指对计算机外围设备的管理。2.3.1 设备的分类在计算机系统中,有大量的输入输出设备,品种繁多,而且新设备也随着技术的发展而不断出现。我们从不同的角度,可以得到不同的分类。1. 按设备所属关系分 系统设备。给计算机系统配置的各种标准设备,如键盘、显示器、鼠标、硬盘等。 用户设备。由用户自己提供的非标准设备,如各种接口卡,模数和数模转换卡等。2. 按数据组织关系分 块设备。以字

46、符块为单位组织和处理数据的设备,如磁盘、磁带等大多数外存设备。 字符设备。以字符为单位组织和处理信息的设备,如键盘、终端、打印机、鼠标等。划分字符设备和块设备主要依据设备的记录信息大小。3. 按资源分配方式分 独享设备。若某设备一次只能分配给一个用户使用直到释放,则称其为独享设备。它是一种临界资源,如打印机等。 共享设备。多用户可以交替共用的设备,就是共享设备,如磁盘等。 虚拟设备。通过假脱机(Spooling)技术将一台独享的物理设备改造成能为多用户共享的虚拟设备,可同时分配给多个进程使用,如网络打印机等。4.按功能特性分 输入输出设备。用于信息的输入输出,如键盘、打印机、显示器、扫描仪、鼠

47、标等。 外部存储设备。用于存储大容量信息,如磁盘、光盘等。 终端设备。用于实现与主机的交互,它又可分为通用型,专用型和虚拟型等。 脱机型设备。这是指那些能独立于计算机运行,但仍需要计算机处理的一些设备。2.3.2 设备管理的主要功能设备管理属于操作系统中最烦琐、最复杂的部分。用户对I/O设备的使用要求是方便、高效、安全和正确。设备管理就是让用户在不需要了解底层设备资源的状况下,利用操作系统提供的设备管理接口,就可以很方便地采用逻辑设备名使用外围设备,同时,还要最大限度地提高外设的利用率。为达目的,设备管理应具备以下功能: 完成设备的分配和回收。对类型不同的设备,采取不同的分配策略,将设备分配给

48、申请设备的进程。对当前不能分配设备的进程,应将它们排到相应的等待队列中,等到适当时机再分配出去。作业使用完设备后,系统应及时收回。 实现缓冲区的管理。为了使慢速的外设和高速运行的CPU匹配,系统设置了缓冲区。缓冲区的分配、回收及管理由设备管理部分实现。 控制I/O设备的启动。设备的启动由系统自己完成,不容许用户直接启动。 进行I/O事件的中断处理。当I/O中断信号出现时,设备管理负责I/O中断事件的处理。 管理共享设备的驱动调度。共享设备容许多个作业交替启用,但不能预分配,只有在使用时才由设备管理进行调度。 提供虚拟设备。在设备管理中提供了一个SPOOLING系统,可以使独享设备变为共享设备使

49、用。2.3.3 数据的输入输出方式计算机的每一类外设都有自己的硬件接口电路,每一种接口电路都有自己的接口地址,通过总线与内存和CPU相连接,用以完成外围设备和内存之间的数据交换。1. 程序查询方式程序查询程序不断地测试外设的某个接口的状态寄存器,一旦满足要求,便转入与外设之间的数据传输。见书P31,图2.8所示。它的特点是,查询期间CPU始终被外设占用,直到外设准备就绪,因此效率很低。2. 中断控制方式中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断正在执行的程序转而去执行相应的事件处理程序,待处理完毕后又转回到原来被中断处继续执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出请求中断处理的信号称为中断请求。CPU收到中断请求后转到相应的处理程序称为中断响应。禁止中断:有些情况下,尽管CPU收到中断请求,但是,CPU的中断允许位已被清除,从而不允许CPU响应中断,这种情况称为禁止中断。中断屏蔽:在中断请求产生后,系统有选择地封锁一部分中断,对这部分中断实行中断屏蔽。不可屏蔽中断:有些中断请求是不能被屏蔽的,如电源掉电引起的中断就是不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论