分段管理及段页管理

一、 分段

        程序的逻辑关系被划分为不同的段,每个段有一个段名,并且每个段都从0开始编址。这些段在内存中分配,每个段占据连续的内存空间,但不同段之间可以不相邻。

这种分段管理有一些特点和优势:

  1. 逻辑划分: 每个段都有一个明确定义的逻辑关系,这有助于程序员理解和维护代码。

  2. 段名标识: 段名用于在低级语言中编程,使程序员能够直接引用特定的段。

  3. 内存分配灵活: 段在内存中占据连续空间,但不同段之间可以不相邻,这提供了更大的灵活性,允许进程的地址空间可以不需要完全连续。

  4. 模块化: 通过将程序划分为逻辑上相关的段,可以实现更好的模块化和代码组织。

  5. 代码复用: 不同的段可以独立地进行编译和链接,有助于代码的重用和维护。

        在这种管理方式下,操作系统负责将程序的不同段加载到内存中,并维护它们之间的关系。这种分段管理的一个缺点是可能会产生外部碎片,因为不同段可以在内存中不相邻,导致一些零散的未被使用的内存空间。为了解决这个问题,一些系统引入了分页管理,将内存进一步划分为页面,以更好地利用内存空间。

        页是信息的物理单位。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的。

        段是信息的逻辑单位。分段的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。

        页的大小固定且由系统决定。段的长度却不固定,决定于用户编写的程序。分页的用户进程地址空间是一维的,程序员只需给出一个记忆符即可表示一个地址。分段的用户进程地址空间是二维的,程序员在标识一个地址时,既要给出段名,也要给出段内地址。

分段比分页更容易实现信息的共享和保护

  1. 分段

    • 特点:将信息分割成较小的单元,每个单元都包含一定量的信息。
    • 信息共享:容易实现信息的局部共享,只需分享特定段落或单元。
    • 信息保护:可以更灵活地控制对不同段落或单元的访问权限,实现细粒度的权限管理。
    • 实现难度:相对较容易实现,不需要考虑整体结构的完整性。
  2. 分页

    • 特点:将信息分割成页面,每个页面包含多个段落或单元。
    • 信息共享:整页分享,不如分段灵活,需要分享更多信息。
    • 信息保护:权限控制相对整页更为复杂,可能需要更高级的权限管理系统。
    • 实现难度:在某些情况下可能比较容易实现,但可能需要更多的系统资源

 分页(单级页表):第一次访存一一查内存中的页表,第二次访存一一访问目标内存单元。总共两次访存分段:第一次访存一一查内存中的段表,第二次访存一一访问目标内存单元。总共两次访存与分页系统类似,分段系统中也可以引入快表机构,将近期访问过的段表项放到快表中,这样可以少一次访问,加快地址变换速度。


二、段页式管理

  1. 段页管理(Segmentation with Paging)

    • 结合方式:将程序的地址空间首先划分为若干段,每个段内再使用分页技术。
    • 优点:克服了分段和分页各自的缺点,提供了更灵活和高效的内存管理。
    • 实现:使用段表来映射段的基址和长度,每个段内使用页表来映射页的逻辑地址到物理地址。
    • 灵活性:可以在段内采用不同大小的页,提高对不同类型数据的适应性。
  2. 工作流程

    • 当程序引用一个地址时,先通过段表找到对应的段。
    • 接着,通过页表找到该地址在段内的具体位置。
    • 最后,得到物理地址,可以访问实际的数据。

段页管理结合了分段和分页的优点,提供了更灵活和高效的内存管理方式。这种方式在现代操作系统中广泛应用,允许了更好的内存利用率、虚拟内存支持以及动态增长的特性。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值