Linux多任务编程之进程

目录

1、进程的概述

   1.1程序与进程的区别(重要)

   1.2单道和多道程序设计

   1.3并行和并发的区别 (重要)

     1.4进程控制块PCB

    1.5进程的状态

2、进程号PID

  2.1获取进程号的函数  

   2.2获取父进程的ID

   2.3获取进程组ID

3、创建进程fork(重要)

  3.1fork 函数

3.2fork出来的子进程与父进程之间的关系

3.3子进程复制父进程的资源(各自独立)

3.4父子进程关系(同时运行但有先后,谁先不确定)

​编辑 

3.5父进程给子进程足够的准备时间 

4、特殊进程(了解)

4.1孤儿进程(无危害)

 4.2僵尸进程

 4.3守护进程 

 5、父进程回收子进程的资源

 6、exec函数簇

     


1、进程的概述

   1.1程序与进程的区别(重要)

程序 静态的 占磁盘空间

进程 动态的 (调度、执行、消亡),占内存空间。(进程是程序执行到结束间的这个过程)

   1.2单道和多道程序设计

单道程序设计  所有进程一个一个排队执行。若A阻塞,B只能等待,即使CPU处于空闲状态。

多道程序设计 在计算机内存中同时存放几道相互独立的程序,它们在管理程序控制之下,相互穿插的运行。

   1.3并行并发的区别 (重要)

并行和并发都是多个任务同时执行。

并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。(多核)

并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上不是同时执行的,只是把时间分成若干段,使得多个进程快速交替的执行。(单核)

     1.4进程控制块PCB

进程运行时,内核为每个进程分配一个PCB(进程控制块),维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。

PCB存在于进程的内核空间里面。

系统会为每个进程分配一个进程ID,其类型为pid_t(非负整数)

进程是系统分配资源的基本单位。

    1.5进程的状态

进程状态:就绪态、执行态、等待态。

就绪态:执行条件全部满足,等待CPU的执行调度。

执行态:正在被CPU调度执行。

等待态:不具备CPU调度执行的条件,等待条件满足

查看进程状态: ps aux ( | bash)

2、进程号PID

  每个进程都由一个进程号来标识,其类型为pid_t(整型),进程号的范围:0~32767。进程号总是唯一的,但进程号可以重用。当一个进程终止后,其进程号就可以再次使用。

进程号(PID):标识进程的一个非负整型数。

父进程号(PPID)

进程组号(PGID):进程组是一个或多个进程的集合。

  2.1获取进程号的函数  

 #include <sys/types.h>
 #include <unistd.h>
 pid_t getpid(void);

功能:

     获取本进程号(PID)

参数:

   无

返回值:

   本进程号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值