linux学习--linux内存管理整理

个人观点:程序中的内容不会无中生有,当你要用的一个数据的时候,这个数据的地址肯定记录在哪里


(1)逻辑地址(当前程序运行的段和地址偏移量)

通过(分段单元,由MMU控制)

(2)线性地址(虚拟地址)

通过(分页单元,由MMU控制)

(3)物理地址


段寄存器:(仅仅存放段选择符

cs:代码段寄存器

ss:栈段寄存器

ds:数据段寄存器   (以上是专门用途,不可改)

es

fs

gs     (以上三个随便执行任意段)


GDT 全局描述符 存放在gdtr控制寄存器 (每个cpu一个)

LDT 局部描述符 存放在ldtr控制寄存器


linux中一般的段和段描述符:

(1)代码段描述符 (2)数据段描述符 (3)任务状态段描述符


运行程序的特权级:CPU的特权级有CPL指定,并由存放在cs寄存器中的RPL来指定


页:线性地址被分成以固定长度为单位的组,页内部连续的线性地址被映射到连续的物理地址中

你可能感兴趣的:(linux系统原理学习)