linux 进程概念—进程控制块包含哪些东西(pcb)

1.进程描述——PCB

在Linux中描述进程的结构体叫做task_struct。task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。
task_ struct内容分类
标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据.
I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,I/O的使用情况,时间限制,记账号等。
其他信息

程序与进程的理解:
程序:经过源代码编译链接出来的一个文件,是静态的。
进程:通过执行可执行程序可获得一个进程,进程是动态的;进程是操作系统分给给自己的实体。
并行与并发的理解:
并行:多个程序同时拥有不同的CPU进行运算;
并发:多个进程在同一时刻只能有一个进程拥有CPU;

进程状态:
R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。
S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))。
D磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。
T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。
t跟踪状态:gdb调试可执行程序时可执行状态就是t
X死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态。
Z(zombie)-僵尸进程: 可以参看另一篇博客信息,里面介绍了僵尸进程和孤儿进程的一些概念

如何查看进程信息
可通过 ps aux 查看进程信息
linux 进程概念—进程控制块包含哪些东西(pcb)_第1张图片

还可通过 | 符号过滤,查看想要的进程,ps aux | grep [进程名称] 我在这里运行了一个test程序;然后 ps aux |grep test 查看进程信息。

linux 进程概念—进程控制块包含哪些东西(pcb)_第2张图片

ps -ef |grep [进程名称] 可以产看到父进程PID
linux 进程概念—进程控制块包含哪些东西(pcb)_第3张图片

程序的i/o信息被保存在根目录下proc文件夹下的一个文件(pid为其文件名)。可通过 cd 到该目录下 可查看程序I/O信息
ls /proc |grep [PID] 可查看保存进程信息的文件
linux 进程概念—进程控制块包含哪些东西(pcb)_第4张图片
其中会有一个fd文件夹,里面保存了C语言文件操作中会默认打开的三个文件指针
linux 进程概念—进程控制块包含哪些东西(pcb)_第5张图片

内存指针
内存指针指向程序地址空间的指针
linux 进程概念—进程控制块包含哪些东西(pcb)_第6张图片

你可能感兴趣的:(linux,linux,pcb)