第四章存储器管理-1

合集下载

计算机组成原理第四章存储系统(一)(含答案)

计算机组成原理第四章存储系统(一)(含答案)

第四章、存储系统(一)4.1 存储系统层次结构随堂测验1、哈弗结构(Harvard Architecture)是指()(单选)A、数据和指令分别存放B、数据和指令统一存放C、指令和数据分时存放D、指令和数据串行存放2、如果一个被访问的存储单元,很快会再次被访问,这种局部性是()(单选)A、时间局部性B、空间局部性C、数据局部性D、程序局部性3、下列关于存储系统层次结构的描述中正确的是()(多选)A、存储系统层次结构由Cache 、主存、辅助存储器三级体系构成B、存储系统层次结构缓解了主存容量不足和速度不快的问题C、构建存储系统层次结构的的原理是局部性原理D、构建存储系统层次结构还有利于降低存储系统的价格4、下列属于加剧CPU和主存之间速度差异的原因的是()(多选)A、由于技术与工作原理不同,CPU增速度明显高于主存增速率B、指令执行过程中CPU需要多次访问主存C、辅存容量不断增加D、辅存速度太慢5、下列关于局部性的描述中正确的是()(多选)A、局部性包括时间局部行和空间局部性B、局部性是保证存储系统层次结构高效的基础C、顺序程序结构具有空间局部性D、循环程序结构具有时间局部性4.2 主存中的数据组织随堂测验1、设存储字长为64位,对short 变量长度为16位,数据存储按整数边界对齐,关于short 变量j 在主存中地址的下列描述中正确的是()(此题为多选题)A、j的物理地址mod 8 = 0B、j的物理地址mod 8 = 1C、j的物理地址mod 8 = 2D、j的物理地址mod 8 = 32、设存储字长为64位,对char 变量长度为8位,数据存储按整数边界对齐,关于char 变量j 在主存中地址的下列描述中正确的是()(此题为多选题)A、j的物理地址mod 8 = 0B、j的物理地址mod 8 = 1C、j的物理地址mod 8 = 2D、j的物理地址mod 8 = 33、下列关于大端与小端模式的描述中,正确的是()(此题为多选题)A、大端模式(Big-endian)是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中B、小端模式(Little-endian)是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中C、0x12345678 按大端模式存放时,其所在存储单元最低字节单元存放的数据是0x12D、0x12345678 按小端模式存放时,其所在存储单元最高字节单元存放的数据是0x124、下列关于存储字长的描述中正确的是()(此题为多选题)A、主存一个单元能存储的二进制位数的最大值B、存储字长与所存放的数据类型有关C、存储字长等于存储在主存中数据类型包含的二进制位数D、存储字长一般应是字节的整数倍5、某计算机按字节编址,数据按整数边界存放,可通过设置使其采用小端方式或大端方式,有一个float 型变量的地址为FFFF C000H ,数据X = 12345678H,无论采用大端还是小段方式,在内存单元FFFF C001H,一定不会存放的数是()(此题为多选题)A、12HB、34HC、56HD、78H4.3 静态存储器工作原理随堂测验1、某计算机字长16位,其存储器容量为64KB,按字编址时,其寻址范围是()(单选)A、64KB、32KBC、32KD、64KB2、一个16K*32位的SRAM存储芯片,其数据线和地址线之和为()(单选)A、48B、46C、36D、39。

计算机操作系统第四章-存储器管理

计算机操作系统第四章-存储器管理

第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。

但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。

实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。

2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。

二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。

(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。

●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。

这个空间是以0为基址、线性或多维编址的。

2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。

●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。

四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。

1、静态地址重定位是程序装入时集中一次进行的地址变换计算。

物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。

操作系统考试必备第四章习题(存储器管理)

操作系统考试必备第四章习题(存储器管理)

一、单项选择题1.在存储管理方案中,可与覆盖技术配合。

A. 页式管理B.段式管理C.段页式管理D.可变分区管理2.在存储管理中,采用覆盖与交换技术的目的是。

A. 节省主存空间B.物理上扩充主存容量C. 提高CPU效率D.实现主存共享3.动态重定位技术依赖于。

A. 重定位装入程序B.重定位寄存器C. 地址机构D.目标程序4. 虚拟存储器的最大容量。

A. 为内外存容量之和B.由计算机的地址结构决定C.是任意的 D. 由作业的地址空间决定5.在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1、2、3、4、l、2、5、1、2、3、4、5、6时,将产生次缺页中断。

A.7 B.8 C.9 D.106.很好地解决了“零头”问题的存储管理方法是。

A. 页式存储管理B.段式存储管理C. 多重分区管理D.可变式分区管理7.系统“抖动”现象的发生是由引起的。

A. 置换算法选择不当B.交换的信息量过大C. 内存容量不足D. 请求页式管理方案8.分区管理中采用“最佳适应”分配算法时,宜把空闲区按次序登记在空闲区表中。

A. 长度递增B.长度递减C. 地址递增D. 地址递减9.在固定分区分配中,每个分区的大小是。

A. 相同B.随作业长度变化C. 可以不同但预先固定D.可以不同但根据作业长度固定10.实现虚拟存储器的目的是。

A. 实现存储保护D.实现程序浮动C.扩充辅存容量D.扩充主存容量11.采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是。

A.224B.216C.28D.23212.作业在执行中发生了缺页中断,经操作系统处理后,应让其执行指令。

A. 被中断的前一条B.被中断的C.被中断的后一条D.启动时的第一条13.把作业地址空间中使用的逻辑地址变成内存中物理地址的过程称为。

A. 重定位B.物理化C.逻辑化D.加载14.首次适应算法的空闲区是。

第4章 存储器管理_习题

第4章 存储器管理_习题

第4章存储器管理4.4自测题4.4.1基本题一.判断题(正确的在括号中记√,错误的记×)1.为了减少内部碎片,页应偏小为好。

( )2.为了减少缺页中断率,页应该小一些。

( )3.为提高对换空间的利用率,一般对其使用离散的分配方式。

( )4.用户程序中出错处理部分不必常驻内存。

( )5.使用预分页的原因是每个进程在最初运行时需要一定数量的页面。

( )6.可变分区法可以比较有效地消除外部碎片,但不能消除内部碎片。

()7.分页存储管理方案易于实现用户使用内存空间的动态扩充。

( )8.LRU页面调度算法总是选择在主存驻留时间最长的页面被淘汰。

( )9.最佳适应算法比首次适应算法具有更好的内存利用率。

( )10.请求分段存储管理中,分段的尺寸要受主存空间的限制。

( )二.单项选择题,在每小题的四个备选答案中选出一个正确答案,并将其代码写在题干后面的括号内。

不选、错选或多选者该题无分。

1.在可变式分区管理中,最佳适应算法是将空白区在空白区表中按______次序排列。

A.地址递增B.地址递减C.容量递增D.容量递减2.动态重定位技术依赖于_______.A.重定位装入程序B.重定位寄存器C.地址机构D.目标程序3.请求分页存储管理方案的主要特点是__________。

A.不要求将作业装入内存B.不要求将作业全部装入内存C.不要求使用联想存储器D.不要求缺页中断的处理4.在存储管理方案中,___________可与覆盖技术配合。

A.页式管理B.段式管理C.段页式管理D.可变分区管理5.一个计算机系统虚存的最大容量是由__________决定的。

A.主存的容量B.辅存的容量C.主存容量+辅存容量D.计算机的地址机构6.在存储管理中,采用覆盖与交换技术的目的是_________。

A.节省主存空间B.物理上扩充主存容量C.提高CPU效率D.实现主存共享7.在可变式分区分配方案中,只需要进行一次比较就可以判定是否满足作业对主存空间要求的是______。

第4章存储器管理-题库及参考答案

第4章存储器管理-题库及参考答案

第4章存储器管理-选择题参考答案一、选择题1.【2011统考】在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是()A.编辑B.编译C.链接D.装载2.下面关于存储管理的叙述中,正确的是()A.存储保护的目的是限制内存的分配B.在内存为M、有N个用户的分时系统中,每个用户占M/N的内存空间C.在虚拟内存系统中,只要磁盘空间无限大,作业就能拥有任意大的编址空间D.实现虚拟内存管理必须有相应硬件的支持3.在使用交换技术时,若一个进程正在(),则不能交换出主存。

A.创建B.I/O操作C.处于临界段D.死锁4.在存储管理中,采用覆盖与交换技术的目的是()A.节省主存空间B.物理上扩充主存容量C.提高CPU效率D.实现主存共享5.【2009统考】分区分配内存管理方式的主要保护措施是()A.界地址保护B.程序代码保护C.数据保护D.保护6.【2010统考】某基于动态分区存储管理的计算机,其主存容量为.55MB(初始为空),采用最佳适配算法,分配和释放的顺序为;分配15MB,分配30MB,释放15MB,分配8MB,分配6MB,此时主存中最大空闲分区的大小是()A.7MBB.9MBC.10MBD.15MB7.段页式存储管理中,地址映射表是()A.每个进程一张段表,两张页表B.每个进程的每个段一张段表,一张页表C.每个进程一张段表,每个段一张页表D.每个进程一张页表,每个段一张段表8.内存保护需要由()完成,以保证进程空间不被非法访问A.操作系统B.硬件机构C.操作系统和硬件机构合作D.操作系统或者硬件机构独立完成9.存储管理方案中,()可采用覆盖技术A.单一连续存储管理B.可变分区存储管理C.段式存储管理D.段页式存储管理10.在可变分区分配方案中,某一进程完成后,系统回收其主存空间并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是()A.无上邻空闲区也无下邻空闲区B.有上邻空闲区但无下邻空闲区C.有下邻空闲区但无上邻空闲区D.有上邻空闲区也有下邻空闲区 11.设内存的分配情况如图所示。

第四章存储器管理

第四章存储器管理

考点一内存管理概念一、单项选择题在下面关于存储功能的论述中正确的是()A.即使在多道程序管理下用户也可以编制用物理地址直接访问内存的程序。

B.内存分配的基本任务是为每道程序分配内存空间,其追求的目的则是提高内存的利用率。

C.为提高内存保护的灵活性,内存保护通常由软件完成。

D.地址映射是指将程序物理地址转变为内存的逻辑地址二、综合应用题1.请列举出逻辑地址和物理地址的两个不同之处。

2.一个进程被换出内存,它就失去了使用CPU的机会。

除了换出内存这种情形,请列举出其它一种情形,进程虽然失去了使用CPU的机会,但它并没有被换出内存。

3.存储管理的主要研究内容是什么?4.什么是动态链接?用何种内存分配方法可以实现这种链接技术?5.某系统把任一程序都分成代码和数据两部分。

CPU知道什么时候要指令(如取指令周期),什么时候要数据(如取数据周期或存数据周期)。

所以,需要两种寄存器(基地址寄存器、界限寄存器),一组用于指令,一组用于数据。

用于指令的是只读的,以便于用户的共享。

请分析这种策略的优缺点。

6.什么是地址的重定位?有哪几种常用的地址重定位的方法?7.在现代计算机系统中,存储器是十分重要的资源,能否合理有效的使用存储器,在很大程度上反映了操作系统的性能,并直接影响到计算机系统作用的发挥。

请问:(1)主存利用率不高主要体现为哪几种形式?(2)可以通过哪些途径来提高主存利用率8.内存保护是否可以完全由软件来实现?为什么?考点二交换与覆盖一、单项选择题1.存储管理方案中,()可采用覆盖技术。

A.单一连续存储管理B.可变分区存储管理C.段式存储管理D.段页式存储管理2.在存储系统管理中,采用覆盖技术与交换技术的目的是( )。

A.节省主存空间B.物理上扩充主存容量C.提高CPU利用率D.实现主存共存二、综合应用题1.在存储管理中,覆盖和对换技术所以解决的是什么问题?各有什么特点?2请写出你对交换过程和覆盖过程的认识,它们的主要区别有哪些?考点三连续分配管理方式一、单项选择题1.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间并与相邻空闲区合并,为此需要修改空闲区表,造成空闲区域减1的情况是()。

计算机操作系统(汤小丹等,第三版)课后答案

计算机操作系统(汤小丹等,第三版)课后答案

第四章存储器管理1. 为什么要配置层次式存储器?这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。

b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。

c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。

增加CPU中寄存器的数量,也可大大缓解对存储器的压力。

2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。

3. 何为静态链接?何谓装入时动态链接和运行时动态链接?a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。

b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。

c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS 去找到该模块并将之装入内存,把它链接到调用者模块上。

4. 在进行程序链接时,应完成哪些工作?a.对相对地址进行修改b.变换外部调用符号6. 为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。

引入重定位的目的就是为了满足程序的这种需要。

b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。

程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。

第四章 内存管理

第四章 内存管理
操作系统原理
2022/12/21
1
第四章 内存管理
4.0 问题导入
在现代操作系统中同时有多个进程在运行,每 个进程的程序和数据都需要放在内存中,那么 程序员在编写程序时是否需要知道程序和数据 的存放位置呢?
如果不知道,那么多个进程同时在内存中运 行,每个进程应占用哪些空间呢,
如何保证各个进程占用的空间不冲突呢? 内存空间如何进行分配和管理呢?
2022/12/21
2
第四章 内存管理
4.1 内存管理概述 4.2 内存管理的基础 4.3 连续内存分配存储方式 4.4 虚拟存储
2022/12/21
2
4.1 内存管理概述
4.1.1 存储结构
存储层次
➢ CPU寄存器
➢ 辅存:固定磁盘、可移动 介质
层次越高,访问速度越快,
价格也越高,存储容量也
最小
7
4.1 内存管理概述
4.1.3 操作系统在内存中的位置
图4-2 仅有RAM时操作系统与用户程序的内存分配
2022/12/21
8
4.1 内存管理概述
4.1.3 操作系统在内存中的位置
图4-3 备有ROM时操作系统和用户程序之内存分配
2022/12/21
9
4.1 内存管理概述
4.1.3 操作系统在内存中的位置
多个小分区 适量中分区 少量大分区
34
内存分配例子
分区号 大小(K) 起始地址(K) 状态
1
12
20
已分配
2
32
32
已分配
3
64
64
已分配
4
128
128
未分配
固定分区使用表
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分区号 大小(k) 起址(k) 状态
1 2 3 12 32 64 20 已分配 已分配 已分配
4
128
已分配
分区号 大小(k) 起址(k) 状态
1 2 3 12 32 64 20 32 已分配 已分配 已分配
4
128
已分配
分区号 大小(k) 起址(k) 状态
1 2 3 12 32 64 20 32 64 已分配 已分配 已分配
...
2500 365
...
365 12500
...
700
程序A的地址空间
...
15000
(3)动态运行时装入方式
在程序执行时将相对地址(逻辑地址)转换成
为绝对地址(物理地址) 允许程序在内存中移动
4.2.2程序的链接方式
(1)静态链接
– 对相对地址进行修改 – 变换外部调用符号
(2)
装入时动态链接
无法分配 返回

空闲分区 总和≥u.size? 是 进行紧凑形 成连续空闲区 修改有关的 数据结构

找到大于u.size 的可用区否?
按动态分区方式 进行分配 修改有关的 数据结构 返回分区号 及首批
4.4对 换
1、对换的引入
把内存中暂时不能运行的进程或者暂时不用的 程序和数据调到外存,把已具备条件的进程或进
(1)分配内存
设请求的分区大小:u.size
设空闲分区大小: m.size
不可再切割的剩余分区大小:size
如果m.size- u.size≤ size将整个分区分配给请
求者,否则剩余部分留在空闲分区链(表)中。
将分区的首址返回给调用者
从头开始查表
检索完否? N m.size> u.size? Y m.size -u.size≤size? N 从该分区中划出 u.size 大小的分区
F1
F1
回收区
回收区与插入点的前一个空闲区F1相邻接
回收区
F2
回收区
回收区与插入点的后一空闲分区F2相邻接
F1
F1
回收区
F2
回收区同时与插入点的前后两个分区邻接
4.3.4分区分配算法
1、首次适应算法FF。 2、循环首次适应算法。 3、最佳适应算法。
1、首次适应算法FF
空闲分区链以地址递增的次序链接。
操作系统 用户程序1 用户程序3 用户程序6 用户程序9 80KB 分散的小分区拼接 成一个大分区的方 法,称为“拼接”或 “紧凑”。
动态重定位的实现
地址变换过程是在程序执行期间,随着对每条指
令或数据的访问自动进行的,故称为动态重定位。
增设硬件机构:重定位寄存器
处理机一侧
0 100 LOAD 1,2500
将之换入;
直至已无可换入的进程或无可换出的进程为
止。
始址、分区大小
1
分区号 大小(k)起址(k)状态 64 44 可用
2
3 4 5
24
232 可用
空表目 空表目



(2)空闲分区链
在每一个分区的起始部分设置用于控制分区
的信息、向前指针,在分区尾部设置一个向 后指针,形成双向链表。
向前 指针
向后 指针
N个字节可用
0
0
3、分区分配操作
1)分配内存 2)回
Y
将该分区从链中移出
将该分区分配给请求者 修改有关数据结构 返回
图 4-8
内存分配流程
(2)回收内存
当进程释放内存时,系统根据回收区的首地址,从 空闲区链(表)中找到相应的插入点,回收区可能出 现四种情况: (1)与插入点的前一个空闲区F1相邻接。 (2)与插入点的后一空闲分区F2相邻接。 (3)同时与插入点的前、后两个分区邻接。 (4)既不与F1邻接,又不与F2邻接。
存储器一侧 重定位寄存器
10000
相对地址
2500
2500
365

存储器一侧
10000 10100
LOAD 1,2500
12500
365
动态重定位分区分配算法
增加了紧凑功能
设请求的分区大小:u.size
设空闲分区大小: m.size
不可再切割的剩余分区大小:size
请求分配 u.size 分区 检索空闲分区链(表)
3、最佳适应算法
将所有的空闲分区按其容量以从小到 大的顺序形成一空闲分区链 ,第一次找到 的空闲区必然是最佳的。
4.3.6动态重定位的引入
操作系统 用户程序1 10KB 用户程序3 30KB 用户程序6 14KB 用户程序9 26KB
碎片:内存中不能被利用的小分区 称为“零头”或“碎片”。
动态重定位的引入
分区大小相等:缺乏灵活性。用于一台计算机控
制多个相同对象。
分区大小不等。可根据程序大小为它分配适当分
区。
系统区
用户区
分区1 分区2 分区3 分区4 分区5 分区6
……
分区 1 分区 2 分区 3 分区 4
单一连 续分配
固定分区分配 (分区相等)
固定分区分配 (分区不等)
2、内存分配
将分区按大小进行分配,建立分区使用表,表项 包含分区的起始地址、大小、状态。
逻辑地址与实际地址相同。 要求程序员熟悉内存的使用情况。
通常在程序中采用符号地址。
(2)可重定位装入方式
目标模块从0编址,其它地址相对于起
始地址计算
重定位:装入时对目标程序中指令和
数据的修改过程。
0
...
1000
程序A的内存空间
10000
LOAD 1, 2500
...
LOAD 1, 2500 11000
第四章 存储器管理
1、存储管理的功能
(1)内存分配——为每个进程分配一定的内存空 间
(2)地址映射——把程序中所用的相对地址转换 成内存的物理地址 (3)内存保护——检查地址的合法性,防止越界 访问 (4)内存扩充——解决“求大于供”的问题,采 用虚拟存储技术
4.2 程序的装入和链接
从用户的源程序进入系统到相应程序在机器 上 运 行 , 所 经 历 的 主 要 处 理 阶 段 有
内存分系统区和用户区,系统区供OS使用 在内存中仅驻留一道程序,整个用户区为一用户独占。 这种分配方式仅能用于单用户、单任务OS中. 如:MS-DOS
CP/M
4.3.2固定分区分配
最简单的多道程序的存储管理方式 将内存分为几个固定大小的区域,每
个区域装入一道作业。
1、划分分区的方法
程所需数据调入内存。
2、对换分类
(1)整体对换:以整个进程为单位,又称进程对换。 部分对换: (2)页面对换:以“页” 为单位 分段对换:以 “段”为单位
进程对换实现功能: 对换空间的管理 进程的换出 进程的换入
4.4.2对换空间的管理
文件区
对换区
为提高空间利用率 采用离散分配方式 为提高对换速度 采用连续分配方式
编译阶段 装入阶段 , 连接阶段 , ___________ 和 运行阶段 。 __________
编译程序:将用户源代码编译成若干个目标模块; 链接程序:将一组目标模块及它们所需要的库函 数链接在一起,形成一个完整的装入模块; 装入程序:将装入模块装入内存。
内存空间(或物理空间、绝对空间) 内存一系列存储单元所限定的地址范围。 逻辑地址空间(或地址空间) 由程序中逻辑地址组成的地址范围。
– 在装入内存时,边装入边链接 便于软件版本的修改和更新 便于实现目标模块共享
(3)运行时动态链接
– 运行时,用到哪个模块,再链接哪个模块, 用不到的模块可不装入内存。
(1)静态链接
执行前将目标模块和它们的库函数,连接成一个 完整的装配模块。
两个问题:
对相对地址修改 变换外部调用标号
0
L-1 0
相对地址(或逻辑地址) 用户程序经编译之后的每个目标模块都以 0为基地址顺序编址,这种地址称为相对地 址。
绝对地址(或物理地址) 内存中各物理存储单元的地址是从统一 的基地址顺序编址,这种地址称为绝对地址。
4.2.1程序的装入
(1)绝对装入方式 (2)可重定位装入方式 (3)动态运行时装入方式
(1)绝对装入方式
分配时,从链首开始顺序查找,直至找
到一个大小能满足要求的空闲分区为止; 再按作业的大小,从该分区中划出一块 内存空间分配给请求者,余下的空闲分 区仍留在空闲链中。若从链首直至链尾 都不能找到一个能满足要求的分区,则 失败返回。
2、循环首次适应算法
由首次适应算法演变而成,每一次从
上次找到的下一个分区开始查找。直 到找到一个能满足要求的分区。 能使空闲分区变得均匀,但会缺乏大 的空闲分区
即在执行过程中,若发现一个被调用模块尚未装
入内存时,由操作系统去找到该模块,将它装入
内存,并把它链接到调用者模块上。
4.3连续分配方式
为一个用户程序分配一个连续的内存 空间。 分为: 4.3.1单一连续分配 4.3.2固定分区分配 4.3.3动态分区分配 4.3.6动态重定位分区分配
4.3.1单一连续分配
4
128
已分配
分区号 大小(k) 起址(k) 状态
1 2 3 12 32 64 20 32 64 已分配 已分配 已分配
4
128
128 已分配
4.3.3动态分区分配
1、数据结构 2、分区分配算法 3、分配与回收操作
1、分区分配中的数据结构
(1)空闲分区表 (2)空闲分区链
(1)空闲分区表
每个分区占一个表目,包含分区序号、分区
模块A Call B Return
相关文档
最新文档