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内存
安卓进阶系列-系统基础
我喜欢我喜欢花我喜欢绿色树叶上面的被雨打过留下的露珠我喜欢暖风我喜欢干净我喜欢咸咸的海风喜欢喜欢的感觉愿我此感觉常驻同样祝福你文章目录计算机结构冯·诺依曼结构哈弗结构冯·诺依曼结构与哈弗结构对比安卓采用的架构安卓操作系统进程间通讯(IPC)内存共享
linux
陈德山
·
2023-04-20 05:27
Android进阶
android
java
操作系统
REDIS集群安装运维调优及常见问题处理
一、集群调优1.1
Linux内存
内核参数优化:Vm.overcommit_memory参数说明:文件指定了内核针对内存分配的策略,其值可以是0、1、2。
IT巅峰技术
·
2023-04-19 20:14
Cgroup - 内存子系统 Memory Resource Controller
自序本文译自kernel文档《MemoryResourceController》虽然是官方文档,但是有用的信息真的不多,推荐阅读此博客,我深入研究后,将写有关
linux内存
管理的系列文章,争取将号称linux
蟹蟹宁
·
2023-04-19 02:32
linux内存
管理 (二) 1 硬件总览 ARMv6 存储系统 Memory and System Architectures
存储相关硬件及机制存储相关硬件及机制需要关注的硬件CACHE/BUFFER/TCM根据[
linux内存
管理(一)
Linux内存
管理发展历史及进程地址空间抽象](https://blog.csdn.net
__pop_
·
2023-04-18 16:29
Linux内存管理
linux内存
管理 (三) 8 内核启动从start到start_kernel过程中的相关符号的注解
u-boot相关的地址请参考
linux内存
管理(三)6u-boot引导内核相关地址zImage启动过程中的符号//linux-3.0.1/arch/arm/boot/compressed/head.S131
__pop_
·
2023-04-18 16:29
Linux内存管理
linux
运维
服务器
linux内存
管理 (二) 2.3 硬件 MMU及其运行过程 关键过程二 translation table walk
前言===========================================虚拟地址和物理地址的转换关键过程2TableWalkUnit从主存中的转换表(页表)中获取pa1.转换表地址(CP15的c2寄存器中,存放的是页表基址的物理地址)//Translationtablebase(TTB)register2.转换表条目转换表通过将虚拟地址空间划分为相等大小的块,将物理地址空间划分为
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.5 硬件 MMU及其运行过程 关键过程四 DDR
===========================================虚拟地址和物理地址的转换关键过程4根据物理地址pa从主存中其他部分中获取value操作总线,根据ddr时序读取主存,时序在总线(时钟/控制/数据/地址)上展现.具体参考[嵌入式linux开发(九)RAM(3)s3c2440外扩sdram](https://blog.csdn.net/u011011827/arti
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.6 硬件 MMU的操作手册
引言为什么linux会发展成这个样子,这当然是程序员对程序的要求决定的,为了满足这些要求,提出了进程地址空间抽象(1),其中硬件上增加了新的模块MMU(2),软件上根据MMU的使用手册(3)更新了系统另外在进程地址空间抽象的基础上,软件上更新了很多新的内存特性(4).这里主要讲MMU的使用手册(3)回顾MMU是做什么的?翻译翻译过程中用到了哪些硬件cpummummu中的TLBsmmu中的Table
__pop_
·
2023-04-18 16:59
Linux内存管理
linux
运维
服务器
linux内存
管理 (二) 3.1 硬件 CP15系统控制协处理器
引言为什么linux会发展成这个样子,这当然是程序员对程序的要求决定的,为了满足这些要求,提出了进程地址空间抽象(1),其中硬件上增加了新的模块MMU(2),软件上根据MMU的使用手册(3)更新了系统另外在进程地址空间抽象的基础上,软件上更新了很多新的内存特性(4).这当中并没有提到硬件做的其他工作.例如为了管理MMU,ARM核心上还增加了CP15我们可以通到代码来通过控制CP15,从而来控制MM
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.1 硬件 MMU及其运行过程 总览
引言为什么linux会发展成这个样子,这当然是程序员对程序的要求决定的,为了满足这些要求,提出了进程地址空间抽象(1),其中硬件上增加了新的模块MMU(2),软件上根据MMU的使用手册(3)更新了系统另外在进程地址空间抽象的基础上,软件上更新了很多新的内存特性(4).这里主要讲新的模块MMU(2),且我们这里只看arm的mmuARM-MMU文档科普文档MMU是soc芯片里面的一个硬件单元去arm官
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.4 硬件 MMU及其运行过程 关键过程三 cache
===========================================虚拟地址和物理地址的转换关键过程3根据物理地址pa从cache中获取value缓存中的基本存储单元是缓存线。缓存线包含缓存数据或指令时称为有效,不包含缓存数据或指令时称为无效。重置时,缓存中的所有缓存线都将失效。当数据或指令从内存加载到缓存线时,缓存线将变为有效。当缓存线有效时,它包含连续主存位置块的最新值。缓存
__pop_
·
2023-04-18 16:29
Linux内存管理
linux内存
管理 (一)
Linux内存
管理发展历史及进程地址空间抽象
引言嵌入式linux开发(三十五)内存管理3.0(1)
linux内存
管理之用户空间相当于
Linux内存
管理的引言上面这篇文章介绍了linuxOS提供给应用程序的(虚拟)地址空间应用程序的地址空间分6段(
__pop_
·
2023-04-18 16:28
Linux内存管理
linux内存
管理 (二) 2.2 硬件 MMU及其运行过程 关键过程一 TLB
===========================================虚拟地址和物理地址的转换关键过程1从TLBs获取pa当处理器要访问一个虚拟地址时,首先会在TLB中查询。如果TLB表项中没有相应的表项,称为TLBMiss,那么就需要1.访问页表(translationtablewalk)来计算出相应的物理地址。2.并在TLB中放置映射如果TLB表项中有相应的表项,那么直接从TL
__pop_
·
2023-04-18 16:28
Linux内存管理
Linux内存
泄漏
内存泄漏:内存泄漏一般指的是堆内存的泄漏。堆内存是指程序从堆中分配的、大小任意的(内存块的大小可以在程序运行期决定)、使用完后必须显示的释放的内存。应用程序一般使用malloc、realloc、new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块。否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。如何知道是否内存泄漏?有些简单的内存泄漏问题可以
TX564
·
2023-04-18 15:54
数据结构
c语言
linux
Linux内存
映射基础概念
什么是内存映射内存映射(MemoryMapping)是Linux操作系统中一种重要的内存管理技术。它允许程序将一个文件或者其他对象映射到进程的虚拟地址空间中,从而使得程序可以像访问内存一样直接访问文件。这种技术的优势在于提高了文件访问的效率,减少了内核和用户空间之间的数据拷贝。在Linux中,内存映射主要涉及以下几个方面:虚拟内存:Linux操作系统使用虚拟内存(VirtualMemory)管理物
阿宋同学
·
2023-04-17 20:57
Linux
Linux
内存映射
进程间通信
如何检查 Linux 内存使用量是否耗尽?这5个命令堪称绝了!
因此,了解如何检查
Linux内存
使用量是否耗尽是非常重要的。下面是一些常用的方法,可以帮助您检查
Linux内存
使用量是否耗尽。1.使用free命令free命令是一个用于查看系统内存使用情况的工具。
wljslmz
·
2023-04-17 10:53
Linux技术
Linux
Linux内存
控制器(一)
1.memory_cgrp_subsys//cftype:用于定义和描述控制组的控制文件//cftype->private:描述资源类型和资源属性//dfl_cftypes和legacy_cftypes都是cftype的成员structcgroup_subsysmemory_cgrp_subsys={.css_alloc=mem_cgroup_css_alloc,.css_online=mem_c
bubbleben
·
2023-04-17 04:00
Linux内存管理
linux
linux内存
管理
一、内存管理简述在Linux内核中,RAM会将其中一部分永远分配给内核,用来存放Linux内核源码以及一些静态的数据结构。而剩余部分则被称之为动态内存,是进程和内核本身所需的宝贵资源。事实上,整个系统的性能就取决于如何能高效地管理动态内存。因此,现在所有多任务操作系统都在优化对动态内存的使用,通俗讲就是,尽可能的做到当需要时分配,不需要时释放。二、物理内存和虚拟内存操作系统中存在虚拟内存和物理内存
wwwlyj123321
·
2023-04-16 05:31
linux内存管理
linux
运维
服务器
Linux内存
管理基础
系统启动之
Linux内存
管理基础Keywords非一致内存访问(NUMA)模型、节点(node)、内存管理区(Zone)、一致内存访问(UMA)模型、内核页表、内存管理区分配器(伙伴系统BuddySystem
unclerunning
·
2023-04-16 05:01
操作系统
内存管理
linux
启动
idle
init
Linux内存
管理 (3)内核内存的布局图
专题:
Linux内存
管理专题关键词:内核内存布局图、lowmem线性映射区、kernelimage、ZONE_NORMAL、ZONE_HIGHMEM、swapper_pg_dir、fixmap、vector
weixin_33775582
·
2023-04-16 05:01
内存管理
嵌入式
linux arm的高端内存映射详解,
Linux内存
管理之高端内存映射(转贴)
转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:引子我们在前面分析过,在
linux内存
管理中,
weixin_39807352
·
2023-04-16 05:01
linux
arm的高端内存映射详解
Linux内存
分配相关函数详解
Linux内存
分配相关函数详解kmalloc()、kzalloc()、vmalloc().动态申请内存MMU操作系统中的内存管理虚拟内存机制页式内存管理内核虚拟内存布局kmalloc()与kfree()
大大棋
·
2023-04-16 05:30
Linux杂项
linux
内核
Linux内存
管理(七):fixmap详解
源码基于:Linux5.4约定:芯片架构:ARM64CONFIG_ARM64_VA_BITS:39CONFIG_ARM64_PAGE_SHIFT:120.前言内核启动首先会进入汇编阶段,mmu已经启动(也就是说,当前SOC只能使用虚拟地址访问RAM),paging_init还没有完成调用,在内核启动过程需要访问某些特定的内核模块(例如dtb)时,就需要将虚拟地址和物理地址进行映射。这就是fixma
私房菜
·
2023-04-16 05:27
Linux
内存管理
linux
fixmap
early_fixmap_
__pgd_populate
深度剖析 Linux 伙伴系统的设计与实现
在上篇文章《深入理解Linux物理内存分配全链路实现》中,笔者为大家详细介绍了
Linux内存
分配在内核中的整个链路实现:但是当内核执行到get_page_from_freelist函数,准备进入伙伴系统执行具体内存分配动作的相关逻辑
bin的技术小屋
·
2023-04-15 13:43
聊聊
Linux
内核
linux
云计算
细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现
1.前文回顾在之前的几篇内存管理系列文章中,笔者带大家从宏观角度完整地梳理了一遍
Linux内存
分配的整个链路,本文的主题依然是内存分配,这一次我们会从微观的角度来探秘一下Linux内核中用于零散小内存块分配的内存池
bin的技术小屋
·
2023-04-15 13:43
聊聊
Linux
内核
linux
linux内存
模型
转自:
Linux内存
管理(五)内存模型-知乎本文基于以下软硬件假定:架构:AARCH64内核版本:5.14.0-rc51平坦内存模型linux内核采用页式内存管理,这种方式将整个物理地址空间划分成一系列以页帧为单位
wmzjzwlzs
·
2023-04-14 21:40
linux
driver
linux
Linux 内存地址分布
文章目录一、背景1.1深入浅出了解(.text、.data、.bss、堆空间、栈空间)的含义二、转载:
linux内存
空间(三)内存地址范围和例子三、其他资料一、背景对程序内存理解只停留在栈内存、堆内存阶段
mayue_csdn
·
2023-04-14 10:15
linux编程
linux
服务器
运维
理解内存中的Buffer和Cache
上一节,我们梳理了
Linux内存
管理的基本原理,并学会了用free和top等工具,来查看系统和进程的内存使用情况。
tracy_668
·
2023-04-12 14:02
linux内存
泄露检查工具
文章目录内存泄漏检查工具Valgrindmtrace内存泄漏检查工具测试代码(包含mtrace部分):$cattest.c#include#include#includeintmain(){mtrace();int*n=(int*)malloc(sizeof(int)*4);muntrace();return0;}编译:#必须添加-g参数,不然无法确认是在哪个文件的第几行出现问题$gcc-g-ot
edycm
·
2023-04-10 03:55
linux
linux
运维
服务器
char和wchar_t的关系以及wprintf的应用
算法Linux
linux内存
里的wchar_t和char字符串存储是转换成对应的编码按16进制字节存储可以通过查看内存中存储的字节了解字符串对应的编码#include#include#include#include
_Ataraxia
·
2023-04-09 11:31
Linux
Linux0.11内核的进程管理机制
前言:上一篇讲到
Linux内存
管理机制,内存管理机制的存在使得cpu和进程可以使用比物理内存大的多的内存空间,这是现代计算机高吞吐量和高可靠性的保障。
guhong1995
·
2023-04-07 15:55
linux
运维
服务器
Linux内存
分配器(页面/slab/per-CPU)API
一、pglist_data(物理内存节点)、zone_type(物理内存区域)和page(物理内存页)1)pglist_data二种物理内存模型如下所示,其中UMA模型中所有内存空间对系统中的处理器而言具有相同的访问特性,也即系统中所有处理器对这些内存的访问具有相同的速度;而在NUMA中处理器与处理器之间通过总线连接起来以支持对其他处理器本地内存的访问,处理器访问本地内存的速度要快于其他处理器本地
shuaifeng.zhang
·
2023-04-07 03:56
Linux
Kernel
linux
内存保护linux指令,
Linux内存
管理之MMU的过程
之前写过一篇《CPU是如何访问内存的?》的文章,简单介绍了cpu访问内存的过程。有了之前的感性认识,这篇站在arm的角度再深度讲解一下,看完你会发现不理解arm原理就直接撸内核代码简直是耍流氓。ARMv8中的访问内存流程我喜欢用图的方式来说明问题,简单直接:蓝色部分是cpu,灰色部分是内存,白色部分就是cpu访问内存的过程,也是地址转换的过程。在解释地址转换的本质前我们先理解下几个概念:TLB:M
麻一
·
2023-04-06 07:01
内存保护linux指令
Java开发社招面试经验:java常量定义表头
前言今天来带大家研究一下
Linux内存
管理。
Java德克士
·
2023-04-05 21:28
程序员
java
后端
面试
Linux内存
管理架构之三(虚拟内存区块划分)
目录1.虚拟内存空间布局2.内核映射区2.1线性映射区2.2低端内存2.2.1线性映射区大小确定2.3高端内存2.3.1什么是highmemory,为什么要有highmemory2.3.2一些结论:2.4pkmap区(在64位上慢慢被舍弃)2.5fixmap区(3M)编辑2.6modules区(很鸡肋,未来内核可能考虑去掉)3.用户进程3.1用户页表3.2fork函数3.3缺页异常3.3.1什么是
水乡夜航
·
2023-04-04 20:23
Linux内核结构学习
数据库
linux
c语言
学习
linux堆内存管理映射图,
Linux内存
管理之mmap详解:mmap进行内存映射的原理
#include/*ThisstructdefinesamemoryVMMmemoryarea.*/structvm_area_struct{structmm_struct*vm_mm;/*VMareaparameters*/unsignedlongvm_start;unsignedlongvm_end;/*linkedlistofVMareaspertask,sortedbyaddress*/s
陆小凤的妹妹
·
2023-04-04 20:51
linux堆内存管理映射图
linux内存
mmap内存映射(设备物理地址映射到进程虚拟地址)
详见链接https://www.cnblogs.com/wanghuaijun/p/7624564.html
qq_39028981
·
2023-04-04 20:08
内存映射
mmap
物理地址到虚拟内存地址映射
linux内存
映射机制(mmap)
void*mmap(void*start,size_tlength,intprot,intflags,intfd,off_toffsize)intmunmap(void*start,size_tlength)mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。返
AD钙奶-lalala
·
2023-04-04 20:38
Android
P7岗架构之路
linux
运维
服务器
linux内存
映射mmap原理分析
内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间用户空间两者之间需要大量数据传输等操作的话效率是非常高的。以下是一个把普遍文件映射到用户空间的内存区域的示意图。基本函数mmap函数是unix/linux下的系统调用,详细内容可参考《UnixNetwordpro
augfun
·
2023-04-04 19:20
简书转载
Linux内存
管理架构之四(mmap内存映射机制)
目录1.是什么2.映射类型2.1文件映射和匿名映射2.2私有映射和共享映射2.3brk的实现3.实例3.1实现文件映射3.2实现进程共享2.3实现内核驱动和进程共享4.mmap的调用流程5.反向映射·匿名映射的反向映射:文件映射的反向映射:6.相关问题7.参考1.是什么mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的
水乡夜航
·
2023-04-04 19:46
Linux内核结构学习
linux
开发语言
系统架构
Linux内存
管理之slab分配器分析(二 初始化 kmem_cache_init)
初始化的调用过程:start_kernel()->mm_init()->kmem_cache_init(),下面分析一下具体代码。/**Initialisation.Calledafterthepageallocatorhavebeeninitialisedand*beforesmp_init().*/void__initkmem_cache_init(void){size_tleft_over;
尚先生的博客
·
2023-04-03 21:15
Linux内存管理
kmem_cache_init初始化slab分配器 -
linux内存
管理(八)
看了下kmem_cache_init,涉及到不同MIGRATE间的buddysystem的迁移,kmem_cache的构建,slab分配器头的构建、buddysystem的伙伴拆分。对于SMP系统,每个kmem_cache还有各个CPU的arraycache_init,这样每个CPU可以从各自的arraycache_init中获取缓存,如果不足,则从slab分配器中获得;当让slab分配器的三条链
生活需要深度
·
2023-04-03 21:11
Linux内核-内存管理
内存
linux内核
Linux内存
管理之slab 1:slab原理(+buddy伙伴系统)
Linux内存
管理之slab1:slab原理(+buddy伙伴系统)1.为什么有了Buddy(伙伴系统)还需要slab?1.1什么是伙伴系统?
Hani_97
·
2023-04-03 11:56
操作系统
Linux
slab原理
slab
内存管理
伙伴算法
buddy
Linux操作系统——基础详解
Linux接口Linux组成部分ShellLinux应用程序Linux内核结构Linux进程和线程基本概念Linux进程间通信Linux中进程管理系统调用Linux进程和线程的实现Linux调度Linux启动
Linux
Bevis_OTL
·
2023-04-02 20:14
计算机基础
Linux操着系统
linux内存
管理之malloc、vmalloc、kmalloc的区别
http://blog.csdn.net/fangjian1204/article/details/39738293
linux内存
管理之malloc、vmalloc、kmalloc的区别分类:Linux
zdy0_2004
·
2023-04-01 18:45
c
Linux
内存管理
操作系统
linux内核
linux内存
管理——kmalloc和vmalloc
直接映射区:线性空间中从3G开始最大896M的区间,为直接内存映射区,该区域的线性地址和物理地址存在线性转换关系:线性地址=3G+物理地址。动态内存映射区:该区域由内核函数vmalloc来分配,特点是:线性空间连续,但是对应的物理空间不一定连续。vmalloc分配的线性地址所对应的物理页可能处于低端内存,也可能处于高端内存。永久内存映射区:该区域可访问高端内存。访问方法是使用alloc_page(
phymat.nico
·
2023-04-01 18:17
世上最强最全Linux 内存总结(用户空间:malloc、内核空间:vmalloc kmalloc slab buddy )
深入理解
Linux内存
分配为了写一个用户层程序,你也许会声明一个全局变量,这个全局变量可能是一个int类型也可能是一个数组,而声明之后你有可能会先初始化它,也有可能放在之后用到它的时候再初始化。
小卷怡情
·
2023-04-01 18:43
Linux内核
linux内存
管理子系统采用基于内存区域,Linux 内存管理子系统导读
Linux内存
管理子系统导读本文主要针对2.4的kernel。
一二三是五六十 ~~
·
2023-04-01 10:47
linux内存
扩容未增加,CentOS磁盘扩容后未显示新增后容量,解决办法
这算是一个奇怪的问题,因为磁盘的不够用,给磁盘增加了容量,但是实际在使用的过程中,程序还是因为磁盘的爆满而GG了。如果用脚本去检测,还会发现磁盘依旧是原来的大小,没有变化,搞得我还以为扩容是新加了硬盘,而不是在原有的挂载磁盘上扩容的,因为对linux还是没有自己想的那么熟悉,所以折腾了一番,最终得到解决。1.首先我检查了一下分区的使用情况df-h得到如下的信息,可以看到还是原来的40G,且即将使用
郭五月
·
2023-03-30 23:19
linux内存扩容未增加
linux 内存管理(2) - Node/Zone/Page
了解linuxNode/Zone/Page概念1.Linux描述物理内存 在
linux内存
管理(一)中介绍了UMA和NUMA,Linux通过巧妙办法把UMA和NUMA的差别隐藏了起来,所谓的UMA其实就是只有一个结点的
Hacker_Albert
·
2023-03-29 22:23
linux
内存管理
内存管理
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他