没有合适的资源?快使用搜索试试~ 我知道了~
首页电子科技大学操作系统实验2-地址映射实验.pdf
1. 编写实验使用的示例程序 2. 理解X86计算机的寻址机制,理解全局描述符表GDT,局部描述符表等数据结构的内容。 3. 查看GDTR,LDTR,DS等寄存器,了解寄存器的数据格式。 4. 根据寄存器和相关的数据结构,计算变量j的线性地址。 5. 使用creg查看寄存器信息 6. 根据线性地址和页内偏移,基于页式地址转换,计算物理地址。
资源详情
资源评论
资源推荐

电子科技大学计算机科学与工程学院
实 验 报 告
(实验)课程名称 操作系统
电子科技大学教务处制表

电 子 科 技 大 学
实 验 报 告
学生姓名: 学 号: 指导教师:薛瑞尼
实验地点:主楼 A2-412 实验时间:2020 年 11 月 28 日
一、实验室名称:计算机学院实践中心
二、实验项目名称:地址映射实验
三、实验学时:4 学时
四、实验原理:
(一)几种地址的概念
图 1-1 地址转换过程
物理地址
用于内存芯片级的单元寻址,与处理器和 CPU 连接的地址总线相对应。我
们可以简单的把内存比作一个大的数组,每个数组都有其下标,这个下标标识了
内存中的地址,这个实实在在的在内存中的地址,我们称之为物理地址。
逻辑地址
与物理地址比较相对的是逻辑地址,这个地址就是在程序中我们把它放到的
位置;而这个位置通常是由编译器给出的。另外的一种理解是:逻辑地址指的是
机器语言指令中,用来指定一个操作数或者是一条指令的地址。Intel 段式管理中:
“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示
为 [段标识符:段内偏移量]。”比如我们在程序中定义一个变量 int g=3;相应的
汇编代码应该是 mov [g],3;那么这个 g 应该放在哪儿呢?实际上我们可以看到,

这个 g 的地址总在在编译,链接之后就会一个确定的地址;而这个确定的地址我
们叫做逻辑地址。
虚拟地址
Virtual Address,简称 VA ,由于 Windows 程序时运行在 386 保护模式下,这
样程序访问存储器所使用的逻辑地址称为虚拟地址。实际上因为我们现代程序中
地址都是虚拟的,所以这里的虚拟地址和线性地址是等价了的。
线性地址
线性地址(Linear Address)也叫虚拟地址,是逻辑地址到物理地址变换之间
的中间层。在分段部件中逻辑地址是段中的偏移地址,然后加上基地址就是线性
地址。
(二)GDT/LDT/GDTR/LDTR
1. 逻辑地址格式
逻辑地址有 48 位,其中段选择符 selector 16 位,段内偏移量 offset 32 位。
段选择符 selector 格式如图 1-2 所示,Index 为索引号、TI 为 GDT/LDT 指示位;
RPL 为权限。前 13 位的 Index 指向段描述符。
图 1-2 段选择符格式
2. 段选择符 selector 寄存器
保护模式下 CS、DS、SS、ES、FS、GS 寄存器称为段选择符寄存器,其值
不再是基址而是选择符,它从描述符表中选择一个定义存储器段大小和属性的描
述符。FS/GS 用于 OS 进行数据通信,实验数据则保存在 DS 中。
3. 本地描述符表 LDT 与全局描述符表 GDT
IA-32 体系结构允许一个段最大为 4GB,每个进程的最大段数为 16K。一个
进程的逻辑地址空间分为两个分区。第一个分区包含多达 8k 个对该进程私有的
段。第二个分区由多达 8k 个段组成,这些段在所有进程之间共享。关于第一个
分区的信息保存在本地描述符表(LDT)中;关于第二个分区的信息保存在全局
剩余12页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0