操作系统(二) --- 内存管理

### 内存管理概述

我们知道操作系统实际上是分为内核态和用户态,而这里的存储管理实际上考虑的是对用户态的存储进行管理,从存储管理的目的出发,可以认为存储管理需要实现如下目标:

  1. 地址转换:即程序的逻辑地址与内存的物理地址的转换。
  2. 内存的分配与回收:即为进程分配内存并按一定的策略进行回收。
  3. 内存的地址保护:即让多个进程并行运行时不会影响其他进程。
  4. 内存的共享:允许多个程序同时使用存储器。
  5. 内存的扩充:即从逻辑上扩充内存,即实现小内存运行大程序。

### 理解程序的编译、连接与装入

由于计算机只能识别二进制数据,所以我们的程序需要由计算机(虚拟机)运行时,都需要将源程序经过编译的过程转换为二进制目标程序,然后将多个目标程序连接成可运行程序装入内存,所以连接和装入的过程往往是一起的。

  • 编译:即源程序经过编译器处理转换为二进制程序(目标程序)的过程。
  • 连接:将多个目标程序连接起来转换为可运行程序。
  • 装入:将连接的可运行程序装入内存由CPU调度执行。

#### 连接:

1、静态连接:即在程序运行之前,就将多个目标模块连接在一起组成一个可执行文件。由于其在装入之前其逻辑地址已经确定,因此装入后就不能再移动和修改程序的逻辑地址。

2、动态连接:当程序装入时才将多个目标模块进行连接。当一个模块依赖另一个模块时,装入依赖模块可以修改其逻辑地址。

3、运行时连接:只有当程序运行时才将多个目标模块进行连接。只有程序依赖某个模块并找不到时才去寻找并装入,它节省空间且提高装入速度。

#### 装入

1、静态装入:程序的逻辑地址转换为物理地址的过程在程序编译的过程中发生,程序员需要清楚计算机的物理地址。

2、动态装入:程序的逻辑地址转换为物理地址的过程发生在程序装入时发生,它的缺点就是程序装入后无法移动。

3、运行时装入:只有程序运行时才装入程序并确定其物理地址。

 

### 存储管理的方式

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章