存储管理之基本的存储管理

来源:互联网 发布:java开发app教程 编辑:程序博客网 时间:2024/05/01 06:12

 为什么要进行存储管理:

存储器是冯诺依曼体系结构的基础,是计算机的重要资源。必须要仔细管理,实现高的资源利用率。

存储管理要完成的三个任务:

1、记录存储器的使用情况

2、分配和回收内存

3、交换

基本的存储管理方式:

最简单的是单道程序存储管理。即把内存分为两部分,一部分给操作系统使用,另一部分给应用程序使用。给应用程序使用的内存中最多只运行一个程序。

好处:管理简单。

坏处:cpu利用率低。

多道程序管理。同样把内存分为两部分,一部分给操作系统使用,另一部分给应用程序使用。给应用程序使用的部分再划分为固定大小的若干分区,每个分区都可以运行一个独立的程序。

多道程序管理最初使用多队列的方式,但是这样做内存利用率低,所以后改用单一队列方式调度程序进入内存。


重定位和存储保护:

重定位:

当程序被编译完成后,程序中定义的实体(变量、函数等)会有一个逻辑地址。程序的各种操作都是依赖这个逻辑地址实现的。

当程序被装载入内存时,实体会有一个物理地址。

而逻辑地址和物理地址不一定相等。这就需要我们把逻辑地址转换为物理地址,以保证程序正常运行。这个过程就是地址重定位。

地址重定位有两种方式:静态重定位(提前计算出程序所有实体的物理地址)和动态重定位(在需要的时候计算出实体的物理地址)。

存储保护:

采用固定分区的多道程序内存管理,就可能出现多个程序同时运行在内存中的不同分区中的情况。显然,我们应该保证一个分区中的程序不应该访问另一个分区中的内存。这就是存储保护。

实现存储保护的方式:设置基址寄存器、边界寄存器。(也被用来进行动态重定位)。