一:内存管理的概念
内存管理(Memory Management)是操作系统中最重要和最复杂的内容之一。随着计算机硬件的飞速发展,内存容量也在不断增长,但是现在的软件大小也在不断增长并且增长的很快,不可能将所有用户进程和系统所需要的全部程序和数据放入主存中,因此操作系统必须对内存空间进行合理的划分和有效的动态分配,这就是内存管理的概念。
有效的内存管理在多道程序设计中非常有用,它不仅可以方便用户对内存的管理,还可以有效提高计算机内存的利用率,还可以通过虚拟技术在逻辑上扩充内存。
内存管理的功能有:
- 内存空间的分配和回收 由操作系统直接负责内存的分配和回收,减轻程序员的负担,使编程效率变得更高。
- 地址转换 由于在多道程序环境下,程序的物理地址和逻辑地址有可能不一致,这时就需要地址转换来把逻辑地址转换成真实的物理地址
- 内存空间的扩充 利用虚拟存储技术或自动覆盖技术来实现内存的逻辑上的扩充。
- 存储保护 保证各道程序在自己的内存空间中运行,互不干扰。
二:进程运行的基本原理和要求
创建进程首先要将程序和数据装入内存,将用户程序变为可在内存中运行的程序,通常需要以下几个步骤:
(1)编译 由编译程序将用户源代码编译成若干目标模块
(2)链接 由链接程序将编译后形成的一组目标模块和库函数链接在一起,形成有一个完整的装入模块
(3) 装入 由装入程序将装入模块装入内存运行
- 程序的链接有三种方式:
(1)静态链接&nb