操作系统概念复习-操作系统课件.ppt

上传人:知****量 文档编号:82464510 上传时间:2023-03-25 格式:PPT 页数:175 大小:2.36MB
返回 下载 相关 举报
操作系统概念复习-操作系统课件.ppt_第1页
第1页 / 共175页
操作系统概念复习-操作系统课件.ppt_第2页
第2页 / 共175页
点击查看更多>>
资源描述

《操作系统概念复习-操作系统课件.ppt》由会员分享,可在线阅读,更多相关《操作系统概念复习-操作系统课件.ppt(175页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、操作系统原理课程总结2013/6/21第1-2章 导论和操作系统结构明确操作系统的作用。明确操作系统包括哪些功能明确用户模式和内核模式的概念及作用。了解操作系统提供的服务有哪些明确系统调用的工作机制。明确操作系统的结构有哪些,各自优缺点。了解虚拟机及优点第1-2章 导论和操作系统结构1.操作系统的作用答:操作系统提供了程序执行的环境。它的职能是管理和控制计算机系统中的所有软硬件资源,合理的组织计算机工作流程,并为用户提供一个良好的工作环境与友好的接口。第1-2章 导论和操作系统结构2.操作系统包括哪些功能答:存储器管理功能,主要包括:内存分配、地址映射、内存保护和内存扩充。处理机管理功能,其功

2、能包括:作业和进程调度,进程控制和进程通信。设备管理功能,主要包括:缓冲区管理、设备分配、设备驱动和设备无关性(设备处理)。文件管理功能,其功能包括:文件存储空间的管理、文件操作的一般管理、目录管理、文件的读写管理,存取控制和保护。用户接口:命令接口、程序接口、图形接口第1-2章 导论和操作系统结构4.操作系统提供的服务有哪些答:程序执行、I/O 操作、文件系统处理、通信、错误检测、资源分配、用户管理、保护第1-2章 导论和操作系统结构5.系统调用的工作机制用户在需要执行特权指令时,调用系统调用,陷入内核(不同的任务,所对应调用的系统调用号也不同,在调用系统调用陷入内核时,会同时向OS内核传入

3、一个系统调用号i)进入内核后,根据i查找系统调用表,找到调用号为i的系统调用的处理代码内核执行完系统调用处理代码后,从核心态返回用户态第1-2章 导论和操作系统结构6操作系统的结构有哪些,各自优缺点答:1.简单结构 2.层次化结构3.微内核结构要求:能用简单的语言说明不同结构操作系统的特点7虚拟机的优点答:虚拟机技术主要有两个优点。首先,通过完全的保护系统资源,虚拟机提供了一个健壮的安全保护层。其次,虚拟机允许在不干扰正常的系统操作的情况下进行系统开发。3.操作系统具有进程管理,存储管理,文件管理和设备管理的功能,下列有关描述中,哪一项是不正确的?A.进程管理主要是对程序进行管理 B.存储管理

4、主要管理内存资源 C.文件管理可以有效的支持对文件的操作,解决文件共享、保密和保护问题 D.设备管理是指计算机系统中除了CPU和内存以外的所有输入输出设备的管理A4.下列哪一个不是操作系统的主要特征?A.并发性 B.共享性 C.灵活性 D.随机性 C5.用户与操作系统打交道的手段称为 。A命令输入 B广义指令 C通信 D用户接口 D6从用户的观点看,操作系统是 。A用户与计算机之间的接口 B控制和管理计算机资源的软件 C合理地组织计算机工作流程的软件 D由若干层次的程序按一定的结构组成的有机体A第3章 进程明确进程的概念及组成。明确进程的基本状态及转换条件明确进程控制块的作用明确进程调度的类型

5、(长,中,短)及调度的过程(上下文切换)了解进程的操作有哪些。明确进程间通信的机制有哪些。进程可以分为系统进程与用户进程系统进程属于操作系统的一部分,用于完成系统的某些功能。由于系统进程是用于管理和维护系统的任务,因此他们的优先级一般高于用户进程。用户进程:从系统层次来看,在操作系统之上运行的应用进程均为用户进程。第3章 进程2进程的基本状态及转换条件状态:创建:进程正被创建。运行:(进程的)指令正被执行。等待:进程正在等待一些事件发生(如I/O 完成或接收一个信号)。就绪:进程正等待分配处理器。终止:进程结束运行进程在生存期间,可以多次从一个状态转换到另外一个状态,即多次处于运行状态,就绪状

6、态,阻塞状态,这反映了并发程序走走停停的运行轨迹。第3章 进程3进程控制块(PCB)的作用答:进程控制块是操作系统用于控制和管理进程的一种数据结构,是进程存在的唯一标志。因此,只有操作系统可以访问,而用户是无法感知的,也是无法访问的,它属于系统空间。进程控制块是进程组成中最关键的部分。每个进程有惟一的进程控制块。操作系统根据PCB对进程实施控制和管理。进程的动态、并发等特征是利用PCB表现出来的。PCB是进程存在的惟一标志。PCB中包括进程标识符,处理机状态,进程调度信息,进程控制信息。因此,进程控制块是操作系统最重要的数据结构。多道程序设计的目的是使CPU无论何时都有进程在其上运行,从而使C

7、PU利用率达到最大化。分时系统的目的是在进程之间快速切换CPU以便用户在程序运行时能与其进行交互。为达到此目的,进程调度选择一个可用的进程到CPU上执行。单处理器系统从不会有超过一个进程在运行。如果有多个进程,那么余下的则需要等待CPU空闲并重新调度。4进程调度的类型(长,中,短)及调度的过程(上下文切换);(1)高级调度:又称为作业调度或者长程调度,其主要功能是把外存上处于那些后备作业调入内存,它调度对象是作业。(2)低级调度:称为进程调度或短程调度,它所调度的对象是进程(或内核级线程)。它决定把就绪队列的某进程获得CPU;进程调度是最基本的一种调度,在多道批处理、分时和实时三种类型的OS中

8、,都必须配置这级调度。(3)中级调度又称中程调度.通过中级调度在内、外存对换区进行进程转移,以提高内存利用率和系统吞吐量。中级调度实际上就是存储器管理中的转移功能。作业(程序)是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。而进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位。其主要区别如下。(1)作业是用户向计算机提交任务的任务实体任务实体。在用户向计算机提交作业后,系统将它放入外存中的作业等待队列中等待执行。而进程则是完成用户任务的执行实执行实体体,是向系统申请分配资源的基本单位。任一进程,只要它被

9、创建,总有相应的部分存在于内存中。(2)一个作业可由多个进程组成,且必须至少由一个进程组成,反过来则不成立。问答题:1.试比较进程和程序的区别答:进程和程序是既有联系又有区别的两个概念,它们的主要区别如下:(1)进程是程序在处理机上的一次执行过程,是一个动态概念;而程序是代码的有序集合,其本身没有任何运行的含义,是一个静态的概念。(2)进程是一个状态变化的过程,是有生命期的,表现在它因创建而产生,因调度而执行,因得不到资源而暂停,因执行完毕而消失;而程序是永久的,可以长久保存。(3)进程和程序的组成不同。进程由进程控制块,进程描述表,有关程序段和数据集合组成,而程序仅是代码的有序集合。(4)进

10、程与程序之间不是一一对应的。一个程序可以构成多个进程,一个进程可以包含多个程序。2.并行与并发的概念并发(Concurrent):多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(parallel)是指在同一时刻发生。选择题:1.当前运行的进程(),将引发系统进行进程调度。A.执行了一条转移指令B.要求增加主存空间,经系统调用银行家算法进行测算认为是安全的C.执行了一条I/O指令(阻塞)D.执行程序期间发生了I/O完成中断C4.下面对进程的描述中,错误的是 。A进程是动态的概念 B进程执行需要处理机 C进程是有生命期

11、的 D进程是指令的集合D5.操作系统中,若进程从执行状态转换为就绪状态,则表示 。A时间片到 B进程被调度程序选中 C等待某一事件 D等待的事件发生 A6.一个进程被唤醒意味着 。A该进程重新占有了CPU B它的优先权变为最大 C其PCB移至等待队列队首 D进程变为就绪状态D1线程的基本概念及组成答:线程,有时也被称为轻量级进程(LWP),是进程内一个相对独立的进程流或控制流,是处理机分配的实体。线程有自己的执行堆栈,程序计数器,通用寄存器组和状态标记,当然少不了线程控制块。同一个进程的多个线程共享该进程的全部资源。2引入线程的好处。答:充分提高了操作系统的共享性,并发性,提高了机器的响应速度

12、,提高了多处理机体系结构的利用率。3用户级线程和内核级线程的区别答:用户级线程受内核支持而无需内核管理。内核线程由操作系统直接支持和管理。4多线程模型有哪些,各自优缺点多对一模型:优点:效率比较高。缺点:如果一个线程调用了导致阻塞的系统调用的话,那么将阻塞整个进程。而且,即使有多个线程也不能够并行执行。一对一模型:优点:并行性好 缺点:在于创建一个用户线程就需要创建一个相应的内核线程,会增大开销。多对多模型:优点:开发者能够创建任意多的用户线程,而且相应的内核线程能够在多处理机环境中并行运行。而且当一个线程执行导致阻塞的系统调用时,内核能够调度其它的线程执行。5线程池的思想。答:线程被频繁的使

13、用,反复创建和销毁线程要增大系统开销。同时,如果允许每个并发请求都创建线程的话,大量的并发线程会耗尽系统资源。因此引入了线程的概念。线程池的思想是在进程开始时创建一定数量的线程并将它们放入线程池中,线程在这个池中等待工作。当服务器接收到一个请求时,它就从池中唤醒一个线程(如果有可用的线程),由它来处理请求。一旦线程服务完毕,它就返回线程池等待后面的工作。如果池中没有可用的线程,那么服务器就等待,直到某个线程被释放回到线程池中。问答题:1.什么是线程?描述线程和进程的区别?答:线程是进程内的一个相对独立的执行流或控制流,是处理机分配的实体。调度:传统操作系统中,资源分配的基本单位和并发执行时调度

14、的基本单位都是进程;而引入线程的操作系统中,线程是并发执行时调度的基本单位,进程则是资源分配的基本单位并发性:在引入线程的OS中,不仅进程之间可以并发执行,同一进程的多个线程之间也可以并发执行,从而使得OS具有更好的并发性。资源共享:在引入线程的OS中,线程基本不拥有资源,只有一些运行所必须的资源,但他可以与同一进程内的其他线程共享该进程的所有资源。系统开销:进程在创建和撤销时,涉及资源的分配或回收,这使得进程在创建和撤销时的开销大于线程在创建和撤销时的开销,同样的,进程在切换的开销也大于线程在切换时的开销。第5章 CPU调度明确抢占式和非抢占式区别了解分派程序的功能明确调度的准则有哪些明确各

15、种调度算法的准则了解多处理器调度要处理的问题1抢占式和非抢占式区别(进程调度的基本方式为抢占方式和非抢占方式)抢占式的:允许进程调度程序根据某种策略终止当前正在使用cpu的进程。非抢占式的:在非抢占式调度下,一旦把 CPU分配给一个进程,那么该进程就会保持 CPU直到终止或转换到等待状态(自愿放弃CPU)。即得到cpu的进程不会因为时钟中断等原因被迫让出cpu.抢占式调度要付出一定的代价,但抢占方式可以为所有进程提供更好的服务。平均周转时间用于衡量不同调度算法对同一任务流的调度性能。平均带权周转时间用于衡量同一调度算法对不同任务流的调度性能。平均周转时间T=(T1+T2+Tn)/n平均带权周转

16、时间W=(T1/R1+T2/R2+Tn/Rn)/n其中T为周转时间,R为实际运行时间2调度的算法有哪些答:先来先服务调度算法短作业优先调度算法最高响应比调度算法最短剩余时间优先调度算法轮转调度算法多级队列调度算法多级反馈队列调度算法优先级调度算法先来先服务:严格的排队方式,从就绪队列中选择一个最先进入队列的进程,将CPU分配于它,让他运行。该进程一直运行下去,直到完成或遇到某时间而被阻塞才放弃cpu.若一个服务时间长的进程排在服务时间短的进程之前,则后者不理想。(非抢占)短作业/进程优先:当同时存在多个进程等待分配时,将服务时间段的进程优先处理。若一直有短服务进程到来,则长服务进程可能被饿死。

17、(非抢占)最高响应比调度算法:先来先服务强调作业在系统的等待时间,而短作业优先强调作业自身的估计运行时间长短。定义响应比R=(响应时间+运行时间)/运行时间这个表达式表明了R既考虑了在系统的等待时间,又考虑了作业自身所需的运行时间。当响应时间固定时,算法有利于短进程;当长进程的等待时间变长时,其优先级变大。从而避免了饥饿现象。(非抢占)最短剩余时间调度算法:按照剩余时间的长短来决定先后,是一种采用抢占策略的调度算法。(抢占、在到达时)轮转调度算法:轮转调度算法是一种基于时钟的抢占策略,以时钟中断正在运行的进程,当中断发生时,当前进程被放到就绪队列中,然后再根据先来先服务算法选择下一个进程来运行

18、。它主要用于分时系统的进程调度。时间片轮转算法的关键问题是时间片的长度,若太短,频繁的进行进程切换,会导致系统开销很大。若太长,又退化为先来先服务算法了。(抢占)可见,时间片轮转算法就是在先来先服务的基础上加入时间片而已;多级队列调度算法:把就绪进程放入若干个队列中,在每个队列中采用不同的调度算法,同时在每个队列之间也要进行调度。多级反馈队列调度算法:多级反馈队列调度算法是在多级队列的基础上,加进反馈机制形成的。所谓反馈机制,就是已经进入各队列中的进程可以在某些情况下进入其他队列。(抢占)优先级调度算法:在时间片轮转的基础上,赋予各个进程不同的优先级,调度时依据各个进程的优先级高低进行调度。所

19、以该算法的主要问题在于如何确定进程的优先级。关于优先级,有两种确定方式1)静态优先级:每个进程在进入系统时被赋予一个优先级,该优先级在进程的整个生命周期中一直固定不变。但该方法公平性较差。2)动态优先级:优先级在进程的整个生命周期中可以动态的改变。此法公平性好,资源利用率高,但系统开销大,实现起来比较复杂。在此算法中,若开始时所有进程都拥有相同优先级,则等同于时间片轮转算法。选择题:1.分时系统中进程调度算法通常采用 。A.响应比高者优先 B.时间片轮转法 C.先来先服务 D.短作业优先B2.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。A.非抢占式静态优先权法B.抢占式静态优先

20、权法C.时间片轮转调度算法D.非抢占式动态优先权法B3为了照顾紧迫型作业,应采用()。A.先来服务调度算法 B.短作业优先调度算法 C.时间片轮转调度算法 D.优先权调度算法D4作业从后备作业到被调度程序选中的时间称为()。A.周转时间(任务就绪到处理完毕)B.响应时间(任务就绪到处理开始)C.等待调度时间 D.运行时间(处理开始到处理完毕)C4在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。A.先来先服务调度算法B.短作业优先调度算法C.时间片轮转调度算法 D.长作业优先调度算法C问答题:1什么是常用调度算法的评价指标?答:CPU

21、利用率,吞吐量,周转时间(平均周转时间和带权周转时间),响应时间,系统开销周转时间指的是从作业提交到外存就绪队列到作业执行完毕的时间间隔,就绪等待时间是每个作业在就绪队列所花的时间,响应时间是提交第一个请求到产生第一个响应的时间。周转时间=就绪等待时间(等待时间)+运行时间综合分析题:有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10,6,2,4,8min。其优先级分别为3,5,2,1和4,这里5为最高优先级。对于下列每一种调度算法,计算其平均进程周转时间(进程切换开销可不考虑)。(1)先来先服务(按A,B,C,D,E)算法。(2)优先级调度算法。(3)时间片轮转算法。(

22、时间片为2分钟)(1)采用先来先服务(FCFS)调度算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示根据表中的计算结果,5个进程的平均周转时间T为:T=(10+16+18+22+30)/5=19.2min执行次序运行时间优先数等待时间周转时间A103010B651016C221618D411822E842230(2)采用最高优先级调度(HPF)算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示:它们的平均周转时间为:T=(6+14+24+26+30)/5=20min执行次序运行时间优先数等待时间周转时间B6506E84614A1031424C222426D4126

23、30(3)如果系统采用时间片轮转(RR)算法,令时间片为2分钟,5个任务轮流执行的情况为:第1轮:(A,B,C,D,E)第2轮:(A,B,D,E)第3轮:(A,B,E)第4轮:(A,E)第5轮:(A)显然,5个进程的周转时间为:T1=30min、T2=22min、T3=6min、T4=16min、T5=28min。它们的平均周转时间T为:T=(30+22+6+16+28)/5=20.4min第6章 进程同步明确临界区。明确解决临界区必须要满足的三项要求。明确信号量的定义。熟练学会使用信号量解决进程间的同步和互斥问题。1临界区。答:系统中有些资源每次只允许一个进程使用,这样的资源称为临界资源。多

24、个进程必须互斥的对他进行访问。在每个进程中访问临界资源的那段代码叫做临界区;系统有一个重要特征,就是它规定各进程必须互斥进入临界区。这就保证了各进程对临界资源的访问是互斥的。每个进程在进入临界区之前应该先对欲访问的临界资源进行检查,若临界资源未被访问,则进入临界区对相应的临界资源进行访问,同时设置它正在被访问的标记。若正在被访问,则本进程不进入临界区。因此,必须在临界区前增加一段用于进行上述检查的代码,把此段代码称为进入区。相应的,也有一段退出区的代码,用于将临界区正被访问的标记恢复为未被访问的标记。2解决临界区必须要满足的四项要求。空闲让进:当无进程处于临界区时,可以允许进程进入临界区以使用

25、临界资源。忙则等待:当有进程处于临界区时,其他试图进入临界区的进程必须等待。有限等待:避免饥饿(一个进程无限等待)和死锁(两个进程无限等待)。让权等待:已经进入临界区的进程不能在临界区内长时间阻塞,必须在一定时间内退出临界区;3信号量的定义。答:信号量是一种十分有效的进程同步工具。它的定义如下:Struct semaphoreInt value;Pointer_PCB queue;Semaphore S;除初始化以外,对信号量的访问只能通过两个原子操作:wait和signal。最初,这被称为 P操作(for wait;)和V操作(for signal;)。在执行过程中不可中断的操作叫做原子操作

26、。议题1:同步问题过桥问题:一座小桥横跨南北两岸(1)桥最多只能承重两个人,所以规定任意时刻同一方向只允许一人过桥(2)南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息。试用信号量和PV操作写出南、北两岸过桥的同步算法。桥的形状N_thin=1,S_thin=1loadNS=1,loadSN=1PN:P(loadNS);P(N_thin);走过北边狭窄通道 V(N_thin);走过宽敞的通道;P(S_thin);走南边狭窄通道;V(S_thin);V(loadNS);PS:P(loadSN);P(S_thin);走过南边狭窄通道 V(S_thin);走过宽敞的通道;P(

27、N_thin);走北边狭窄通道;V(N_thin);V(loadSN);议题2:同步问题过桥问题:一座小桥横跨南北两岸(1)桥最多只能承重两个人(2)南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息。试用信号量和PV操作写出南、北两岸过桥的同步算法。桥的形状S=2;S_thin=1;N_thin=1;PN:P(S);P(N_thin);走过北边狭窄通道 V(N_thin);走过宽敞的通道;P(S_thin);走南边狭窄通道;V(S_thin);V(S);PS:P(S);P(S_thin);走过南边狭窄通道 V(S_thin);走过宽敞的通道;P(N_thin);走北边狭

28、窄通道;V(N_thin);V(S);第7章 死锁明确死锁产生的四个必要条件明确死锁的处理方法明确死锁预防的处理方法明确死锁避免的处理方法(包括安全状态、死锁状态关系等)死锁的定义答:所谓死锁,是由于多个进程竞争资源而引起的一种僵局,若无外力作用,则这些进程永远不能向前推进。在一组进程中,每个进程都在等待被该组进程中其他进程占用的资源,却又无法等到该资源,这种现象称为进程死锁。这组进程称为死锁进程。进程死锁两大根本原因:1)竞争系统资源 2)进程的推进顺序不当1死锁产生的四个必要条件互斥条件:在一段时间内,一个资源只能由一个进程独占使用。如果另一个进程请求这个资源,那么该进程必须等待这个资源被

29、释放。持有并等待条件:允许一个进程在持有已占有资源的条件下等待另一个已经被其他进程占有的资源。不可抢占条件:进程所占有的资源只能由他自己释放,不能被别人强行抢占。循环等待条件:存在一组等待进程P0,P1,Pn,必须:P0 等待 P1 持有的资源,P1 等待 P2持有的资源,Pn-1等待Pn 持有的资源,而 Pn 等待 P0 持有的资源。2死锁的处理方法主要有四种方法可以处理死锁:预防死锁:破坏死锁的四个必要条件中的一个或几个来预防死锁的发生。避免死锁:在资源的动态分配过程中使用某种方法防止系统进入不安全状态。检测死锁和解除死锁:允许系统进入死锁状态,然后检测并恢复。死锁习题1产生死锁的基本原因

30、是()和()。答案:竞争系统资源、进程推进顺序不当备注:死锁的4大必要条件是出现死锁时候的状况,这里讨论的是产生死锁的根本缘由。死锁习题2某系统中只有11台打印机,N个进程共享打印机,每个进程要求3台,当N取值不超过()时,系统不会发生死锁?最坏情况下,N个进程每个都得到2台打印机,都去申请第3台,为了保证不死锁,此时打印机的剩余数目至少为1台,则:11-2N=1 N=5死锁习题3设系统中仅有一个资源类,其中共有3个资源实例,使用此类资源的进程共有3个,每个进程至少请求一个资源,它们所需资源最大量的总和为X,则发生死锁的必要条件是(X的取值):(?)假设3个进程所需该类资源数分别是a,b,c个

31、,因此有:a+b+c=X假设发生了死锁,也即当每个进程都申请了部分资源,还需最后一个资源,而此时系统中已经没有了剩余资源,即:(a-1)+(b-1)+(c-1)3 X=a+b+c 6 因此,如果发生死锁,则必须满足的必要条件是(X 6)议题2:银行家算法银行家算法的运作的整个流程当一个进程要求分配若干资源时,系统根据该算法判断此次分配是否会导致系统进入不安全状态,若会,这拒绝分配。该算法中的数据结构:目前可用的总资源量Available总共的需要资源量Max已经分配资源量Allocation还需要的资源量Need易知Need=Max-Allocation算法内容:设Request是进程P对资源

32、的请求量,当P发出资源请求后,系统进行一下内容:1)若Request=Need,转到步骤2),否则出错2)若Request=Available,转到步骤3),否则出错3)系统尝试着把资源分给P,并作一下修改:Available=Available-Request;Allocation=Allocation+Request;Need=Need-Request;4)系统执行安全性检查算法,判断在前三步的“假设分配以后”系统还能否处于安全状态,若能,则正式分配,否则,则将本次的试探分配作废。说白了,银行家算法就是先按照一定的规则进行假设分配,检查分配后的状态,若安全,这正式分配,否者分配作废。(安全

33、序列不是唯一的)第8章 内存管理明确逻辑地址和物理地址明确动态加载和动态链接的各自作用明确连续内存分配方法和内存映射和保护方法。明确非连续内存分配方法(分页机制、分段机制,保护方法、共享方法等)明确页表的结构有哪几种形式,各自的方法编译程序在对一个源程序进行编译时,总是从0号单元开始为其分配地址,其他所有地址都是从这个开始地址顺序排下来的,这样的地址称为逻辑地址。地址空间是逻辑地址的集合。一个编译好的程序采用的是逻辑地址,当他在计算机上运行时,要将“虚”的逻辑地址转换为“实”的物理地址,这个转换叫地址转换,也叫地址映射。物理地址的集合叫做存储空间。地址空间是逻辑地址的集合存储空间是物理地址的集

34、合一个编辑好的程序执行的过程有编译,链接,加载,运行。编译是将高级语言翻译成为低级语言。但我们知道,一个程序,通常有多个模块,这多个模块在编译后生成多个目标模块;链接的作用是将这多个目标模块整合到一起,同时,在整合的过程中,将各目标模块之间的引用转化为逻辑地址。加载的作用将链接后的加载模块中的逻辑地址转化为物理地址,得到一个新的加载模块,这个新的加载模块已经可以直接运行了。关于加载:加载的实质就是给程序分配物理地址空间,因此加载又被称为装入。装入有三种方式:绝对装入方式,可重定位方式,动态运行时装入方式不妨将链接的结果叫做A,将A加载的结果叫B,把加载的过程叫C.1)绝对装入方式:A中已经是物

35、理地址,因此过程C不需要进行地址转换。2)可重定位方式:A中是逻辑地址,当A被装入内存后,过程C将逻辑地址转化为物理地址。这种转换只在程序加载时执行一次,其后不再改变。3)动态运行时装入方式:在A中为逻辑地址,在B中仍为逻辑地址,加载的过程知识将程序放入内存中而已。那么逻辑地址到物理地址的转换在何时进行呢?在程序真正执行时才进行地址转换。内存保护:分为地址保护和权限保护地址保护:没有特别的许可,一个进程的程序只能在自己的地址空间上访问,而不能到其他进程的地址空间上访问。权限保护:对于不同的进程有不同的存储权限,对于一个只具有执行权限的进程进行些操作是违法的。我们知道作业的运行是要在内存中进行的

36、,这就涉及到了内存的管理,即如何为程序在内存中划分内存空间。方法有二:连续分配方式,离散分配方式1)连续分配方式:为一个程序分配连续的内存空间。连续分配方式又可分为:单一连续分配,固定分区分配,动态分区分配,动态可重定位分区分配;a)单一连续分配:任意时刻只有一个程序在内存中,该程序使用整个内存;b)固定分区分配:把内存区分成若干个分区(可以均分或不均分),为每个程序分配一个内存分区。存在内碎片问题。c)动态分区分配:不划分分区的大小,根据进程的大小动态的为它分配内存空间。存在外碎片问题。d)可重定位分区分配:在动态分区分配的基础上,加入内存紧凑技术。所谓内存紧凑技术就是通过移动各程序在内存中

37、的位置,将外碎片集中到一起成为一个可用的大的空闲分区。内存紧凑有份完全紧凑和部分紧凑。P2062)关于离散分配方式:a)基本分页分配方式:程序是要装入内存的,将程序的逻辑地址分成一系列同等大小的部分,称为页。同样的,将内存分成一系列同等大小的部分,称为页框或帧。页的大小与帧的大小相同。当程序要装入内存时,将程序的所有页放入空闲的页框中即可。但这也导致了同一程序的不同页不在连续的空间上,因此我们使用页表来帮助一个进程记住这些页,可以看到:页表具有从逻辑地址到物理地址映射的作用。其实,页表中存的就是表示逻辑地址的页号和表示物理地址的页框号。对于给定逻辑地址A=3096,页面大小L=1K,则该地址位

38、于(A/L)3页,页偏移量为(A%L)24.在程序中,逻辑地址的分页当然是连续的了!b)基本分段分配方式:分段方式与分页方式都是非连续的分配方式。分页是将作业机械的分成若干个页,放到与之等大的帧中。同时用页表记录 页与帧 的对应关系。分段是将作业按照其本身的逻辑分成若干个段(每个段的大小可以不同),然后将内存分为若干个等大的段框,将段放到段框中,同时用段表记录 段与段框 的对应关系。(#)注意,由于页与帧等大,因此页表是一维结构。但段与段框的大小不一定相同,因此段表不仅需要记录段号和段框号,还需要记录段的大小。因此段表是二维结构。c)段页式分配方式:先为作业按逻辑进行分段,再在每个段内机械分页

39、。我们来看一下三种方式的地址结构:页号/页内偏移量 段号/段内地址 段号/段内页号/页内偏移量分页管理与分段管理有很多异同:1)页是信息的物理单位,分页是为了解决内存外碎片问题,提高内存利用率,是系统的需求。段是信息的逻辑单位,分段是为了程序的完整性,是用户的需求。2)页的大小固定,取决于系统。块的大小不固定,可以不断变化。3)对于分页机制,程序员只需给出一个页号,系统就会算出对应的地址空间,是一维的。对于分段机制,程序员需要给出段号和段长,系统才能算出地址空间,所以是二维的。页表的结构有三种方式:说白了就是页表的存储方式1)层次页表:由于页表很大,不可能直接放入内存中,因此使用多级页表方式。

40、即为页表再建立页表。2)哈希页表:通过散列方式来对应页号与页框。(是处理超过32位地址空间的常用方法。)3)反向页表:通常,在系统中,每个进程都有一个自己的页表,该页表包含了该进程所用到的每个页的信息。由于不同进程可能使用同一页,这就造成了空间浪费。在反向页表中,系统中只有一个页表,他被所有进程共用。这就需要为页表中的每个页添加一个地址空间标示符(ASID),来标记该页当前被哪个进程使用(内存保护)。填空题1.页表的作用是实现从页号到物理块号的地址映射。2.在页式管理系统中,用户程序中使用的地址称为 逻辑地址,实际访问主存时由系统将它转化为 物理地址。3.分页管理是把内存分为大小相等的区,每个

41、区称为页帧或页框,而把程序的逻辑空间分为若干页,页的大小与页框的大小 相等。4.在分页存储管理中,为了加快地址变换速度,页面大小的值常取2的整数次幂。5.在请求式分页系统中,被调出的页面又立刻被调入,这种频繁的调页现象称为颠簸。6.分段管理中,若逻辑地址中的段内地址大于段表中该段的段长,则发生 地址越界中断。7.段页式存储管理中,每道程序都有一个 段 表和若干个 页 表。(为整个程序分段,在每段中分页)8.页式管理系统的逻辑地址结构由 页号 和 页内偏移量 组成。9分段管理中的地址映射过程是:首先找到该作业段表的 逻辑地址,然后根据逻辑地址中的 段号 去查找段表得到该段的内存起始地址,再与逻辑

42、地址中的 段内地址 相加得到物理地址。10.按需调页存储管理也称为动态页面管理,不是把一个进程映象的所有页面一次性全部装入内存,而只装入一部分,其余部分在执行中动态调入。11.在段页式管理中,逻辑地址分解为段号、段内页号、页内偏移量 三部分。选择题1.下面关于存储管理的叙述中正确的是 。A.在现在操作系统中,允许用户干预内存的分配B.固定分区存储管理是针对单道系统的内存管理方案C.可变分区存储管理可以对作业分配不连续的内存单元D.页式存储管理中,页面大小是在硬件设计时确定的D2.在存储管理中,把目标程序中的逻辑地址转换成主存空间的物理地址的过程称为 。A.存储分配 B.地址重定位 C.地址保护

43、 D.程序移动B3.作业在执行中发生了缺页中断,经操作系统处理后,应让其执行 指令。A被中断的前一条 B被中断的 C被中断的后一条 D启动时的第一条B简答题1.为什么要引入动态重定位?如何实现?为什么要引入动态重定位?如何实现?答:(1)系统在内存管理中经常需要将进程浮动,以整理出较大的存储空间。为了适应进程的这种地址变化,需要对进程的地址进行变换,即动态重定位。(2)硬件上设置“重定位寄存器”,专门存放进程的首地址。程序执行时的内存物理地址是由重定位寄存器中的地址和相对地址相加得到的。当进程从内存的某处移动到另一处时,不需对程序做任何修改,只要将进程的新地址替换原来的旧地址即可。2.试比较分

44、段式和分页式存储管理方式的主要差别。试比较分段式和分页式存储管理方式的主要差别。答:它们的差别主要表现在以下几个方面:(1)页面是信息的物理单位,分页是为了实现非连续分配,以便解决内存外碎片问题,或者说分页是由于系统管理的需要。段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要。(2)页面的大小固定且由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度却不固定,它取决于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。(3)分页式存储管理的作业地址空间是一维的,分段式存储管理的作业地址空间是二维的。综合分

45、析计算题1.某段表内容如下:一逻辑地址为(2,154)的实际物理地址为多少?答:逻辑地址(2,154)表示段号为2,即段首地址为480k,154为单元号,则实际物理地址为480k+154。段号段号段首地址段首地址段段长长度度0120K40K1760K30K2480K20K3370K20K 2.在采用页式存储管理的系统中,某作业J的逻辑地址空间为4页(每页2KB),且已知该作业的页面映像表(即页表)如下所示。页页号号块块号号02142638试借助地址变换图(即要求画出地址变换图)求出有效逻辑地址4865所对应的物理地址。解:在本题中,一页大小为2KB,即2048字节,则逻辑地址4865的页号及页

46、内位移为:页号:4865/2048=2页内位移:4865-2048*2=769通过页表可知页面2存放在物理块6中,将物理块号与逻辑地址中的页内位移进行拼接,形成物理地址,即:6*2048+769=130573.在一分页存储管理系统,页面大小为4KB。已知某进程的第0、1、2、3、4页依次存在内存中的6、8、10、14、16物理块号,现有逻辑地址为12138 B,3A5CH B,分别求其所在的页号、页内相对地址、对应的物理块号以及相应的物理地址。解:解:(1)已知页面大小4KB=4096B,页号p=INT12138/4096=2,页内位移d=12138MOD4096=3946B查页表可知页号2对

47、应物理块号为10。由地址转换原理可得:块内位移等于页内位移。故物理地址=10*4096+3946=44906B(2)解法一:解法一:已知页面大小4KB=4096 B,逻辑地址3A5CH B=14940 B。页号p=INT14940/4096=3,页内位移d=14940MOD4096=2652 B,查页表可知页号3对应物理块号为14。由地址转换原理可得:块内位移等于页内位移。故物理地址=14*4096+2652=59996 B=EA5CH B第9章 虚拟内存明确按需调页的机制和过程明确常用的页面置换算法及各自优缺点了解帧分配的方法及最小帧数目的决定因素明确系统颠簸的原因和现象明确系统颠簸解决方法

48、(工作集模型和页错误频率)明确内存映射文件机制和内存映射I/O了解内核内存分配的方法了解虚拟内存管理中影响性能的其他因素(预调页、页大小、TLB范围、程序结构等)按需调页也叫请求分页,他是虚拟存储器的一种实现方法,所谓请求分页,就是在基本分页的基础上增加请求调页和页面置换两个功能的一种存储分配策略。我们知道,在第8章的内存管理中,程序在执行过程中会被全部调入内存,事实上,这是不现实的,有很多程序本身比内存大,而我们使用虚拟存储管理可以很好地解决这一个问题。虚拟存储管理即在开始时只将程序的一部分页装入内存中,其余的页放在外存。在程序的执行过程中,若要访问某一个外存中的页(缺页),那么就通过缺页中

49、断向系统发出一个请求,请求把外存中的页调入内存(请求调页)。此时,若内存中有空闲区,则直接掉入需要的页。否则采用页面置换调入需要的页,调出不需要的页。实现虚存管理必须要有相应硬件的支持当需要向内存中调入页,而内存已经没有空间时,就需要使用页面置换算法:1)最优页面置换算法:在内存中存在的这几页,有的可能已经不再需要了,把他们置换出去最好。如果内存中存在的这几页每一个页都要使用,那么把最后使用的页置换出去。P225该算法缺页率低,但在每次选择调出的页时,需要扫描所有的页以判断哪个页使用,哪个页不使用,哪个页最后使用,开销大,不可能使用。2)先进先出置换算法:把最早进入内存的那一页置换出去,该算法

50、开销比较小,但“把最早进入内存的那一页置换出去”不科学,很少使用。对于所有的置换算法,分配给进程的物理块越多,却也率越少。但有一个特殊,就是先进先出置换算法,对于先进先出置换算法,物理块数越多,缺页率越多;这个现象被称为Belady异常。3)最近最久未使用算法:将内存所有页面中没有被使用时间最久的那一页换出。Least Resently Used,LRU是依照程序的局部性原理来设计的。为了能在缺页时做出正确的选择,该算法必须记录对驻留页面所有引用的相对顺序。P2274)由于LRU算法对计算机的硬件要求很大,因此出现了“近似LRU算法”a)用软件模拟LRU算法(附加引用位算法):比如为每个页表保

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁