Linux进程概念

什么是进程?
进程 (process):程序被触发后,运行者的权限与属性、程序的程序码与所需数据等都会被加载内存中, 操作系统并给予这个内存内的单元一个识别码 (PID),可以说,进程就是一个正在运行中的程序。

对于操作系统来说,进程就是一个程序运行的描述,通过这个描述,操作系统可以进行程序的调度运行管理。

进程不仅仅包含了正在运行的代码,还包括了运行代码所需要的各种资源。内核中使用进程控制块PCB(process control block)管理一个进程的数据结构,每个进程都有一个PCB。在Linux下是一个task_struct结构体,如下图。
task_struct结构体

通过程序的运行描述,操作系统就可以调度哪个程序可以占用CPU去运行指令。要运行哪个程序,则操作系统找到对应程序的PCB,在PCB取出程序的运行所需信息并加载到CPU上,CPU就开始运行这个程序了,如下图所示。
在这里插入图片描述
Linux中的进程状态:

  1. 运行态( R ):正在运行或者轮转到时间片则能够运行统称为运行态;

  2. 可中断休眠态(S):可以被中断的休眠状态(满足唤醒条件,或者休眠被中断则进入运行态);

  3. 不可中断休眠态(D):不能被中断的休眠状态(满足唤醒条件之后才会进入运行态);

  4. 停止态(T):程序停止运行的状态(依然会被调度,但什么都不做);

  5. 僵尸态(Z):进程已经退出不再调度了,但是这个进程的资源还没有完全释放,等待处理的一种状态;

僵尸进程:处于僵尸态的进程,是一种退出了,但是资源没有被完全释放的进程。
产生原因:子进程先于父进程退出,但父进程未关注到子进程的退出,因此系统不会完全释放子进程的资源,这个子进程进入僵尸状态。(子进程退出后,在进程PCB中保存了自己的退出返回值,在父进程未关注处理的情况下,PCB资源不会被释放)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值