理解进程的基本概念

1. 什么是进程

进程,即执行中的程序
进程 = 程序+执行

在计算机中,每一个运行的exe程序,就是一个进程
在这里插入图片描述

2.为什么会有进程

早期,操作系统只有一个程序,这样效率是很低的。为了提高CPU的利用率,人们将多个程序加载到内存中并让他们并发运行,这其中的每一个运行的程序都可以被称作一个进程。

3.进程和线程的关系

线程被称为轻量级进程,他是操作系统调度的最小单元,通常一个进程可以拥有多个线程。线程和进程和线程的区别是进程拥有独立的空间,线程共享进程的资源空间。

举一个不太恰当的例子:
一个工厂中,工厂就是一个进程,而工厂中的每一个工人就是线程
在这里插入图片描述

4.进程的生命周期

在这里插入图片描述

5.进程标识

每一个进程会有一个名字,用来和其他进程做区分。这个名字成为PID(Process Identifier),比如在ubuntu下,输入命令ps -u就可以看到每个进程的PID了,每次加载时,PID都会由系统分配一个,但是是唯一的

在这里插入图片描述

进程0和进程1

进程0是指Linux内核初始化阶段从无到有创建的一个内核线程,是所有进程的祖先,负责所有进程的轮转调度
进程1是原始父进程,也被称为init进程,负责托管孤儿进程

进程创建和终止相关的操作系统函数

  1. fock:创建进程使用
  2. exit:立刻结束进程,停止剩下的所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。
  3. wait:会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。

僵尸进程和进程托孤

一个进程通过exit()系统调用终止之后,就处于僵尸状态,僵尸状态除了进程描述符依然保留外,进程的其他资源已经归还给内核。
孤儿进程:父进程先于子进程消亡,那么子进程就变成“孤儿”,进程,Linux内核就会把他“托孤”init进程,init进程就成了子进程的父进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值