LINUX进程

进程

1.什么是进程

可能有很多人刚开始听到这个词的时候,认为是程序代码加载到内存当中,被运行,这就算一个进程了。对了但没完全对。首先我们就需要知道操作系统。在计算机中,操作系统充当了管理硬件和软件的角色,例如当用户要启动某一款软件的时候,需要通过操作系统将该程序的代码与数据加载到内存中,如果只是这样的话,放在那里不管,如何做到管理他呢。因此就有PCB的概念,也就是**进程控制块(process control block),**可以理解为描述进程的各种属性,状态、优先级之类的。在Linux中,进程控制块为task_struct.
task_struct其中有什么呢

标示符: 也就是PID 像是大学中的学号一样,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/ O状态信息: 包括显示的I/O请求,分配给进程的I/ O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息等

2.如何管理进程

操作系统先将上面的属性将一个进程描述出来,再通过链表或者其他高效的数据结构将多个进程组织起来,从而把对进程的管理转化成数据结构的管理。用六个字概括一下:先描述,再组织
因此进程是PCB+加载在内存的程序代码和数据。也侧面地说明一个现象就是我们所学的语言相当于在提供一个描述事物的途径,而学的数据结构以及算法是如何将所描述的对象串联起来从而管理。


进程状态

在这里插入图片描述

1.阻塞

进程等待某种资源的时候,而处于一种不推进的状态。等待某种资源就是进程是需要外设,例如进程为下载任务,需要网卡,但是网卡已经已经被其他进程占用,这时该进程就需要等该资源被别人使用了轮到自己使用。 而不推进状态是就是由于CPU速度实在太快了,如果该进程因为等待的过程还占用CPU,会使得CPU处理效率大大下降,因而操作系统便会将该进程从CPU处理的运行队列或者是运行中调度到该外设资源的队列中去排队。
在Linux是用S表示的

在这里插入图片描述

2.挂起

挂起是一种特殊的阻塞状态,硬件资源是有限的,当内存紧张的时候,操作系统会将内存中一些处于阻塞状态的进程暂时性移到磁盘去,当这些不处于阻塞状态,不需要再等待某种资源,需要被CPU调度时,从磁盘中移回内存当中。

3. 运行

表示进程在进行中或者是运行队列中排队。Linux中用R表示。
在这里插入图片描述

4.暂停

4.1 T状态

一般是用户通过kill -19 PID来暂停进程。但也有可能是OS不允许该进程访问之类,可能会将进程置于T状态。
在这里插入图片描述

4.2 t状态

跟T状态有些相似,虽然都是进程暂停,但t状态是像那种调试中遇到断点的时候导致进程停下来。

X状态与Z状态

Z状态是子进程结束后,为了查看该进程到底任务完成得如何,而使该进程进入僵尸状态(Zombie),一直等待父进程读取该进程的返回码。我们可以通过echo $?查看该进程的返回码。
X状态本质上就是Z状态,被父进程回收了。
下面的例子的父进程是bash,在程序运行完之后便结束了,被bash回收了。bash是会自动回收。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

为什么会有回收

Z状态是子进程一直等待着父进程读取返回码从进入的一种状态,但要是父进程一直不读取返回码的话,子进程就一直处于僵尸状态,导致子进程一直占用内存资源,也就是我们平时说的内存泄漏的问题,从而我们需要回收。

孤儿进程

这时候父进程先退出,那子进程再退出,进入Z状态,一直等待父进程读取返回码,但父进程被kill,谁来读取子进程的返回码。这时的子进程便是孤儿进程。且该进程会被操作系统“领养”。由操作系统回收。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这时要是杀掉父进程,子进程的PPID会变为1,代表此时该进程被操作系统领养了。
在这里插入图片描述

小知识:杀进程

1、根据pid来操作

kill -9 PID

2、根据进程名称杀进程

killall 进程名称

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值