内存管理学习开始

前几天看了下内存管理

程序员都需要有无限的内存可以使用,看现实总是与愿违,现在的产品,特别是成熟产品,对成本的要求太高,在嵌入式这个行业内,内存,flash等都压到极限,充分利用空间。

内存管理两种机制,分段,分页

1.分段

        用所谓的段寄存器去区分不用的内存地址。这个起初的目的是为了让CPU的地址线少于内存的地址线,来增加内存寻址能力的一种解决方法。但是当cpu的地址宽度越来越大,可以和内存的地址宽度一致时,为了向前兼容,intel不得不保留这个方式(也许要有其他原因),并增加一些寄存器来完成这个方案。

2.分页

        让所有的线程都有4G的虚拟内存,在不用的线程运行时,在页寄存器写入不同的页地址。分页把物理内存分成4K到4M大小的内存页,使用一些寄存器(书不在边上,忘了是什么寄存器了),使操作系统在切换线程时,切换内存页(这个中间有请页机制等等,还没搞明白,以后来更新)。

 

内存管理很复杂,总的是,一个程序地址(虚拟地址)-->(分段)--> 线性地址-->(分页) -->物理地址;

 

linux的内存管理简化了分段机制,主要在分页机制里实现内存管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值