第二章 进程的描述与控制
程序:有序的指令集合
程序顺序执行的特征:1.顺序性 2.封闭性 3.可再现性(确定性)
在多道程序环境下,允许多个程序并发执行,此时他们将失去封闭性,并具有间断性和不可再现性的特征。为此引入了进程的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。
进程:程序,数据和PCB(进程控制块)。
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的特征:1.动态性 2.并发性 3.独立性 4.异步性
进程的基本状态和转换:
1.就绪状态 2.执行状态 3.阻塞状态 这三种状态是最重要的三种状态。
1.就绪状态就是指进程已经处于准备好的状态,进程已经分配到了除了CPU以外的任何资源只需要得到CPU就可以进行执行了。
2.执行状态就是指进程已获得CPU,其程序处于正在执行的状态。对任何一个时刻而言,在单处理机系统中只有一个进行处于执行状态,在多处理机进程中可以有多个进程处于执行状态。
3.阻塞状态就是指正在执行的进程由于发生某事件如(I/O请求)暂时无法继续执行的状态,亦即进程的执行收到阻塞。
从上述的介绍中,我们也可以知道。从就绪状态到执行状态需要进行进程调度即可得到CPU来到达执行状态。从执行状态到就绪状态我们可以看到只要时间片结束就可以从执行状态到达就绪状态。
阻塞状态一旦完成I/O操作就可以达到就绪状态,执行状态得到I/O请求就需要到阻塞状态。所以我们可以得到下图的状态转换图。这三种状态是最重要的最基本的三种状态除了这三种状态还有两种状态是创建状态和终止状态。进程是创建出来的所以就有创建状态,而进程总会有结束的时候所以也会有终止状态。在很多系统当中为了使用户观察和分析进程的需要,还引入了一个操作叫做挂起。当挂起操作作用于某个进程时该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,他将暂停执行。若原本就处于就绪状态则该进程此时暂不接受调度。
引入挂起操作后,OS中的状态变为7种,其中部分进程状态的变化如下:
活动就绪—>静止就绪:该进程被执行挂起原语Suspend;
活动阻塞—>静止阻塞:该进程被执行挂起原语Suspend;
执行态—>静止就绪:该进程被执行挂起原语Suspend;
静止就绪—>活动就绪:该进程被执行挂起原语Active;
静止阻塞—>活动阻塞:该进程被执行激活原语Active;
静止阻塞—>静止就绪:进程等待的事件发生;
活动阻塞—>活动就绪:进程等待的事件发生;
创建态—>活动就绪:在当前OS的性能和内存的容量均允许的情况下,完成进程的创建工作。
创建态—>静止就绪:当前OS的当前资源状况和性能不允许,不分配给新建进程所需的资源(创建工作只完成第一步),此时进程处于静止就绪状态,被调至到外存中,不参与调度,此时创建工作尚未完成。