操作系统内存管理基础

2020-01-29  本文已影响0人  修塔寻千里

虚拟内存(Virtual Memory)

虚拟内存的实现思想:

1、逻辑地址(Logical Address)

也成相对地址,是程序编译后所产生的地址,逻辑地址有两部分组成:

2、线性地址(Linear Address)

线性地址是逻辑地址经过分段机制转换后形成的,其基本思想是:

3、物理地址(Physical Address)

它指机器真实的物理内存所能所表示的地址空间范围。当系统开启了分页机制后,线性地址需要经过一次转换才是物理地址。

内存保护

最初的操作系统中,并没有严格的内存保护机制,对于内存的访问完全由程序编写。后来人们逐渐认识到内存保护的必要性,并列入内存管理的重点。

内存分配与回收

1、保证硬件无关性

每个硬件平台的物理内存型号、大小甚至架构等可能都各不相同,这种差异决不能体现在应用程序上,操作系统应尽可能实现向上的“透明”。

2、动态分派内存和回收

3、内存碎片

内核既要保证内存分配的合理性,也要考虑整体机制的高效性。在Android系统中,内存的分配与回收分为两个方向:

进程间通讯——mmap

mmap可以将某个设备或者文件 映射到应用进程的内存空间中,这样访问这块内存就相当于对设备/文件进行读写,而不再通过read()和wirte()。通过映射同一块物理内存来共享内存即可实现进程间通讯,这种方式因为减少了数据复制次数,一定程度上提高了进程间通讯的效率。

Android匿名共享内存

Anonymous Shared Memory(简称Ashmem)是Android特有的内存共享机制,它可以将制定的物理内存映射到各个进程自己的虚拟地址空间中,从而便捷地实现进程间的内存共享。

参考资料

上一篇 下一篇

猜你喜欢

热点阅读