一. 内存的基础知识
1. 什么是内存?有什么作用?
2. 进程运行的基本原理
(1). 指令
(2). 逻辑地址VS物理地址
(3). 从写程序到程序运行过程
用户程序要在系统上运行,必须先将它装入内存,然后再将其转变为一个可执行程序
1. 装入模块装入内存(逻辑地址到物理地址的转换)
以下部分知识简单介绍装入模块的基本内容
并没有具体介绍如何实现从逻辑地址到物理地址的转换,也就是说没有详细介绍如何为程序分配内存空间的
放入了内存从0开始的地址(此时程序可正常运行)
放入了内存从100开始的地址(此时程序可能会出错)
保证装入程序地址转换正确有三种方式:
1. 绝对装入
2. 可重定位装入(静态重定位)
3. 动态运行时装入(动态可重定位)
思想:最终物理地址 = 模块在内存中的“起始地址” + 目标内存单元相对于起始位置的偏移量
好处:
- 紧凑
- 动态重定位
- 动态重定位分区分配算法
特点:增加了紧凑功能
2. 链接的三种方式
方式一:
方式二:
方式三:
3. 存储器的层次结构
二. 内存管理的功能
存储器管理的主要对象是内存。由于对外存的管理与对内存的管理相似,只是他们用途不同,即外存主要用来存放文件,所有我们把对外存的管理放在了文件管理一章介绍
1. 内存的空间分配与回收
2. 内存空间的扩展
3. 地址转换
4. 内存保护