E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux内存管理
Linux内存管理
--基本概念
1.Linux物理内存三级架构 对于内存管理,Linux采用了与具体体系架构不相关的设计模型,实现了良好的可伸缩性。它主要由内存节点node、内存区域zone和物理页框page三级架构组成。 • 内存节点node 内存节点node是计算机系统中对物理内存的一种描述方法,一个总线主设备访问位于同一个节点中的任意内存单元所花的代价相同,而访问任意两个不同节点中的内存单元所花的代价不
MyArrow
·
2013-03-01 09:00
深入理解
Linux内存管理
- 物理内存
Linux存在于各种体系结构上,所以描述内存需要架构独立的方法。本章会描述用来管理memorybank,页框的数据结构以及那些影响VM行为的flagsVM第一个重要的流行概念是NonUniformMemoryAccess(NUMA)。对于大型机来说,不同banks内的内存由于和处理器的距离不同,访问代价也不同。比如,一个内存bank可以指定给每一个CPU,或者一个非常适合DMA操作的内存bank可
kickxxx
·
2013-02-27 16:00
linux内存管理
之uboot第一步
在进入讲解
linux内存管理
的kernel阶段以前,了解一下uboot阶段是如何准备好内存物理设备的,这是非常有意义的。
sydjm
·
2013-02-19 16:00
Linux内存管理
总结-系统初始化
操作系统如何为每个进程营造一个虚拟地址空间呢,写到这里不禁想起骇客帝国的场景,Matrix就是为人类虚拟出一个世界,让人们乐在其中。首先,我们要从操作系统初始化讲起。 操作系统一般把物理内存分成4K大小一个的页框(PageFrame).系统启动最开始的一瞬,物理内存都是空闲的,好似一批蛮荒。启动后,各路创世神灵(BIOS,各种硬件)开始占地盘。首先是BIOS,BIOS会把系统启动时检查到的硬件配置
fullofwindandsnow
·
2013-02-02 16:00
Linux内存管理
总结-地址映射
Linux内存管理
,各种文章介绍了很多,本文从我学习理解的角度总结成文,可能大段篇幅摘自网络文章,只是从我理解的角度,进行调整介绍的先后顺序。
fullofwindandsnow
·
2013-01-30 08:00
Linux内存管理
Linux0.11的内存管理总结。。。许多其它内容参见“地址翻译”部分1、分页相关的页目录表和页表 Linux0.11中的内存管理是分页式的内存管理。程序中的逻辑地址,在经过地址翻译后会被转成线性地址。内存管理部分所接触的地址,基本上都以线性地址为主。 在分页式的内存管理中,将物理内存看成是一个个的连续的页组成。在Linux0.11中,这个页的大小是4KB。因此,每个页的起始地址是4KB对
yanlinwang
·
2013-01-14 19:00
ARM-
linux内存管理
1、ARM地址是32位,所以虚拟地址总容量也是4GB。同样分为系统空间和用户空间。对于SA-1100,也是3GB为界。 #defineTASK_SIZE 0xc0000000(定义每个进程用户空间大小)#define PAGE_OFFSET 0xc0000000#definePHYS_OFFSET 0xc0000000(内存的物理地址起点)所以在系统空间,即在内核中,虚拟地址与物理地址在数值上是相
XscKernel
·
2013-01-11 22:00
Linux内存管理
大图(第三稿)
网友画的还不错就转了,该作者一共画了3版v0.1v0.2v0.3原文地址:http://bbs.chinaunix.net/thread-2018659-1-1.html
·
2012-12-29 12:00
Android内存管理机制详解
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
hellofeiya
·
2012-12-20 08:00
Android内存管理机制详解,不懂的人要看下
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
yaoweber
·
2012-12-19 18:41
android
内存管理机制
Android内存管理机制详解,不懂的人要看下
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
yaoweber
·
2012-12-19 18:40
android
内存管理机制
Linux内存管理
: Linux Kernel Shared Memory 剖析 Linux 内核中的内存去耦合
M.TimJones,自由作家简介: 作为一个系统管理程序(hypervisor),Linux®有几个创新,2.6.32内核中一个有趣的变化是KernelSharedMemory(KSM)。KSM允许这个系统管理程序通过合并内存页面来增加并发虚拟机的数量。本文探索KSM背后的理念(比如存储去耦合)、KSM的实现、以及如何管理KSM。发布日期: 2010年5月12日级别: 中级其他语言版本: 英文访
ajian005
·
2012-12-18 18:00
Linux内存管理
: Slab Allocator 分配器剖析:了解 Linux 内存管理的方式
M.TimJones,顾问工程师,Emulex简介: 良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux®内核使用了源自于Solaris的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索slab分配器背后所采用的思想,并介绍这种方法提供的接口
ajian005
·
2012-12-18 18:00
linux 内存管理笔记
最近看了一篇论文,觉得里面对
linux内存管理
的讲解还比较可以,就做了点笔记记录下来。用户空间:1.使用malloc()函数在进程的堆上分配内存。
fraser
·
2012-12-13 21:24
Android内存管理机制详解,不懂的人要看下
这是
Linux内存管理
的一个优秀特性,在这方面,区别于 Windows的内存管理。
fenlei100
·
2012-12-13 11:45
android
内存
Android内存管理机制详解
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
chaihuasong
·
2012-12-13 10:00
android内存管理
android内存优化
android内存管理机制
android小内存优化
Linux虚拟内存实现机制- 悟空- JavaEye技术网站
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
晴窗戏茶
·
2012-12-12 19:02
虚拟内存机制
页描述符与物理地址(相关主题帖子总结)
页描述符与物理地址(相关主题帖子总结)分类:
Linux内存管理
2010-10-2109:40 987人阅读 评论(1) 收藏 举报 主题: page_to_pfn疑惑,大家指教地址:http://linux.chinaunix.net
wangkaiblog
·
2012-12-10 14:00
linux
内存管理
内存池技术学习笔记
资料出处:http://www.cppblog.com/bangle/archive/2008/08/26/59915.html
linux内存管理
策略 linux低层采用三层结构,实际使用中可以方便映射到两层或者三层结构
wocjj
·
2012-11-27 17:00
Linux内存管理
之分段机制
前面一篇文章讲到逻辑地址到线性地址的转换,也就是分段机制的实现.分段机制虽然能够让程序员方便地管理程序的各个段,并且可以动态调整段的大小,而且对内存的碎片率也大大减小.但是还是没有解决程序大小比物理内存还大的问题,这时候就出现了分页机制,分页机制的出现最大的体现就是虚拟内存,虚拟内存的实现可以让大的程序装入内存.分页机制的实现还导致了部分程序装入,按需分配内存,代码共享等.根据上图,逻辑地址通过分
firefoxbug
·
2012-11-20 20:00
Linux内存管理
之分段机制
逻辑地址就是我们普通的段+偏移的表现方式,而线性地址就是段+偏移之后算出来的一个地址,前者可以认为是二维的地址,而后者可以理解是一维的。线性地址和虚拟地址的概念相接近,不知道其根本的区别。而物理地址就是实际在地址总线上传输的地址,也就是物理内存访问的真正地址。如上图,Linux在内存管理上,把逻辑地址通过分段机制变化成线性地址,线性地址也就是4G(32位系统)的程序地址。线性地址再通过分页机制转化
firefoxbug
·
2012-11-19 11:00
Linux内存管理
一
轉載地址:http://www.kerneltravel.net/journal/v/mem.htm摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最
OLillian
·
2012-11-13 11:00
Linux内存管理
之三 页的分配和释放
Linux对内存区内的页框的分配和释放,采用的算法是伙伴系统。如上图,Linux分配页时,只能分配2^n个页。内核维护MAX_ORDER个链表,每个链表记录着连续的空闲页。第一个链表中的每一项为1个空闲页,第二个链表中的每一项为2个空闲页,第三个链表中的每一项为4个空闲页。。。,依次类推。分配页时,从对应的链表上摘除空闲页;释放页时,将对应的页归还到对应的链表。分配释放页的过程中,可能伴随着内存页
sws9999
·
2012-10-30 16:00
Linux内存管理
之二 内存节点和内存分区
UMA和NUMA:UMA(UniformMemoryAccess),即一致性内存访问。这种情况下,CPU访问内存的任何位置,代价都是一样的。NUMA)(NonUniformMemoryAccess),即非一致性内存访问。这种情况下,CPU访问不同位置的内存,代价是不一样的。在多CPU情况下,对每个CPU来说有本地内存和远端内存,访问本地内存的代价比访问远端内存的代价小。确保CPU访问内存代价最小,
sws9999
·
2012-10-30 16:00
Linux内存管理
之一 分段与分页
现代操作系统的内存管理机制有两种:段式管理和页式管理。段式内存管理,就是将内存分成段,每个段的起始地址就是段基地址。地址映射的时候,由逻辑地址加上段基地址而得到物理地址。纯粹的段式内存管理的缺点很明显,就是灵活性和效率比较差。首先是段的长度是可变的,这给内存的换入换出带来诸多不便,如何选择一个段的长度是一个棘手的问题;其次进程在运行过程中,可能会扩充地址空间,这就要增加段,从而造成进程的地址空间由
sws9999
·
2012-10-30 16:00
内存理解
Linux内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。
gl23838
·
2012-10-26 01:00
linux主机监控命令-vmstat
在
Linux内存管理
中,主要是通过“调页Paging”和“交换Swapping”来完成上述的
lifayi2008
·
2012-10-22 11:38
vmstat命令
mmap 和DMA
http://ninghonghe2005.blog.163.com/blog/static/129527832008101405925427/本章将深入探讨
Linux内存管理
部分,并强调了对设备驱动程序编写者非常有帮助的技术重点
cjsycyl
·
2012-10-18 09:00
Linux内存管理
Linux内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。
bailyzheng
·
2012-09-26 10:31
Linux
Linux内存管理
Linux内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。
bailyzheng
·
2012-09-26 10:00
数据结构
linux
struct
数据库连接池
存储
linux内核
从开发者的角度学习
Linux内存管理
进程如何使用内存?毫无疑问,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。稍有编程知识的朋友都能想到这几个数据段中包含有“程序代码段”、“程序数据段”、
H_armony
·
2012-09-22 23:00
数据结构
linux
struct
hex
linux内核
Types
Linux内存管理
???继续看
继续看Bookmark bar上到两个专题"
Linux内存管理
" & “Linux虚拟内存实现原理” 1. free命令 解释一下Linux
chuanwang66
·
2012-09-20 09:00
linux
Linux内存管理
???继续看
继续看Bookmark bar上到两个专题"
Linux内存管理
" & “Linux虚拟内存实现原理” 1. free命令 解释一下Linux
chuanwang66
·
2012-09-20 09:00
linux
Linux内存管理
Slab分配器(二:初始化)
初看起来,slab系统的初始化不是特别麻烦,因为伙伴系统已经完全启用,内核没有受到其他特别的限制。尽管如此,由于slab分配器的结构所致,这里有一个鸡与蛋的问题。为初始化slab数据结构,内核需要若干远小于一整页的内存块,这些最适合由kmalloc分配。这里是关键所在:只有在slab系统已经启用之后,才能使用kmalloc。更确切的说,该问题涉及kmalloc的Per-CPU缓存的初始化。在这些缓
hs794502825
·
2012-09-15 16:00
数据结构
linux
cache
list
struct
Arrays
Linux内存管理
Slab分配器(一:概述)
采用伙伴算法分配内存时,每次至少分配一个页面。但当请求分配的内存大小为几十个字节或几百个字节时应该如何处理?如何在一个页面中分配小的内存区,小内存区的分配所产生的内碎片又如何解决?Linux采用Slab。Linux所使用的slab分配器的基础是JeffBonwick为SunOS操作系统首次引入的一种算法。Jeff的分配器是围绕对象缓存进行的。在内核中,会为有限的对象集(例如文件描述符和其他常见结构
hs794502825
·
2012-09-15 13:00
linux内存管理
浅析
[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),
zhaohc_nj
·
2012-09-09 22:00
linux
cache
嵌入式
磁盘
translation
linux内核
linux内存管理
在实际应用中,经常需要分配一组连续的页框,而频繁地申请和释放不同大小的连续页框,必然导致在已分配页框的内存块中分散了许多小块的空闲页框。这样,即使这些页框 是空闲的,其他需要分配连续页框的应用也很难得到满足。为了避免出现这种情况,Linux内核中引入了伙伴系统算法(buddysystem)。把所有的空闲页框分组为11个块链表,每个块链表分别包含大小为1,2,4,8,16,32,64,128,256
漂泊的零星
·
2012-09-05 15:00
linux内存管理
伙伴算法(基本概念介绍)
在系统初始化进行到伙伴系统分配器能够承担内存管理的责任后,必须停用bootmem分配器,毕竟不能同时用两个分配器管理内存。在UMA和NUMA系统上,停用分别由free_all_bootmem和free_all_bootmem_node完成(前面的博客已经详细讨论过)。伙伴系统基于一种相对简单而令人吃惊的强大算法,它结合了优秀内存分配器的两个关键特性:速度和效率。Linux内核中采用了一种同时适用于
慎思
·
2012-09-04 20:00
Linux内存管理
(5):分页机制和管理区初始化
1、初始化启动内存分配器 在内存子系统初始化以前,即boot阶段也需要进行内存管理,启动内存分配器是专为此而设计的。linux启动内存分配器是在伙伴系统、slab机制实现之前,为满足内核中内存的分配而建立的。本身的机制比较简单,使用位图来进行标志分配和释放。arch/x86/kernel/setup.c:setup_arch()在用init_memory_mapping(0,max_lo
zhoudaxia
·
2012-08-26 15:00
数据结构
linux
struct
cache
活动
Build
Linux内存管理
(4):内存映射机制
现代意义上的操作系统都处于32位保护模式下。每个进程一般都能寻址4G的内存空间。但是我们的物理内存常常没有这么大,进程怎么能获得4G的内存空间呢?这就是使用了虚拟地址的好处。我们经常在程序的反汇编代码中看到一些类似0x32118965这样的地址,操作系统中称为线性地址,或虚拟地址。通常我们使用一种叫做虚拟内存的技术来实现,因为可以使用硬盘中的一部分来当作内存使用。另外,现在操作系统都划分为系
zhoudaxia
·
2012-08-26 15:00
linux
assembly
table
attributes
X86
linux内核
[内存管理] linux kernel内存映射实例分析
正文在
linux内存管理
中,有两个资源
crazyjiang
·
2012-08-24 14:00
linux
struct
user
Module
Access
Parameters
Linux内存管理
(3):内存探测与初始化
1、内存探测 linux在被bootloader加载到内存后,cpu最初执行的内核代码是arch/x86/boot/header.S汇编文件中的_start例程,设置好头部header,其中包括大量的bootloader参数。接着是其中的start_of_setup例程,这个例程在做了一些准备工作后会通过callmain跳转到arch/x86/boot/main.c:main()函数处执
zhoudaxia
·
2012-08-18 12:00
数据结构
linux
struct
query
returning
linux内核
Linux内存管理
(2):内存描述
linux内存管理
建立在基本的分页机制基础上,在linux内核中RAM的某些部分将会永久的分配给内核,并用来存放内核代码以及静态内核数据结构。
zhoudaxia
·
2012-08-18 11:00
数据结构
linux
struct
table
initialization
linux内核
Linux内存管理
(1): 内存模型
本文转自IBMdeveloperWorks,稍有改动。 Linux使用的是单一整体式结构(Monolithic),其中定义了一组原语或系统调用以实现操作系统的服务,例如在几个模块中以超级模式运行的进程管理、并发控制和内存管理服务。尽管出于兼容性考虑,Linux依然将段控制单元模型(segmentcontrolunitmodel)保持一种符号表示,但实际上已经很少使用这种模型了。 与内
zhoudaxia
·
2012-08-18 11:00
linux
struct
table
存储
Descriptor
linux内核
深入理解
Linux内存管理
机制(一)
深入理解
Linux内存管理
机制(一)通过本文,您即可以:1.存储器硬件结构;2.分段以及对应的组织方式;3.分页以及对应的组织方式。
阿里中间件
·
2012-07-31 09:00
linux
深入理解
内存管理机制
Linux内存管理
之三 页的分配和释放
Linux对内存区内的页框的分配和释放,采用的算法是伙伴系统。如上图,Linux分配页时,只能分配2^n个页。内核维护MAX_ORDER个链表,每个链表记录着连续的空闲页。第一个链表中的每一项为1个空闲页,第二个链表中的每一项为2个空闲页,第三个链表中的每一项为4个空闲页。。。,依次类推。分配页时,从对应的链表上摘除空闲页;释放页时,将对应的页归还到对应的链表。分配释放页的过程中,可能伴随着内存页
sin的博客
·
2012-07-29 14:00
Linux内存管理
之三 页的分配和释放
Linux对内存区内的页框的分配和释放,采用的算法是伙伴系统。如上图,Linux分配页时,只能分配2^n个页。内核维护MAX_ORDER个链表,每个链表记录着连续的空闲页。第一个链表中的每一项为1个空闲页,第二个链表中的每一项为2个空闲页,第三个链表中的每一项为4个空闲页。。。,依次类推。分配页时,从对应的链表上摘除空闲页;释放页时,将对应的页归还到对应的链表。分配释放页的过程中,可能伴随着内存页
昵称4
·
2012-07-29 14:00
Linux内存管理
之二 内存节点和内存分区
UMA和NUMA:UMA(UniformMemoryAccess),即一致性内存访问。这种情况下,CPU访问内存的任何位置,代价都是一样的。NUMA)(NonUniformMemoryAccess),即非一致性内存访问。这种情况下,CPU访问不同位置的内存,代价是不一样的。在多CPU情况下,对每个CPU来说有本地内存和远端内存,访问本地内存的代价比访问远端内存的代价小。确保CPU访问内存代价最小,
sin的博客
·
2012-07-29 09:00
Linux内存管理
之二 内存节点和内存分区
UMA和NUMA:UMA(UniformMemoryAccess),即一致性内存访问。这种情况下,CPU访问内存的任何位置,代价都是一样的。NUMA)(NonUniformMemoryAccess),即非一致性内存访问。这种情况下,CPU访问不同位置的内存,代价是不一样的。在多CPU情况下,对每个CPU来说有本地内存和远端内存,访问本地内存的代价比访问远端内存的代价小。确保CPU访问内存代价最小,
昵称4
·
2012-07-29 09:00
Linux内存管理
之一 分段与分页
现代操作系统的内存管理机制有两种:段式管理和页式管理。段式内存管理,就是将内存分成段,每个段的起始地址就是段基地址。地址映射的时候,由逻辑地址加上段基地址而得到物理地址。纯粹的段式内存管理的缺点很明显,就是灵活性和效率比较差。首先是段的长度是可变的,这给内存的换入换出带来诸多不便,如何选择一个段的长度是一个棘手的问题;其次进程在运行过程中,可能会扩充地址空间,这就要增加段,从而造成进程的地址空间由
sin的博客
·
2012-07-19 21:00
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他