1.为什么需要连续的物理内存:

Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数个4k(在i386体系结构中)大小的页,从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址,因为分配时不必要求必须有大块的连续内存[3],系统可以东一页、西一页的凑出所需要的内存供进程使用。虽然如此,但是实际上系统使用内存时还是倾向于分配连续的内存块,因为分配连续内存时,页表不需要更改,因此能降低TLB的刷新率(频繁刷新会在很大程度上降低访问速度)。

1、物理内存页和page的关系:page是对应物理内存页

物理内存的每个页都有一个对应的 page 结构,看似会在管理上浪费很多内存,其实细细算来并没有多少。

比如上面的page结构体,每个字段都算4个字节的话,总共40多个字节。(union结构只算一个字段)

那么对于一个页大小 4KB 的 4G内存来说,一个有 4*1024*1024 / 4 = 1048576 个page,

一个page 算40个字节,在管理内存上共消耗内存 40MB左右。

如果页的大小是 8KB 的话,消耗的内存只有 20MB 左右。相对于 4GB 来说并不算很多。

最新文章

  1. underscore 源码解读之 bind 方法的实现
  2. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
  3. linux 下 TeXmacs 作 Mathematica 10 的前端
  4. HNU 13308 Help cupid
  5. 理解ROS rqt_console和 roslaunch
  6. JS基础学习1——什么是基础js类和原型?
  7. Unity3D中事件函数的运行顺序
  8. smbpasswd命令常用选项
  9. SQL Server 中大小写区分的处理
  10. [置顶] hdu 4699 2个栈维护 or 伸展树
  11. mysql if then
  12. vue路由
  13. Selenium-ActionChainsApi--鼠标连贯操作
  14. ES6语法(一)let 和 const 命令
  15. 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
  16. 4.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—目录结构
  17. 例子:照片的OCR识别
  18. 初识PHP(一)基础语法
  19. Javascript正则表达式难点、重点
  20. Linux下让进程在后台可靠运行的几种方法

热门文章

  1. 2016.7.10 SqlServer语句中类似decode、substr、instr、replace、length等函数的用法
  2. css 文件上传按钮美化
  3. Win10 蓝屏
  4. Sandbox简介和路径获取
  5. C语言学习笔记--递归函数
  6. java之控制多幅图片
  7. GET与POST方法
  8. Ubuntu14.04 安装Source Insight
  9. android 获取sharedpreference的三种方法的区别
  10. centos 6.5安装 redis