进程状态转换
2021 年 03 月 09 日 175 564 字 暂无评论

01.进程的状态

  • 进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。 在三态模型中,进程状态分为三个基本状态,即就绪态,运行态,阻塞态。在五态模型中,进程分为新建态、就绪态,运行态,阻塞态,终止态。

    • 运行态:进程占有处理器正在运行。
    • 就绪态:进程具备运行条件,等待系统分配处理器以便运 行。当进程已分配到除CPU以外的所有必要资源后,只要再 获得CPU,便可立即执行。在一个系统中处于就绪状态的进 程可能有多个,通常将它们排成一个队列,称为就绪队列。
    • 阻塞态:又称为等待(wait)态或睡眠(sleep)态,指进程 不具备运行条件,正在等待某个事件的完成。
    • 新建态:进程刚被创建时的状态,尚未进入就绪队列。
    • 终止态:进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及 有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但依然保留在操作系 统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。

02.进程相关命令

03.进程号和相关函数

  • 每个进程都由进程号来标识,其类型为 pid_t(整型),进程号的范围:0~32767。 进程号总是唯一的,但可以重用。当一个进程终止后,其进程号就可以再次使用。
  • 任何进程(除 init 进程)都是由另一个进程创建,该进程称为被创建进程的父进程, 对应的进程号称为父进程号(PPID)。
  • 进程组是一个或多个进程的集合。他们之间相互关联,进程组可以接收同一终端的各 种信号,关联的进程有一个进程组号(PGID)。默认情况下,当前的进程号会当做当 前的进程组号。
  • 进程号和进程组相关函数:

    • pid_t getpid(void);
    • pid_t getppid(void);
    • pid_t getpgid(pid_t pid);

版权属于:zfh

本文链接:http://zfhblog.com/index.php/archives/206/



评论已关闭