当前位置:首页 > CN2资讯 > 正文内容

[Linux] Linux进程PID散列表linux 根据pid查看进程

2天前CN2资讯


linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程id来获取进程描述符,最简单的方法可以通过遍历task_struct链表并对比id的值来获取,但这样效率太低,尤其当系统中运行很多个进程的时候。

 linux内核通过PID散列表来解决这一问题,能快速的通过进程ID获取到进程描述符。

 PID散列表包含4个表,因为进程描述符包含了表示不同类型PID的字段,每种类型的PID需要自己的散列表。



enum pid_type

{

PIDTYPE_PID, // 进程的PID

PIDTYPE_TGID, // 线程组领头进程的PID

PIDTYPE_PGID, // 进程组领头进程的PID

   PIDTYPE_SID, // 会话领头进程的PID

PIDTYPE_MAX // 类型个数

};


查看/proc/pid/status可以看到一些进程的当前状态:



shell@android:/proc/19280/task $ cat 19282/status
Name: GC
State: S (sleeping)
Tgid: 19280
Pid: 19282
PPid: 17974
TracerPid: 0
Uid: 10043 10043 10043 10043
Gid: 10043 10043 10043 10043
FDSize: 256
Groups: 1006 1007 1015 1028 3001 3002 3003
VmPeak: 483560 kB
VmSize: 481500 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 44940 kB
VmRSS: 29684 kB
VmData: 24848 kB
VmStk: 136 kB
VmExe: 8 kB
VmLib: 29096 kB
VmPTE: 160 kB
VmSwap: 0 kB
Threads: 19
SigQ: 0/5987
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001204
SigIgn: 0000000000000000
SigCgt: 00000002000094e8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 3
Cpus_allowed_list: 0-1
voluntary_ctxt_switches: 5
nonvoluntary_ctxt_switches: 33

 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25885.html

    分享给朋友:

    “[Linux] Linux进程PID散列表linux 根据pid查看进程” 的相关文章

    如何选择合适的Windows VPS服务: 实用指南与推荐

    在寻找合适的Windows VPS服务时,了解主要服务商的特点无疑是一个重要的步骤。市面上众多提供Windows VPS服务的商家中,vpsdime.com、raksmart.com、ion.krypt.asia以及bacloud.com等都是值得考虑的选择。这些服务商在多个地区运营,提供了不同版本...

    Windows SSH Client安装与配置指南

    在Windows 10版本1809及以后的版本中,微软引入了OpenSSH客户端,这让很多用户的远程管理变得更为便捷。作为一个IT爱好者,我发现这个特性非常有用,它让我能够轻松地通过SSH协议安全地连接和管理远程服务器。接下来,我将分享一些Windows SSH客户端的安装和配置过程,方便大家快速上...

    Ubuntu 多人远程办公的安装与配置指南

    安装和配置远程桌面软件 在远程办公和团队协作日益成为常态的今天,合理配置远程桌面软件显得尤为重要。在Ubuntu的环境下,安装和配置xrdp和vncviewer等工具,可以让多个用户方便地进行远程访问,提高工作效率。下面,我将一步步带你进行相关的软件安装和配置。 1. 安装xrdp 首先,我们要安装...

    如何购买域名:选择与交易的完整指南

    购买域名是启动网站或在线服务不可或缺的一步。对于很多人来说,域名不仅是网站的门面,更是品牌的形象。想象一下,拥有一个简洁、易记的域名能够让用户更轻松地找到你的服务或产品,并在他们心中留下深刻的印象。 域名的功能多种多样,它不仅能帮助你构建互联网身份,还能影响网站在搜索引擎中的排名。因此,选择一个合...

    深入了解LOC VPS:选择、评测与未来发展趋势

    LOC VPS,顾名思义,是一种基于位置的虚拟专用服务器。简单来说,LOC VPS是一种通过虚拟化技术在数据中心创建和管理的服务器环境。它为用户提供了一种灵活、可扩展的计算资源,可以满足不同需求的业务。相较于物理服务器,LOC VPS在资源利用率、成本和管理上都更加高效。 LOC VPS有几个显著的...

    DigitalOcean vs Linode vs Vultr:选择最适合你的云服务提供商

    当今云计算的兴起为开发者和企业提供了许多选择,其中DigitalOcean、Linode和Vultr是最受欢迎的云服务提供商之一。它们各自有着独特的特点和优势,非常适合不同的使用场景。接下来,我将分别介绍这三大服务提供商的基本信息,帮助大家更好地做出选择。 1.1 DigitalOcean简介 我对...