Linux中的分段和分页

本文探讨了Linux中的分段和分页机制,以解决早期计算机内存管理中的问题,如进程地址空间隔离、内存效率和程序运行地址不确定性。虚拟内存通过分段实现进程隔离和重定位,但效率问题由分页技术解决,利用局部性原理提高内存利用率,通过页表和MMU进行地址转换。
摘要由CSDN通过智能技术生成

Linux中的分段和分页

在早期的计算机中,程序是直接运行在物理内存上,换言之就是直接操作物理地址。此时如果系统只有一个程序运行,那么只要这个程序所需的内存不超过物理内存就不会出现问题,也就不需要考虑内存管理。但是当前的计算机系统都是支持多任务、多进程的,这样CPU及其它硬件的利用率会更高,因此我们就需要考虑如何将有限的物理内存及时有效的分配给多个程序,这个过程就称为内存管理。


早期计算机系统内存管理存在的问题

1、进程地址空间不能隔离

由于程序直接访问的是物理内存,这时程序所使用的内存空间不是隔离的(每个程序都可以访问整个系统的地址空间)。这样一旦一个程序访问其它程序的地址空间,就可能导致其它程序的崩溃(很多恶意程序或者木马程序可以轻而易举的破坏其它程序),系统的安全性就得不到保障了,这对用户来说是不能容忍的。

2、内存使用的效率低

由于物理内存是有限的,当内存资源不足时,又启动一个程序,就需要使用虚拟内存技术将一些程序暂时不用的数据写到磁盘上,也就是将内存中某个程序的数据全部交换到磁盘上,以此来释放内存空间,然后在该程序再次运行时,将数据从磁盘读取到内存,由于磁盘的I/O操作是比较耗时,所以这个过程的效率将会十分低下。

3、程序运行的地址不能确定

程序每次需要运行时,都需要在内存中分配一块足够大的空闲区域,而问题就是这个空闲区域的位置不能确定的,这会带来一些重定位的问题(重定位指的是将程序的逻辑地址空间转换为物理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值