一、单项选择题
1.在操作系统中引入“进程”概念的主要目的是(D    )。
选择一项:
A. 改善用户编程环境
B. 使程序与计算过程一一对应
C. 提高程序的运行速度
D. 描述程序动态执行过程的性质
2.进程与程序之间有密切联系,但又是不同的概念。二者的一个本质区别是(    C)。
选择一项:
A. 程序顺序执行,进程并发执行
B. 程序是动态概念,进程是静态概念
C. 程序是静态概念,进程是动态概念
D. 程序保存在文件中,进程存放在内存中
3.在操作系统中,进程的最基本的特征是(A    )。
选择一项:
A. 动态性和并发性
B. 与程序的对应性
C. 执行过程的封闭性
D. 顺序性和可再现性
4.为了描述进程的动态变化过程,采用了一个与进程相联系的(  D ),根据它而感知进程的存在。
选择一项:
A. 进程优先数
B. 进程起始地址
C. 进程状态
D. 进程控制块
5.进程控制块是描述进程状态和特性的数据结构,一个进程( B  )。
选择一项:
A. 可以没有进程控制块
B. 只能有唯一的进程控制块
C. 可以有多个进程控制块
D. 可以和其他进程共用一个进程控制块
6.在单处理机系统中,处于运行状态的进程( A  )。
选择一项:
A. 只有一个
B. 可以有多个
C. 必须在执行完后才能被撤下
D. 不能被挂起
7.已经获得除(  B  )以外的所有运行所需资源的进程处于就绪状态。
选择一项:
a. 存储器
b. CPU
c. 打印机
d. 磁盘空间
8.进程从运行状态变为阻塞状态的原因是( C  )。
选择一项:
A. 时间片到
B. 某个进程被唤醒
C. 输入或输出事件发生
D. 输入或输出事件完成
9.某进程由于需要从磁盘上读入数据而处于阻塞状态。当系统完成了所需的读盘操作后,此时该进程的状态将( B  )。
选择一项:
A. 从运行变为阻塞
B. 从阻塞变为就绪
C. 从就绪变为运行
D. 从运行变为就
10.下列进程状态的转换中,不正确的是(    A )。
选择一项:
A. 从就绪到阻塞
B. 从阻塞到就绪
C. 从就绪到运行
D. 从运行到就绪
11.一个进程被唤醒意味着(  B  )。
选择一项:
A. 该进程重新占有了CPU
B. 进程状态变为就绪
C. 它的优先权变为最大
D. 其PCB移至就绪队列的队首
12.现代操作系统中引入线程以后,进程( D  )。
选择一项:
A. 只是调度运行的单位
B. 失去作用
C. 既是资源分配的单位,又是调度运行的单位
D. 只是资源分配的单位
13.下列关于进程和线程的叙述中,正确的是( A  )。
选择一项:
A. 一个进程可拥有若干个线程
B. 资源分配给线程,处理机分配给进程
C. 一个进程只可拥有一个线程
D. 一个
线程可在若干个进程地址空间活动
14.下列关于引入线程的好处的描述中,不正确的是(B  )。
选择一项:
A. 并发性高,提高效率
B. 利于分配资源
C. 充分发挥多处理器的功能
D. 易于调度,代价低
15.两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的( C  )关系。
选择一项:
A. 互斥
B. 合作
C. 同步   
D. 竞争
16.以下不属于进程高级通信方式的是(B    )。
选择一项:
A. 管道文件方式
B. 进程互斥和同步方式
C. 消息传递方式
D. 共享内存方式
17.在进程通信中,使用信箱方式交换信息的是(B    )。
选择一项:
A. 管道文件方式
B. 消息传递方式
C. 低级进程通信
D. 共享内存方式
18.在一段时间内,只允许一个进程访问的资源称为(  C  )。
选择一项:
A. 共享资源
B. 共享区
C. 临界资源
D. 临界区
19.如果信号量S的值是0 , 此时进程A执行P(S)操作,那么,进程A会( D )。
选择一项:
A. 进入就绪态,让出CPU
B. 继续运行
C. 继续运行,并唤醒S队列头上的等待进程
D. 进入阻塞态,让出CPU
20.若P、V操作的信号量S初值为2,当前值为 -1,则表示有(C    )个等待进程。
选择一项:
A. 0
B. 3
C. 1
D. 2
21.在执行V操作时,当信号量的值(B  ),应释放一个等待该信号量的进程。
选择一项:
A. 大于0
B. 小于等于0
C. 大于等于0
D. 小于0
22.信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为(C )。
选择一项:
A. 6
B. 8
C. 4
D. 10
23.有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为( C  )。
选择一项:
A. 6
B. 9
C. 1
D. 8
24.两个进程争夺同一个资源(C    )。
选择一项:
A. 以上说法都不对
B. 不会死锁
C. 不一定死锁
D. 一定死锁
25.系统出现死锁的原因是( D  )。
选择一项:
A. 资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数
B. 有多个封锁的进程同时存在
C. 计算机系统发生了重大故障
D. 若干进程因竞争资源而无休止地循环等待着,而且都不释放已占有的资源
26.死锁的四个必要条件中,无法破坏的是(C    )。
选择一项:
A. 占有且申请条件
B. 不可抢占条件
C. 互斥条件
D. 循环等待条件
二、判断题
1.简单地说,进程是程序的执行过程。因而,进程和程序是一一对应的。(×)
2.程序在运行时需要很多系统资源,如内存、文件、设备等,因此操作系统以程序为单位分配系统
资源。( ×  )
3.进程执行的相对速度不能由进程自己来控制。(√  )
4.进程控制块(PCB)是专为用户进程设置的私有数据结构,每个进程仅有一个PCB。(×  )
5.进程控制块(PCB)是进程存在的唯一标志。(  √ )
6.在进程状态的转换中,从就绪态转换到阻塞态是不可能实现的。( √  )
7.进程从运行状态变为阻塞状态的原因是输入或输出事件发生。( √  )
8.进程从运行状态变为阻塞状态的原因是时间片到时。(  ×  )
9.一个进程被唤醒意味着该进程重新占有了CPU。(  ×  )
10.如同人类的族系一样,操作系统中众多的进程也存在族系关系,并构成一棵树形的进程族系图。(  √  )
11.进程之间的互斥,主要源于进程之间的资源竞争,从而实现多个相关进程在执行次序上的协调。(× )
12.进程A和进程B都要使用系统中同一台打印机,为了保证打印结果的正确性,两个进程要先后分别使用打印机,这属于进程的同步关系。( ×  )
13.进程的互斥和同步机构交换的信息量大,被归结为高级通信。( ×)
14.管道文件方式属于进程的高级通信。(√  )
15.信号量机制是一种有效地实现进程同步与互斥的工具。信号量只能由P、V操作来改变。(√ )
16.V操作是对信号量执行加1操作,意味着释放一个单位资源,如果加1后信号量的值小于等于零,则从等待队列中唤醒一个进程,现进程变为阻塞状态,否则现进程继续进行。( ×  )
17.系统产生死锁的根本原因是资源有限且操作不当。因此,当系统提供的资源少于并发进程的需求时,系统就产生死锁。(  ×  )
18.解决死锁的方法有死锁的预防、死锁的避免、死锁的检测与恢复。( √)
19.在Linux系统中,用户进程既可以在用户模式下运行,也可以在内核模式下运行。( √ )
三、简答题
1.在操作系统中为什么要引入进程概念?它与程序的区别和联系是什么?
答案:在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程与程序的主要区别是:
进程是动态的;程序是静态的。
进程有独立性,能并发执行;程序不能并发执行。
二者无一一对应关系。一块操
进程异步运行,会相互制约;程序不具备此特征。
但进程与程序又有密切的联系:进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。
2.进程的基本状态有哪几种?
答案:通常在操作系统中,进程至少要有三种基本状态。这三种基本状态是:运行态、就绪态和阻塞态(或等待态)。
3.PCB的作用是什么?它是怎样描述进程的动态性质的?
答案:进程控制块PCB是进程组成中最关键的部分。每个进程有唯一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发等特征是利用PCB表现出来的;PCB是进程存在的唯一标志。
PCB中有表明进程状态的信息:该进程的状态是运行态、就绪态还是阻塞态,利用状态信息来描述进程的动态性质。
4.PCB表的组织方式主要有哪几种?分别简要说明。
答案:PCB表的组织方式主要有:线性方式、链接方式和索引方式。
线性方式是把所有进程的PCB都放在一个表中。
链接方式按照进程的不同状态把它们分别放在不同的队列中。
索引方式是利用索引表记载相应状态进程的PCB地址。
5.进程进入临界区的调度原则是什么?
答案:一个进程进入临界区的调度原则是:
① 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
② 任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③ 进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④ 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
6.简述信号量的定义和作用。P、V操作原语是如何定义的?
答案:信号量一般是由两个成员组成的数据结构,其中一个成员是整型变量,表示该信号量的值,它是与相应资源的使用情况有关的;另一个是指向PCB的指针。当多个进程都等待同一信号量时,它们就排成一个队列,由信号量的指针项指出该队列的头。
信号量通常可以简单反映出相应资源的使用情况,它与P、V操作原语一起使用可实现进程的同步和互斥。
P、V操作原语的定义:
P(S):顺序执行下述两个动作:
  ① 信号量的值减1,即S=S-1;
  ② 如果S≥0,则该进程继续执行;
  如果S<0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止)。
V(S):顺序执行下述两个动作:
  ① S值加1,即S=S+1;
  ② 如果S>0,则该进程继续运行;
  如果S≤0,则释放信号量队
列上的第一个PCB(即信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。
7.计算机系统中产生死锁的根本原因是什么?
答案:计算机系统中产生死锁的根本原因是:资源有限且操作不当。此外,进程推进顺序不合适也可以引发的死锁。
8.发生死锁的四个必要条件是什么?
答案:发生死锁的四个必要条件是:互斥条件,不可抢占条件,占有且申请条件,循环等待条件。
9.一般解决死锁的方法有哪三种?
答案:一般解决死锁的方法有:死锁的预防、死锁的避免、死锁的检测与恢复。
10.是否所有的共享资源都是临界资源?为什么?
答案:不是所有的共享资源都是临界资源。因为临界资源是一次仅允许一个进程使用的资源,而系统中有很多资源可以让多个进程同时使用,例如硬盘、正文段等。
四、应用题
1.用如图所示的进程状态转换图能够说明有关处理机管理的大量内容。
试回答:
① 什么事件引起每次显著的状态变迁?
② 下述状态变迁因果关系能否发生?为什么?
答案:
就绪→运行:CPU空闲,就绪态进程被调度程序选中。
运行→就绪:正在运行的进程用完了本次分配给它的CPU时间片。
运行→阻塞:运行态进程因某种条件未满足而放弃对CPU的占用,如等待读文件。
阻塞→就绪:阻塞态进程所等待的事件发生了,例如读数据的操作完成。
②下述状态变迁:
(A)2→1:可以。运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。
(B)3→2:不可以。任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再由运行态变为就绪态。
(C)4→1:可以。某一阻塞态进程等待的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。
2.系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用P、V操作写出这些进程使用打印机的算法。
答案:因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结果打印完之后,另一个用户再打印。
设三个进程分别为A、B和C。
设一个互斥信号量mutex,其初值为1。
进程A          进程B        进程C
↓                ↓                ↓
p(mutex)    P(mutex)    P(mutex)
使用打印机  使用打印机  使用打印机
V(mutex)  V(mutex)    V(mutex)
↓                ↓                ↓