第二章 进程管理 练习题
(一)单项选择题
1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。 A.并发执行 B.顺序执行 C.并行执行 D.同时执行 2. 引入多道程序设计技术后,处理器的利用率( )。
A.无改善 B.极大地提高 C.降低了 D.无变化,仅使程序执行方便 3.计算机系统采用多道程序设计技术后,( )。
A.缩短了每个程序的执行时间 B.系统效率随并行工作道数成比例增长 C.提高了系统效率 D.使用设备时不会发生冲突 4.进程是( )。
A.一个系统软件 B.与程序概念等效 C.存放在内存中的程序 D.执行中的程序
5.进程的( )和并发性是两个很重要的属性。
A.动态性 B.静态性 C.易用性 D.顺序性
6.已经获得除( )以外所有运行所需资源的进程处于就绪状态。 A.主存储器 B.打印机 C.CPU D.磁盘空间 7.在一个单处理器系统中,处于运行态的进程( )。
A.可以有多个 B.不能被打断 C.只有一个 D.不能请求系统调用 8.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为( )的。
A. 顺序执行 B. 同时执行 C. 并行执行 D. 并发执行
9.操作系统根据( )控制和管理进程,它是进程存在的标志。
A.程序状态字 B.进程控制块 C.中断寄存器 D.中断装置
10.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。 A.运行队列 B.后备队列 C.等待队列 D.就绪队列 11.临界区是指( )。
A. 并发进程中用于实现进程互斥的程序段 B.并发进程中用于实现进程同步的程序段
C.并发进程中用户实现进程通信的程序段 D.并发进程中与共享变量有关的程序段
12.对于记录型信号量,在执行一次P操作时,信号量的值应( )。 A.不变 B.加1 C.减1 D.减指定数值
13.在执行signal操作时,当信号量的值( )时,应释放一个等待该信号量的进程。
A.0 B.<0 C.>=0 D.<=0
14.wait、signal操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。 A.初始化程序 B.原语 C.子程序 D.控制模块 15.进程间的互斥与同步分别表示了各进程间的( )。
A.竞争与协作 B.相互独立与相互制约 C.不同状态 D.动态性与并发性
16.并发进程在访问共享资源时的基本关系为( )。 A.相互独立与有交往的 B.互斥与同步
C.并行执行与资源共享 D.信息传递与信息缓冲
17.在间接通信时,用send(N,M)原语发送信件,其中N表示( )。 A.发送信件的进程名 B.接收信件的进程名 C信箱名 D.信件内容 18.下列对线程的描述中,( )是错误的。
A.不同的线程可执行相同的程序 B.线程是资源分配单位
C.线程是调度和执行单位 D.同一进程中的线程可共享该进程的主存空间 (二)填空题
1.多道程序设计提高了系统的吞吐量,但可能会__延长___某些程序的执行时间。 2.把一个程序在一个数据集上的一次执行称为一个___进程_____。 3.程序是静止的,进程是___动态的_____。
4.进程的三种基本状态为:阻塞态、__就绪态___和运行态。
5.进程状态变化时,运行态和__阻塞态__都有可能变为__就绪态___。
6.同时执行的进程是__交替(轮流)____占用处理器的,这些进程可称为并发执行的。
7.每个进程都是有生命期的,即从__创建___到消亡。 8.操作系统依据__PCB______对进程进行控制和管理。 9.进程有两种基本队列:_就绪队列_和__阻塞队列___。
10.可再现性是指当进程再次重复执行时,必定获得_相同_的结果。
11.一个进程的工作在没有全部完成之前,另一个进程就可以开始工作,则称这些进程为__并发执行___。
12.利用PV操作管理相关临界区时,必须成对出现,在进入临界区之前要调用_P_,在完成临界区操作后要调用__V____。
13.若信号量的初值为1,用wait、signal操作能限制一次只有__1__个进程进入临界区操作。
14.用wait、signal操作实现进程同步时,调用_wait__测试消息是否到达,调用_signal_发送消息。
15.进程的互斥实际上是进程__同步____的一种特殊情况。 16.wait、signal操作也可看作进程间的一种通信方式,由于只交换了少量的信息,故称为__低级通信____。
17.通过专门的通信机制实现进程间交换大量信息的通信方式称为_高级通信_。 18.最基本的通信原语有两条,它们是_send_____原语和__receive____原语。
19.线程是处理器的独立__调度和运行的____单位,多个线程可以__并发__执行。 20.线程在生命周期内会经历__就绪__、_运行__和__阻塞_之间各种状态变化。 21.在用PV操作实现进程互斥时,调用__P____相当于申请一个共享资源,调用_V__相当于归还共享资源的使用权。
22.在多线程操作系统中,线程与进程的根本区别在于进程作为_资源分配_单位,而线程是_独立调度和运行_单位。 (三)简答题 (参考课件和教材)
1.为什么要引入进程?进程和线程有什么区别? 2.什么是临界资源、临界区?
3.在生产者和消费者问题中,若对调生产者(或消费者)进程中的两个P操作和V操作,可能发生什么情况,试说明之。 (四)算法题
1. 假设司机和售票员的工作流程如下(司机:启动开车、正常行车、到站停车;售票员:开车门、关车门、售票),则用PV操作如何实现司机和售票员之间的同步(提示,初始状态为停车而还没开门状态,即乘客还没下车)。
分析:首先确定进程间的关系。司机到站停车后,售票员方可工作。售票员关车门后,司机才能工作。因此,司机与售票员间是一种同步关系。
再确定信号量及其值。司机设置信号量run,用于判断司机能否启动车辆,初值为0(因为初态是车已停但没开车门,得等关门后才能启动)。售票员设置信号量stop,用于判断是否停车,售票员是否能够开车门,初值为1(因为初态是停车状态)。 Semaphore stop=1, run=0; Process driver()
{ while(1){
P(run); 启动车辆; 正常行车; 到站停车; V(stop); } }
Process conductor()
{ while(1){
P(stop); 开门; 关门; V(run); 售票;}
}
2. 有一个仓库,可以存放A和B两种产品。要求: 1)每次只能存入一种产品(A或B);
2)?N 分析: 生产A的进程和生产B的进程之间存在互斥和同步关系,互斥访问仓库,A和B在数量上的同步,即条件2。 设置互斥信号量mutex,用于互斥访问仓库,初值为1;设置同步信号量Sa,用于表示A和B所允许的最大数量之差,初值为M-1;设置同步信号量Sb,用于表示B和A所允许的最大数量之差,初值为N-1; 对于Sa和Sb的理解:若只放A,而不放B,则A最多可放M-1个后被阻塞,因此生产A的进程每操作一次就应当将Sa-1,为0时就被阻塞;每当放入一个B,则可令Sa+1,表明A可以多一次放入的机会。同理,若只放入B,而不放A