Linux--进程概念&描述

一、进程概念

  • 对正在运行的程序的一种抽象
  • 可以分配处理器,并由处理器执行
  • 内核观点:进程是分配系统资源(cpu时间、内存)的实体
进程的两个基本元素是程序代码(可能被执⾏行相同程序的其他进程共享)和代码相关联的数据集。进程是一种动态描述,但是并不代表所有的进程都在运⾏行。(进程在内存中因策略或调度需求,会处于各种状态)

二、进程的描述–PCB

进程的所有信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
进程控制块
每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息;Linux内核的进程控制块是一个叫做task_struct结构体

task_struct是Linux内核的一种数据结构,每个进程都把它的信息放在 task_struct 这个数据结构⾥里

task_struct 包含了这些内容:

标⽰示符 : 描述本进程的唯⼀一标⽰示符,⽤用来区别其他进程。
优先级 :相对于其他进程的优先级。
程序计数器:程序中即将被执⾏行的下⼀一条指令的地址。
内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下⽂文数据:进程执⾏行时处理器的寄存器中的数据。
I/O状态信息:包括显⽰示的I/O请求,分配给进程的I/O设备和被进程使⽤用的⽂文件列表。

所有运⾏在系统⾥里的进程都以 task_struct 链表的形式存在内核⾥里。

三、查看进程

查看一个终端(窗口)下的进程,打开另一个终端用ps查看
可以看到两个关于进程./a.out的进程信息文件分别在pts/0和pts/1下

这里写图片描述

反向过滤掉grep a.out,剩下的就是我们想要查看的pts/0终端下的进程信息

这里写图片描述


四、僵尸、孤儿进程

僵尸进程就是父进程还在,子进程已死
  • 当进程退出并且父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵尸进程。

  • 僵尸进程会以终⽌止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。

    僵尸进程:⼀个子进程在其⽗进程没有调⽤用wait()或waitpid()的情况下退出。这个⼦进程就是僵⼫进程。如果其⽗进程还存在而一直不调wait,则该僵尸进程将无法回收,等到其⽗进程退出后该进程将被init回收。

孤儿进程就是子进程还在,父进程已死

孤儿进程:一个⽗进程退出,而它的⼀个或多个子进程还在运行,那么那些⼦进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值