中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)内存寻址

内存寻址 嵌入式系统实验室 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
内存寻址

内容提要 X86微处理器的存储器寻址 Linux在X86上的寻址实现 大 4 1958 嵌入式系统实验室 2023/7/14 Linux OS Analysis 4/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 4/54 内容提要 ❖X86微处理器的存储器寻址 ❖Linux在X86上的寻址实现

存储器地址 冬在intelx86处理器下,有三种不同的地址 >逻辑地址:每个逻辑地址由一个段(segment)和偏移量 (offset)组成 >线性地址: 32位无符号整数,可表示4G大小的地址空 间 >物理地址: 芯片级内存单元寻址。它们与从CPU的地 址引脚发送到内存总线上的电信号相对应 冬地址转换过程 逻辑地址 分段单元 线性地址 分页单元 物理地址 嵌入式系统实验室 2023/7/14 Linux OS Analysis 5/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 5/54 存储器地址 ❖在intelx86处理器下,有三种不同的地址 ➢逻辑地址:每个逻辑地址由一个段(segment)和偏移量 (offset)组成 ➢线性地址:32位无符号整数,可表示4G大小的地址空 间 ➢物理地址:芯片级内存单元寻址。它们与从CPU的地 址引脚发送到内存总线上的电信号相对应 ❖地址转换过程 逻辑地址 分段单元 线性地址 分页单元 物理地址

为什么需要内存寻址机制? 冬保护内核不受恶意或者无意的破坏 必隔离各个用户进程 冬方便程序的编写,使程序员可以抛开对物理内存 的考虑,而且理论上可以使用任意大小的空间 1958 嵌入式系统实验室 2023/7/14 Linux OS Analysis 6/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 6/54 为什么需要内存寻址机制? ❖保护内核不受恶意或者无意的破坏 ❖隔离各个用户进程 ❖方便程序的编写,使程序员可以抛开对物理内存 的考虑,而且理论上可以使用任意大小的空间

硬件的分段单元(1) 段寄存器(segment register) 冬386体系结构采用分段机制 >逻辑地址=段:段内偏移 使用16位段寄存器来指明当前所使用的段 >有六个:cs,Ss,ds,es,fs和gs CPU规定了3个寄存器的专门的用途 ●cs 代码段寄存器,指向存放程序指令的段 ●Ss堆栈段寄存器,指向存放当前堆栈的段 ●ds 数据段寄存器,指向存放数据的段 oI science and Technoie 嵌入式系统实验室 2023/7/14 Linux OS Analysis 7154 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 7/54 硬件的分段单元(1) 段寄存器(segment register) ❖I386体系结构采用分段机制 ➢逻辑地址=段:段内偏移 ❖使用16位段寄存器来指明当前所使用的段 ➢有六个:cs, ss, ds, es, fs和gs CPU规定了3个寄存器的专门的用途 ⚫cs 代码段寄存器,指向存放程序指令的段 ⚫ss堆栈段寄存器,指向存放当前堆栈的段 ⚫ds 数据段寄存器,指向存放数据的段

从80386开始,Intel微处理器以两种不同的方 式执行地址转换 冬实模式(20位 > 16位段寄存器只记录段基址的高16位,因此段基址必 须4位对齐(末4位为0) >不采用虚拟地址空间,直接采用物理地址空间 >物理地址=段寄存器值*16+段内偏移 保护模式(32位)958 >16位段寄存器无法直接记录段的信息,因此需要与全 局描述符表GDT配合使用 >GDT中记录了每个段的信息(段描述符),段寄存器 只需记录段在GDT中的序号 Cience and TTech人 嵌入式系统实验室 2023/7/14 Linux OS Analysis 8154 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 8/54 从80386开始,Intel微处理器以两种不同的方 式执行地址转换 ❖实模式(20位) ➢16位段寄存器只记录段基址的高16位,因此段基址必 须4位对齐(末4位为0) ➢ 不采用虚拟地址空间,直接采用物理地址空间 ➢ 物理地址=段寄存器值*16+段内偏移 ❖保护模式(32位) ➢16位段寄存器无法直接记录段的信息,因此需要与全 局描述符表GDT配合使用 ➢GDT中记录了每个段的信息(段描述符),段寄存器 只需记录段在GDT中的序号

>注意:cs寄存器还有一个很重要的功能:它含有一个两 位的域,用以指明CPU的当前特权级CPL(current privilege level)),值为0代表最高优先级,值为3代表最 低优先级 >线性地址=段基地址+段内偏移 ●其中,段基地址是根据段寄存器所指明的GDT中的段描述符 中的信息得到的 >物理地址:根据页表对线性地址进行转换而得到 oor Science and Technolod 嵌入式系统实验室 2023/7/14 Linux OS Analysis 9/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 9/54 ➢注意:cs寄存器还有一个很重要的功能:它含有一个两 位的域,用以指明CPU的当前特权级CPL (current privilege level),值为0代表最高优先级,值为3代表最 低优先级 ➢线性地址=段基地址+段内偏移 ⚫其中,段基地址是根据段寄存器所指明的GDT中的段描述符 中的信息得到的 ➢物理地址:根据页表对线性地址进行转换而得到

GDT和段描述符(segment descriptor) 每个段由一个段描述符来表示,一个段描述符长度为8个 字节 冬全局描述符表GDT(global description table)就用来存放段 描述符 GDT表也存放在RAM中,并使用一个专门的寄存器GDTR来指示 GDT表在RAM中的位置(物理起始地址) 局部描述符表LDT(Local Description Table) >根据x86,每个进程可以设置一个LDT >LDT表也存放在RAM中,使用LDTR来指示当前的LDT表 cience and Techi 嵌入式系统实验室 2023/7/14 Linux OS Analysis 10/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 10/54 GDT和段描述符(segment descriptor) ❖ 每个段由一个段描述符来表示,一个段描述符长度为8个 字节 ❖ 全局描述符表GDT (global description table)就用来存放段 描述符 ➢ GDT表也存放在RAM中,并使用一个专门的寄存器GDTR来指示 GDT表在RAM中的位置(物理起始地址) ❖ 局部描述符表LDT(Local Description Table) ➢ 根据x86,每个进程可以设置一个LDT ➢ LDT表也存放在RAM中,使用LDTR来指示当前的LDT表

由于段的用途不一样,Intelx86提供下列几种 段描述符 数据段描述符(Data Segment Descriptor) >可以描述各种用户数据段和堆栈段 代码段描述符(Code Segment Descriptor >描述一个用户代码段 任务状态段描述符(Task State Segment Descriptor) >描述一个任务的状态段 局部描述符表描述符 >描述一个LDT段 系统段描述符(System Segment Descriptor) Cience and TTechil 嵌入式系统实验室 2023/7/14 Linux OS Analysis 11154 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 11/54 由于段的用途不一样,Intelx86提供下列几种 段描述符 ❖ 数据段描述符(Data Segment Descriptor) ➢ 可以描述各种用户数据段和堆栈段 ❖ 代码段描述符(Code Segment Descriptor) ➢ 描述一个用户代码段 ❖ 任务状态段描述符(Task State Segment Descriptor) ➢ 描述一个任务的状态段 ❖ 局部描述符表描述符 ➢ 描述一个LDT段 ❖ 系统段描述符(System Segment Descriptor)

段描述符主要描述如下内容 段的物理起始地址(base字段,32位) 段长度(limit字段,20位) 段长度的单位(粒度,G标志,1位) >0:字节为单位 >1:4KB为单位1958 Science and Technoloocn 是否系统段(S标志,1位) >0:系统段 >1:普通的段 嵌入式系统实验室 2023/7/14 Linux OS Analysis 12/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 12/54 段描述符主要描述如下内容 ❖段的物理起始地址(base字段,32位) ❖段长度(limit字段,20位) ❖段长度的单位(粒度,G标志,1位) ➢0:字节为单位 ➢1:4KB为单位 ❖是否系统段(S标志,1位) ➢0:系统段 ➢1:普通的段
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)制作简单的Linux系统.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)基于x86的Linux启动代码分析.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)GNU开发工具链简介 GNU Tools(主讲:陈香兰).pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)13 IO管理 IO systems.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)12 外存 Mass Storage Systems.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)11 File 文件系统实现 File system implementation.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)10 文件系统接口 File System Interface.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)09 虚拟内存 Virtual Memory.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)08 Main Memory.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)07 Deadlock.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)06 Process Synchronization.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)05 Threads.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)04 CPU Scheduling.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)03 Processes.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)02 OS Structure.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)01 CS Structure.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)01 OS overview.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)课程简介(主讲:陈香兰).pdf
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程教学资源(PPT课件讲稿)第二章 分布式路由算法(2/2).ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程教学资源(PPT课件讲稿)第二章 分布式路由算法主要内容(1/2,主讲:陈香兰).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux进程管理(1/3).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux进程管理(2/3).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)中断和异常.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)系统调用.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux进程管理(3/3).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)内存管理.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)Linux中的时钟和定时测量.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)Linux中的进程地址空间.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)程序的执行.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)文件系统.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)管理I/O设备.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux中的信号机制.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)进程的同步和通信.ppt
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)课程介绍(主讲:陈香兰).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)嵌入式系统及嵌入式软件开发概述.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)GNU(交又)开发工具链简介 GNU Tools.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)嵌入式操作系统和选型.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)ArmLinux的启动(基于arm的Linux启动代码分析).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)skyeye简介.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)bootloader简介和bootloader举例(u-boot和RedBoot).pdf