1 / 162
文档名称:

第4章_存储管理 PPT课件.ppt

格式:ppt   页数:162
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第4章_存储管理 PPT课件.ppt

上传人:小马匹匹 2014/11/15 文件大小:0 KB

下载得到文件列表

第4章_存储管理 PPT课件.ppt

文档介绍

文档介绍:第4章存储器管理
存储管理指操作系统中的内存管理部分,任务是:
记录哪些内存区域在使用,哪些空闲
在进程需要时为进程分配内存,使用完毕后释放内存
已被进程使用的内存区域如何保护
在内存已无足够空间支持进程运行时,如何进行内外
存的信息交换
存储器的功能是保存数据,存储器的发展方向是大容量和小体积。如:内存在访问速度方面的发展:DRAM、SDRAM、DDRAM、RDRAM等;由于价格的一路走低,现在普通个人机的内存也达到了GM。
但程序的增长速度和内存容量的增长速度几乎一样快
帕金森定律:存储器有多大,程序就有多大
所以,即使是现代的计算机系统,存储容量极大,速度也飞快,内存管理的重要性丝毫没有削弱。
对于一个单用户、单任务的操作系统的实现相对非常简单,支撑这种系统甚至不需要任何存储保护的硬件。在最严重的情况下即使内存崩溃也不会引起严重后果。
对于一个多用户、多任务的操作系统的实现就复杂的多,支撑这种系统必需要有存储保护的硬件,单靠软件是无法胜任的。在要求具有高可靠性的条件下,内存崩溃会引起严重的后果。
程序的装入和链接的有关概念
用高级、汇编语言上机步骤:编译、链接、装入。
编辑: ,
编译:从每个源文件得到对应的目标文件(PC机系统后缀为OBJ的文件)
链接:将若干有关目标文件(在VC++环境中为一个workspace中的文件)及有关系统支撑的库目标文件进行链接,得到相应的可执行文件(PC机系统后缀为EXE的文件或动态连接文件DLL)
重定位:可执行文件平时驻留在外存上,需要执行时作为作业首先装载到内存。
?这种可执行文件在外存
与内存格式一样吗
一样:意味着OS只要读入内存即可——绝对装入。
所以: 象 JMP L1
指令在变成可执行代码后,该指令的地址场的数据是固定的。这就意味该程序只能放在固定的地方。
disk
JMP 200
load
JMP 200
MOV AX, [201]
100
200
在多任务下OS无法保证执行程序在同一个位置,所以比如下次装在1000开始
一、程序的装入
重定位:可执行文件平时驻留在外存上,需要执行时作为作业首先装载到内存。
一样:意味着OS只要读入内存即可——绝对装入。
所以: 象 JMP L1
指令在变成可执行代码后,该指令的地址场的数据是定。这就意味该程序只能放在固定的地方。
disk
JMP 200
load
JMP 200
MOV AX, [201]
1000
1200
一、程序的装入
重定位:可执行文件平时驻留在外存上,需要执行时作为作业首先装载到内存。
一样:意味着OS只要读入内存即可——绝对装入。
不一样:意味着OS只要读入内存时需要对地址场部分做调整——可重定位装入。该工作有OS中专门的程序负责,一般称为装载(装入,加载)程序。
方法:执行的目标码相对与0编址,涉及到地址的操作指令地址场称为一个浮动项,在目标码文件的头上有一个浮动项说明表,表中给了浮动项的个数,每个浮动项在文件中的位置(相对于0的偏移量),OS的装载程序根据这些信息将本次分配的内存地址+浮动项的内容->浮动项的位置中。
一、程序的装入
例:
MZ
10
100
201
头标志
MOVE AX,
JMP指令码
JMP(200)
0
100
[300]
201
头部分
代码部分
200
MZ
10
100
201
头部分
例:
MOVE AX,
JMP指令码
JMP(200)
0
100
[300]
201
200
MOVE AX,
JMP指令码
JMP(200)
0+1000
100+1000
[300]
201+1000
1000
(2)装入
(1)头部分由
OS读入
(3)OS根据读入
的头对内存浮动项
装配
MZ
10
100
201
头部分
例:
MOVE,AX
JMP指令码
JMP(200)
0
100
[300]
201
200
MOVE AX,
JMP指令码
JMP(1200)
0+1000
100+1000
[300]
201+1000
1000
(2)装入
(1)头部分由
OS读入
(3)OS根据读入
的头对内存浮动项
装配
MZ
10
100
201
头部分
例:
MOVE AX,
JMP指令码
JMP(200)
0
100
[300]
201
200
MOVE AX,
JMP指令码
JMP(1200)
0+1000
100+1000
[1300]
201+1000
1000