段式存储管理中,将程序的逻辑地址空间内容分为不同的段进行管理,逻辑地址空间与物理地址空间之间的映射关系图可以如下所示:每个段内部是连续的,但是不同的段在物理内存上是不连续的。
段的概念:
- 段表示访问方式和存储数据等属性相同的一段地址空间;
- 一个段对应一个连续的内存块;
- 若干个段共同组成进程的逻辑地址空间。
段访问:
逻辑地址由二元组 表示。其中 s 表示段号,addr 表示段内偏移量。如下图:
硬件实现:
如下图所示:在程序P运行过程中,CPU要访问逻辑地址中的某个位置,已经知道段号与偏移。操作系统中维护段表,段表记录段号对应的基址与长度,首先MMU比对偏移量与段号对应的长度,如果偏移量大于长度说明操作不合法内存异常,否则是合法的,此时将段基址与偏移相加得到真实物理地址,然后进行访问。