操作系统是如何管理内存的

原创:花括号MC(huakuohao-mc),关注JAVA基础编程及大数据,注重经验分享及个人成长。

在计算机的世界里,有两个比较宝贵的资源,CPU和内存。这是每个进程都要争抢的资源。这篇文章说说操作系统是怎样进行内存管理的。
因水平有限,加之内存管理涉及的细节又很多,所以这里只是简单的介绍内存管理的一些关键概念及发展过程。

直面物理内存

在很久很久以前,内核与用户进程都是直接操作物理内存的。那个时候的物理内存模型大概可以简化成这样。物理内存按照固定大小编号,每个编号代表一个固定的二进制位。我们就像使用门牌号一样使用物理内存编号。这种模型的特点就是简单直接,但是带来的问题也很多而且很严重。

问题1:用户进程之间内存冲突。

在这个模型中,如果同时运行多个进程,就会引发内存冲突。比如进程A访问16号物理内存,而这时进程B很有可能也访问16号物理,引发冲突。相当于你想进入16号房间,另一个人也想进入同样的房间,最后你俩肯定干起来。

问题2:破坏操作系统。

因为内核跟用户进程都是直接操作物理内存,所以难免用户程序就跑去操作内核使用的内存了,引发系统瘫痪。

其实这个模型也不是一无是处。因为足够简单,而且直接操作硬件,所以在简单的嵌入式系统,收音机,微波炉的电脑版里,还是采用的这种方式。对了BIOS也是采用的这种方式。

继续前进,既然这种方案有诸多严重问题,那么我们就需要找到一个新的方案。注意,我们要解决的问题是同时运行多个进程,但不会造成访问物理内存地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值