一,内存管理
1,操作系统的内存管理分为三部分:
- 物理内存的管理
- 虚拟内存的管理
- 虚拟地址和物理地址如何映射
2,虚拟空间分为两部分:
- 内核空间
- 用户空间
- Text segment存放二进制可执行代码的位置
- data segment存放静态常量
- bss segment存放未初始化的静态变量
- 堆动态内存分配,往高地址增长
- memory mapping segment:文件映射进内存,比如动态库
- 栈往低地址增长
总结:
- 虚拟内存空间的管理,每个进程看到的都是独立的,互不干扰的虚拟地址空间
- 物理内存的管理,物理内存地址只有内存管理模块能够使用
- 内存映射,需要将虚拟内存和物理内存映射、关联起来
3,分段管理
(1)分段机制
- 虚拟地址 = 段选择子(段寄存器) + 段内偏移量
- 段选择子 = 段号(段表索引) + 标识位
- 段表 = 物理基地址 + 段界限(偏移量范围) + 特权等级