linux pid tid gid

pid:

getpid 获取进程ID

tid:

gettid:取得线程ID,如果是进程,等于 getpid

gid:

getgid : user group id

引用 stackoverflow

It is complicated: pid is process identifier; tid is thread identifier.

But as it happens, the kernel doesn‘t make a real distinction between them: threads are just like processes but they share some things (memory, fds...) with other instances of the same group.

So, a tid is actually the identifier of the schedulable object in the kernel (thread), while the pid is the identifier of the group of schedulable objects that share memory and fds (process).

But to make things more interesting, when a process has only one thread (the initial situation and in the good old times the only one) the pid and the tid are always the same. So any function that works with atid will automatically work with a pid.

It is worth noting that many functions/system calls/command line utilities documented to work with pidactually use tids. But if the effect is process-wide you will simply not notice the difference.

原文:http://stackoverflow.com/questions/4517301/difference-between-pid-and-tid

另外:

  gettid是内核中的线程的ID, pthread_self是POSIX thread ID

时间: 2024-10-12 20:48:50

linux pid tid gid的相关文章

C语言编程中pid, tid以及真实pid的关系

对于ubuntu14.04操作系统,可以在/usr/src/linux-headers-4.4.0-31/include/linux/sched.h文件中看到进程控制块的结构体,如下 struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ void *stack; atomic_t usage; unsigned int flags; /* per process flags, d

LINUX PID 1和SYSTEMD

LINUX PID 1和SYSTEMDhttp://coolshell.cn/articles/17998.html 要说清 Systemd,得先从 Linux 操作系统的启动说起.Linux 操作系统的启动首先从 BIOS 开始,然后由 Boot Loader 载入内核,并初始化内核.内核初始化的最后一步就是启动 init 进程.这个进程是系统的第一个进程,PID 为 1,又叫超级进程,也叫根进程.它负责产生其他所有用户进程.所有的进程都会被挂在这个进程下,如果这个进程退出了,那么所有的进程都

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程

要说清 Systemd,得先从 Linux 操作系统的启动说起.Linux 操作系统的启动首先从 BIOS 开始,然后由 Boot Loader 载入内核,并初始化内核.内核初始化的最后一步就是启动 init 进程.这个进程是系统的第一个进程,PID 为 1,又叫超级进程,也叫根进程.它负责产生其他所有用户进程.所有的进程都会被挂在这个进程下,如果这个进程退出了,那么所有的进程都被 kill .如果一个子进程的父进程退了,那么这个子进程会被挂到 PID 1 下面.(注:PID 0 是内核的一部分

理解Linux的进程,线程,PID,LWP,TID,TGID

在Linux的top和ps命令中,默认看到最多的是pid (process ID),也许你也能看到lwp (thread ID)和tgid (thread group ID for the thread group leader)等等,而在Linux库函数和系统调用里也许你注意到了pthread id和tid等等.还有更多的ID,比如pgrp (process group ID), sid (session ID for the session leader)和 tpgid (tty proce

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

linux系统进程管理——常用命令总结

进程管理:1.程序和进程的关系:    程序是为了完成某种任务而设计的软件,比如LibreOffice是程序    进程就是运行中的程序:运行中的程序是程序的一个副本,存在着生命周期:    一个运行着的程序,可能有多个进程.尤其是作为服务进程,在为了响应多个访问时会创建多个进程来对其进行服务:    Linux内核存储进程信息的固定格式:task struct:    多个任务的task struct组件的链表:task list: 2.进程分为交互进程(用户.前台进程).批处理进程和守护进程

linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义

linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义 linuxpstop http://javawind.net/p131 VIRT:virtual memory usage 虚拟内存 1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等 2.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存 1.进程当前使用的内存大小,但不包

linux进程管理及计划任务

什么是进程? 在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置. 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在. 进程(process):程序被触发后,执行者的权限与属性.程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),可以说,进程就是一个正在运行中的程序. 进程I

linux系统top命令:virt,res,shr详解

VIRT:virtual memory usage 虚拟内存1.进程"需要的"虚拟内存大小,包括进程使用的库.代码.数据等2.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存1.进程当前使用的内存大小,但不包括swap out2.包含其他进程的共享3.如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4.关于库占用内存的情况,它只统计加载的库文件所占内存大小 SH