操作系统3.1:存储管理的基本知识

一、逻辑地址,物理地址

首先谈谈物理地址。物理地址就是我们平时所说的内存(主存)。我们可以把内存想象成一个长条状的旅馆,里面有一间一间的小房间,称为字节 。也就是说,字节是内存的基本单元,一个字节包括8个比特。

我们现在经常听说到32位操作系统,那么这是什么意思呢?
实际上32位,就表示主存地址表示范围是0—2^32 - 1。
因为在计算机中都是比特位,所以32位只能表示2^32个不同的状态。
进一步说明,主存只有2^32个Byte(小单元)。所以主存大小不可能超过4GB。

内存条模拟图:
在这里插入图片描述

再来说说逻辑地址

为什么会有逻辑地址的存在?
因为程序在编写的时候,会用地址操作。怎么理解呢?比如我们编程时书写:int a = 3; int b = a;
这条指令里面肯定是涉及到地址操作的,我们需要把3这个数移到a地址中;后面我们又要把a里面存的数移到b这个地址单元里面去存起来!
但是这里的地址不可能是物理地址,因为你的程序还没有跑起来,我怎么知道要放到哪片内存中去呢?因此逻辑地址的概念就出来了。

因此,每个程序都有自己对应的逻辑地址,都是从0开始的。但是最后存到物理地址上就不一定是从0开始了。
当然,这里面还有地址映射的问题。简单来说就是逻辑地址和物理地址的映射。这样CPU才能运行该进程。

图示:
在这里插入图片描述

二、程序的装入

我们都见过电脑上的.exe文件,这我们一般称之为可执行文件,我们也可以称之为可装入文件
当我们点击.exe文件开始运行的时候,这时候就产生了该程序的进程。相当于该程序从磁盘上装进了内存,这个过程我们称为程序的装入。

三、内存分配

我们知道,程序是躺在磁盘上的,要让它运行起来,必须进入内存。那么这就涉及到操作系统的内存分配问题了。如何给进程分配合适的内存空间呢?如何保证进程分配的空间是可用的、空闲的呢?如何保证分配的策略是最高效的呢?

这里有两大类内存分配方式:
1、连续型分配方式
2、非连续型分配方式

连续型分配方式

为什么叫连续型分配方式呢?因为在这种分配方式中,进程是以一个完整的状态来分配的,不会对进程进行划分。类似于原子性。

连续型分配方式包括三种:
1、单一连续分配
2、固定分区
3、动态分区

单一连续和固定分区都是不可行的。为什么呢?
单一连续:它的思想是,每次就把所有的内存空间分配给一个要执行的进程。
这种方式,一听就是不可能实用的。现在都是多道程序设计,进程是并发的,你这样分配的话,进程并发基本不可能!

固定分区:它的思想是,把内存分成若干个分区,每一块规定上大小。
在这里插入图片描述
那么,问题也来了。我要跑五个进程怎么办?或者说,我要跑的进程占据的空间比分区划分的空间大,怎么办呢?因此,固定分区也是不实用的。

因此,关于连续分配的话,我们重点要讨论的是动态分区


接下来,再大概介绍一下非连续分配方式

非连续分配方式是我们要重点掌握的,也是现在最常用的内存分配方式。
其中又包括三种分配方式:
1、页式存储管理
2、段式存储管理
3、段页式存储管理

页式和段式都有一定的缺陷,所以有了段页式,集合二者的优点。段页式是现在操作系统常用的内存管理方法。

关于动态分区内存分配的几种算法、非连续分配的详细解释,详见后续。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值