段式管理-访问控制-地址变换
2026/5/4 0:41:12 网站建设 项目流程

试题 1

试题正文

已知某系统采用段式存储管理。假如一个进程的段表如下所示,其中存在位为1表示段在内存,为0表示段不在内存,存取控制字段中W表示可写,R表示可读,E表示可执行。对下面的指令,在执行时会产生什么样的结果?

答案:(惩罚系数: 0 %)

段表

段号存在位起始地址段长存取控制
012000617R
108000173R
215000874R
317000523W
414000389R
511000496R


请根据上面段表,设置以下每条指令执行的结果。如果不发生中断,需要计算出指令中逻辑地址对应的物理地址。空白处不得分。


段式存储管理的核心知识点


1️⃣段号是否合法(段号越界)

  • 每条指令访问的地址由段号 + 段内偏移地址组成。

  • 若访问的段号不存在超过进程段表范围段号越界异常


2️⃣段是否在内存(存在位 valid bit)

  • 每个段都有一个存在位(Valid/Invalid)

    • 1 → 段已调入内存

    • 0 → 段未调入内存,要发生 “缺段中断”

  • 缺段中断让操作系统把该段调入内存。

(注意:只是“未在内存”≠访问非法,只是需要中断调页。)


3️⃣访问权限检查(R/W/E 权限)

段表中含有访问控制字:

  • R:只读

  • W:可读可写

  • E:可执行

访问权限如下:

操作必须具备权限
LOAD(读)R 或 W
STORE(写)W
JMP(跳转)E

如果试图执行不允许的访问类型 →保护性中断(Protection Fault)


4️⃣段内偏移是否合法(越界检查)

  • 每个段有一个段长 limit

  • 偏移地址 ≥ 段长段内越界中断(Address Out-of-Bounds)

段号合法 ≠ 段内偏移合法。


5️⃣段表项中给出物理基址(Base)

若段号合法、段存在、权限正确、偏移合法,则:

物理地址 = 段基址 + 段内偏移地址

这一步在所有检查都通过后才进行。


6️⃣各种中断类型的适用情况

中断类型产生原因
段号越界中断段号无效、段不存在
缺段中断段号合法但存在位=0(段不在内存)
段内越界中断段在内存但偏移超出段长
保护性中断访问权限不符(如读不可读段、写不可写段、跳转不可执行段)
无中断全部检查通过

7️⃣JMP 的特殊性

  • JMP 指令访问的是指令段,需要执行权限(E)

  • 若跳转目标段没有执行权限 → 保护性中断

  • 若偏移超界 → 段内越界中断

特点:JMP 不产生物理地址输出,因为它改变的是下一条指令的逻辑地址


8️⃣LOAD / STORE 的判断流程

LOAD(读取)

必须满足:

  1. 段号合法

  2. 段在内存(否则缺段)

  3. 偏移合法

  4. 段权限允许读(R 或 W)
    → 访问成功,可计算物理地址

STORE(写入)

必须满足:

  1. 段号合法

  2. 段在内存

  3. 偏移合法

  4. 段权限必须为 W
    → 否则保护性中断


9️⃣段式管理的本质:逻辑地址二元结构

逻辑地址 =(段号 s, 段内偏移 d)

段表查找流程:

  1. 段号 s 合法吗?

  2. s 的段是否在内存?

  3. 权限是否允许该操作?

  4. d 是否小于段长?

  5. 物理地址 = 基址 + d

任何一步不通过都会导致不同类型的中断。


🔟总结性框架(超级重要)

执行一条指令时的判断顺序:

  1. 段号合法性检查(越界中断)

  2. 段是否在内存(缺段中断)

  3. 访问权限检查(保护性中断)

  4. 段内偏移检查(越界中断)

  5. 生成物理地址(只有全部合法时)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询