1.分段系统的基本原理
程序通过分段(segmentation)划分为多个模块,每个段定义一组逻辑信息。如代码段(主程序段main,子程序段X)、数据段D、栈段S等。
2.段的特点
- 每段有自己的名字(一般用段号做名),都从0编址,可分别编写和编译。装入内存时,每段赋予各段一个段号。
- 每段占据一块连续的内存。(即有离散的分段,又有连续的内存使用)
- 各段大小不等。
地址结构:段号 + 段内地址
段表:记录每段实际存放的物理地址
3.段表与地址变换机构
段是连续存放在内存中。段表中针对每个“段编号”记录:“内存首地址”和“段长”
同样有两次内存访问问题
解决方法:设置联想寄存器,用于保存最近常用的段表项。
4.分段和分页的主要区别 - 需求:分页是出于系统管理的需要,是一种信息的物理划分单位,分段是出于用户应用的需要,是一种逻辑单位,通常包含一组意义相对完整的信息。
- 一条指令或一个操作数可能会跨越两个页的分界处,而不会跨越两个段的分界处。
- 大小:页大