内存管理模式

本文详细介绍了操作系统中的内存管理,从实模式到保护模式的转变,探讨了段模式和页模式在内存访问中的作用。保护模式引入了段描述符和全局描述符表(GDT),增加了内存访问的安全性,并通过分页机制提供了更高级别的地址映射。段和页的组合使用形成了段页式内存管理模式,允许对内存进行更精细的控制和权限管理。
摘要由CSDN通过智能技术生成

os是一种管理计算机软硬件资源的系统软件,而kernel是os最基本的部分,也就是说,两者是包含关系。os是接口,内核是一个操作系统的核心
在这里插入图片描述
                 进程的虚拟空间地址

(对于每一个进程,最上面标注出来的部分都是固定的,也就是说,确保了每一个进程都能调用os内核程序来完成自己的操作。)

实模式:
实模式的“实”体现在程序中用到的地址都是真实的物理地址,“段基址:段内偏移地址”产生的逻辑地址就是物理地址,即程序员可见的地址完全是真实的内存地址。  
物理地址 = 段基址<<4 + 段内偏移

保护模式:

1.逻辑地址:指令中真实出现的地址。一个逻辑地址由两部分组成。一个段选择子(segment selector),一个段内偏移量(offset),通常被写作segment:offset。而且采用哪个段选择子通常也是在指令中隐含的,程序员通常只需要指明段内偏移量。然后分段管理机构(segmentation hardware)将会把这个逻辑地址转换为线性地址(linear address)
2.虚拟地址(也加线性地址):不直接写入指令,由逻辑地址推导得到。通过逻辑地址变换就可以生成一个线性地址。如果启用了分页机制,那么线性地址可以再经过变换以产生一个物理地址。如果没有启用分页机制,那么线性地址直接就是物理地址。

在保护模式中,内存的管理模式分为两种——段模式和页模式。其中页模式也是基于段模式的。也就是说,保护模式的内存管理模式事实上是:纯段模式和段页式。进一步说,段模式是必不可少的,而页模式则是可选的——如果使用页模式,则是段页式,否则这是纯段模式。

为了改进实模式下内存访问的不安全性,保护模式给内存段添加了段属性来限制用户程序对内存的操作权限。保护模式引入了全局描述符表(Global Descriptor Table,GDT),GDT的表项是描述段类型属性的数据结构——段描述符。GDT中的每一个段描述符都描述了一个内存段的基本属性,如段基址、段界限、类型、DPL等等。

正是由于以上概念的提出,使得“段地址:段内偏移地址”的访问策略从实模式下对物理地址的直接映射变成了保护模式下对GDT或LDT的间接映射(如下图所示),进程在访问内存段(无论是数据段还是代码段)前都需要通过特权级检查。段属性的加入让用户程序对内存的访问不再“为所欲为”。

在这里插入图片描述

*线性地址就是虚拟地址(在paging开启的情况下) 地址转化方向:逻辑地址 -[段式内存管理单元]-> 线性地址(虚拟地址) -[页式内存管理单元]-> 物理地址

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hvk_l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值