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内存管理
之kmalloc 与 __get_free_page()
在设备驱动程序中动态开辟内存,不是用malloc,而是kmalloc,或者用get_free_pages直接申请页。释放内存用的是kfree,或free_pages.对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用
fivedoumi
·
2011-12-12 18:00
Linux内存管理
(上)
在本章最后我们给出一个内存映射地实例,帮助网友们理解内核内存管理与用户内存管理之间地关系,希望大家最终能驾驭
Linux内存管理
。
fivedoumi
·
2011-12-08 15:00
Linux内存管理
(下)
物理内存管理(页管理)Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数4k(在i386体系结构中)大小页,从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址,因为分配时不必要求必须有大块的连续内存[1],系统可以东一页、西一页的凑出所需要的内存供进程使用。虽然如此,但是实际上系统使用内存还是倾向于分配连续的内存块,因为分配连续内存时,页表不需要更改,
fivedoumi
·
2011-12-08 15:00
linux
工作
struct
数据库连接池
makefile
linux内核
必须要转的好文章--关于
linux内存管理
的阐述
Publishedon LinuxDevCenter (http://www.linuxdevcenter.com/) Seethis ifyou'rehavingtroubleprintingcodeexamplesWhenLinuxRunsOutofMemoryby MulyadiSantosa11/30/2006 Perhapsyourarelyfaceit,butonceyoud
Melody_lu123
·
2011-12-08 11:00
Linux slab 分配器剖析
了解
Linux内存管理
的方式M.TimJones,顾问工程师,EmulexM.TimJones是一名嵌入式软件工程师,他是GNU/LinuxApplicationProgramming、AIApplicationProgramming
fivedoumi
·
2011-12-02 14:00
linux
cache
struct
object
application
嵌入式
Arm-kernel 内存收集
Arm-kernel内存收集 Linuxkernel的内存管理子系统非常复杂,为了深入了解内存管理系统,我打算分多篇文章来分析
linux内存管理
。
tiangwan2011
·
2011-11-30 23:00
数据结构
linux
struct
header
嵌入式
tags
linux情景分析第二章--存储管理(1)
2.1
linux内存管理
基本框架 linux中的分段分页机制分三层,页目录(PGD),中间目录(PMD),页表(PT)。PT中的表项称为页表项(PTE)。
mihouge
·
2011-11-09 16:00
linux
list
struct
File
table
存储
Linux内存管理
机制中buffer和cache的区别
Linux内存管理
机制中buffer和cache的区别理解
linux内存管理
,需要深入了解linux内存的各个参数含义和规则,下面介绍一下Linux操作系统中内存buffer和cache的区别。
天真花语
·
2011-10-10 09:53
linux
内存
职场
休闲
Linux设备驱动工程师之路——
Linux内存管理
机制及mmap方法
Linux设备驱动工程师之路——
Linux内存管理
机制及mmap方法K-Style转载请注明来自于衡阳师范学院08电2Y-Keehttp://blog.csdn.net/ayangke,QQ:843308498
womendu
·
2011-09-19 19:00
linux
Linux设备驱动工程师之路——
Linux内存管理
机制及mmap方法
Linux设备驱动工程师之路——
Linux内存管理
机制及mmap方法K-Style转载请注明来自于衡阳师范学院08电2 Y-Keehttp://blog.csdn.net/ayangke,QQ:843308498
ayangke
·
2011-09-19 19:00
Linux设备驱动工程师之路——
Linux内存管理
机制及mmap方法
Linux设备驱动工程师之路——
Linux内存管理
机制及mmap方法K-Style转载请注明来自于衡阳师范学院08电2Y-Keehttp://blog.csdn.net/ayangke,QQ:843308498
womendu
·
2011-09-19 19:00
linux
内核比较: 2.6 内核中改进了内存管理
反向映射在
Linux内存管理
器中,页表保持对进程使用的内存物理页的追踪,它们将虚拟页映射到物理页。这些页中
isiqi
·
2011-08-18 18:00
内存管理
linux内存管理
之sys_brk实现分析【三】
4.2 用户空间的伸展4.2.1 find_vma_intersectionfind_vma_intersection()在mm.h文件中,实现如下://判断进程的地址空间是否与给定的地址区间相交叉/*LookupthefirstVMAwhichintersectstheintervalstart_addr..end_addr-1, NULLifnone.Assumestart_addrv
BeyondHaven
·
2011-07-29 12:00
linux
struct
Microsoft
null
reference
migration
linux内存管理
之sys_brk实现分析【二】
4 sbrk()系统调用代码分析//sbrk:用来扩大或者缩小进程的数据段边界,brk为新的数据段边界,其函数实现在文件/mm/mmap.c中。函数原型如下:SYSCALL_DEFINE1(brk,unsignedlong,brk) { unsignedlongrlim,retval; unsignedlongnewbrk,oldbrk; structmm_st
BeyondHaven
·
2011-07-28 08:00
linux
struct
list
File
Semaphore
null
linux内存管理
之sys_brk实现分析【一】
Linux内存管理
分析报告分析内容:
linux内存管理
之sys_brk实现分析 目录1 概述...21.1 报告题目...22 系统调用功能概述...23 数据结构分析
BeyondHaven
·
2011-07-27 08:00
数据结构
linux
struct
tree
File
代码分析
Arm-kernel 内存收集
Arm-kernel内存收集 Linuxkernel的内存管理子系统非常复杂,为了深入了解内存管理系统,我打算分多篇文章来分析
linux内存管理
。
linyt
·
2011-07-23 11:00
数据结构
struct
header
嵌入式
tags
linux内存管理
linux内存管理
----内存管理子系统。地址类型----1--物理地址---是指出现在cpu地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。
u013030441
·
2011-07-22 08:00
2011-06-21
linux内存管理
1页,区,高速缓存高速缓存由多个slab组成,slab里面都包含了许多对象成员。slab通常由一个或多个物理上连续的页组成。2栈32位和64位体系结构的页面大小分别是4KB和8KB。历史上,每个进程都有两页的内核栈。每个进程的调用链(调用函数出入口)必须放在自己的内核栈中,中断处理程序有自己的栈。3高端内存映射 申请的内存可能没有逻辑地址(?),必须用相应的函数接口对其进行映射到内核的地址。4使用
cailang06
·
2011-06-21 15:00
linux内存管理
浅析
[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),
cocos
·
2011-06-18 13:00
数据结构
linux
cache
配置管理
嵌入式
linux内存管理
浅析
阅读更多[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表
cocos
·
2011-06-18 13:00
Linux
配置管理
数据结构
嵌入式
Cache
Linux内存管理
——valgrind 分享
卡卡说:要想搞测试,内存管理得精!Linux下我们选择Valgrind!先来个感性认识吧:)程序示例:test3.cpp1 #include2 #include34 voidf(void)5 {6 int*x=(int*)malloc(10*sizeof(int));7 x[10]=0;8 }910 intmain()11 {12 f();13 return0;14 } 编译链接该
menguio
·
2011-06-15 10:00
linux
buffer
Parameters
工具
leak
Pointers
linux内存管理
:内存页面的周转
源:《深入分析Linux内核源码》http://oss.org.cn/kernel-book/ch06/6.6.1.htm6.6.1交换的基本原理如前所述,每个进程的可以使用的虚存空间很大(3GB),但实际使用的空间并不大,一般不会超过几MB,大多数情况下只有几十K或几百K。可是,当系统的进程数达到几百甚至上千个时,对存储空间的总需求就很大,在这种情况下,一般的物理内存量就很难满足要求。因此,在计
wbd880419
·
2011-06-07 19:00
数据结构
算法
linux
list
磁盘
linux内核
[转]知名互联网公司系统工程师面试题
Linux内存管理
的工作模式。DNS反向解析的工作过程。traceroute的工
Yisen
·
2011-06-07 13:00
linux内存管理
页框用page描述符描述。所有的page放在mem_map数组中,virt_to_page产生线性地址对应的页描述符地址,pfn_to_page产生与页框号对应的页描述符地址。 linux内存被划成几个节点,节点包含几个管理区,包含第一个页框的页框号,页描述符的数组,在x86上只使用一个结点, x86上有三种内存管理区:ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM.管理区描
brucexu1978
·
2011-05-29 19:00
linux
算法
cache
X86
linux内存管理
关于页面的使用在之前的一些文章中,我们了解到linux内核会在很多情况下分配页面。1、内核代码可能调用alloc_pages之类的函数,从管理物理页面的伙伴系统(管理区zone上的free_area空闲链表)上直接分配页面(见《linux内核内存管理浅析》)。比如:驱动程序可能用这种方式来分配缓存;创建进程时,内核也是通过这种方式分配连续的两个页面,作为进程的thread_info结构和内核栈;等
f413933206
·
2011-05-26 17:00
thread
linux
算法
cache
磁盘
linux内核
linux内存管理
初步探索
首先理解一个概念,linux基本上使用的都是32位的整数和32位的指针来指向内存的,32位的指针可寻址的最大地址空间是4G字节。系统直接使用的是32位指针来寻址,而不像8086那样使用地址偏移量来寻址,了解win32内存结构的人应该清楚,这种寻址被成为32位的内存模型(flat32-bitmemorymodel)。这四个G的内存是一个虚拟的地址空间,也就是说无论你真实的物理内存具体是多少,你的程序
huiguixian
·
2011-05-23 17:00
Linux内存管理
阅读更多首先提供GustavoDuarte写的三篇非常精彩的文章:1.AnatomyofaPrograminMemory2.HowTheKernelManagesYour3.PageCache,theAffairBetweenMemoryandFiles然后看看Linux下malloc的实现原理:1.DougLea.AMemoryAllocator2.ptmalloc原理分析看完上面的文章,我们对
Dustin
·
2011-05-21 23:00
Linux
OS
UP
Cache
C
Linux内存管理
首先提供Gustavo Duarte写的三篇非常精彩的文章: 1. Anatomy of a Program in Memory 2. How The Kernel Manages Your 3. Page Cache, the Affair Between Memory and Files 然后看看Linux下malloc的实现原理: 1. Doug Lea. A M
Dustin
·
2011-05-21 23:00
c
linux
cache
OS
UP
Linux内存管理
首先提供Gustavo Duarte写的三篇非常精彩的文章: 1. Anatomy of a Program in Memory 2. How The Kernel Manages Your 3. Page Cache, the Affair Between Memory and Files 然后看看Linux下malloc的实现原理: 1. Doug Lea. A M
Dustin
·
2011-05-21 23:00
c
linux
cache
OS
UP
Linux内存管理
首先提供Gustavo Duarte写的三篇非常精彩的文章: 1. Anatomy of a Program in Memory 2. How The Kernel Manages Your 3. Page Cache, the Affair Between Memory and Files 然后看看Linux下malloc的实现原理: 1. Doug Lea. A M
Dustin
·
2011-05-21 23:00
c
linux
cache
OS
UP
对
Linux内存管理
的思考
转自:http://bbs.chinaunix.net/thread-1925077-1-1.html 经典!看了对低端物理内存和高3 内核的虚拟内存被连续映射到最低端的物理内存。这是所有问题的开始。为什么要把内核的虚拟地址空间连续地映射到物理内存最低端?这个根本不是个问题。开发人员或是出于效率的原因或是出于实现的原因,就是做了这样的设计。但这种设计却引发了很多令人困惑的问题。假设我们使用32
ruilin215
·
2011-05-17 13:00
thread
数据结构
linux
unix
bbs
博客网址记录
mod=space&uid=359096&do=blog&id=130868深入理解
LINUX内存管理
http://www.cnblogs.com/image-eye/archive/2011/07.htmlhttp
wangyunqian6
·
2011-05-10 12:00
linux
2010
linux内存管理
动态内在映射区 该区域的地址由内核函数vmalloc来进行分配,其特点是纯属究竟连续,但对应的物理究竟不一定连续。malloc分配的线性地睛所对应的物理页可能处于低端内在,也可能牌高端内存。永久内存映射区:固定映射区:如ACPI_BASE的映射 linux内核链表 内核定时器: 定时器用于控制某个函数(定时器处理函数)在未来的某个特定时间执行。内核定时器注册的处理函数只执行一次---不是循环执
zhongxiaowenhuman
·
2011-05-08 14:00
linux内存管理
之非连续物理地址分配(vmalloc)
前面我们已分析了linux怎么利用伙伴系统,slab分配器分配内存,用这些方法得到的内存在物理地址上都是连续的,然而,有些时候,每次请求内存时,系统都分配物理地址连续的内存块是不合适的,能利用小块内存“连接”成大块可使用的内存.这在操作系统设计中也被称为“内存拼接”,显然,内存拼接在需要较大内存,而内存访问相比之下不是非常频繁的情况下是比较有效的. 在linux内核中用来管理内存拼接的接口是
Matrix_Designer
·
2011-05-02 21:00
数据结构
linux
struct
null
linux内核
Allocation
Linux 内存管理机制简介
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
glying
·
2011-04-06 09:00
linux
简介
内存管理机制
mmap DMA
第13章 mmap和DMA本章将深入探讨
Linux内存管理
部分,并强调了对设备驱动程序编写者非常有帮助的技术重点。
lihaoweiV
·
2011-03-24 20:00
linux
工作
struct
File
存储
buffer
Linux内存管理
-高端内存
上一周一直在关注linux内存中3:1(3G:1G)的关系,并没有考虑到如果我的物理内存大于1G,那么内核空间1G的虚拟空间如何映射整个物理内存呢?以及内核是如何管理这大于1G的物理内存的。 下面是转载的文章,解释了这个疑问。 高端内存是指物理地址大于896M的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从3G到4G,只能直接映射1G
engerled
·
2011-03-07 14:00
内核映射
转载自:http://ericxiao.cublog.cn/一:引子我们在前面分析过,在
linux内存管理
中,内核使用3G—>4G的地址空间,总共1G的大小。
lihaoweiV
·
2011-03-02 16:00
timer
IO
struct
user
table
X86
Linux内存管理
之一:基本概念篇
物理地址、线性地址(虚拟地址)和逻辑地址;阐述段式管理和页式管理基本概念;Linux操作系统内存管理和虚拟内存概念;为内核开发做一个基础铺垫。王保明总结与2010年。 内存是linux内核所管理的最重要的资源之一,内存管理子系统是操作系统中最重要的部分之一。对与立志从事内核开发的工程师来说,熟悉linux的内存管理系统非常重要。1、物理地址、线性地址(虚拟地址)和逻辑地址之间的关系物理地址是指出现
baoming_wang
·
2011-02-05 17:00
Linux内存管理
(一)
Linux内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。
maojudong
·
2011-01-06 22:00
Linux内存管理
之高端内存映射
Linux内存管理
之高端内存映射------------------------------------------本文系本站原创,欢迎转载!
changtao381
·
2010-12-31 00:00
进程的内存布局
Linux内存管理
机制 Linux的内存管理主要由两个部分组成,一个部分负责物理内存的申请与释放,物理内存的申请与释放最小单位与Windows一样,都是以"页"为单位,在IA32中页的大小是4KB
zhuliting
·
2010-12-21 21:00
windows
linux
存储
360
2010
linux内存管理
系统后期的内核对zonelist的简化
structpglist_data{ structzonenode_zones[MAX_NR_ZONES]; structzonelistnode_zonelists[GFP_ZONETYPES];...}GFP_ZONETYPES是一个宏,在2.6.8的时候它如下定义:#defineGFP_ZONEMASK 0x07/*#defineGFP_ZONETYPES (GFP_Z
dog250
·
2010-12-11 21:00
linux
struct
网络协议
linux内存管理
系统后期的内核对zonelist的简化
struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; struct zonelist node_zonelists[GFP_ZONETYPES]; ... } GFP_ZONETYPES是一个宏,在2.6.8的时候它如下定义: #define GFP_ZONEMASK 0x07 /* #define GFP_ZONETYPES (GF
izuoyan
·
2010-12-11 21:00
数据结构
linux
网络协议
linux内存管理
系统后期的内核对zonelist的简化
struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; struct zonelist node_zonelists[GFP_ZONETYPES]; ... } GFP_ZONETYPES是一个宏,在2.6.8的时候它如下定义: #define GFP_ZONEMASK 0x07 /* #define GFP_ZONETYPES (GF
totoxian
·
2010-12-11 21:00
linux
linux内存管理
系统后期的内核对zonelist的简化
struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; struct zonelist node_zonelists[GFP_ZONETYPES]; ... } GFP_ZONETYPES是一个宏,在2.6.8的时候它如下定义: #define GFP_ZONEMASK 0x07 /* #define GFP_ZONETYPES (GF
xitong
·
2010-12-11 21:00
linux
linux内存管理
系统后期的内核对zonelist的简化
structpglist_data{ structzonenode_zones[MAX_NR_ZONES]; structzonelistnode_zonelists[GFP_ZONETYPES];...}GFP_ZONETYPES是一个宏,在2.6.8的时候它如下定义:#defineGFP_ZONEMASK 0x07/*#defineGFP_ZONETYPES (GFP_Z
dog250
·
2010-12-11 21:00
linux
struct
网络协议
网络技术
线性空间与物理内存
图解
Linux内存管理
--线性空间与物理内存2008-06-2623:53(ZT) 上图反映了如下信息: 1、进程的4G线性空间被划分成三个部分:进程空间(0-3G)、内核直接映射空间(3G–high_memory
zhw888888
·
2010-12-10 14:00
linux培训记录
技术上的收获:1. linux系统锁机制,并发程序上潜在的问题2. linux系统信号量,中断机制更深层次的了解3. linuxio机制,包括一直很迷惑的poll和epoll机制的区别4.
linux内存管理
agapple
·
2010-12-01 17:00
编程
c
linux
框架
项目管理
linux培训记录
技术上的收获:1. linux系统锁机制,并发程序上潜在的问题2. linux系统信号量,中断机制更深层次的了解3. linuxio机制,包括一直很迷惑的poll和epoll机制的区别4.
linux内存管理
agapple
·
2010-12-01 17:00
编程
c
框架
linux
项目管理
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
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
其他