Linux内存管理
文章平均质量分 79
WangMark
这个作者很懒,什么都没留下…
展开
-
Linux /proc/$pid/smaps的含义
(1) 问题/proc/pid/smaps反应了运行时的进程的内存影响,系统的运行时库(so),堆,栈信息均可在其中看到。下面是libstdc++.so这个文件在一个进程中的映射信息,其中的Size表示线性地址空间大小,Rss表示时间占用的物理内存大小.Rss=Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty其中的Sha转载 2014-07-28 10:48:28 · 11142 阅读 · 1 评论 -
mmap--最简单的测试程序(用户空间与内核空间数据交换&&用户态和内核态的数据交换用例)
//内核模块测试程序#include Linux/config.h>#include linux/module.h>#include #include static unsigned long p = 0; static int __init shao_init(void){ //分配共享内存(一个页面) p = __g转载 2017-06-13 20:03:33 · 1005 阅读 · 0 评论 -
Linux内核和用户空间通信的方式(一)— proc文件和mmap共享内存
动态的将内核空间的物理地址和大小传给用户空间。本文也演示了内核空间和用户空间进行通信可以使用的两种常用方法:proc文件系统和mmap共享内存。整个内核模块,在模块插入时建立proc文件,分配内存。卸载模块的时候将用户空间写入的内容打印出来。以下是内核模块的代码和用户空间的测试代码。/*This program is used to转载 2017-06-13 19:59:54 · 935 阅读 · 0 评论 -
Linux内核中内存相关的操作函数
Linux内核中常见内存分配函数1. 原理说明Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示。四级页表分别为: 页全局目录(Page Global Directory) 页上级目录(Page Upper Directory) 页中间目转载 2017-06-13 17:04:51 · 1452 阅读 · 0 评论 -
Mmap的实现原理和应用
很多文章分析了mmap的实现原理。从代码的逻辑来分析,总是觉没有把mmap后读写映射区域和普通的read/write联系起来。不得不产生疑问:1,普通的read/write和mmap后的映射区域的读写到底有什么区别。2, 为什么有时候会选择mmap而放弃普通的read/write。3,如果文章中的内容有不对是或者是不妥的地方,欢迎大家指正。 围绕着这两个问题分析一下,其实在考虑转载 2014-08-06 13:01:36 · 591 阅读 · 0 评论 -
Linux Free命令与cache和buffer的主要区别
ree 命令相对于top 提供了更简洁的查看系统内存使用情况,用来显示内存的使用情况,使用权限是所有用户语法free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count][-V]常用参数详解-b,-k,-m,-g:分别以字节( bytes、KB、MB、GB)为单位显示内存使用情况-s delay:显示每隔多少秒数来显示转载 2014-07-28 12:16:06 · 585 阅读 · 0 评论 -
linux 进程占用内存详解
想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果更加深入一点,你可能会问进程所占用的那些物理内存都用在了哪些地方?这时候top命令可能不能给到你转载 2014-07-28 10:46:16 · 6935 阅读 · 0 评论 -
glibc内存管理器
那么我们每次调用malloc来分配一块内存,都进行相应的系统调用呢?答案是否定的,这里我要引入一个新的概念,glibc的内存管理器。我们知道malloc和free等函数都是包含在glibc库里面的库函数,我们试想一下,每做一次内存操作,都要调用系统调用的话,那么程序将多么的低效。实际上glibc采用了一种批发和零售的方式来管理内存。glibc每次通过系统调用的方式申请一大块转载 2014-07-28 12:22:53 · 1057 阅读 · 0 评论 -
查看LINUX进程内存情况的命令
一,ps命令1. ps简介前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令能确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是能通过执行该命原创 2014-07-28 10:52:07 · 3020 阅读 · 1 评论 -
Linux内核参数min_free_kbytes与lowmem_reserve_ratio
1. min_free_kbytes先看官方解释:This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a watermark[WMARK_MIN] value for each lowmem zone in th转载 2017-07-14 20:15:15 · 14411 阅读 · 2 评论