操作系统-分段式存储管理方式

什么是分段

如下图所示,按照逻辑功能进行进程切割(说人话就是将一个个代码段分开),构成无数个段,分别加载到内存中。
这样系统在执行指令的时就可以按段进行执行了。

操作系统-分段式存储管理方式_第1张图片同时这样的好处也可以让开发人员更好的操作内存导员,如下图所示。
操作系统-分段式存储管理方式_第2张图片

什么是段表

与页表相同,为了记录增设写段的信息,我们也会为其设置专门的段表。
但是段表却又一点和页表不同,就是段表不是连续的,所以段表需要加个基址来保存段的起始地址。
另外一点就是每个段的长度是不相等的,所以段表就会有一个字段用于记录这个段的长度,这个字段就是段长。

操作系统-分段式存储管理方式_第3张图片

如何实现地址转换

实现方式也很简单,以下图为例,我们需要执行段号为2,短则地址为1024的指令。
首先我们拿着段号和段表的段表长度比较判断这个号是否越界。
如果没有越界,我们就根据段表信息拿到这个段号的基址,然后再配合段内地址,将段基址和段内地址相加得到最终的物理单元,执行指令即可。

操作系统-分段式存储管理方式_第4张图片

分段和分页管理的对比

相比之下由于分段管理是按照逻辑来分段,与分页管理那种按照长度的划分方式相比。分段管理处理一些需要共享资源的逻辑更有优势(因为分页管理无法按照逻辑进行分页,它都是等长分页的)。

你可能感兴趣的:(操作系统,操作系统,网络,linux)