2024年5月10日发(作者:)

第2章 进程和线程的管理习题及解答

第2章 进程和线程的管理习题及解答

例题解析

例2.2.1 试说明进程和程序之间的区别和联系。

解 进程和程序是既有区别又有联系的两个概念。

(1) 进程是动态的,程序是静态的。程序是一组有序的指令

集合,是一个静态的概念;进程则是程序及其数据在计算机上的一

次执行,是一个动态的集合。离开了程序,进程就失去了存在的意

义,但同一程序在计算机上的每次运行将构成不同的进程。程序可

看作是电影的胶片,进程可以看作电影院放电影的过程。

(2)

(3)

(4)

例2.2.2 举例说明多道程序系统失去了封闭性和再现性。

解 例如,有两个循环程序A和B,共享一个变量N。程序A每

执行一次时,都要做N:=N+1操作;程序B则每执行一次时,都要

执行print(N)操作,然后再将N的值置成“0”。程序A和B在多

道程序系统中同时运行。假定某时刻变量N的值为n,可能出现下

述三种情况:

(1)

(2)

(3)

N:=N+1 在print(N)和N:=0之前,此时得到N值变

N:=N+1 在print(N)和N:=0之后,此时得到N值变

N:=N+1 在print(N)之后和N:=0之前,此时得到N

一个进程可以执行多个程序,如同一个电影院的一场电

一个程序可被多个进程执行,如同多个影院同时利用一

程序可以长期保存,进程只能存在于一段时间。程序是

影可放映多部影片。

个电影的胶片放映同一部电影。

永久存在的,而进程有从被创建到消亡的生命周期。

化过程为n+1、n+1、0;

化过程为n 、 0 、1;

第2章 进程和线程的管理习题及解答

值变化过程为n、n+1、0。

所以,在A、B程序多次执行过程中,虽然其每次执行时的环境

和初始条件都相同,但每次得到的结果却不一定相同。

例2.2.3 为什么将进程划分成执行、就绪和阻塞三个基本状态?

解 根据多道程序执行的特点,进程的运行是走走停停的。因此

进程的初级状态应该是执行和等待状态。处于执行状态的进程占用

处理机执行程序,处于等待状态的进程正在等待处理机或者等待其

它某种事件的发生。但是,当处理机空闲时,并不是所有处于等待

状态的进程都能放到处理机上执行,有的进程即使分配给它处理机,

它也不能执行,因为它的执行的条件没有得到满足。因此,将等待

状态的进程分成两部分,一部分是放在处理机上就能立即执行,这

就是就绪的进程;另一部分是仍需等某种事件发生的进程,即使放

在处理机上也不能执行的进程,这就是阻塞进程。

例2.2.4 进程的挂起状态与进程的阻塞状态和就绪状态有何

异同?

解 相同点是它们都没有占用处理机。不同点是挂起状态的进程

是处于一种静止状态,不会参与对资源的竞争,在解除挂起之前,

进程不会有新的资源要求,也不会有占用处理机的机会;阻塞状态

和就绪状态的进程均处于活动状态,它们都有获得处理机的机会,

都可能有新的资源要求。

例 2.2.5 两个并发进程P1和P2的程序代码在下面给出。其

中,A、B、C、D和E均为原语。

P1: begin P2: begin