Linux--进程的基本概念(PCB,查看进程,获得进程的标识符)

本文介绍了进程控制块(PCB)的概念及其在Linux系统中的实现形式task_struct。文章详细阐述了PCB包含的重要信息如PID、优先级、上下文等,并讨论了如何利用链表组织这些PCB以进行进程管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.PCB的引入
1.当我们遇到一个结构时,我们要先描述它(描述它的基本信息),然后在组织它,对于进程我们也要这样做。
2.描述进程:PCB(将进程的信息用一个结构体存储起来,这个结构体相当于一个结点)
组织进程:用双向链表将PCB连接起来。(用双向链表将这些结点连接起来)

二.描述进程--PCB
1.PCB是一个struct。
      为什么要用struct?
  • 因为在数据结构里面,一般的数据结构都会用到结构体,而PCB也是一个数据结构,所以这里用到struct。
2.在Linux下PCB是task_struct的结构体。(在别的平台下,存放PCB信息的可能是别的struct)

三.task_struct结构体里面的内容(重要的信息如下,因为在Linux内里task_struct里面含有很多的东西)
1.由于可能会有多个进程,这些进程必须要有唯一标识符,所以里面含有pid
2.操作系统会调度进程执行相关操作,如何调度这些进程,所以里面应该含有表示进程优先级的变量。
3.多个进程之间可能会相互进行切换,但是又必须记住该进程切换之前的相关信息,所以需要有上下文记录它。
4.进程执行时需要知道它接下来应该执行什么命令,所以需要有程序计数器存放程序执行的下一条指令的地址
5.还需要存放进程的状态信息
6.内存指针
7.I/O状态信息
8.一些记账信息(例如可以存放当前进程已经执行了多长时间,如果当前进程执行了很长信息,而别的进程还没有执行过,为了让那些进程执行,可以将当前进程切换出去)。

四.组织进程--链表

五.查看进程(查看进程有两种方式)
1.在proc目录下查看
①首先可以进入proc目录;
②然后可以通过进程的pid查看;
也可以通过一条命令来查看:
2.通过ps命令查看进程;
①ps aux查看操作操作系统里面所有的进程信息:
②ps aux | grep   test4(在所有进程中筛选出进程名为test4的进程信息)
  • 例如先创建一个进程test4:
  • 查看该进程(下面时通过进程名来查看进程信息):(可以通过进程名来查看进程,也可以通过进程的pid来查看进程信息)。
六.获得进程标识符
  • 获得当前进程的pid(通过getpid()函数);
  • 获得当前进程父进程的pid(getppid()函数)。
  • 代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值