内存管理(二)——内存分段

前言

上一篇讲了连续型分配,这篇开始介绍非连续型分配,也是现代操作系统所使用的内存分配方式。首先从内存分段开始。

分段管理

在内存分段管理中,程序是由若干个逻辑分段组成的,如可由代码分段、数据分段、栈段、堆段组成。不同的段是有不同的属性的,所以就用分段(Segmentation)的形式把这些段分离出来。

分段机制下的虚拟地址由两部分组成,段选择符段内偏移量

  • 段选择符就保存在段寄存器里面。段表里面保存的是段描述符,包括这个段基地址、段界限和特权等级等。
  • 虚拟地址中的段内偏移量应该位于 0 和段界限之间,如果段内偏移量是合法的,就将段基地址加上段内偏移量得到物理内存地址。

在这里插入图片描述

段选择符

在这里插入图片描述

段选择符包括 3 个字段的内容:

  • 请求特权级 RPL([0:1]):任务中的每一个段都有一个特定的级别。当一个程序试图
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值