> For the complete documentation index, see [llms.txt](https://lvxixiao.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lvxixiao.gitbook.io/blog/os/store/segmented-memory.md).

# 段式存储管理

#### 段式程序设计

每个程序可由若干个段组成，每一段都可以从“0”开始编址，段内的地址是连续的。

分段存储器的逻辑地址由两部分组成，段号+单元号。

![](https://3355579712-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGG21ze3mQ3ha0y5kNn%2F-LJ22vRL3JyK339thO6q%2F-LJ25NiGtRyp8eycqiLz%2F%E6%AE%B5%E5%BC%8F%E7%A8%8B%E5%BA%8F%E5%88%86%E6%AE%B5%E7%BB%93%E6%9E%84.png?alt=media\&token=39661e6e-6d75-478b-b74f-09eb796f9805)

#### 段式存储管理的基本思想

段式存储管理基于可变分区存储管理实现，一个进程要占用多个分区。

硬件需要增加一组用户可见的段地址寄存器（代码段、数据段、堆栈段，附加段），供地址转换使用。

存储管理需要增加设置一个段表，包括**段始址、段限长，以及存储保护、可移动、可扩充等标志位**。

![](https://3355579712-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGG21ze3mQ3ha0y5kNn%2F-LJ22vRL3JyK339thO6q%2F-LJ25T4x-3_9yr4wG82r%2F%E6%AE%B5%E5%BC%8F%E5%AD%98%E5%82%A8%E7%AE%A1%E7%90%86%E7%9A%84%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2%E6%B5%81%E7%A8%8B.png?alt=media\&token=ab74fbc4-dd78-472a-a436-73029cf1728f)

#### 段的共享

通过不同进程段表中的项指向同一个段基址来实现。

对共享段的信息必须进行保护，如规定只能读出不能写入，不满足保护条件则产生保护中断。
