连续存储空间和非连续存储空间

连续存储空间和非连续存储空间

 

DOS时代的内存管理是粗放的,同时其基本特点是:连续存储空间分配。物理上的空间连续性是内存定位所必须的。

详细的说,内存空间有所谓的逻辑空间和物理空间之分。

 

(1)当编写一段程序的时候,程序员所面对的是逻辑空间;

当把程序所对应的最终的可执行代码调入内存后,程序(进程)所面对的是物理空间。

(2)在C语言课程中,变量被称为“一段连续存储空间”,但是,这些变量空间不是物理上的,而是代码角度的,逻辑角度上的空间。

逻辑空间在软件(程序)调入内存(变成进程)后,会在内存的某个位置开始的地方占用连续的存储空间,此时,就需要将逻辑空间转换成物理空间。

转换的方法简单地说:用那个起始地址,加上,逻辑地址(偏移量),就可以映射到真实的物理空间中。

 

这种连续存储空间的分配与回收操作,存在一个问题:会产生所谓的“内存碎片

为了避免上述情况,现代计算机系统(主要指OS)通常采用“页式存储系统”来实现内存申请与回收。

 

一个类似的例子:扑克发牌算法。每13张牌是一页,共四页

扑克发牌算法:https://blog.csdn.net/weixin_42072280/article/details/83214758

 

对于上述页式管理,需要得到的结论:虽然在内存物理层面,内存的空间分配是不连续的,但,OS可以保证在逻辑(程序)层面是连续的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安安csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值