程序地址空间
-
地址:指内存的地址,是内存单元的编号。
-
虚拟地址空间:系统给进程所描述的一个假的地址空间,是一个mm_struct结构体。
-
系统会为每一个进程都描述一个假的地址空间,进程访问的都是虚拟地址,访问内存数据的时候,先将虚拟地址转换为物理地址然后访问。
-
使用虚拟地址空间的目的是为了让进程能够访问一块连续完整的地址,并且经过页表映射到物理内存之后,可以实现在物理内存上的离散式存储,提高内存利用率,并且在页表中可以进行内存访问控制。
-
内存管理方式
-
分段式内存管理:将地址空间分为多段,便于编译器进行地址管理。
· 分段式虚拟地址组成:段号+段内地址偏移量;
-
分页式内存管理:将地址空间分为多少个小块,主要实现数据离散式映射存储,提高内存利用率,提高内存安全访问控制。
· 分页式虚拟地址组成:页号+页内偏移
-
段页式内存管理:将虚拟地址空间进行分段,在每个分段内进行分页式管理,集合了分段分页的优点进行内存管理。
-
缺页中断:通过虚拟地址访问物理内存时,发现数据没有在物理内存中。
· 当物理内存不够用时,将物理内存中不活跃的数据,交换到磁盘的交换分区上,腾出内存用于新的数据处理。
· 内存置换算法:LRU(least recently used)–最久未使用 --内存淘汰旧数据策略