系统相关
首页 > 系统相关> > 内存寻址

内存寻址

作者:互联网

目录

内存地址

硬件中的分段

段选择符和段寄存器

段描述符

描述段的特征,8字节,放在全局描述符表GDT或局部描述符表LDT

分段单元

  1. 检查段选择符TI字段,确定段选择符在GDT还是LDT
  2. 从段选择符的index字段计算段描述符在表中的偏移
  3. 从ldtr寄存器或gdtr寄存器获取段描述符表的基址
  4. 根据2、3找到对应段描述符,Base字段+逻辑地址的偏移量就能得到线性地址

Liunx中的分段

四个重要的Linux段

GDT

每个CPU对应一个GDT,副本基本都一样

LDT

大多数用户态下的Linux程序不使用LDT,因此GDT中的LDT是默认的

硬件中的分页

常规分页

线性地址被分为3个域,10位目录,10位页表,12位偏移量,4KB一页

扩展分页

允许页框大小为4M而不是4KB

TLB

用于加快线性地址的转换。每个CPU都有自己的TLB

Linux中的分页

高地址128MB的线性地址总是留作它用,因为内核使用这些线性地址实现非连续内存分配固定映射的线性地址

标签:寻址,LDT,地址,选择符,内存,寄存器,线性,页表
来源: https://www.cnblogs.com/wasi-991017/p/14399550.html