计算机内存覆写,linux内存管理笔记(四)----虚拟内存管理技术

计算机这个行业的历史上有过很多成功的预言,最著名的自然是“摩尔定律”。当然免不了的也有很多“失败”的预测,其中一个最著名的就是,比尔·盖茨在上世纪 80 年代说的“640K ought to be enough for anyone”,也就是“640K 内存对每个人来说都够用了”。

而在现在,我们身边的机器的内存已经是4G,甚至动辄就是16G/32G的内存,如果你当时听到比尔盖茨的这句话的时候,你是不是觉得这个根本就是无稽之谈呢?那么我们就来看看这个技术是怎么做的呢?

1. 覆盖技术

覆盖技术主要用于早期的OS中(内存<64K),可用于存储空间受限,某些大作业不能一次全部装入内存,产生了大作业和小内存的矛盾。而覆盖技术就是解决这一矛盾,在较小的可用内存中运行较大的程序。其基本的思路如下:

1.对于进程,不需要一开始就把程序的全部指令和数据装入内存中执行,常用功能的代码和数据常驻内存,不常用功能放在其他程序模块中,只在需要用到时装入内存

2.程序划分为若干个功能上相对独立的程序段,按照程序逻辑结构让那些不需要同时执行的程序共享同一块内存区

3.当有关程序段的先头程序已经执行结束后,再把后续程序段从外存调入内存覆盖前面的程序段

程序员必须把一个程序划分成不同的程序段,并规定好它们的执行和覆盖顺序,例如如下实例中,设某进程的程序正文段由A,B,C,D,E和F等6个程序段组成

dec42b5d5917ace2da063f1b8bc7c1c6.png

由于程序段B不调用C,程序段C也不调用B,因此程序段B和C无需同时驻留在内存,它们可以共享同一内存区。

同理,程序段D、E、F也可共享同一内存区。所以对于程序实际

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值