操作系统--进程管理(Processing management)

Posted feipeng8848

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统--进程管理(Processing management)相关的知识,希望对你有一定的参考价值。

一、进程的组成

进程通常由程序、数据和进程控制块(Process Control Block,PCB)组成。

二、 进程的状态以及状态切换

  进程执行时的间断性决定了进程可能具有多种状态,最基本的三种状态如下

  ① 就绪状态,当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,就可以立即运行,进程这时的状态称为就绪状态。在一个系统中可能多个进程处于就绪状态,通常将它们排成一个队列,称为就绪队列。

  ② 执行状态,进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态,在多处理机系统中,则有多个进程处于执行状态。

  ③ 阻塞状态,处于执行状态的线程由于发生某事件而暂停无法继续执行时,便放弃处理机而处于暂停状态,此时进程的状态称为阻塞状态,或等待状态或封锁状态。如IO请求,申请缓存空间等,处于阻塞状态的进程也会排成一个队列,可能还会根据不同的阻塞原因排成多个队列。

  说明:上图表示三种基本状态之间的相互转化。

  除了上述三种基本状态外,在一些系统中,新增了挂起状态,引入挂起状态的原因如下

  ① 终端用户的请求,当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来,即使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改,这种状态就称为挂起状态。

  ② 父进程请求,有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。

  ③ 负荷调节的需要,当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能够正常运行。

  ④ 操作系统的需要,操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

  引入了挂起状态后,又增加了如下几种状态的转化

  ① 活动就绪->静止就绪,当进程处于未被挂起的就绪状态时,称为活动就绪状态;当挂起时,变为静止就绪状态,处于静止就绪状态的进程不接受调度。

  ② 活动阻塞->静止阻塞,当进程处于未被挂起的阻塞状态时,称为活动阻塞状态;当挂起时,变为静止阻塞状态,处于该状态的进程在其所期待的事件发生后,将从静止阻塞变为静止就绪。

  ③ 静止就绪->活动就绪,使用激活原语激活。

  ④ 静

止阻塞->活动阻塞,使用激活原语激活。

  为了进程的管理,还存在着两种常见的状态,即创建状态和终止状态。

  ① 创建状态,创建一个进程一般需要两步。首先,为一个新进程常见PCB,并填写必要的管理信息;其次,把该进程转入就绪状态并插入就绪队列之中。当创建一个新进程时,系统为其分配了PCB,填写了进程标志等信息,但由于该进程所必需的资源或其他信息(如内存)尚未分配等,此时,进程虽拥有了PCB,但是其自身却未进入内存,即创建工作尚未完成,此时进程还不能被调度运行,其所处的状态就是创建状态。

  ② 终止状态,进程的终止也需要两步。首先,等待操作系统进行善后处理,其次,将其PCB清零,并将PCB空间返回给操作系统。进入终止状态的进程以后不能再执行,但是在操作系统中任然保留一个记录,其中保存状态码和一些计时统计数据,供其它进程收集,一旦其它进程完成对终止状态进程的信息提取后,操作系统将删除该进程。

  说明:上述为七种状态之间的转化。

三、进程间的通信

1.互斥

2.同步

3.信号量

PV操作

管程

4.死锁

 

以上是关于操作系统--进程管理(Processing management)的主要内容,如果未能解决你的问题,请参考以下文章

kill命令

浅谈Linux中男人的魅力—man

Linux 进程管理 killkillallpkill命令

#yyds干货盘点#进程管理信号和前后台执行

Lecture 8 : Text Processing Tools (文本处理工具)

python --- mulitprocessing(多进程)模块使用