进程

2019-07-14 11:33发布

进程控制块(Process Control Block,PCB),系统用PCB来描述进程的基本情况和活动过程,进而控制管理进程。 由程序段,相关的数据段和PCB三部分构成进程实体(又称进程映象)。一般情况下,把进程实体简称为进程。

进程的定义

  1. 进程是程序的一次执行
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

进程的特征

  1. 动态性。进程的实质是进程实体的执行过程,因此,动态性是进程的最基本特征。动态性表现在“它由创建而产生,由调度而执行,由撤销而消亡”。进程实体有一定的生命期,而程序只是一组有序指令的集合,并存放在某种介质上,其本身不具有活动的含义,因而是静态的。
  2. 并发性。是指多个进程实体同存于内存中,且在一段时间内同时运行。引入进程的目的也正是为了使其进程实体可以与其他进程实体并发执行。
  3. 独立性。是指进程实体是一个能独立运行,独立获得资源和独立接受调度的基本单位。凡是未建立PCB的程序不能作为一个独立的单位参与运行。
  4. 异步性。进程是按异步的方式运行。即按各自独立的,不可预知的速度向前推进。

进程的基本状态及转换

进程的三种基本状态:由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性运行规律,所以进程在其生命周期中可能具有多种状态。每个进程至少处于下列基本状态之一:
  1. 就绪(Ready)状态。进程已处于准备好运行的状态,即进程已分配到除CPU之外的所有必要资源后,只要获得CPU,便可以立即执行。如果系统中有许多处于就绪状态的进程,通常将它们按一定的策略排成一个队列,称为就绪队列。
  2. 执行(Running )状态。进程已经获得CPU,其程序正在执行的状态
  3. 阻塞(Block)状态。正在执行的进程由于发生某事件(如I/O请求,申请缓冲区失败)暂时无法继续执行的状态,亦即进程的执行受到了阻塞。此时引起了进程的调度,OS把处理及分配给另一个就绪进程,而让受阻进程处于暂停状态,一般将暂停状态称为阻塞状态。(等待状态或封锁状态)
三种基本状态的转换

创建状态

    创建进程是一个复杂的过程,首先由进程申请一个空白的PCB,并向PCB中写入用于控制和管理进程的信息;然后为该进程分配运行时所必须的资源;最后,把该进程转入就绪状态并插入就绪队列其中,此时创建工作尚未完成,进程不能被调度运行,于是把此进程处于的状态称为创建状态。    引入创建状态是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。也增加了管理的灵活性,OS可以根据系统性能或主存容量的限制推迟新进程的提交(创建状态)。

终止状态

   进程的终止通过两个步骤:首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返回系统。当一个进程到达自然结束点,或是出现了无法克服的错误,或是被操作系统所终止,或是被其他有种职权的进程所终结,它进入终止状态。     进入终止状态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供其他进程收集。一旦其他进程完成对其信息的提取之后,操作系统将删除该进程,即将PCB清除,并将该空白的PCB返还系统。 五种基本状态的转换

挂起操作

  当挂起操作作用某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂停执行。若原本处于就绪状态,则该进程此时暂不接受调度。与挂起操作对应的操作是激活操作。 1.操作系统的引入原因     基于系统和用户的需要:终端用户的需要,父进程请求,负荷调节的需要,操作系统的需要 2.引入挂起原语操作后三个进程状态的转换       (1)活动就绪->静止就绪。当进程处于未被挂起的就绪状态时,称此活动就绪状态,表示为Readya,此时进程可以接受调度。当用挂起原语Suspend将该进程挂起后,该进程转变为静止就绪状态,表示为Readys,处于Readys状态的进程不再被调度执行。       (2)活动阻塞->静止阻塞。当进程处于未被挂起的阻塞状态时,称它为活动阻塞状态,表示为Blockeda。当用挂起原语Suspend将该进程挂起后,便转变为静止阻塞状态,表示为 Blockeds。处于该状态的进程在其所期待的事件出现后,它将静止阻塞变为静止就绪Readys状态。       (3)静止就绪->活动就绪。使用激活原语Active       (4)静止阻塞->活动阻塞。使用激活原语Active 具有创建,终止和挂起状态的进程状态图: