51、 检测死锁后可采用剥夺进程占有的资源、________和________等办法来解除死锁。
52、 在实际使用中,为了操作系统的安全和可靠,往往采用死锁的________、________和________的混合策略,这样既可保证整个系统不出现死锁,又可以尽可能地提高资源利用率。
53、 通常,线程的定义是____________________________________。在现代操作系统中,资源的分配单位是__________________,而处理机的调度单位是________________,一个进程可以有___________线程。
54、 利用优先级调度算法进行进程调度时,即从就绪队列中选择优先级高的进程,有两种不同的处理方式: 和 。
四、简答题
1、 什么是进程?它与程序相比有哪些特征? 2、 一个进程进入临界区的调度原则是什么?
3、 在一个单CPU的多道程序设计系统中,若在某一时刻有N个进程同时存在,那么处于运行态、等待态和就绪态进程的最小和最大值分别可能是多少?
4、 为什么并发进程执行时可能会产生与时间有关的错误,如何避免? 5、 什么是PV操作,它有什么作用?
6、 假设PV操作用信号量管理某个共享资源,请问当S>0,S=0和S<0时,它们的物理意义是什么? 7、 什么是死锁?死锁的四个必要条件是什么?
8、 操作系统为什么要引入进程?进程与程序的关系是怎样的?
答:现代计算机系统中程序并发执行和资源共享的需要,使得系统的工作情况变得非常复杂,而程序作为机器指令集合,这一静态概念已经不能如实反映程序并发执行过程的动态性,因此,引入进程的概念来描述程序的动态执行过程。这对于我们理解、描述和设计操作系统具有重要意义。
进程定义为程序在并发环境中的执行过程,它与程序是完全不同的概念。主要区别是:(1)程序是静态概念,是永久性软件资源;而进程是动态概念,是动态生亡的暂存性资源。(2)进程是一个能独立运行的单位,能与其他进程并发执行,系统是以进程为单位分配CPU的;而程序则不能作为一个能独立运行单位。(3)程序和进程没有一一对应关系。一个程序在工作时可以由多个进程工作,一个进程在工作时至少对应有一个程序。(4)各个进程在并发执行时会产生制约关系,使各自推进的速度不可预测;而程序作为静态概念,不存在这种异步特征。
进程和程序关系类似生活中的炒菜与菜谱。菜谱相同,而各人炒出来的菜的味道却差别很大。原因是菜谱基本上是一种静态描述,它不可能把所有执行的动态过程中,涉及的时空、环境等因素一一用指令描述清楚。
9、如何理解进程的顺序性与并发性? 答:进程的顺序性与并发性: 1、顺序性
顺序性包括两层含义:(1)内部顺序性,对于一个进程来说,它的所有指令是按序执行的;(2)外部顺序性,对于多个进程来说,所有进程是依次执行的。
例如,假如有P1和P2两个进程,其活动分别为: P1活动:A1 A2 A3 A4 P2活动:B1 B2 B3 B4
顺序执行时,有如下两种情形: 情形1:A1 A2 A3 A4 B1 B2 B3 B4 情形2:B1 B2 B3 B4 A1 A2 A3 A4 2、并发性
并发性包括如下两层含义:(1)内部顺序性,对于一个进程来说,它的所有指令是按序执行的;(2)外部并发性,对于多个进程来说,所有进程是交叉执行的。
例如,对于上面P1和P2两个进程来说,并发执行有许多情形,如: 情形1:A1 B1 B2 A2 A3 B3 A4 B4 情形2:B1 B2 A1 A2 A3 B3 B4 A4
并发进程在其执行过程中,出现哪种交叉情形是不可预知的,这就是并发进程的不确定性,操作系统应当保证:无论出现何种交叉情形,每个进程运行的结果都应当是唯一的,正确的。
10、什么是进程的同步与互斥?
答:进程的同步与互斥是指进程在推进时的相互制约关系。在多道程序系统中,由于进程合作与资源共享,这种进程间的制约称为可能。我们把前者称为进程同步,后者称为进程互斥。
进程同步是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的。同步进程之间的关系如同接力赛跑中的运动员,或生产流水线的每一道工序。
进程互斥是进程之间的间接制约关系。在多道系统中,每次只允许一个进程访问的资源称为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。互斥进程之间的关系如同汽车在交叉路口争用车道,篮球比赛中双方争抢篮板球。
11、什么叫原语?
答:在操作系统中,往往设计一些完成特定功能的、不可中断的过程,这些不可中断的过程称为原语。如P、V操作原语。
12、什么是线程?它与进程有什么关系?
答:线程是进程中执行运算的最小单位,即处理机调度的基本单位。它与进程的关系是:一个线程只能属于一个进程,而一个进程可以有多个线程;资源分配给进程,同一进程的所有线程共享该进程的所有资源;处理机分给线程,即真正在处理机上运行的是线程;线程在运行过程中,需要协作同步,不同进程的线程间要利用消息通信的办法实现同步。
特别注意的是:传统操作系统中的进程概念与现代操作系统中的进程概念不同——简单说,传统操作系统中进程具有分配资源、调度运行两大功能,而现代操作系统中进程只作为分配资源单位,线程才作为调度运行单位。
13、试以生产者—消费者问题说明进程同步问题的实质。
14、用PV操作实现进程间的同步与互斥应该注意什么?
答:用PV操作实现进程间的同步与互斥,应该注意以下四个方面: ⑴ 对每一个共享资源都要设立信号量。互斥时对一个共享资源设立一个信号量;同步时对一个共享资源可能要设立两个或多个信号量,要视由几个进程来使用该共享变量而定;
⑵ 互斥时信号量的初值一般为1;同步时至少有一个信号量的初值大于等于1;
⑶ PV操作一定要成对调用。互斥时在临界区前后对同一信号量作PV操作;同步时则对不同的信号量作PV操作,PV操作的位置一定要正确。
⑷ 对互斥和同步混合问题,PV操作可能会嵌套,一般同步的PV操作在外,互斥的PV操作在内。
五、综合题
1、某系统的进程状态转换图如下图所示,请回答:
执行态 1 2 3 就绪态 4 等待态 ⑴ 引起各种状态转换的典型事件有哪些? ⑵ 当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一个进程作一次状态转换。在什么情况下,当一个进程发生转换3时,能立即引起另一进程发生转换1?试说明是否会发生这些因果转换:2→1;3→2;4→1。
2、某分时系统的进程出现如下图所示的状态变化。
⑤ 运行 等待磁盘读文件 ③ 等待打印机输出结果 ② ⑥ ① 就绪进程队列 ④ 试问: ⑴ 你认为该系统采用的是何种进程调度算法?
⑵ 把图中所示的每一个状态变化的原因填写在下表中。
变 化 原 因 ① ② ③ ④ ⑤ ⑥
3、四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:
⑴ 如何定义信号量及初值;
⑵ 在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:
进程A 进程B 进程C 进程D ? ? ? ? [1] [3] [5] [7] read F read F read F read F [2] [4] [6] [8]
4、判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。
⑴ 设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。
⑵ 设A、B为两个并发进程,它们共享一临界资源。其运行临界区的算法框图如图所示。
5、设有一台计算机,有两条I/O通道,分别接一台输入机和一台打印机。输入机把一批数据逐一输入到缓冲区B1中,加工处理后再搬到B2中,并在打印机上打印,请问:
⑴ 系统要设几个进程来完成这个任务?各自的工作是什么? ⑵ 这些进程间有什么样的相互制约关系? ⑶ 用P、V操作写出这些进程同步算法。
6、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放橘子,儿子专等吃盘中的橘子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸、儿子、女儿三个并发进程的同步。
第三部分 作业管理
一、选择题(选择最确切的一个答案,将其代码填入括号中) 1、 操作系统作业管理的主要功能是( )。 A、作业调度与控制 B、作业提交 C、作业准备 D、编制程序 2、 在操作系统中,JCB是指( )。 A、作业控制块 B、进程控制块 C、文件控制块 D、程序控制块
3、 处于后备状态的作业存放在( )中。 A、外存 B、内存 C、A和B D、扩展内存
4、 作业调度程序从处于( )状态的队列中选取适当的作业调入主存运行。 A、执行 B、提交 C、完成 D、后备 5、 在批处理方式下,操作员把一批作业组织成( )向系统成批输入。 A、作业流 B、程序组 C、子程序 D、作业步 答案-2:A 6、 作业在系统中存在与否的唯一标志是( )。 A、源程序 B、作业说明书 C、作业控制块 D、目的程序 7、 操作系统中的作业管理是一种( )。 A、宏观的高级管理 B、宏观的低级管理 C、系统刚开始加电 D、初始化引导完成 8、 作业调度的关键在于( )。 A、选择恰当的进程管理程序 C、用户作业准备充分
B、选择恰当的作业调度算法 D、有一个较好的操作环境
9、 作业调度是( )。
A、从输入井中选取作业进入输入井 B、从读卡机中选取作业进入输入井 C、从主存中选取作业进程占有CPU
D、从等待设备的队列中选取一个作业进程
10、 按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指( )调度算法。
A、先来先服务 C、定时轮转法 B、 最短作业优先 D、 优先数法
11、 通过直接命令方式提供用户作业的方式是( )。 A、联机作业方式 B、脱机作业方式 C、单独作业方式 D、连续作业方式
12、 操作系统内核与用户程序、应用程序之间的接口是( )。
A、 SHELL命令 B、 图形界面 C、 系统调用 D、 C语言函数
13、 为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配,这项工作是由( )完成的。
A、作业调度 B、中级调度 C、进程调度 D、内存调度 14、 用户在一次计算过程中,或者一次事物处理中,要求计算机完成所做的工作的集合,这是指
( )。
A、进程 B、程序 C、作业 D、系统调用 15、 作业调度又称为[1],它决定将那些在外存储器上的处于[2]状态的作业调入主机内存。
系统经作业调度程序选中一个或多个作业后,就为它们分配必要的内存、设备及软资源。然后控
制权就交给了[3],由[3]将它们变为一个或一组[4],并[5]。
供选择的答案:
[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、为它们分配设备
16、 用户在自己的用户终端上连续键入组成作业的若干命令,无需等待一条命令是否执行完毕。所键入的命令形成了一道命令串,存储在一个系统缓冲区中,由操作系统自动地对这些命令逐步提取并解释进行,最后向用户提供处理结果。在这样的多用户、多作业、多命令串的系统中,前后台作业的执行调度( )。
A、完全由操作系统自动完成,无需用户干预 B、由用户干预完成
C、由系统和用户干预结合完成 D、全由用户完成
17、 在操作系统中,JCB是指( )。
A、作业控制块 B、进程控制块 C、文件控制块 D、程序控制块 18、 下列作业调度算法中,最短的作业平均周转时间是( )。 A、先来先服务法 B、短作业优先法 C、优先数法 D、时间片轮转法
19、 按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指( )调度算法。
A、先来先服务法 B、短作业优先法 C、时间片轮转法 D、优先级法 答案-3:
20、 在进行作业调度时,要想兼顾作业等待时间和计算时间,应选取( )。 A、均衡调度算法 B、响应比高者优先算法