进程的状态及转换

进程是计算机中已运行程序的实体。

程序本身只是指令的集合,进程才是程序的真正运行。用户下达运行程序的命令后,就会产生进程。同一个程序可以产生多个进程(一对多关系),以允许用户运行统一程序,却不会互相冲突。进程需要一些资源才能够完成工作,如CPU使用时间、存储器、文件以及I/O设备,且为依序逐一进行,也就是任何时间内仅能运行一项进程。

进程通常有如下5种状态,其中前3种是进程的基本状态:

  • 就绪状态:进程已处于准备运行的状态,即进程获得了除处理器(CPU)之外的一切所需资源,一旦得到处理器即可运行。
  • 运行状态(执行状态):进程获得处理器,正在处理器上运行,在单处理器环境下,每一时刻最多只有一个进程处于运行状态。
  • 阻塞状态(等待状态):进程正在等待某一事件而暂停运行,如等待某资源变为可用(不包括处理器)或等待输入/输出完成,即使处理器空闲,该进程也不能执行。
  • 创建状态:进程正在被创建,尚未转到就绪状态。
  • 结束状态:进程正从系统中消失,可能是进程正常结束或其他原因中断退出运行。

进程状态的转换:

  • 就绪→执行:当一个就绪进程获得处理器时,其状态由就绪变为执行;
  • 执行→就绪:当一个运行中的进程被剥夺处理器时,如用完系统分给他的时间片、出现更高优先级别的其他进程,其状态由执行变为就绪;
  • 执行→阻塞:当一个运行进程因某事件发生而无法执行时,如申请资源被占用、启动I/O传输未完成,其状态由执行变为阻塞;
  • 阻塞→就绪:所等待事件发生时,如申请资源、I/O传输完成,其状态由阻塞变为就绪。

参考:《王道程序员面试宝典》

猜你喜欢

转载自blog.csdn.net/qq_36132127/article/details/81240618