多任务编程 -- 进程

进程(process)

进程理论基础

  1. 定义:程序在计算机中的一次运行。
    1. 程序是一个可执行的文件,是静态的占有磁盘
    2. 进程是一个动态的过程描述,占有计算机运行资源,有一定的生命周期
  2. 系统中如何产生一个进程
    1. 用户空间通过调用程序接口或者命令,发起请求
    2. 操作系统接收用户请求,开始创建进程
    3. 操作系统调配计算机资源,确定进程状态等
    4. 操作系统将创建的进程提供给用户使用
  3. 进程基本概念
    1. CPU时间片:如果一个进程占有CPU内核,则称这个进程在CPU时间片上。
    2. PCB(进程控制块):在内存中开辟的一块空间,用于存放进程的基本信息,也用于系统查找识别进程。
    3. 进程ID:系统为每个进程分配的一个大于0的整数,作为进程ID。每个进程ID不重复。
      1. Linux查看进程ID:ps -aux
    4. 父子进程:系统中每一个进程(除了系统初始化进程)都有唯一的父进程,可以有0个或多个子进程。父进程关系便于进程管理
  4. 查看进程树:pstree
  5. 进程状态
    1. 三态:
      1. 就绪态:进程具备执行条件,等待分配CPU资源
      2. 运行态:进程占有CPU时间片,正在运行
      3. 等待态:进程暂时停止运行,让出CPU
  6. 状态查看命令:ps -aux (STAT这一列)
    1. S:等待态
    2. R:执行态
    3. D:等待态
    4. T:等待态
    5. Z:僵尸
    6. <:较高优先级
    7. N:优先级较低
    8. +:前台进程
    9. s:会话组组长
    10. l:有多线程的
  7. 进程的运行特征
    1. 进程可以使用计算机多核资源;
    2. 进程是计算机分配资源的最小单位;
    3. 进程之间的运行互不影响,各自独立;
    4. 每个进程拥有独立的空间,各自使用自己空间资源
  8. fork:详见 多任务编程 -- 基于fork的多进程编程
  9. 进程相关函数多任务编程 -- 进程相关函数 os.getpid()、os.getppid()、os._exit()、sys.exit()
  10. 孤儿和僵尸进程多任务编程 -- 孤儿进程和僵尸进程

猜你喜欢

转载自www.cnblogs.com/gengyufei/p/12902601.html