为什么静态内存重定位后的程序在内存中不能移动

君,已阅读到文档的结尾了呢~~
《操作系统》第4章教材习题解答
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
《操作系统》第4章教材习题解答
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口《操作系统》第4章教材习题解答_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
《操作系统》第4章教材习题解答
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢认为该算法对这一作业序列而言是合适的;(a)作业5未进入内存之前(b)作业5进入内存之;图3.9最差适应算法的空闲分区链表组织形式;0k;40k86k118k;156k196k;256k-1;0k;40k;86k118k;156k196k232k256k-1;比如,现在有一作业序列,作业A(15k),作业B;为了简单明了,我们把三种算法的空闲区用链表形式组;
认为该算法对这一作业序列而言是合适的。
作业5未进入内存之前
作业5进入内存之后
最差适应算法的空闲分区链表组织形式
156k 196k 232k 256k-1
比如,现在有一作业序列,作业A(15k),作业B (16k),作业C(15k),依次要求进入系统运行,假 设此时系统的空闲区按地址顺序排列,分别是起始地址 为40k的空闲区1(16k)、起始地址为70k的空闲区2(14k) 、起始地址为100k的空闲区3(5k)、起始地址为150k的 空闲区4(30k),内存分配情况如图3.10所示。用首次适 应算法、最佳适应算法和最差适应算法来处理该作业序列, 看哪种算法是合适的。
为了简单明了,我们把三种算法的空闲区用链表形式 组织起来,如图3.11 (a)、(b)、(c)所示。
0k 40k 56k 70k 84k 100k 105k 150k 180k 256k
在图3.11中,由三种算法的空闲区链表组织形式,结合
动态分区分配,可以分析得出这样的结论:对于作业A(15k),
内存使用情况 作业B(16k),作业C(15k)而言,首次适应算法和最佳适应算法都只能分配作业A和作业B,不能再分配作业C,即不能对这三个作业进行完全吞吐。只有最差适应算法,可将作业A、作业B、作业C这个作业序列的三个作业全部分配,所以最差适应算法对该作业序列而言是合适的。
在内存状态如图3.10所示情况下,若作业进入内存的顺序依次为:作业B(16k),作业A(15k),作业C(15k),则由图3.11的三种算法的链表组织形式可以分析得出,首次适应法和最佳适应法都能将该作业序列完全吞吐,而最差适应法不能将该作业系列完全吞吐。 实际应用时,应综合考虑不同情况,如用户要求、内存大小、作业平均大小等因素,选择合适的分配算法。还有一种伙伴算法在实际中应用很普遍,有关伙伴算法将在3.8.2节详细介绍。
首次适应算法空闲区链表组织
最佳适应算法空闲区链表组织
最差适应算法空闲区链表组织 图3.11
用三种适应算法处理同一作业序列
4. 可变分区存储管理的地址重定位
可变式分区的地址重定位可采用静态重定位,也可采用动态重定位。
① 如采用静态重定位,因用户作业进入内存后,程序的逻辑地址实现了重定位,不能在内存中再进行移动,经过一段时间的运行,内存中不能再分配的小碎片会越来越多。有时可能会出现这种情况,即当一个作业申请一定数量的内存时,虽然此时空闲区的总和大于新作业的内存要求,但却没有单个的空闲区足以装下该作业。
解决这个问题的办法之一是采用紧凑技术,即把小碎片集中起来使之成为一个大分区。实现的方法是移动各用户分区中的程序,使他们集中于内存的一端,而使碎片集中于另一端,从而将空闲的碎片连成一个较大的分区,供需求的作业使用。为此,必须采用动态重定位技术,才能使用户程序在内存中进行移动。
② 采用动态重定位的可变式分区管理技术,在执行内存分配时,如无足够大空闲块,应考虑实现紧凑操作。其分配算法如图3.12所示 。
可变式分区的存储保护可采用基址―限长存储保护方式。
可变式分区存储管理的优点是可以有效解决固定式分区的内部碎片问题,能较有效利用内存空间,提高了多道程序系统对内存的共享。缺点是容易产生外部碎片问题,为解决外部碎片问题,需要采用动态重定位,增加了计算机硬件成本,而紧凑工作又要花费大量处理机时间。
3.3 分页式存储管理
在可变分区存储管理系统中,要求一个作业必须装入内存某一连续区域内。这样,经过一段时间的运行,随着多个作业的进入与完成,内存中容易产生许多分散的、比较小的外部碎片。解决这一问题的一个方法是采用紧凑技术,但紧凑技术比较花费处理机时间。为此,人们考虑另一种解决方法,即打破一个作业必须装入内存连续区域的限制,可把一个作业分配到几个不连续的区域内,从而不需移动内存原有的数据,就可有效地解决碎片问题。这一思想的应用就是分页式存储管理。分页式存储管理是在大型机操作系统中被广泛采用的一种存储管理方案。
采用动态重定位的可变式分区分配算法
分页式存储管理的基本思想是,把内存空间分成大小相等、位置固定的若干个小分区,每个小分区称为一个存储块,简称块,并依次编号为0,1,2,3,??,n块,每个存储块的大小由不同的系统决定,一般为2的n次幂,如1KB,2 KB,4 KB等,一般不超过4 KB。而把用户的逻辑地址空间分成与存储块大小相等的若干页,依次为0,1,2,3,??,m页。当作业提出存储分配请求时,系统首先根据存储块大小把作业分成若干页。每一页可存储在内存的任意一个空白块内。此时,只要建立起程序的逻辑页和内存的存储块之间的对应关系,借助动态地址重定位技术,原本连续的用户作业在分散的不连续存储块中,就能够正常投入运行。
如果把一个作业的所有页面一次全部装入到内存块中,就把这种分页称之为分页式存储管理。如果作业的所有页面并不是一次全部装入,而是根据作业运行时的实际要求装入,则把这种分页管理称为请求页式存储管理。本节先讨论分页式存储管理。
3.3.1 分页式存储管理中存储块的分配与回收
分页式存储管理中,存储块的分配与回收算法比较简单。当作业有存储分配请求时,可以根据逻辑地址的大小计算出需要多少存储块,然后将空闲块分配给它们使用。通常有两种记录空闲存储块的方法:位图法和链表法。
位图法是用存储单元中的二进制位与存储块相对应,某位的值为0,表示对应的存储块
是空闲的,其值为1,表示已分配。把这些二进制位组合在一起,就构成一张位图。如图3.13(a)所示,假设内存中前16块的情形是:0,1两块由操作系统占用,作业1占用2,8,12三块,作业2占用4,7,10,14四块,3,5,6,9,11,13,15是空闲块,图3.13(b)反映了此时系统采用位图法表示的存储块使用情况。
位图是记录存储块使用情况的最简单方法,内存被划分成多少块,就有多少个二进制位与之对应。使用位图法对存储块进行管理,查找空闲块比较费时,但回收时比较简单,只需将该块对应的位图中二进制位置0即可。
⑵ 链表法 在分区存储管理中,使用链表方式来管理空闲分区的方法同样也适于页式存储管理,而且由于块的大小相同,在每个空闲块中只需包含有下一个空闲块的指针信息即可。系统设定一个空闲块链表头指针指向链表的第一个空闲块。当用户申请内存时,根据链表头指针顺序分配即可;回收时,只需将该块插入表头就可以。
(a) 块使用情况
(b) 存储块使用情况的位图表示
存储块的位图管理法
3.3.2 分页式存储管理的地址重定位
分页式存储管理中的地址重定位是非常重要的,要使不连续的、分散的用户程序能正常运行,须采用动态地址重定位。此时,可采用重定位寄存器方式,如分页太多,则重定位寄存器用得太多。通常可在内存中为每个作业开辟一块特定区域,建立起作业的逻辑页与存储块之间的对应表格关系,这种表常称为页面映象表,简称页表。最简单的页表只包含页号、块号两个内容。页表的起始地址、长度,放在该作业的进程控制块PCB中。对当前运行作业的页表由一个专用的控制寄存器――页表始址寄存器来指定。每当运行一个新作业就将该作业的页表始址、长度从进程控制块中取出。
在作业执行过程中,由硬件地址分页结构自动将每条程序指令中的逻辑地址解释成两部分,页号p和页内地址w。通过页号查页表得到存储块号b,与页内地址w合成,形成物理
地址,访问内存,得到操作数据。
逻辑地址由硬件分成的两部分页号p和页内地址w是系统自动进行的,对用户是透明的。页内地址的长度由页大小决定,逻辑地址中除去页内地址所占的低位部分外,其余高位部分为页号。假定一个系统的逻辑地址为16位,页大小为1KB,则逻辑地址的低10位(2=1 KB),被解释成页内地址w,而高6位则为页号p,地址结构如下:
现在我们举例说明动态地址重定位的实现过程。比如,现有一个系统,内存容量共256k,存储块的大小为1k,共有256块,编号为0~255。第0~4块为操作系统所使用。现有2个用户作业,作业1和作业2,其逻辑地址空间分别占2k和2.5k,进入系统后,按块的大小划分分别占2页和3页(因内存是以块为单位分配的),它们的分页情况如图3.14所示。
0页 1页 2页
分页式存储管理示意图
在图3.14中的页表反映了作业1和作业2的各页在内存中相应的存储块号。假设作业2正在运行,在第0页某单元处有一条指令MOV R1,[2500],因每页长度为1k,所以由逻辑地址的低10位构成页内地址,2500为十进制数,转化为十六进制为09C4H(二进制为
0100),取低十位为1C4H,为页内地址w;高6位为2,形成页号p,查页表知第2页在内存第10块,得到内存地址的块号b,逻辑地址的页内地址作为块内地址w,一起构成新的物理地址为29C4H单元,访问该单元,把其中的数据016817送入R1寄存器,具体实现过程如图3.15所示。
3.3.3 联想存储器
从上面介绍的地址变换过程可以看出:如果把页表全部放在内存,那么存取一个数据时,至少要访问两次内存:一次是访问页表,形成实际内存地址;另一次是根据形成的内存地址存取数据。显然,这比通常执行指令的速度要慢得多,使计算机的运行速度几乎降低一半。
三亿文库包含各类专业文献、文学作品欣赏、生活休闲娱乐、中学教育、行业资料、应用写作文书、第3章
存储管理67等内容。 
 第3 章 存储管理 一、单项选择题 1.为避免主存中各种作业相互干扰,必须进行( ) A 重定位 B 地址映射 C 地址转换 D 存储保护 2.固定分区存储管理中,CPU 在...  自考_操作系统概论真题第3章 存储管理_工学_高等教育_教育专区。自考_操作系统概论真题按章节归类并分析第3章 存储管理一、单项选择题 7.计算机主存储器中,存储单...  第三章 存储管理一、填空题: 1、 置换算法是在内存中没有___时被调用的, 它的目的是选出一个被___ 的页面。如果内存中有足够的 存放所调入的页,则不必...  B.交换的信息量太大 D.采用页式存储管理策略 B.允许程序浮动 D.扩充主存容量 第3章 存储管理 5.作业在执行中发生了缺页中断,那么经中断处理后,应返回执行 B...  第3章 存储管理习题 姓名: 学号: 一 选择题 ( )1 可执行目标程序中的地址...A、可变分区存储管理 B、页式存储管理 C、段式存储管理 D、段页式存储管理 (...  第3章 存储管理 练习题_工学_高等教育_教育专区。谭耀铭 操作系统概论 第3章 存储管理 练习题及答案第3 章 存储管理 3.1 计算机系统中的存储器 3.2 3.2 重...  第3章 存储管理(3)答案_哲学_高等教育_教育专区。内存管理( 第 3 章 内存管理(3) 一、单项选择题 1.虚拟存储技术是 。 A.补充内存物理空问的技术 B.补充...  第3章 存储管理(1)答案_哲学_高等教育_教育专区。内存管理(1) 第五章 内存管理(1) 一、单项选择题 1.存储管理的目的是 。 A.方便用户 B.提高内存利用率 ...  第3章 存储管理。计算机第3章 存储管理 3.1 存储管理的功能及目的是什么? 答:在多道程序环境中,存储管理的主要目的有两个:一是提高资源的利用率,尽量满 足多...11-12-1-试卷A_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
11-12-1-试卷A
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 可重定位内存分区 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信