您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统概念复习资料【8-10章】
第8章内存管理明确逻辑地址和物理地址明确动态加载和动态链接的各自作用明确连续内存分配方法和内存映射和保护方法。明确非连续内存分配方法(分页机制、分段机制,保护方法、共享方法等)明确页表的结构有哪几种形式,各自的方法编译程序在对一个源程序进行编译时,总是从0号单元开始为其分配地址,其他所有地址都是从这个开始地址顺序排下来的,这样的地址称为逻辑地址。地址空间是逻辑地址的集合。一个编译好的程序采用的是逻辑地址,当他在计算机上运行时,要将“虚”的逻辑地址转换为“实”的物理地址,这个转换叫地址转换,也叫地址映射。物理地址的集合叫做存储空间。一个编辑好的程序执行的过程有编译,链接,加载,运行。编译是将高级语言翻译成为低级语言。但我们知道,一个程序,通常有多个模块,这多个模块在编译后生成多个目标模块;链接的作用是将这多个目标模块整合到一起,同时,在整合的过程中,将各目标模块之间的引用转化为逻辑地址。加载的作用将链接后的加载模块中的逻辑地址转化为物理地址,得到一个新的加载模块,这个新的加载模块已经可以直接运行了。关于加载:加载的实质就是给程序分配物理地址空间,因此加载又被称为装入。装入有三种方式:绝对装入方式,可重定位方式,动态运行时装入方式不妨将链接的结果叫做A,将A加载的结果叫B,把加载的过程叫C.1)绝对装入方式:A中已经是物理地址,因此过程C不需要进行地址转换。2)可重定位方式:A中是逻辑地址,当A被装入内存后,过程C将逻辑地址转化为物理地址。这种转换只在程序加载时执行一次,其后不在改变。3)动态运行时装入方式:在A中为逻辑地址,在B中仍为逻辑地址,加载的过程知识将程序放入内存中而已。那么逻辑地址到物理地址的转换在何时进行呢?在程序真正执行时才进行地址转换。内存保护:分为地址保护和权限保护地址保护:没有特别的许可,一个进程的程序只能在自己的地址空间上访问,而不能到其他进程的地址空间上访问。权限保护:对于不同的进程有不同的存储权限,对于一个只具有执行权限的进程进行些操作是违法的。我们知道作业的运行是要在内存中进行的,这就涉及到了内存的管理,即如何为程序在内存中划分内存空间。方法有二:连续分配方式,离散分配方式1)连续分配方式:为一个程序分配连续的内存空间。连续分配方式又可分为:单一连续分配,固定分区分配,动态分区分配,动态可重定位分区分配;a)单一连续分配:任意时刻只有一个程序在内存中,该程序使用整个内存;b)固定分区分配:把内存区分成若干个分区(可以均分或不均分),为每个程序分配一个内存分区。存在内碎片问题。c)动态分区分配:不划分分区的大小,根据进程的大小动态的为它分配内存空间。存在外碎片问题。d)可重定位分区分配:在动态分区分配的基础上,加入内存紧凑技术。所谓内存紧凑技术就是通过移动各程序在内存中的位置,将外碎片集中到一起成为一个可用的大的空闲分区。内存紧凑有份完全紧凑和部分紧凑。P2062)关于离散分配方式:a)基本分页分配方式:程序是要装入内存的,将程序的逻辑地址分成一系列同等大小的部分,称为页。同样的,将内存分成一系列同等大小的部分,称为页框或帧。页的大小与帧的大小相同。当程序要装入内存时,将程序的所有页放入空闲的页框中即可。但这也导致了同一程序的不同页不在连续的空间上,因此我们使用页表来帮助一个进程记住这些页,可以看到:页表具有从逻辑地址到物理地址映射的作用。其实,页表中存的就是表示逻辑地址的页号和表示物理地址的块号。对于给定逻辑地址A=3096,页面大小L=1K,则改地址位于(A/L)3页,页偏移量为(A%L)24.b)基本分段分配方式:分段方式与分页方式都是非连续的分配方式。分页是将作业机械的分成若干个页,放到与之等大的帧中。同时用页表记录页与帧的对应关系。分段是将作业按照其本身的逻辑分成若干个段(每个段的大小可以不同),然后将内存分为若干个等大的段框,将段放到段框中,同时用段表记录段与段框的对应关系。(#)注意,由于页与帧等大,因此页表是一维结构。但段与段框的大小不一定相同,因此段表不仅需要记录段号和段框号,还需要记录段的大小。因此段表是二维结构。c)段页式分配方式:先为作业按逻辑进行分段,再在每个段内机械分页。我们来看一下三种方式的地址结构:页号/页内偏移量段号/段内地址段号/段内页号/页内偏移量分页管理与分段管理有很多异同:1)页是信息的物理单位,分页是为了减少外碎片,提高内存利用率,是系统的需求。段是信息的逻辑单位,分段是为了程序的完整性,是用户的需求。2)页的大小固定,取决于系统。块的大小不固定,可以不断变化。3)分页的地址空间是一维的,程序员只需利用一个记忆符就可以标识一个地址。分段的地址空间是二维的,程序员标识一个地址时,既要给出段号,又要给出段内地址。页表的结构有三种方式:说白了就是逻辑地址与物理地址的对应方式。1)层次页表:由于页表很大,不可能直接放入内存中,因此使用多级页表方式。即为页表再建立页表。2)哈希页表:3)反向页表:填空题1.页表的作用是实现从页号到物理快号的地址映射。2.在页式管理系统中,用户程序中使用的地址称为逻辑地址,实际访问主存时由系统将它转化为物理地址。3.分页管理是把内存分为大小相等的区,每个区称为页帧或页框,而把程序的逻辑空间分为若干页,页的大小与页框的大小相等。4.在分页存储管理中,为了加快地址变换速度,页面大小的值常取2的整数次幂。5.在请求式分页系统中,被调出的页面又立刻被调入,这种频繁的调页现象称为颠簸。6.分段管理中,若逻辑地址中的段内地址大于段表中该段的段长,则发生地址越界中断。7.段页式存储管理中,每道程序都有一个段表和若干个页表。8.页式管理系统的逻辑地址结构由页号和页内偏移量组成。9.分段管理中的地址映射过程是:首先找到该作业段表的起始地址,然后根据逻辑地址中的段号去查找段表得到该段的内存起始地址,再与逻辑地址中的段内偏移量相加得到物理地址。10.请求分页存储管理也称为动态页面管理,不是把一个进程映象的所有页面一次性全部装入内存,而只装入一部分,其余部分在执行中动态调入。11.在段页式管理中,逻辑地址分解为段号、页号、页内偏移量三部分。选择题1.下面关于存储管理的叙述中正确的是。A.先现在操作系统中,允许用户干预内存的分配B.固定分区存储管理是针对单道系统的内存管理方案C.可变分区存储管理可以对作业分配不连续的内存单元D.页式存储管理中,页面大小是在硬件设计时确定的D2.在存储管理中,把目标程序中的逻辑地址转换成主存空间的物理地址的过程称为。A.存储分配B.地址重定位C.地址保护D.程序移动B3.作业在执行中发生了缺页中断,经操作系统处理后,应让其执行指令。A.被中断的前一条B.被中断的C.被中断的后一条D.启动时的第一条B简答题1.为什么要引入动态重定位?如何实现?答:(1)系统在内存管理中经常需要将进程浮动,以整理出较大的存储空间。为了适应进程的这种地址变化,需要对进程的地址进行变换,即动态重定位。(2)硬件上设置“重定位寄存器”,专门存放进程的首地址。程序执行时的内存物理地址是由重定位寄存器中的地址和相对地址相加得到的。当进程从内存的某处移动到另一处时,不需对程序做任何修改,只要将进程的新地址替换原来的旧地址即可。2.试比较分段式和分页式存储管理方式的主要差别。答:它们的差别主要表现在以下几个方面:(1)页面是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要。段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要。(2)页面的大小固定且由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度却不固定,它取决于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。(3)分页式存储管理的作业地址空间是一维的,分段式存储管理的作业地址空间是二维的。综合分析计算题1.某段表内容如下:一逻辑地址为(2,154)的实际物理地址为多少?答:逻辑地址(2,154)表示段号为2,即段首地址为480k,154为单元号,则实际物理地址为480k+154。段号段首地址段长度0120K40K1760K30K2480K20K3370K20K2.在采用页式存储管理的系统中,某作业J的逻辑地址空间为4页(每页2KB),且已知该作业的页面映像表(即页表)如下所示。页号块号02142638试借助地址变换图(即要求画出地址变换图)求出有效逻辑地址4865所对应的物理地址。解:在本题中,一页大小为2KB,即2048字节,则逻辑地址4865的页号及页内位移为:页号:4865/2048=2页内位移:4865-2048*2=769通过页表可知页面2存放在物理块6中,将物理块号与逻辑地址中的页内位移进行拼接,形成物理地址,即:6*2048+769=130573.在一分页存储管理系统,页面大小为4KB。已知某进程的第0、1、2、3、4页依次存在内存中的6、8、10、14、16物理块号,现有逻辑地址为12138B,3A5CHB,分别求其所在的页号、页内相对地址、对应的物理块号以及相应的物理地址。解:(1)已知页面大小4KB=4096B,页号p=INT[12138/4096]=2,页内位移d=12138MOD4096=3946B查页表可知页号2对应物理块号为10。由地址转换原理可得:块内位移等于页内位移。故物理地址=10*4096+3946=44906B(2)解法一:已知页面大小4KB=4096B,逻辑地址3A5CHB=14940B。页号p=INT[14940/4096]=3,页内位移d=14940MOD4096=2652B,查页表可知页号3对应物理块号为14。由地址转换原理可得:块内位移等于页内位移。故物理地址=14*4096+2652=59996B=EA5CHB第9章虚拟内存明确按需调页的机制和过程明确常用的页面置换算法及各自优缺点了解帧分配的方法及最小帧数目的决定因素明确系统颠簸的原因和现象明确系统颠簸解决方法(工作集模型和页错误频率)明确内存映射文件机制和内存映射I/O了解内核内存分配的方法了解虚拟内存管理中影响性能的其他因素(预调页、页大小、TLB范围、程序结构等)按需调页也叫请求分页,他是虚拟存储器的一种实现方法,所谓请求分页,就是在基本分页的基础上增加请求调页和页面置换两个功能的一种存储分配策略。我们知道,在第8章的内存管理中,程序在执行过程中会被全部调入内存,事实上,这是不现实的,有很多程序本身比内存大,而我们使用虚拟存储管理可以很好地解决这一个问题。虚拟存储管理即在开始时只将程序的一部分页装入内存中,其余的页放在外存。在程序的执行过程中,若要访问某一个外存中的页(缺页),那么就通过缺页中断向系统发出一个请求,请求把外存中的页调入内存(请求调页)。此时,若内存中有空闲区,则直接掉入需要的页。否则采用页面置换调入需要的页,调出不需要的页。实现虚存管理必须要有相应硬件的支持当需要向内存中调入页,而内存已经没有空间时,就需要使用页面置换算法:1)最优页面置换算法:在内存中存在的这几页,有的可能已经不再需要了,把他们置换出去最好。如果内存中存在的这几页每一个页都要使用,那么把最后使用的页置换出去。P225该算法缺页率低,但在每次选择调出的页时,需要扫描所有的页以判断哪个页使用,哪个页不使用,哪个页最后使用,开销大,不可能使用。2)先进先出置换算法:把最早进入内存的那一页置换出去,该算法开销比较小,但“把最早进入内存的那一页置换出去”不科学,很少使用。对于所有的置换算法,分配给进程的物理块越多,却也率越少。但有一个特殊,就是先进先出置换算法,对于先进先出置换算法,物理块数越多,缺页率越多;这个现象被称为Belady异常。3)最近最久未使用算法:将内存所有页面中没有被使用时间最久的那一页换出。LeastResentlyUsed,LR
本文标题:操作系统概念复习资料【8-10章】
链接地址:https://www.777doc.com/doc-3586276 .html