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内存管理
的特性,也即,虚拟内存和磁盘缓冲。叙述了系统管理员需要考虑到的内存管理的目的、工作原理以及其他一些事情。
Oracle小混子
·
2013-07-18 10:35
linux
linux内存
linux内存管理
Linux 内存管理(一)
这是
Linux内存管理
的一个优秀特性,在这方面,区别于Windows的内存管理。
Oracle小混子
·
2013-07-18 10:20
linux
linux内存
linux内存管理
Linux内存管理
:逻辑地址到线性地址和物理地址的转换
Linux内存管理
:逻辑地址到线性地址和物理地址的转换作者:@wangdy一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元
Aryang
·
2013-07-16 18:00
Linux内存管理
1)线性地址空间:是指Linux系统中从0x00000000到0xFFFFFFFF整个4GB虚拟存储空间。 2)内核空间:内核空间表示运行在处理器最高级别的超级用户模式(supervisormode)下的代码或数据,内核空间占用从0xC0000000到0xFFFFFFFF的1GB线性地址空间,内核线性地址空间由所有进程共享,但只有运行在内核态的进程才能访问,用户进程可以通过系统调用切换到内核态访问
zqh2007
·
2013-07-10 15:00
[置顶] 从总体上把握
Linux内存管理
注:作者水平有限,欢迎对本文提出宝贵意见。1.建立内存碎片的概念 内存碎片分为:内部碎片和外部碎片 1.1内部碎片 内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间; 内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个块。而在进程占有这块存储存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能
acs713
·
2013-07-07 20:00
Linux内存管理
在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭
Linux内存管理
。
lxgwm2008
·
2013-06-25 15:00
内存管理
linux内存管理
Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab)。物理地址到虚拟地址之间的映射1、概念物理地址(physicaladdress)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节
lxgwm2008
·
2013-06-25 14:00
linux
内存
Android内存管理机制
这是
Linux内存管理
的一个优秀特性,在这方面,区别于 Windows的内存管理。
twlkyao
·
2013-06-20 21:00
android
内存
Linux内存管理
机制
一物理内存和虚拟内存我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为
leejia1989
·
2013-06-14 16:59
linux
虚拟内存
交换空间
Linux内存管理
机制
一物理内存和虚拟内存我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为
leejia1989
·
2013-06-14 16:59
linux
虚拟内存
交换空间
linux内存管理
浅析
[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),
hongwazi_2010
·
2013-06-09 21:00
linux内核
linux内存管理
机制
占用的内存数:total-buffers-cached =2496m可用的内存数:free+buffers+cached=14594mLinux内存机制上一篇/下一篇 2011-10-2719:15:22/个人分类:网摘查看(15)/评论(0)/评分(0/0)一.内存使用说明Free命令相对于top提供了更简洁的查看系统内存使用情况:[root@rac1~]#free
woniucp168
·
2013-06-09 10:13
linux
内存管理
机制
linux内存管理
机制
占用的内存数:total-buffers-cached=2496m可用的内存数:free+buffers+cached=14594mLinux内存机制上一篇/下一篇2011-10-2719:15:22/个人分类:网摘查看(15)/评论(0)/评分(0/0)一.内存使用说明Free命令相对于top提供了更简洁的查看系统内存使用情况:[root@rac1~]#freetotalusedfreeshar
woniucp168
·
2013-06-09 10:13
linux
内存管理
机制
linux/unix
linux内存管理
浅析
[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),
qianlong4526888
·
2013-06-06 14:00
linux
OS
内存管理
linux内存管理
介绍
Linux内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。
ylyuanlu
·
2013-06-03 22:00
linux
内存
管理
内核
linux内存管理
Cpu可以像一个访问一个内存单元那样访问外设的I/O端口,而不需要设立专门的IO指令内存管理单元MMU作用是提供虚拟地址到物理地址的映射,内存访问权限保护和Cache缓存控制等硬件支持。有几个概念需要明确。TLB translation lookaside buffer 缓存少量的虚拟地址和物理地址的转换关系,是转换表的cacheTTW translation table walk 当TLB中没有
jsnalbert5
·
2013-06-02 17:10
linux
内存管理
设备驱动
ok6410学习笔记(8.mmap地址映射之
linux内存管理
)
在学习mmap的时候,遇到了好多障碍,最后总结为对内核机制的理解不透彻,尤其是对内存管理理解不到位,所以转载好多篇不错的内存管理的文章。这节就当做学习mmap前面的知识铺垫吧。问题思考:1.linux页式管理与mmu有什么关系:在linux内核移植中,移植了mmu(内存管理单元)到系统中,用作把操作系统的虚拟地址转换成物理地址,也就是mmu中保存了linux系统中各级的页表,页目录。mm
qq418674358
·
2013-06-02 15:00
第1节 Linux的内存管理概述
Linux内存管理
的设计充分利用了计算机系统所提供的虚拟存储技术,真正实现了虚拟存储器管理。第二章介绍的Intel386的段机制和页机制是Linux实现虚拟存储管理的一种硬件平台。
qq418674358
·
2013-06-02 14:00
第2节
Linux内存管理
的初始化
6.2.1启用分页机制 当Linux启动时,首先运行在实模式下,随后就要转到保护模式下运行。因为在第二章段机制中,我们已经介绍了Linux对段的设置,在此我们主要讨论与分页机制相关的问题。Linux内核代码的入口点就是/arch/i386/kernel/head.S中的startup_32。 1.页表的初步初始化: /* *Thepagetablesareinitializedtoonly8M
qq418674358
·
2013-06-02 14:00
Linux内存管理
(下)
物理内存管理(页管理)Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数4k(在i386体系结构中)大小页,从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址,因为分配时不必要求必须有大块的连续内存[1],系统可以东一页、西一页的凑出所需要的内存供进程使用。虽然如此,但是实际上系统使用内存还是倾向于分配连续的内存块,因为分配连续内存时,页表不需要更改,
qq418674358
·
2013-06-01 20:00
Linux内存管理
(上)
在本章最后我们给出一个内存映射地实例,帮助网友们理解内核内存管理与用户内存管理之间地关系,希望大家最终能驾驭
Linux内存管理
。
qq418674358
·
2013-06-01 20:00
Linux内存管理
之mmap详解
Linux内存管理
之mmap详解一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。
freeboy1015
·
2013-05-27 20:00
linux内存管理
浅析
转载:http://hi.baidu.com/_kouu/item/4c73532902a05299b73263d0[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项
new_abc
·
2013-05-27 16:00
linux内存管理
页帧管理
linux页帧管理采用伙伴系统算法,与bootmem相比有更快的分配速度,能够快速打找到空闲内存;有效的解决外部碎片。页帧的处理代码主要在:mm/page_alloc.c中I.主要数据结构i.页描述符structpage内存管理的核心是页帧管理,内核必须清楚的知道页帧的状态:该页帧是否空闲,是否已经包含代码或数据,是否已经被修改等。每个页帧都有一个页描述符与之对应,用来表示页帧信息;页描述符用pa
Morphad
·
2013-05-18 18:00
linux内存管理
bootmem
bootmem是内核启动时使用的物理内存分配器,根据e820map中的可用内存来初始化bootmem可用内存;bootmem启动之前分配的内存放入early_res预留内存区间中,初始化bootmem时将已经分配出去的内存在bootmem系统中标识为已分配bootmem管理的是页帧,而e820map和early_res管理的是区间e820map注册进bootmem时会对区间做页对齐操作;区间起始地
Morphad
·
2013-05-16 19:00
linux内存管理
e820map
启动过程中,内核先后使用的内存分配器有:early_res,bootmem,zoneallocator;后一个内存分配器启用之后,前一个内存分配器不再使用。early_res是内存最早使用的内存分配器arch/x86/kernel/e820.c:1/* 2*Handlethememorymap. 3*Thefunctionsheredothejobuntilbootmemtakesover.
Morphad
·
2013-05-16 19:00
linux内存管理
概述
linux内存管理
建立在基本的分页机制基础上,在linux内核中RAM的某些部分将会永久的分配给内核,并用来存放内核代码以及静态内核数据结构。
ctthunagchneg
·
2013-05-14 16:00
linux slub分配器浅析
在《
linux内存管理
浅析》中提到内核管理自己使用的内存时,使用了SLAB对象池。SLAB确实是比较复杂,所以一直以来都没有深入看一看。
ctthunagchneg
·
2013-05-11 19:00
linux内存管理
浅析
[地址映射](图:左中) linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。 想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(
ctthunagchneg
·
2013-05-11 19:00
要理解
LINUX内存管理
子系统,先要熟悉一些概念
页框,页帧:传统上,把内存视为连续的字节,即内存为字节数组,内存单元的编号(地址)可作为字节数组的索引。分页管理时,将若干字节视为一页,比如4Kbytes此时,内存变成了连续的页,即内存为页数组,每一页物理内存叫页帧,以页为单位对内存进行编号,该编号可作为页数组的索引,又称为页帧号。页帧和页框是一个东西,英文pageframe。页帧号表示物理内存的第几页,页框表示实实在在的物理内存页。内碎片,外碎
Tommy_wxie
·
2013-05-10 16:00
Linux内存管理
在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭
Linux内存管理
。
1232victor
·
2013-05-10 13:00
内存映射
Linux的内存映射在讲解内存映射之前,不得不去探讨
Linux内存管理
方面的知识。
linkpark_123
·
2013-05-09 23:30
Linux
内存
存储
内存映射
Linux内存管理
80386中的寄存器• 4个32位通用寄存器:EAX、EBX、ECX、EDX• 4个32位地址寄存器:ESP、EBP、EDI、ESI• 32位指令指针寄存器:EIP• 32位标志寄存器:EFLAGS• 6个16位段寄存器:CS(代码段)、DS(数据段)、ES(附加段)、SS(堆栈段)、FS、GS• 4个32位控制寄存器:CR0、CR1、
zxncvb
·
2013-04-22 15:00
linux内存管理
(下)
物理内存管理(页管理)Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数4k(在i386体系结构中)大小页,从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址,因为分配时不必要求必须有大块的连续内存[1],系统可以东一页、西一页的凑出所需要的内存供进程使用。虽然如此,但是实际上系统使用内存还是倾向于分配连续的内存块,因为分配连续内存时,页表不需要更改,
bingqingsuimeng
·
2013-04-19 10:00
linux内存管理
(上)
在本章最后我们给出一个内存映射地实例,帮助网友们理解内核内存管理与用户内存管理之间地关系,希望大家最终能驾驭
Linux内存管理
。
bingqingsuimeng
·
2013-04-19 10:00
linux内存管理
初始化
内存管理子系统是linux内核最核心最重要的一部分,内核的其他部分都需要在内存管理子系统的基础上运行。而对其初始化是了解整个内存管理子系统的基础。对相关数据结构的初始化是从全局启动例程start_kernel开始的。本文详细描述了从bootloader跳转到linux内核内存管理子系统初始化期间所做的操作,从而来加深对内存管理子系统知识的理解和掌握。内核的入口是stext,这是在arch/arm/
yuesichiu
·
2013-04-10 10:00
linux内存管理
浅析 - 图不错
http://hi.baidu.com/_kouu/item/4c73532902a05299b73263d0
defeattroy
·
2013-04-10 09:00
Linux内存管理
Slab分配器
一:概述采用伙伴算法分配内存时,每次至少分配一个页面。但当请求分配的内存大小为几十个字节或几百个字节时应该如何处理?如何在一个页面中分配小的内存区,小内存区的分配所产生的内碎片又如何解决?Linux采用Slab。Linux所使用的slab分配器的基础是JeffBonwick为SunOS操作系统首次引入的一种算法。Jeff的分配器是围绕对象缓存进行的。在内核中,会为有限的对象集(例如文件描述符和其他
hjxhjh
·
2013-04-09 09:00
linux内存管理
之活动内存区
Linux内存活动区域其实就是全局变量e820中的内存块做了相关的检查和对其处理后的区域。在管理区初始化等地方有用到。数据结构[cpp]viewplaincopyprint?struct node_active_region { unsigned long start_pfn; unsigned long end_pfn; int nid; }; 初始化活动内存的
ctthunagchneg
·
2013-04-03 09:00
linux内存管理
概述
linux内存管理
建立在基本的分页机制基础上,在linux内核中RAM的某些部分将会永久的分配给内核,并用来存放内核代码以及静态内核数据结构。
ctthunagchneg
·
2013-04-03 09:00
linux内存管理
1.内核初始化: *内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系; *内核建立一个page数组,page数组和物理页面系列完全是线性对应,page用来管理该物理页面状态,每个物理页面的虚地址保存在page->virtual中; *内核建立好一个free_list,将没有使
dandelionj
·
2013-03-19 10:00
Linux内存管理
一、如何释放buffer/cache当buffer/cache被占用很高时(即free内存太小时),会导致性能低下,可以手工释放:1)free-m;//查看内存使用状况2)sync; //将dirty内容回写硬盘3)echo3/proc/sys/vm/drop_caches;/proc/sys/vm/drop_caches(sinceLinux2.6.16)Writing to this file
zhxue123
·
2013-03-17 20:00
Linux内存管理
--物理内存分配
1.FirstFit分配器 FirstFit分配器是最基本的内存分配器,它使用bitmap而不是空闲块列表来表示内存。在bitmap中,如果page对应位为1,则表示此page已经被分配,为0则表示此page没有被分配。为了分配小于一个page的内存块,FirstFit分配器记录了最后被分配的PFN(PageFrameNumber)和分配的结束地址在页内的偏移量。随后小的内存分配被Merge到
MyArrow
·
2013-03-17 09:00
linux内存管理
之全局框架
讲解复杂繁琐的机制原理,最通俗的方法就是用模型架构的方式向读者呈现,先要在整体上了解大方向大架构,再根据大方向大架构来进行分支深入,犹如毛主席那句话“战略上蔑视敌人,战术上重视敌人”。下面我也以这种方式把各个大模型方式向大家画出,并作出简略解述。一. 地址划分。1.CPU地址。CPU地址是指CPU的地址总线能寻址的范围,32bit-CPU寻址范围为4G,这个地址是虚拟的,实际上外部物理内存是不会使
Tommy_wxie
·
2013-03-14 14:00
linux内存管理
之uboot第一步
在进入讲解
linux内存管理
的kernel阶段以前,了解一下uboot阶段是如何准备好内存物理设备的,这是非常有意义的。
Tommy_wxie
·
2013-03-14 13:00
Linux编程C++内存管理之内存分配详解
更多
linux内存管理
方面的知识,请看专题:揭秘
linux内存管理
http://www.ccidnet.com/images/tech/linux/zhuanti/neicun/index.htm程序员们经常编写内存管理程序
Sun_Rise2011
·
2013-03-14 12:00
linux内存管理
学习笔记
1
linux内存管理
地址类型 物理地址 出现在cpu地址总线上的寻址物理内存的地址信号,是地址变换的最终结果 线性地址(虚拟地址) 在32位cpu架构下,可以表示4g的地址空间,用16进制表示就是
retacn_yue
·
2013-03-12 20:00
linux内存管理
学习笔记
1
linux内存管理
地址类型 物理地址 出现在cpu地址总线上的寻址物理内存的地址信号,是地址变换的最终结果 线性地址(虚拟地址)在32位cpu架构下,可以表示4g的地址空间,用16进制表示就是
岳振华
·
2013-03-12 20:00
linux
Linux内存管理
和分析vmalloc使用的地址范围
From:http://www.cnblogs.com/dubingsky/archive/2010/04/20/1716158.htmlVmalloc可以获得的地址在VMALLOC_START到VMALLOC_END的范围中。这两个符号在中定义:/*include/asm/pgtable.h*/#defineVMALLOC_OFFSET (8*1024*1024)#de
JoeBlackzqq
·
2013-03-12 18:00
Linux 内核解读之内存管理----memory.c
Memory.s是
linux内存管理
的核心,80x86内存管理最大寻址范围是4G的内存空间,在最大1024*1024*4KB的范围内寻址
冲天-jack
·
2013-03-09 23:06
Linux内核之究竟
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他