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 查看进程信息
在这里插入图片描述

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

在这里插入图片描述

ps -ef |grep [进程名称] 可以产看到父进程PID
在这里插入图片描述

程序的i/o信息被保存在根目录下proc文件夹下的一个文件(pid为其文件名)。可通过 cd 到该目录下 可查看程序I/O信息
ls /proc |grep [PID] 可查看保存进程信息的文件
在这里插入图片描述
其中会有一个fd文件夹,里面保存了C语言文件操作中会默认打开的三个文件指针
在这里插入图片描述

内存指针
内存指针指向程序地址空间的指针
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值