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内存管理
机制
物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟
·
2015-10-31 10:53
linux
linux内存管理
子系统
一、
Linux内存管理
模型 1、虚拟地址与物理地址的映射 2、物理地址的分配二、虚拟地址与物理地址的映射 1、虚拟地址空间分布 32位处理器有32根地址总线,可访问4G的物理空间。
·
2015-10-31 09:57
linux
linux内存管理
之非连续物理地址分配(vmalloc)
http://blog.chinaunix.net/uid-20543183-id-1930784.html 前面我们已经分析了linux如何利用伙伴系统,slab分配器分配内存,用这些方法得到的内存在物理地址上都是连续的,然而,有些时候,每次请求内存时,系统都分配物理地址连续的内存块是不合适的,可以利用小块内存“连接”成大块可使用的内存.这在操作系统设计中也被称为 “内存拼接”,显然,内存拼接
·
2015-10-30 12:51
malloc
Linux内存管理
之bootmem分配器
为什么要使用bootmem分配器,内存管理不是有buddy系统和slab分配器吗?由于在系统初始化的时候需要执行一些内存管理,内存分配的任务,这个时候buddy系统,slab分配器等并没有被初始化好,此时就引入了一种内存管理器bootmem分配器在系统初始化的时候进行内存管理与分配,当buddy系统和slab分配器初始化好后,在mem_init()中对bo
·
2015-10-21 12:48
linux
Linux 内存分区管理
inux内核中和内存相关的2个系统参数的设置:想要通过修改
linux内存管理
相关的参数设置来观察其对内存数据库的读写性能的影响,首先要了解一些
linux内存管理
相关的重要参数,先了解两个,如下。
_Mr_COOL
·
2015-10-20 11:50
C/C++
linux
linux内核
Linux内存管理
一、地址相关概念1.物理地址(physicaladdress) 物理内存,真实存在的插在主板内存槽上的内存条的容量的大小。 内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可唯一标识一个存储单元,称为物理地址。2.虚拟地址(virtualaddress) 虚拟内存地址就是每个进程可以直接寻址的地址空间,不受其他进程干扰。 虚拟内存与物理内存的区别:虚拟内存就与
tfygg
·
2015-10-03 13:00
linux内存管理
进程地址空间
Android内存管理机制详解
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
dreamtdp
·
2015-09-04 22:00
Linux内存管理
之内核对物理内存的描述
Linux将物理内存按固定大小的页面(一般为4K)划分内存,在内核初始化时,会建立一个全局structpage结构数组mem_map[]。如系统中有76G物理内存,则物理内存页面数为76*1024*1024k/4K=19922944个页面,mem_map[]数组大小19922944,即为数组中每个元素和物理内存页面一一对应,整个数组就代表着系统中的全部物理页面。在服务器中,存在NUMA架构(如Ne
SYP35
·
2015-09-01 11:00
内存管理
Linux内存管理
在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭
Linux内存管理
。
alfredliukai
·
2015-08-27 23:00
Linux内核工程导论——内存管理(一)
Linux内存管理
概要物理地址管理很多小型操作系统,例如eCos,vxworks等嵌入式系统,程序中所采用的地址就是实际的物理地址。
broler
·
2015-08-25 20:12
linux
linux内核原理
Linux内核工程导论——内存管理(一)
Linux内存管理
概要物理地址管理很多小型操作系统,例如eCos,vxworks等嵌入式系统,程序中所采用的地址就是实际的物理地址。
ljy1988123
·
2015-08-25 20:00
linux
kernel
内核
Linux kernel 分析之二十二:内存管理-page fault处理流程
page fault是
Linux内存管理
中比较关键的部分。理解了page fault的处理流程,有助于对Linux内核的内存管理机制的全面理解。
vanquishedzxl
·
2015-07-23 22:00
arm-linux学习笔记3-
linux内存管理
与文件操作
配置好linux系统之后需要vim配置一下,有助于我们的编程,主要的配置如下在/etc/vim/vimrc文件中"显示行号setnumber"自动缩进setautoindent"智能缩进setsmartindent"一次四格tabsettabstop=4"一次四格setshiftwidth=4"括号匹配setshowmatch"右下角显示光标状态行setruler"文件类型检测filetypeon
邓小俊
·
2015-06-07 22:00
Linux内存管理
1free 根据参考资料[1]的说明,查看系统内存情况可以使用free命令,加上-h参数可以以方便人们阅读的形式显示出来,例如:liyihai@ubuntu:~$free-h totalusedfreesharedbufferscached Mem:3.9G908M3.0G4.0M64M380M -/+buffers/cache:463M3.5G Swap:4.0G0B4.0G参考资料[1]Li
Q1302182594
·
2015-05-29 11:00
Linux内存管理
之slab slab是什么
一:准备知识:前面我们分析过了大内存分配的实现机制,事实上,若为小块内存而请求整个页面,这样对于内存来说是一种极度的浪费。因此linux采用了slab来管理小块内存的分配与释放。Slab最早是由sun的工程师提出。它的提出是基于以下因素考虑的:1:内核函数经常倾向于反复请求相同的数据类型。比如:创建进程时,会请求一块内存来存放mm结构。2:不同的结构使用不同的分配方法可以提高效率。同样,如果进程在
shezjl
·
2015-05-07 17:00
内存学习――为什么需要虚拟内存
同时,我也希望自己能够陆续学习
linux内存管理
的知识,并且写出一些文章,来记录自己的一些理解。 如果您觉得有任何问题,可以留下评论,我们一起讨论,毕竟越辩
arthur503
·
2015-05-06 09:00
linux内存管理
之malloc
对于内核的内存管理,像kmalloc,vmalloc,kmap,ioremap等比较熟悉。而对用户层的管理机制不是很熟悉,下面就从malloc的实现入手.(这里不探讨linux系统调用的实现机制.),参考了《深入理解计算机系统》和一些网上的资料.首先从http://ftp.gnu.org/gnu/glibc下载glibc库2.21,通常我们用的bsp或者sdk里面的工具链都是编译好的,而这个是
kai8wei
·
2015-04-26 23:00
(4.4.1.1) Android内存管理机制详解
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
fei20121106
·
2015-04-18 14:00
Linux内存管理
(x86-32位系统)
linux内存的管理主要分为两部分,地址管理和存储设备管理。下面针对这两部分介绍一下我对内存管理的理解。硬件地址的基本概念DRAM域地址:是DRAM控制器所能访问的地址空间集合。PCI总线域地址:是PCI设备所能直接访问的地址空间集合。存储器域地址:是CPU所能访问的地址空间集合。结合下图对上面概念进行解释:CPU访问DRAM域或PCI总线域地址空间时,都需要进行地址转换(将存储器域地址转换为相应
hoolev
·
2015-04-14 14:00
linux
内存管理
内核
32位
linux内存管理
相关的图示(四)
感谢各图的作者,这里仅仅进行了一个集中,大部分图示非本人所做如有侵权,请告知,本人立即撤销本文仅作自己学习参考,无其他用途
xiangpingli
·
2015-03-25 23:00
linux内存管理
相关的图示(三)
感谢各图的作者,这里仅仅进行了一个集中,大部分图示非本人所做如有侵权,请告知,本人立即撤销本文仅作自己学习参考,无其他用途
xiangpingli
·
2015-03-25 23:00
linux内存管理
相关的图示(二)
感谢各图的作者,这里仅仅进行了一个集中,大部分图示非本人所做如有侵权,请告知,本人立即撤销本文仅作自己学习参考,无其他用途
xiangpingli
·
2015-03-25 00:00
linux内存管理
相关的图示(一)
感谢各图的作者,这里仅仅进行了一个集中,大部分图示非本人所做如有侵权,请告知,本人立即撤销本文仅作自己学习参考,无其他用途
xiangpingli
·
2015-03-25 00:00
Linux内核驱动学习(四)----内存管理子系统
Linux内存管理
子系统由七大部分组成。。如下图:a>系统调用接口(SCI)、b>进程管理(PM)、
zdy0_2004
·
2015-03-08 23:00
linux内核
Linux内存管理
(4) - 不连续页的分配vmalloc
本文目的在于分析Linux内核中的vmalloc函数。内核版本为2.6.31。我们知道物理上连续的映射对内核是最好的,但不是总能成功。在分配一大块内存时,可能无法找到连续的内存块。在用户空间这不是问题,因为普通进程设计为使用处理器的分页机制,当然这会降低速度并占用TLB。在内核中也可以使用同样的技术,典型的例子为vmalloc()。vmalloc是一个接口函数,内核代码用它来分配在虚拟内存中连续但
jasonchen_gbd
·
2015-03-02 21:00
linux
kernel
内存管理
vmalloc
Linux内存管理
(3) - slab分配器和kmalloc
本文目的在于分析
Linux内存管理
机制的slab分配器。内核版本为2.6.31。1.SLAB分配器内核需要经常分配内存,我们在内核中最常用的分配内存的方式就是kmalloc了。
jasonchen_gbd
·
2015-03-02 21:00
linux
kernel
内存管理
kmalloc
slab
Linux内存管理
(2) - buddy系统
本文目的在于分析
Linux内存管理
机制中的伙伴系统。内核版本为2.6.31。
jasonchen_gbd
·
2015-03-02 20:00
linux
kernel
内存管理
Buddy
伙伴系统
Linux内存管理
(1) - bootmem分配器
1. bootmem分配器内核中分配内存基本都基于伙伴系统,但是在内核启动之初,伙伴系统尚未建立,这时需要一个临时的内存分配器负责提供内核早期的内存需求,例如存放内核的代码段和数据段,以及将内存进行简单的管理供后续伙伴系统使用,这就是bootmem分配器。本文基于Linux2.6.31的内核源码对bootmem分配器的工作过程进行分析。为方便说明代码流程,我以最简单的情形为例:在内核中没有开启
jasonchen_gbd
·
2015-03-01 23:00
linux
kernel
内存管理
bootmem
linux内存管理
---UTLK读书笔记
从80286开始,intel处理以两种不同的方式执行地址转换,即实模式(realmode)和保护模式(protectedmode)。只所以从286开始有这两种方式,是因为286之前的cpu工作在实模式,这实际上一种不健壮的模式,不适用多进程,所以在80286开始启用保护模式,仍然存在实模式,一是因为向上兼容,二是在系统启动的时候(如在BIOS执行时)还是需要这种模式的,这个情况有点像动态链接器(其
jinnlxl
·
2015-02-15 19:18
linux&unix
Linux内核驱动学习(四)----内存管理子系统
Linux内存管理
子系统由七大部分组成。。
u011467781
·
2015-02-09 20:00
linux内存管理
Linux内存分配
Linux内存管理
之slab机制(初始化)
Linux内存管理
之slab机制(初始化)小狼@http://blog.csdn.net/xiaolangyangyang一、内核启动早期初始化 start_kernel()->mm_init(
xiaolangyangyang
·
2015-02-06 14:00
linux
嵌入式
内核
驱动
Linux内存管理
之slab机制(初始化)
Linux内存管理
之slab机制(初始化)一、内核启动早期初始化 start_kernel()->mm_init()->kmem_cache_init() 执行流程: 1,初始化静态
hot_zcy2012
·
2015-02-02 15:00
kernel
内存管理
mm
Linux内存管理
- PAGE_OFFSET理解
Linux内存管理
-PAGE_OFFSET理解 PAGE_OFFSET代表的是内核空间和用户空间对虚拟地址空间的划分,对不同的体系结构不同。
vonzhoufz
·
2015-01-10 16:00
PAGE_OFFSET
关于
linux内存管理
Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab)。物理地址到虚拟地址之间的映射1、概念物理地址(physicaladdress)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字
penzchan
·
2014-12-27 16:00
Linux内存管理
介绍
linux内存管理
概述内存管理的目标:提供一种方法,在各种目的各个用户之间实现内存共享,应该实现以下两个功能:1、最小化管理内存的时间,内存申请和释放响应时间短2、最优化用于一般应用的可用内存,内存管理
wangpeihuixyz
·
2014-12-08 21:00
内存管理
Android安全模型之Android安全机制(内存管理)
Ashmem匿名共享内存Android的匿名共享内存(Ashmem)机制基于Linux内核的共享内存,但是Ashmem与cacheshrinker关联起来,增加了内存回收算法的注册接口,因此
Linux内存管理
系统将不再使用内存区域加以回收
柳哥
·
2014-12-02 15:00
android
Linux内存管理
之mmap详解
转自:http://blog.chinaunix.net/uid-26669729-id-3077015.html一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可
zhangxiao93
·
2014-11-27 15:00
mmap
Linux内存管理
之mmap详解
Linux内存管理
之mmap详解一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。
bzhxuexi
·
2014-11-25 10:00
linux
内存管理
虚拟内存
mmap
从proc目录下的zoneinfo认识
Linux内存管理
最近在看Linux内核内存管理,从head.S汇编到main.c一路过来。最好发现有一本书:深入理解Linux虚拟内存管理可惜书上的介绍的内核是Linux2.4和2.6,我现在的代码都3.4了,稍微有一些差别。不过作为参考,对分析内存管理有很大的帮助。看的过程,发现proc目录下很多有用的接口:/#cat/proc/zoneinfo[37.543024]Deankernel/fork.c1155c
dean_gdp
·
2014-11-23 09:45
kernel分析
Linux文件系统
内核驱动
从proc目录下的zoneinfo认识
Linux内存管理
最近在看Linux内核内存管理,从head.S汇编到main.c一路过来。最好发现有一本书:深入理解Linux虚拟内存管理可惜书上的介绍的内核是Linux2.4和2.6,我现在的代码都3.4了,稍微有一些差别。不过作为参考,对分析内存管理有很大的帮助。看的过程,发现proc目录下很多有用的接口:/#cat/proc/zoneinfo [ 37.543024]Deankernel/fork.c115
dean_gdp
·
2014-11-23 09:00
linux
内核
zoneinfo
linux内存管理
浅析
[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),
哭你吃完
·
2014-11-14 09:00
linux
OS
内存管理
Linux内核4级页表的演进
转自:http://larmbr.me/2014/01/19/the-evolution-of-4-level-page-talbe-in-linux/
Linux内存管理
中coreVM代码中,关于页表
njuitjf
·
2014-11-03 18:00
Linux内存管理
原理
本文以32位机器为准,串讲一些内存管理的知识点。 1.虚拟地址、物理地址、逻辑地址、线性地址虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差一个线性偏移量。用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍称之为线性地址。2.DMA/
lziog
·
2014-11-03 10:00
Linux内存管理
初探
作者:王智通 一、前言二、简单的内存管理器示例三、GNUmalloc算法四、KernelBuddy伙伴系统算法五、KernelSlab/Slub高速缓存算法 一、前言这次课程最初的题目叫《
linux内存管理
yangcs2009
·
2014-10-24 11:00
常见段错误
在
Linux内存管理
中,Linux结合了CPU架构采用了分段机制;分段就是将内存分成大小不同的段空间,将进程之间和进程内部不同数据段之间隔离起来;当程序内存的数据的访问超出了系统所给这个程序数据段的范围
Since20140504
·
2014-10-20 14:00
linux内存管理
之malloc、vmalloc、kmalloc的区别
1、kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存2、kmalloc保证分配的内存在物理上是连续的,内存只有在要被DMA访问的时候才需要物理上连续,malloc和vmalloc保证的是在虚拟地址空间上的连续3、kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大4、vmalloc比kmalloc要慢。尽管在某些情况下才需要物理上连续的
fangjian1204
·
2014-10-02 21:00
malloc
内存管理
linux内核
kmalloc
vmalloc
linux内存管理
内幕
原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/39609863忽然想起前几天在公司看到一篇关于内存管理的文章,但当时由于别的事情给打断了。今天想起来,就又在网上找了一下,与大家分享一下。虽然自己现在从事内核模块开发,对内存池和引用计数也有所了解,但由于理解深度及文笔,不能自己娓娓道来,所以就和大家一起来瞻仰一下大师给我
wangyuling1234567890
·
2014-09-27 10:00
linux
内存管理
智能指针
内存分配
引用计数内存池
Linux内存管理
初探
作者:王智通 一、前言二、简单的内存管理器示例三、GNUmalloc算法四、KernelBuddy伙伴系统算法五、KernelSlab/Slub高速缓存算法 一、前言这次课程最初的题目叫《
linux内存管理
yangcs2009
·
2014-09-13 21:00
[
Linux内存管理
-分页机制]—把一个虚拟地址转换为物理地址
由于内核在不同的CPU上运行,甚至包括目前的64位机器。Linux内核提供了4级页表的管理机制,它可以兼容各种架构的CPU。 一个虚拟地址会被分为5个部分:页全局目录PGD(PageGlobalDirectory),页上级目录PUD(PageUpperDirectory),页中间目录PMD(PageMiddleDirectory,页表PT(PageTable)以及偏移量offset,其中的表
SUN20082567
·
2014-09-11 19:00
Linux内存管理
机制
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
guangpu_yu
·
2014-09-04 17:46
linux
内存
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
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
其他