这里我们主要介绍进程的状态,进程的状态可以通过/proc/PID/status来查看,也可以通过/proc/PID/stat来查看。
如果说到工具大家用的最多的ps也可以看到进程的信息。这里我们通过/proc/PID/status来分析进程的信息。
写道
Name: DataCell 进程名称
State: S (sleeping) 进程状态『R (running)", "S (sleeping)", "D (disk sleep)", "T (stopped)", "T(tracing stop)", "Z (zombie)", or "X (dead)"』
Tgid: 21654 Tgid是线程组的ID,一个线程一定属于一个线程组(进程组).
Pid: 21654 这个是进程的ID,更准确的说应该是线程的ID.
PPid: 1 当前进程的父进程
TracerPid: 0 跟踪当前进程的进程ID,如果是0,表示没有跟踪.
Uid: 500 500 500 500
Gid: 0 0 0 0
Utrace: 0
FDSize: 128 FDSize是当前分配的文件描述符,这个值不是当前进程使用文件描述符的上限
Groups: 0 这里的groups表示启动这个进程的用户所在的组
VmPeak: 6463428 kB 这里的VmPeak代表当前进程运行过程中占用内存的峰值
VmSize: 6463428 kB VmSize代表进程现在正在占用的内存(任务虚拟地址空间的大小)
State: S (sleeping) 进程状态『R (running)", "S (sleeping)", "D (disk sleep)", "T (stopped)", "T(tracing stop)", "Z (zombie)", or "X (dead)"』
Tgid: 21654 Tgid是线程组的ID,一个线程一定属于一个线程组(进程组).
Pid: 21654 这个是进程的ID,更准确的说应该是线程的ID.
PPid: 1 当前进程的父进程
TracerPid: 0 跟踪当前进程的进程ID,如果是0,表示没有跟踪.
Uid: 500 500 500 500
Gid: 0 0 0 0
Utrace: 0
FDSize: 128 FDSize是当前分配的文件描述符,这个值不是当前进程使用文件描述符的上限
Groups: 0 这里的groups表示启动这个进程的用户所在的组
VmPeak: 6463428 kB 这里的VmPeak代表当前进程运行过程中占用内存的峰值
VmSize: 6463428 kB VmSize代表进程现在正在占用的内存(任务虚拟地址空间的大小)
VmLck: 0 kB VmLck代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘.
VmHWM: 387032 kB 是程序得到分配到物理内存的峰值
VmRSS: 385816 kB 是程序现在使用的物理内存
VmData: 6410876 kB 表示进程数据段的大小(程序数据段的大小(所占虚拟内存的大小)存放初始化了的数据).
VmHWM: 387032 kB 是程序得到分配到物理内存的峰值
VmRSS: 385816 kB 是程序现在使用的物理内存
VmData: 6410876 kB 表示进程数据段的大小(程序数据段的大小(所占虚拟内存的大小)存放初始化了的数据).
VmStk: 88 kB 表示进程堆栈段的大小.(任务在用户态的栈的大小)
VmExe: 4940 kB 表示进程代码的大小.
VmLib: 10232 kB 表示进程所使用LIB库的大小.
VmPTE: 572 kB
VmSwap: 0 kB 进程占用Swap的大小
Threads: 46 表示当前进程组有46个线程.
SigQ: 0/192017
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: fffffffe3ffbea07
SigIgn: 0000000000391000
SigCgt: 0000000180004003
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffffff
Cpus_allowed_list: 0-23
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 1584
nonvoluntary_ctxt_switches: 7
VmLib: 10232 kB 表示进程所使用LIB库的大小.
VmPTE: 572 kB
VmSwap: 0 kB 进程占用Swap的大小
Threads: 46 表示当前进程组有46个线程.
SigQ: 0/192017
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: fffffffe3ffbea07
SigIgn: 0000000000391000
SigCgt: 0000000180004003
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffffff
Cpus_allowed_list: 0-23
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 1584
nonvoluntary_ctxt_switches: 7
http://www.cnblogs.com/eustoma/archive/2012/04/27/2473175.html
当前进程正在使用的内存=进程数据段虚拟内存+进程使用lib库占用内存+进程执行占用内存+进程堆栈+.......
VmSize=VmData + VmLib +VmExe + VmStk+........
6463428=6410876+10232+4940+88+..........
相关推荐
《嵌入式Linux内存与性能详解》一书由史子旺撰写,专注于深入解析Linux内存管理机制以及如何在嵌入式环境中优化系统性能。Linux内存管理是操作系统的核心部分,理解和掌握这一领域对于开发者来说至关重要,尤其是在...
首先,Linux内存管理采用虚拟内存技术,将每个进程的地址空间划分为多个区域,如堆、栈、代码段、数据段等。每个进程看到的是独立的虚拟地址空间,而实际的物理内存则被操作系统动态地映射和管理。这种方式使得进程...
在Linux中,交换空间(Swap Space)是指硬盘上的一个区域,它用于存储内存中的数据,以便释放出内存空间供其他进程使用。当系统需要更多的内存时,系统会将暂时不用的内存块的内容写到交换空间中,以便释放出内存...
在Linux系统中,内存池是一种优化内存管理的技术,尤其对于频繁分配和释放小块内存的情况,内存池可以显著提升性能并减少系统开销。本文将深入探讨Linux下的内存池实现,包括其原理、优势以及如何在C或C++中进行实践...
以下是Linux内存管理的一些关键知识点: 1. **内存管理工具**: - CodeViz:这是一个用于生成代码调用关系图的工具,可以帮助开发者理解代码间的调用结构,虽然在描述中没有详细展开,但它是分析Linux内核源码的...
Linux 内存管理五个数据段 Linux 操作系统中,进程是占用一定数量的内存的,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。对任何一个普通进程来讲,它都会涉及到五种不同的数据段,这五种...
Linux内存管理是操作系统的核心部分,它负责有效地分配和回收系统中的物理和虚拟内存。在Linux中,内存被划分为多个区域(Zone)和节点(Node),以优化内存的使用和性能。以下是对这些概念的详细解释: 1. **节点...
Linux内存映射机制是一种操作系统内核管理内存的方式,它涉及到虚拟地址到物理内存地址的转换过程。在X86架构的Linux系统上,内存映射机制确保每个进程能够通过虚拟内存寻址到高达4GB的地址空间,而物理内存的实际...
本资源《嵌入式Linux内存与性能详解》详细阐述了这些关键领域,为理解嵌入式系统的内在机制提供了深入见解。 1. **嵌入式系统概述**:嵌入式系统通常具有特定功能,它们在硬件限制下运行,如处理能力、内存大小和...
Linux内存管理是操作系统管理计算机内存资源的重要组成部分,它涉及到内存的分配、回收以及效率优化等多方面的技术。Linux内存管理采用的是一种三级架构模型,包括内存节点(node)、内存区域(zone)和物理页框(page)。...
本文将深入探讨Linux内存运行原理,重点关注SLAB内存管理机制以及如何进行内存泄漏分析。 1. **Linux内存架构** - 物理内存:计算机硬件提供的RAM,用于存储程序和数据。 - 逻辑地址与物理地址:进程看到的是逻辑...
"Linux内存性能测试工具stream"是一个专门用于评估计算机内存(RAM)性能的工具。本文将深入探讨STREAM的作用、工作原理以及如何在Linux环境中使用它。 STREAM,全称是“Simple Triad Memory Benchmark”,是由John...
"Linux 内存泄露检测工具" Linux 内存泄露检测是指在 Linux 环境下检测程序内存泄露的过程。内存泄露是指程序在申请内存后没有释放,导致内存的浪费和系统性能下降。检测内存泄露可以使用 Valgrind 工具,它可以...
Linux内存管理笔记详细介绍了Linux操作系统内核中内存管理机制的关键知识点,下面将依次对这些知识点进行详细说明: 存储器的层次结构:计算机系统采用分层的存储子系统以在存储容量、访问速度、成本效益之间取得...
本文将深入探讨嵌入式Linux内存使用与性能优化的相关知识点,帮助开发者更好地理解和改进其程序性能。 首先,理解Linux内存模型是优化的基础。Linux内核采用虚拟内存管理,包括物理内存(RAM)和交换空间(Swap)。...
Linux操作系统的内存管理机制旨在解决进程需要使用的代码和数据都放在内存中,比放在外存中要快很多的问题。为了解决这个问题,Linux操作系统提出了虚拟内存的概念,使得每个进程用于3GB的独立用户内存空间和共享的...
### Linux内存分页机制原理详解 #### 一、引言 在现代操作系统中,内存管理是确保系统稳定性和性能的关键技术之一。Linux作为一款广泛使用的开源操作系统,其内存管理机制非常成熟且高效。本文旨在深入解析Linux...
易语言Linux内存操作源码是针对Linux操作系统设计的编程代码,主要目的是为了在Linux环境下进行内存管理与操作。易语言是一种中国本土开发的、面向普通用户的编程语言,它以其简单的语法和直观的编程界面,降低了...