一、linux IO 编程---内存管理
1.1 进程在虚拟空间中的布局
32位的操作系统虚拟空间的大小为 4GB,即每个进程在系统中分配的虚拟空间大小为4GB。这4GB的大小被分为了两个部分:
- 内核空间:1GB,内核起的进程
- 用户空间:3GB,主要是普通用户起的进程
   
    
  
物理内存和虚拟内存之间的交互:
  
虚拟地址和物理地址通过 CPU 的内存管理单元(MMU)进行转换。
1.1.1 虚拟地址
  
辅存:物理内存不够用时,在硬盘上临时创建的一个分区,用来存放进程使用率很低的数据,要用的时候再从辅存中提取进硬盘中,比如ubuntu 中的交换空间
1.2 内存管理
1.2.1 作用
- 进程隔离:保护独立的进程,防止互相干涉数据和存储控件
- 自动分配和管理:动态的分配,分配对程序员是透明的
- 支持模块化的程序设计:能够定义程序模块,并且动态地创建、销毁,改变模块大小
- 保护和访问控制:允许一部分内存可以由各种用户以各种方式进行访问
- 长期存储:关机后长时间保存信息
1.2.2 段页式管理
- 进程在虚拟内存中分为代码段、数据段和堆栈段 
- 进程在段中有许多固定大小的块组成,这些块称为页 
- 虚拟地址由段号、页号和页中偏移量构成 
- 虚地址和主存中实地址(物理地址)进行动态映射,映射的单位就是页,一般的系统一页为4K的大小 
- 换页过程:
- 换出:物理内存到辅存
- 换入:辅存到物理内存
- 消除了进程全部载入内存中
- 按需调页
 
一、linux IO 编程---内存管理的更多相关文章
- Linux内核笔记--内存管理之用户态进程内存分配
		内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ... 
- 24小时学通Linux内核之内存管理方式
		昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今天将会讲诉Linux如何追踪和管理用户空间进程的可用内 ... 
- Linux内核之内存管理
		Linux内核之内存管理 Linux利用的是分段+分页单元把逻辑地址转换为物理地址; RAM的某些部分永久地分配给内核, 并用来存放内核代码以及静态内核数据结构; RAM的其余部分称动态内存(dyna ... 
- linux内核--内核内存管理
		如题目所示,为什么要称作“内核内存管理”,因为内核所需要的内存和用户态所需要的内存,这两者在管理上是不一样的. 这篇文章描述内核的内存管理,用户态的内存管理在以后的文章中讲述. 首先简单的说明一下下面 ... 
- Linux kernel学习-内存管理【转】
		转自:https://zohead.com/archives/linux-kernel-learning-memory-management/ 本文同步自(如浏览不正常请点击跳转):https://z ... 
- 转:Linux中的内存管理
		前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ... 
- Linux内核之 内存管理
		前面几篇介绍了进程的一些知识,从这篇开始介绍内存.文件.IO等知识,发现更不好写哈哈.但还是有必要记录下自己的所学所思.供后续翻阅,同时写作也是一个巩固的过程. 这些知识以前有文档涉及过,但是角度不同 ... 
- 深入理解Linux  C语言内存管理
		问题不能拖,我这就来学习一下吧,争取一次搞定. 在任何程序设计环境及语言中,内存管理都十分重要. 内存管理的基本概念 分析C语言内存的分布先从Linux下可执行的C程序入手.现在有一个简单的C源程序h ... 
- Linux内核笔记——内存管理之slab分配器
		内核版本:linux-2.6.11 内存区和内存对象 伙伴系统是linux用于满足对不同大小块内存分配和释放请求的解决方案,它为slab分配器提供页框分配请求的实现. 如果我们需要请求具有连续物理地址 ... 
随机推荐
- Jquery   组 radio控与tr变色
			<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ... 
- 关于linux上文件无法正确显示中文的情况解决
			其实有遇到过多次,而且还有几次是css在预编译的时候,系统编码不对也会报错. 贴一个写的还不错的文章:http://www.360doc.com/content/11/0728/09/7102324_ ... 
- Linux共享库LD_LIBRARY_PATH与ld.so.conf
			1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2. 想往上面两个目录以外加东西的时候, ... 
- POJ3122-Pie-二分答案
			有N个派,F+1个人,每个人分到的体积要相等,而且每个人只能有一块派. 二分答案,对于一个mid,对每个派进行检测,尽量的多分,然后如果份数比F+1大,说明mid可以更大,就把mid给low.注意份数 ... 
- Tunnel Warfare HDU - 1540(线段树最长连续区间)
			题意: 一条线上的点,D x是破坏这个点,Q x是表示查询以x所在的最长的连续的点的个数,R是恢复上一次破坏的点. 解析: 线段树结点 设置一个 lq记录区间左端点开始的最大连续个数, rq ... 
- 12 Zabbix Item类型之Zabbix JMX类型
			点击返回:自学Zabbix之路 12 Zabbix Item类型之Zabbix JMX类型 JMX 全称是Java Management Extensions,即Java管理扩展.Java程序会开放一 ... 
- 架构师成长之路6.3 DNS服务器搭建(部署单台DNS)
			点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署单台DNS) 1.安装bind yum -y install bind-utils bind bind-devel bind-chr ... 
- uoj233/BZOJ4654/洛谷P1721  [Noi2016]国王饮水记  【dp + 斜率优化】
			题目链接 uoj233 题解 下面不加证明地给出几个性质: 小于\(h[1]\)的城市一定是没用的 任何城市联通包含\(1\)且只和\(1\)联通一次 联通顺序从小到大最优 单个联通比多个一起联通要优 ... 
- 洛谷 P1984 [SDOI2008]烧水问题 解题报告
			P1984 [SDOI2008]烧水问题 题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯 ... 
- PopupWindow  学习总结
			http://wenku.baidu.com/link?url=d48Zr6m7XJq-2JagViGTtVhsvGNHoBg9bHJCbQUJSb5tjRPx9ecavBNlL71ywrT8josV ... 
