您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

分段机制与分页机制

前言

根据《Linux内核完全注释》做的笔记
目的是理清下述关键词的含义及相互联系,最终彻底理解分段机制与分页机制

  • 分段机制
    • 段描述符
    • 段选择符
    • 段寄存器
    • GDT 全局描述符表
    • LDT 局部描述符表
  • 分页机制
    • 页表
    • TLB 转换查找缓冲区
  • 逻辑地址
  • 线性地址
  • 物理地址

概念简述

段描述符

  • 记录段信息,包括权限、基地址等

段选择符

  • 理解为索引,从描述符表中定位到唯一的段描述符
  • 因此,段寄存器只需要存段选择符,就能根据段寄存器找到段描述符从而获得段基址

段基址寄存器

  • 存放段基址
  • 如 LDTR,GDTR

段寄存器

  • 存放段选择子
  • 但实际上,为了省去根据段选择子寻找段基址这一步,段基址会作为隐藏字段存储于段寄存器中
  • CS在这里插入图片描述
  • 隐藏部分类似缓存,需要考虑缓存不一致。因此当描述符表发生变化,需要将更新内容同步至段寄存器中

GDT 全局描述符表

  • 理解成存放描述符的数组
  • 该表地址由GDTR寄存器指定

LDT 局部描述符表

  • 局部描述符的数组
  • 地址由LDTR寄存器指定

关系梳理

  1. 逻辑地址=【段寄存器存放的段选择符地址】+【偏移量】
  2. 线性地址=【段地址】+【段内偏移量】
  3. 物理地址= 线性地址.(当分页机制关闭时)
  4. 物理地址=【页地址】+【页内偏移量】

逻辑地址转换为线性地址

  • 根据GDTR找到GDT位置
  • 根据段寄存器存放的段选择符,获取索引,从GDT中定位出段描述符,获取段基址
  • 段基址+偏移量得到线性地址

线性地址转换为物理地址(启动分页)

  • 根据CR3找到页目录
  • 根据页目录完成索引映射
  • 根据偏移量找到对应物理页

在这里插入图片描述


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进