目录

文章目录

  • 目录
  • Linux 内存管理全貌
  • 物理存储器
  • 虚拟存储器

Linux 内存管理全貌

物理存储器

见《计算机组成原理 — 存储系统》。

虚拟存储器

在早期的计算机系统中,程序员会直接对主存的物理地址进行操作,这种编程方式显然会出现多进程操作共享内存空间的数据一致性问题。而且由于当初不存在虚拟存储器的概念,所以 CPU 寻址宽度就成为了内存容量的极限。显然,直接操作主存的物理地址不是一个好的办法。

为了解决这些问题,现代计算机系统通过软(操作系统)、硬件结合的方式,把内存和外存从逻辑上统一成了一个整体,这就是虚拟存储器,或称为虚拟存储系统,简称虚拟内存。

虚拟存储器解决了三个根本需求:

  1. 确保可以运行存储空间需求比实际内存空间大的用户程序
  2. 确保为用户程序分配的内存空间是连续的
  3. 确保多个用户程序之间的内存空间互相隔离

为此,虚拟机存储器提供了三个重要的能力:

  1. 内-外存空间交换能力:利用局部性原理,从设计上,把内存当成外存的高速缓存,在内存中只存储活动数据,并根据需要在 “内-外” 存之间来回传送数据。通过这种数据交换的能力,即高效地利用了内存,同时也内存的容量扩大至内-外存容量的总和(注:实际上通常不会将全部外存都加入交换)。
  2. 虚拟地址空间编址能力:为每个应用程序提供一致的虚拟地址空间。
  3. 虚拟地址空间隔离能力:保护每个应用程序的虚拟地址空间是互相隔离的。

为了提供上述三个重要的能力,虚拟存储器实现了两个关键技术:

  • 《基于局部性原理实现的内-外存交换技术》
  • 《基于 MMU 硬件单元的虚/实地址映射技术》

Linux 操作系统原理 — 内存 — 物理存储器与虚拟存储器相关推荐

  1. Linux 操作系统原理 — 内存 — 内存分配算法

    目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...

  2. Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术

    目录 文章目录 目录 前文列表 基于局部性原理实现的内-外存交换技术 局部性原理 Swap 交换分区 前文列表 <Linux 操作系统原理 - 内存 - 物理存储器与虚拟存储器> < ...

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

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

  4. Linux 操作系统原理 — 内存 — 基于 MMU 硬件单元的虚/实地址映射技术

    目录 文章目录 目录 前文列表 物理地址与虚拟地址 内存空间的组织方式 虚拟地址空间的编址 内核态地址空间 用户态地址空间 内-外存空间的交换与虚拟存储空间之间的映射关系 缺页异常 前文列表 < ...

  5. Linux 操作系统原理 — 内存管理 — 虚拟地址空间

    目录 文章目录 目录 虚拟内存技术 页式内存管理技术 虚拟地址格式与页表(32bit 系统) 虚拟地址格式与页表(64bit 系统) CPU MMU 虚实地址转换 TLS 快表转换 虚拟地址空间与 C ...

  6. Linux 操作系统原理 — 内存 — Cache 和 Buffer

    目录 文章目录 目录 无处不在的 Cache Cache 和 Buffer 的区别在哪里? 为什么需要缓存? Linux 的缓存机制 Page Cache 的同步机制(一致性问题) 无处不在的 Cac ...

  7. Linux 操作系统原理 — 内存 — mmap 进程虚拟内存映射

    目录 文章目录 目录 mmap() mmap 与 read/write 的性能比较 mmap 优点总结 mmap() mmap() 是一个系统调用函数,本质是一种进程虚拟内存的映射方法,可以将一个文件 ...

  8. Linux 操作系统原理 — 内存管理 — 页式内存管理技术

    目录 文章目录 目录 虚拟内存技术 页式内存管理技术 虚拟内存技术 虚拟内存技术是操作系统实现的一种高效的物理内存管理方式,具有以下作用: 使得进程间彼此隔离:通过将物理内存和虚拟地址空间联系起来,并 ...

  9. linux的原理和运用,Linux操作系统原理与应用_内存寻址

    原标题:Linux操作系统原理与应用_内存寻址 第五讲今天上线啦. 在本次课程中,陈老师详细的讲解了有关于内存寻址的演变的相关知识. 第一部分中,介绍了关于内存寻址的相关背景知识.内存寻址-操作系统设 ...

最新文章

  1. Unreal Engine+Houdini创造程序性游戏场景视频教程
  2. 软考之路(1)——浅解网络基础知识
  3. 第四天2017/03/31(下午2:结构体、数组)
  4. Python 科学计算库 Numpy(一)—— 概述
  5. C#如何释放已经加载的图片 (转)
  6. 被坑的过来人告诉你,为什么数据中台永远都搞不成?
  7. AOL架构原则.优秀API设计.Yeoman工具
  8. Levenshtein编辑距离C++实现
  9. MyCat分片规则之取模分片
  10. python语言网课答案_看我们,智慧树python语言入门教程答案
  11. mpvue 使用wxParse解析html
  12. eclipse和myeclipse集成Xjad
  13. Android官方文档中文版
  14. 街机中国 FBA4droid 应用
  15. 数据库基础(面试常见题)
  16. android 添加子view,如何在Android中向ImageView添加子视图
  17. JDK1.8新特性及常用新特性
  18. 个人免签码支付源码|服务监控模块强大后台功能全面
  19. 2016MDCC移动开发者大会参后感
  20. qt编译quazip静态库_Qt之QuaZip编译-使用教程

热门文章

  1. 计算机教案制作电子表格,人教版七年级信息技术上册《制作电子表格》教案
  2. oracle中怎么用累计,oracle实现累加,累计百分比计算
  3. mysql2008无法启动,2005SQL服务无法启动解决办法
  4. pytorch实现attention_Longformer: 局部Attention和全局attention的混搭
  5. UIView加任意边框(Masonry)
  6. PHP标量类型中整型类型的,PHP数据类型概述
  7. SimNIBS一款无创脑刺激仿真软件安装
  8. 太炸了!SpaceX迎来20岁生日,马斯克收到一份特殊礼物
  9. 苹果智能车芯片已基本就绪!最新造车进展曝光,股价一夜暴涨4000亿
  10. 京东零售CEO徐雷升任京东集团总裁,刘强东:将把更多时间投入乡村振兴等事业中...