并不代表专门的进程。在运行时PID是不会改变标识符的,但是你终止程序后再运行PID标识符就会被系统回收,就可能会被继续分配给新运行的程序
2. 在LINUX内核中,进程标识符PID为1,2 ,3,4,5的进程的名称是什么基本功能是什么
pid=1 :init进程,系统启动的第一个用户级进程,是所有其它进程专的父进程,引导用户空间服务。属
pid=2 :kthreadd:用于内核线程管理。
pid=3 :migration,用于进程在不同的CPU间迁移。
pid=4 :ksoftirqd,内核里的软中断守护线程,用于在系统空闲时定时处理软中断事务。
pid=5 :watchdog,此进程是看门狗进程,用于监听内核异常。当系统出现宕机,可以利用watchdog进程将宕机时的一些堆栈信息写入指定文件,用于事后分析宕机的原因。
3. linux内核源码pid_task的疑惑
这个没搞过,没办法帮助你。
不过你这个看上去似乎是用错接口了。会不会是这部分函数和变量改了?
前段时间 Linux 经常改接口。
另外别忘了 #include 啊。
你去找本新的 Linux 编程书看看吧。
4. linux下的PID,PIDD是什么他们之间的关系以及应用是什么
不知道你是不是学习编程的,如果不是就没必要看了。
1.PID是进程标识号,它是一内个进程的唯一性标识。容PPID是该进程父进程的进程标识号。
2.fork和exec和pid完全就是2件事情不能混为一谈。fork是一个linux库函数。他是用来创建一个新的进程。至于exec是一个系列函数,C标准库函数,用来改变进程上下文的。2者结合使用可以创建一个新的进程。
3.如果创建新的进程,一般是用fork,他会返回这个被创建进程的PID,你可以通过PID找到这个进程。
5. linux中线程pid有何作用
问题: 我的程序在其内部创建并执行了多个线程,我怎样才能在该程序创建线程后监控其中单个线程?我想要看到带有它们名称的单个线程详细情况(如,CPU/内存使用率)。
线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享 特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高 效的机制。
在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程 ID(TID)。对于Linux内核调度器而言,线程不过是恰好共享特定资源的标准的进程而已。经典的命令行工具,如ps或top,都可以用来显示线程级 别的信息,只是默认情况下它们显示进程级别的信息。
这里提供了在Linux上显示某个进程的线程的几种方式。
方法一:PS
在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。
1.$ ps -T -p <pid>
“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。
方法二: Top
top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。
1.$ top -H
要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:
$ top -H -p <pid>
方法三: Htop
一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。
要在htop中启用线程查看,请开启htop,然后按<F2>来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。
现在,你就会看到下面这样单个进程的线程视图。
6. 如何查找Linux中一些特殊数据类型定义,比如pid_t和uid_t
在sys/types.h头文件中搜索pid_t,可以找到下面的语句: #ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined #endif 可以看到pid_t类型其实就是__pid_t类型,但是在sys/types.h在头文件中没有找到__pid_t这个类型,这个时候应该怎么办呢?看sys/types.h中包含的头文件,即include语句,从这些语句中选择bits/types.h这个头文件,至于为什么这就牵涉到内核的一些类型定义的规则或者叫规律,但是一般按照先sys目录然后再bits目录都没有错。在bits/types.h头文件中可以找到下面的语句: __STD_TYPE __PID_T_TYPE __pid_t; 也就是说__pid_t其实是__PID_T_TYPE类型,而这个类型在哪定义呢?也是先看include语句,选择bits/typesizes.h头文件,也是经验,从这个头文件中就可以找到下面的语句: #define __PID_T_TYPE __S32_TYPE 也就是说__PID_T_TYPE其实是__S32_TYPE类型,如果单从字面意思看的话这应该是一个32位的整形或者其他类型,但是千万不要这么早下结论。而这个类型在bits/typesize.h中找不到,而且这个头文件中也没有include语句,这个时候怎么办呢?还去bits/types.h中找,可以找到下面的语句: #define __S32_TYPE int 至此,终于找到了,pid_t其实就是int类型。在32位机下pid_t是32位的整数,在64位机下pid_t是64位整数,所以看到__S32_TYPE这样的类型千万不要过早地下结论是32位或64位。总结一下,找一个类型,一般的过程就是(比如从xxx.h开始): xxx.h----->sys/xxx.h----->bits/xxx.h----->bits/types.h和bits/typesize.h 或者有时还要去asm目录和asm-generic目录中的头文件中找。还有一种方式就是在linux内核源码中找,但是可能某些同学感觉不爽,哈哈!
7. linux中.pid文件是什么,作用何在
这个自己定的,一般为了检查进程的存活状态,我自己做的话,就是把pid写进这个内文件,如果第二容个进程起来了,查看这个文件中的pid在系统中还存在,并且是同一个程序创建的,就知道已经启动了,如果不让多进程的话,就能发现这个状态并退出。
8. LINUX 内核中进程标识符pid为 1,2,3,4,5的进程分别是什么名称基本功能是什么
不知道你是不是学习编程的,如果不是就没必要看了。
1.PID是进程标识号,它是一个进程的唯一性标识。PPID是该进程父进程的进程标识号。
2.fork和exec和pid完全就是2件事情不能混为一谈。fork是一个linux库函数。他是用来创建一个新的进程。至于exec是一个系列函数,C标准库函数,用来改变进程上下文的。2者结合使用可以创建一个新的进程。
3.如果创建新的进程,一般是用fork,他会返回这个被创建进程的PID,你可以通过PID找到这个进程。