内存管理有2种机制:1、段式管理;2、页式管理

在80386CPU中增加了2个寄存器:1、全局性的段描述表寄存器GDTR

2、局部性的段描述表寄存器LDTR

段寄存器的高13位用于在全局或局部描述表项中选择一个描述符;

第2为选择全局或者局部段描述寄存器;

低2位决定特权级别,一般LINUX中0表示系统状态,1表示用户状态。

每个描述表项8个字节,将段寄存器的高13位加上指定的段描述表寄存器的基地址就得到了描述表项的起始地址;

每个描述表项含有段的基地址和段的大小;而段的基地址高8位和低24位没有连在一起,这也是因为Intel刚开始的意图本来是想用24位的地址空间,后来发现不够用,所以改为了32位地址。但此时80286CPU已经发布出去了,无奈只能修修补补,以兼容80286。

所以,段寄存器 + GDTR/LDTR = 描述表项,描述表项指定了段的基地址和段的大小;

如果将段的基地址设为0,段的大小设置为最大,此时物理地址就与逻辑地址一致,Intel称其为平面地址。

段描述表寄存器只能在系统状态使用,用户程序不能改变GDTR和LDTR的内容

逻辑地址-->映射-->线性地址-->物理地址

连续的逻辑地址经过映射后的线性地址还是连续的

32位的线性地址:dir:10字节;page:10Byte; offset:10Byte

段式管理:逻辑地址到物理地址一步到位;

页式管理:先找到目录项,再找到页面描述符。这样做是出于空间效率的考虑,线性地址空间可以表示4G的地址空间,但一个进程很难会用到4G的空间,但数组中即使是空着的表项也占用空间,所以分成2层可以视需要来设置页表,如果目录中某项为空,就不必设置页表,从而省下存储空间。

在linux内核中使用了gcc对C的扩充,所以linux内核只能用gcc编译,Linux内核与gcc平行的发展,所以每个Linux内核版本都有对应的gcc版本。

在i386CPU中,地址为32位时,2层映射比较合理,但考虑到64位的CPU,为了通用性,页式管理设计了3层映射。对于32位地址采用2层设计,大于32位的地址采用3层设计。

对于32位的4G虚拟内存空间,最高的1G内存用于内核本身,称为“系统空间”,而较低的3G字节,用作各个进程的“用户空间”,这样理论上每个进程可以使用3G的用户空间。

虽然系统空间位于虚拟内存空间的最高部分,但对应的物理地址却是从0地址开始的。

就我的理解,历史上先出现了段式管理,很多老式芯片都支持段式管理,后来出现了页式管理,Linux为了兼容或者通用,采用了先段式管理后页式管理的方法,现在的大多数芯片一般采用的都是页式管理,段式管理其实形同虚设。

转载于:https://www.cnblogs.com/zhu-g5may/p/9726765.html

Linux段式管理与页式管理相关推荐

  1. Linux 操作系统原理 — 内存 — 页式管理、段式管理与段页式管理

    目录 文章目录 目录 前文列表 页式管理 快表 多级页表 基于页表的虚实地址转换原理 应用 TLB 快表提升虚实地址转换速度 页式虚拟存储器工作的全过程 缺页中断 为什么 Linux 默认页大小是 4 ...

  2. linux内存段页,linux内存管理-段式和页式管理

    该博文参考国嵌视频和http://www.cnblogs.com/image-eye/archive/2011/07/13/2105765.html,在此感谢作者. 一.地址类型 物理地址:CPU通过 ...

  3. 操作系统的内存管理机制(连续分配管理、页式、段式、段页式、快表、二级页表)

    来源:https://www.bilibili.com/video/BV1YE411D7nH 操作系统的内存管理机制(连续分配管理.页式.段式.段页式.快表.二级页表) 内存被分为系统区和用户区,系统 ...

  4. 【Computer Organization笔记22】虚拟存储器:段式存储,页式存储

    本次笔记内容: P43 计算机组成原理(43) P44 计算机组成原理(44) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  5. 三十四、段页式管理方式

    一.知识总览 二.分页.分段的优缺点分析 分页管理: 优点:内存空间利用率高,不会产生外部碎片,只会有少量的页内碎片. 缺点:不方便按照逻辑模块实现信息的共享和保护 分段管理: 优点:很方便按照逻辑模 ...

  6. 操作系统【五】分段内存管理+段页式内存管理

    基本分段存储管理 与分页最大的区别:离散分配时所分配地址空间的基本单位不同 进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名,每段从0开始编址 内存分配规则:以段位单位进行分配 ...

  7. (王道408考研操作系统)第三章内存管理-第一节8:非连续分配管理方式之段页式管理方式

    文章目录 一:分段和分页管理优缺点 二:段页式管理基本概念 (1)基本思想 (2)逻辑地址结构 (3)段表和页表 三:段页式管理实现地址管理 一:分段和分页管理优缺点 经过前面几节的叙述,可以看到分段 ...

  8. 页式管理--物理地址计算问题小结

    本篇总结的起因是:2010年真题里面的一道小题. 简述就是:页式管理,页号20位,页内偏移12位,按照字节编址.一个代码段的起始逻辑地址是0000,8000H,长度是8KB,被装载到从物理地址0090 ...

  9. 操作系统-内存管理(快表的地址变换机构,两级页表,虚拟内存的基本概念,基本页式管理下的页表和页面置换算法)

    文章目录 1.快表地址变换机构 2. 两级页表 3. 虚拟内存的基本概念 基本分页存储管理 1.快表地址变换机构 快表,又称联想寄存器(TLB,translation lookaside buffer ...

最新文章

  1. 80后天才程序员,Facebook 第一任 CTO,开挂人生到底多变态?
  2. Apache 2.2 虚拟主机配置(本人推荐的)
  3. java 写优先锁_Lock读写锁的优先度比较
  4. 在Myeclipse中没有部署jeesite项目,但是每次运行其他项目时,还是会加载jeesite项目...
  5. python函数的 全局变量与局部变量
  6. 在Eclipse 中打开当前文件夹
  7. zenmap工具说明及常用参数解释
  8. How to Plan My Life?
  9. 同学孩子上985大学,每月生活费5000元,大家认为合适吗?
  10. ModelSerializer序列化(Apiview)
  11. java B2B2C Springboot电子商城系统-eureka详解
  12. 云计算平台能够提供计算服务器,云计算平台提供了什么服务器
  13. js文字展示各种滚动效果
  14. 4款APP原型设计工具助你搞定移动应用设计!
  15. 开心网“卖身”:错过转型时机,逆水行舟,不进则退
  16. 综述:生成自动驾驶的高精地图技术(3)
  17. Nginx服务器软件学习记录
  18. moment获取几小时前_moment.js 常用(几天前、相差几天、自然周、自然月)
  19. Dynamic Topic Models的Python实现
  20. oracle10如何扩asm磁盘组,在Oracle10g 新增ASM磁盘组

热门文章

  1. Go to sleep
  2. AjaxControlTookit中的AutoCompleteExtender位置错位问题 ListSearchExtender不支持中文的问题...
  3. Linux/UNIX网络编程之API
  4. 中科大“重金”招博士,保底年收入10万,却只面向5校本科生
  5. python文件读写用到的库_python 读写txt文件并用jieba库进行中文分词
  6. request和response的setCharacterEncoding()方法
  7. idea 代码自动补全快捷键
  8. 006_Spring Data JPA基于方法名称命名规则查询
  9. 应用计算机测定线性电阻伏安特性实验器材,线性电阻与非线性电阻伏安特性实验的Origin处理...
  10. linux 红帽 查看分辨率,求诸位帮个忙,红帽linux怎么该屏幕分辨率