1、计算机专业基础综合(操作系统)模拟试卷 2及答案解析(总分:66.00,做题时间:90 分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_2.进程处于( )等待状态时,它是处于非阻塞状态的。(分数:2.00)A.等待从键盘输入数据B.等待协作进程的一个信号C.等待操作系统分配 CPU时间D.等待网络数据进入内存3.下列叙述中,错误的是( )。(分数:2.00)A.操作系统是用户与计算机之间的接口B.程序的并发执行,使程序失去了顺序执行时具有的封闭性和可再现性,程序与程序的执行不再一一
2、对应C.进程从一个状态到另一个状态的转换,都是靠使用不同的原语来实现的D.在单 CPU系统中,任何时刻处于就绪状态的进程有多个,而且只有处于就绪状态的进程经调度程序选中后才可进入运行状态4.进程调度是从( )选择一个进程投入运行的。(分数:2.00)A.就绪队列B.等待队列C.作业后备队列D.提交队列5.下列叙述中,正确的是( )。(分数:2.00)A.分时系统中,时间片越小,响应时间越长B.多道程序的引入,主要是为了提高 CPU及其他资源的利用率C.飞机票订票系统是分时系统D.PCB是进程存在的唯一标志,而程序是系统感知进程存在的唯一实体6.一个进程被唤醒,意味着( )。(分数:2.00)A
3、.该进程重新占有了 CPUB.进程状态变为就绪C.它的优先权变为最大D.其 PCB移至就绪队列的队首7.进程和程序的本质区别是( )。(分数:2.00)A.存储在内存和外存B.顺序和非顺序执行机器指令C.分时使用和独占使用计算机资源D.动态和静态特征8.系统感知进程的唯一实体是( )。(分数:2.00)A.JCBB.FCBC.PCBD.SJT9.一进程在某一时刻具有( )。(分数:2.00)A.一种状态B.两种状态C.三种状态D.四种状态10.在单处理机的多进程系统中,进程什么时候占用处理机以及决定占用时间的长短是( )。(分数:2.00)A.进程相应的代码长度B.进程总共需要运行的时间C.进
4、程特点和进程调度策略D.进程完成什么功能11.进程从运行状态变为阻塞的原因可能是( )。(分数:2.00)A.输入输出事件发生B.时间片到C.输入输出事件完成D.某个进程被唤醒12.进程创建原语的任务是( )。(分数:2.00)A.为进程编制程序B.为进程建立 PCB表C.为进程分配 CPUD.为进程分配所需的各种资源13.进程被创建后即进入( )排队。(分数:2.00)A.阻塞队列B.就绪队列C.缓冲队列D.运行队列14.多道程序系统中,( )的作用是从就绪状态中挑选一个进程投入运行。(分数:2.00)A.作业调度B.交换调度C.进程调度D.SPOOLing调度15.多道系统环境下,操作系统
5、分配资源以( )为基本单位。(分数:2.00)A.作业B.指令C.程序D.进程16.进程调度主要负责( )。(分数:2.00)A.选作业进入内存B.选一进程占有 CPUC.建立一进程D.撤销一进程17.出现下列的情况可能导致死锁的是( )。(分数:2.00)A.进程释放资源B.一个进程进入死循环C.多个进程竞争资源出现了循环等待D.多个进程竞争使用共享型的设备18.“可抢占”和“不可抢占”的优先级调度算法相比,( )。(分数:2.00)A.前者开销小B.前者开销大C.两者开销大致相同D.两者开销不能相比19.一个进程获得了除 CPU以外的所有资源,则该进程可能处于( )状态。(分数:2.00)
6、A.运行B.就绪C.等待D.就绪和等待20.银行家算法在解决死锁问题中是用于( )的。(分数:2.00)A.预防死锁B.避免死锁C.检测死锁D.解除死锁21.保护现场是指将现场信息保存至( )。(分数:2.00)A.磁盘B.各相应的寄存器C.进程的 PCB中D.内存系统区二、综合应用题(总题数:12,分数:24.00)22.综合应用题 41-47小题。(分数:2.00)_23.简述判断死锁的必要条件。(分数:2.00)_24.假定系统有三个并发进程 read、move 和 print共享缓冲器 B1和 B2。进程 read负责从输入设备上读信息,每读出一条记录后把它存放到缓冲器 B1中。进程
7、move从缓冲器 B1中取出一条记录,加工后存入缓冲器 B2。进程 print将 B2中的记录取出打印输出。缓冲器 B1和 B2每次只能存放一条记录。要求三个进程协调完成任务,使打印出来的与读入的记录的条数,次序完全一样。请用 wait和 signal原语写出它们的并发程序。(分数:2.00)_25.举例说明,P、V 操作为什么要求设计成原语(即对同一信号量上的操作必须互斥)。 P(S)操作: Svalue-; if(Svalue=0) Remove a process P from SL: Wakeup(P); (分数:2.00)_26.并发使得处理机的利用率得到提高,其主要原因是处理机与
8、I/O可以同时为多个进程服务,也即处理机与 IO 设备真正地并行。但是处理机的利用率提高并不是简单地将两个进程的处理机利用率相加,而是遵循定的规律。现在有一个计算机系统采用多道程序技术实现了并发,调度算法采用时间片轮转,时间片很小可以不计进程并发时的次序。忽略计算机系统的开销。 假设进程创建时间和完全占有 CPU运行的确切时间如下表所示。已知其 IO 繁忙率为 80,处理机的利用率为 20。 请计算并填写下列空格和图表空格处。 (分数:2.00)_27.设有一缓冲池 P,P 中含有 10个可用缓冲区,一个输入进程将外部数据读入 P,另有一个输出进程将P中数据取出并输出,如下所示。若进程每次操作
9、均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的设置。 输入进程 输出进程 L:读入数据 L:从一满缓冲区中取出数据 将数据写入一空缓冲区将 数据输出 GOTO L GOTO L(分数:2.00)_28.一个 SPOOLing系统由输入进程 I、用户进程 P、输出进程 O、输入缓冲区、输出缓冲区组成。进程 I通过输入缓冲区为进程 P输入数据,进程 P的处理结果通过输出缓冲区交给进程 0输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPOOLing 系统的数据块通信原语保证始终满足:i+o()max。其中,max 为磁盘容量(以该
10、数据块为单位),i 为磁盘上输入数据块总数,o为磁盘上输出数据总数。 该 SPOOLing系统运行时: (1)只要有输入数据,进程 I终究会将它放入输入缓冲区; (2)只要输入缓冲区有数据块,进程 P终究会输入、处理并产生结果数据写到输出缓冲区; (3)只要输出缓冲区有数据块,进程 O终究会输出它。 请说明该 SPOOLing系统在什么情况下死锁,并说明如何修正约束条件(1)避免死锁,同时仍允许输入数据块和输出数据块存储在同一个磁盘上。(分数:2.00)_29.什么是 AND信号量?请利用 AND信号量写出生产者一消费者问题的解法。(分数:2.00)_30.测量控制系统中的数据采集任务把所采集
11、的数据送一个单缓冲区,计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。(分数:2.00)_31.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的解决算法。(分数:2.00)_32.为什么进程在进入临界区之前应先执行“进入区”代码,在退出临界区后又执行“退出区”代码?(分数:2.00)_33.我们为某临界区设置一把锁 W,当 W=1时表示关锁,W=0 时表示锁已打开。试写出开锁原语和关锁原语,并利用它们去实现互斥。(分数:2.00)_计算机专业基础综合(操作系统)模拟试卷 2答案解析(总分:66.00,做题时间:90 分钟)一、单项选择题(总题
12、数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_解析:2.进程处于( )等待状态时,它是处于非阻塞状态的。(分数:2.00)A.等待从键盘输入数据B.等待协作进程的一个信号C.等待操作系统分配 CPU时间 D.等待网络数据进入内存解析:3.下列叙述中,错误的是( )。(分数:2.00)A.操作系统是用户与计算机之间的接口B.程序的并发执行,使程序失去了顺序执行时具有的封闭性和可再现性,程序与程序的执行不再一一对应C.进程从一个状态到另一个状态的转换,都是靠使用不同的原语来实现的 D.在单 CPU系统中,任何
13、时刻处于就绪状态的进程有多个,而且只有处于就绪状态的进程经调度程序选中后才可进入运行状态解析:解析:从用户的角度看,操作系统是用户使用计算机的桥梁,用户通过操作系统的两类接口来达到操纵计算机的目的。选项 A正确。 选项 B的叙述也是正确的,因为这正是引入进程概念的原因。 进程从一个状态到另一个状态的转换是一个非常复杂的过程,除了要使用不同的原语外,有时还要借助于硬件触发器才能完成。例如,UNIX 系统中,从系统态到用户态的转换要借助硬件触发器。因此,选项 C错误。 处于就绪状态的进程已经获得了除 CPU之外的所有资源,由于只有一个 CPU,任何时刻就只能有一个进程获得 CPU,而其他的就只能在
14、就绪状态对应的队列上排队等待调度程序的调度。所以选项 D也正确。4.进程调度是从( )选择一个进程投入运行的。(分数:2.00)A.就绪队列 B.等待队列C.作业后备队列D.提交队列解析:解析:处于就绪队列的进程是获得了除处理机以外的所有资源处于准备执行的状态。进程调度就是负责从就绪队列中挑选进程投入运行的。5.下列叙述中,正确的是( )。(分数:2.00)A.分时系统中,时间片越小,响应时间越长B.多道程序的引入,主要是为了提高 CPU及其他资源的利用率 C.飞机票订票系统是分时系统D.PCB是进程存在的唯一标志,而程序是系统感知进程存在的唯一实体解析:解析:分时系统的响应时间 Tnq,n
15、是用户数目,而 q是时间片。当在用户数目一定的情况、下,时间片越小,响应时间越短。因此,选项 A错误。 在单道程序环境中,系统的全部资源为一个作业所独占,如果该作业在进行输入或输出时,CPU 仍然被它所占有,处于等待状态。由于 CPU与外设处理速度上的差异,如果采用多道程序设计技术,当某个作业输入或输出时,CPU 就可处理其他的作业,其他资源也是类似的。因此,选项 B正确。 飞机票订票系统是实时信息处理系统。所以,选项 C错误。 PCB 是进程存在的唯一标志,也是系统感知进程存在的唯一实体,而进程的程序部分描述了进程所要完成的功能。因此,选项 D错误。6.一个进程被唤醒,意味着( )。(分数:
16、2.00)A.该进程重新占有了 CPUB.进程状态变为就绪 C.它的优先权变为最大D.其 PCB移至就绪队列的队首解析:解析:进程被唤醒是进入就绪队列。是否插入到就绪队列的什么地方,取决于就绪的管理方法和进程调度的算法。如果进程调度是最高优先数优先,该进程按优先数插入该队列中;如果该队列是按到达的先后次序排列的,则按到达的先后插入。7.进程和程序的本质区别是( )。(分数:2.00)A.存储在内存和外存B.顺序和非顺序执行机器指令C.分时使用和独占使用计算机资源D.动态和静态特征 解析:解析:程序是指令的集合,而进程是可以和其他程序并发执行的程序的一次执行过程。程序可以作为资料长期保存,而进程
17、有从产生到消亡的过程。8.系统感知进程的唯一实体是( )。(分数:2.00)A.JCBB.FCBC.PCB D.SJT解析:解析:进程控制块 PCB是进程存在的唯一标志。9.一进程在某一时刻具有( )。(分数:2.00)A.一种状态 B.两种状态C.三种状态D.四种状态解析:解析:进程可能处于就绪、运行、等待三种基本状态,但进程在任一时刻只能处于一种状态。10.在单处理机的多进程系统中,进程什么时候占用处理机以及决定占用时间的长短是( )。(分数:2.00)A.进程相应的代码长度B.进程总共需要运行的时间C.进程特点和进程调度策略 D.进程完成什么功能解析:解析:本题考查进程调度的时机和进程调
18、度的策略。进程调度的时机与进程特点有关,例如,进程是 CPU繁忙型还是 IO 繁忙型、自身的优先级等。但是仅有这些特点是不够的,能否得到调度还取决于进程调度策略,若采用优先级调度算法,则进程的优先级才起作用。至于占用处理机运行时间的长短,则要看进程自身,若进程是 IO 繁忙型,运行过程中要频繁访问 IO,也就是说,可能会频繁主动放弃CPU,所以,占用 CPU的时间就不会长,一旦放弃 CPU,则必须等待下次调度。若进程是 CPU繁忙型,则一旦占有 CPU就可能会运行很长时间,但是,运行时间还取决于进程调度策略。多数情况下,交互式系统为改善用户的响应时间,大多采用时间片轮转算法,这种算法在进程长期
19、占用 CPU到一定时间后,会强制将其换下,以保证其他进程的 CPU使用权。所以,本题的正确答案应为选项 C。11.进程从运行状态变为阻塞的原因可能是( )。(分数:2.00)A.输入输出事件发生 B.时间片到C.输入输出事件完成D.某个进程被唤醒解析:解析:正在运行的进程如果要申请输入或输出,这时进程的状态将从运行变为等待,将 CPU让出,等待输入或输出完成。12.进程创建原语的任务是( )。(分数:2.00)A.为进程编制程序B.为进程建立 PCB表 C.为进程分配 CPUD.为进程分配所需的各种资源解析:解析:进程存在的标志是进程控制块,所以创建进程就是要创建 PCB,并将有关参数填入 P
20、CB中。13.进程被创建后即进入( )排队。(分数:2.00)A.阻塞队列B.就绪队列 C.缓冲队列D.运行队列解析:解析:进程创建后,按就绪队列的排列顺序插入其中,等待进程调度程序的调度。14.多道程序系统中,( )的作用是从就绪状态中挑选一个进程投入运行。(分数:2.00)A.作业调度B.交换调度C.进程调度 D.SPOOLing调度解析:15.多道系统环境下,操作系统分配资源以( )为基本单位。(分数:2.00)A.作业B.指令C.程序D.进程 解析:解析:多道环境下,程序这个概念已经难以反映程序并发执行的特点,所以,在多道环境下,为了更好地描述程序并发执行的特点,引入了进程的概念。进程
21、是在多道环境下资源分配的基本单位。16.进程调度主要负责( )。(分数:2.00)A.选作业进入内存B.选一进程占有 CPU C.建立一进程D.撤销一进程解析:解析:进程调度主要负责选择下一个将要运行的进程,进程运行与进程占用 CPU是同一过程。17.出现下列的情况可能导致死锁的是( )。(分数:2.00)A.进程释放资源B.一个进程进入死循环C.多个进程竞争资源出现了循环等待 D.多个进程竞争使用共享型的设备解析:解析:死锁的定义:两个或两个以上并发进程,如果每个进程持有某种资源,而又等待着别的进程释放它或它们现在保持着的资源,否则就不能向前推进。此时,每个进程都占用了一定的资源,但又都不能
22、向前推进。这种现象称为死锁。 死锁的起因:互斥条件,不可剥夺条件,部分分配,环路条件。18.“可抢占”和“不可抢占”的优先级调度算法相比,( )。(分数:2.00)A.前者开销小B.前者开销大 C.两者开销大致相同D.两者开销不能相比解析:解析:因为“可抢占”优先级调度始终保证在处理机上运行的是优先级最高的进程,这样,当处理机正在运行某个进程时,很可能会被其他优先级更高的进程“抢占”引起处理机调度,与“不可抢占”算法相比,前者的调度次数会更频繁,而每调度一次都会引起保护现场、恢复现场的工作,所以“可抢占”的优先级调度算法开销更大。19.一个进程获得了除 CPU以外的所有资源,则该进程可能处于(
23、 )状态。(分数:2.00)A.运行B.就绪 C.等待D.就绪和等待解析:解析:处于就绪状态的进程,只要获得处理机(被进程调度选中),即可变为运行状态。20.银行家算法在解决死锁问题中是用于( )的。(分数:2.00)A.预防死锁B.避免死锁 C.检测死锁D.解除死锁解析:解析:本题考查银行家算法在分配资源时采用安全性检查,从而避免死锁。21.保护现场是指将现场信息保存至( )。(分数:2.00)A.磁盘B.各相应的寄存器C.进程的 PCB中 D.内存系统区解析:解析:进程控制块(PCB)是记录进程有关信息的一块主存,其中包括该进程的中断现场保护区,它是进程存在的唯一标识。二、综合应用题(总题
24、数:12,分数:24.00)22.综合应用题 41-47小题。(分数:2.00)_解析:23.简述判断死锁的必要条件。(分数:2.00)_正确答案:(正确答案:(1)互斥条件。进程竞争的资源必须互斥使用。 (2)请求与保持条件。当前已拥有资源的进程,仍能申请新的资源,而当该进程因为新的资源被其他进程占据而被阻塞时,它仍保持自己的资源不释放。 (3)不可剥夺条件。进程申请的资源只能在使用完毕时自行释放。 (4)循环等待条件。存在一个至少包含两个进程的循环等待链,链中的每个进程都在等待下一个进程所占有的资源。)解析:24.假定系统有三个并发进程 read、move 和 print共享缓冲器 B1和
25、 B2。进程 read负责从输入设备上读信息,每读出一条记录后把它存放到缓冲器 B1中。进程 move从缓冲器 B1中取出一条记录,加工后存入缓冲器 B2。进程 print将 B2中的记录取出打印输出。缓冲器 B1和 B2每次只能存放一条记录。要求三个进程协调完成任务,使打印出来的与读入的记录的条数,次序完全一样。请用 wait和 signal原语写出它们的并发程序。(分数:2.00)_正确答案:(正确答案:begin SR,SM1,SM2,SP:semaphore; B1,B2:record; SR:=1;SM1:=0:SM2:=1;SP:=0; cobegin process read X
26、:record; begin R:(接收来自输入设备上一条记录) X:=接收的一条记录; wait(SR); B1:=X; signal(SMl): goto R; end; Process move Y:record; begin M:wait(SM 1); Y:=B1; Signal(SR) 加工 Y wait(SM2): B2:=Y; signal(SP); goto M; end; Process print Z:record; begin P:wait(SP): Z:=B2: signal(SM2) 打印 Z goto P; end; coend i end:)解析:25.举例说明,
27、P、V 操作为什么要求设计成原语(即对同一信号量上的操作必须互斥)。 P(S)操作: Svalue-; if(Svalue=0) Remove a process P from SL: Wakeup(P); (分数:2.00)_正确答案:(正确答案:例如,用 P、V 操作来实现进程对临界资源互斥使用。此时,只需定义一个信号量s,其初值1,NuLL,并在临界区前执行 P(S)操作,而在临界区后执行 V(S)操作。此时 P、V 操作不设计成原语,那么在执行 P、V 操作时进程可以被中断。由于在初始状态下临界资源空闲,故应允许第一个申请临界资源的进程进入临界区使用临界资源,但如果该进程在执行到 P操
28、作的语句 Svalue 一一后(此时Svalue 的值为 O)便被另一个进程中断,而那个进程也企图通过执行 P(S)操作进入临界区,则第二个进程也必须执行语句 Svalue 一一,从而将 Svalue 的值为一 1,并由于 Svalue0 而被阻塞,而第一个进程再次获得 CPU后也同样由于 svalue0 而被阻塞,这就造成了临界资源虽然空闲但进程却申请不到临界资源的情况,也就是说,此时的 P、V 操作已无法满足同步机制的要求。同样,一个执行 P(S)操作的进程被中断后另一进程去执行 V(s)操作,一个执行 V(S)操作的进程被中断后而另一个进程去执行 P(S)或 V(S)操作,都将发生混乱而
29、难以实现进程同步。因此,P、V 操作必须设计成原语的方式。)解析:26.并发使得处理机的利用率得到提高,其主要原因是处理机与 I/O可以同时为多个进程服务,也即处理机与 IO 设备真正地并行。但是处理机的利用率提高并不是简单地将两个进程的处理机利用率相加,而是遵循定的规律。现在有一个计算机系统采用多道程序技术实现了并发,调度算法采用时间片轮转,时间片很小可以不计进程并发时的次序。忽略计算机系统的开销。 假设进程创建时间和完全占有 CPU运行的确切时间如下表所示。已知其 IO 繁忙率为 80,处理机的利用率为 20。 请计算并填写下列空格和图表空格处。 (分数:2.00)_正确答案:(正确答案:
30、本题考查的是并发进程之间的计算。计算机引入多道程序设计技术主要是为提高处理机的利用率。在多道程序并发的情况下,处理机的利用率呈现出如下的规律: U=1p n 其中,U 为处理机利用率,P 为 IO 繁忙率,n 为并发进程数。据此,对题目给定的数据进行计算,并将结果填入表格中。 当 1个进程运行时,处理机利用率为 20,这个进程独享该处理机,所以 20的利用率均被使用。在时刻 10:00 到 10:10 期间,进程 0独享处理机。这期间,进程 0实际的处理机时间为 10分钟20=2 分钟。 当 2个进程运行时,根据公式计算得到处理机利用率为 36,2 个进程共享处理机,所以每个进程的处理机的利用
31、率为 18。在时刻 10:10 到 10:15 期间,进程 0和 1共享处理机。这期间,进程 0和 1各自实际的处理机时间为 5362=09 分钟。 当 3个进程运行时,根据公式计算得到处理机利用率为 49,3 个进程共享处理机,所以每个进程的处理机的利用率为 16。在时刻 10:15 到10:20 期间,进程 0、1 和 2共享处理机。这期间,进程 0、1 和 2各自实际的处理机时间为5493=08 分钟。 当 4个进程运行时,根据公式计算得到处理机利用率为 59,4 个进程共享处理机,所以每个进程的处理机的利用率为 15。 从时刻 10:20 开始,4 个进程并发。那么,从图中可以看到,进
32、程 0已经运行了 37 分钟,进程 1运行了 17 分钟,进程 2运行了 08 分钟,进程 3刚运行。根据题目给出的每个进程实际占有处理机的时间,可以看出,进程 0还剩余时间 03 分钟,进程 1还剩余 13 分钟,进程 2还剩余 12 分钟,进程 3还剩余 2分钟,显然,在并发并且平均使用处理机的情况下,进程结束的次序应该为 0、2、1、3。 首先我们计算进程 0还需要运行多长时间结束。经过刚才计算得知,进程 0还剩余 03 分钟,那么,在进程 4并发,处理机利用率为每进程 15的情况下,尚需要时间为 0315=2 分钟,由此得知,到 10:22 时,进程 0结束。 进程 0退出后再计算剩余
33、进程的剩余时间,进程 1,2,3 分别为 10、09、17 分钟,上面已经分析,下一个结束的进程是进程 2,所以,我们计算 0916=56 分钟。注意,此时是 3个进程并发了,处理机的利用率为每进程 16,此处切记不可疏忽。到 10:276,进程 2结束。 同理,进程 2退出以后再计算剩余进程的剩余时间,进程1、3 分别为 01、08 分钟,上面已经分析,下一个结束的进程是进程 1,所以,0118=06 分钟。注意,此时是 2个进程并发了,处理机的利用率为每进程 18。到 10:282,进程 1结束。 同样计算,进程 1退出以后,进程 3的剩余时间为 07 分钟,计算得出 0720=35 分钟
34、,而此时处理机的利用率为每进程 20。到 10:317,进程 3结束。 据此,填写下列各个表格和空格。 根据题意计算得到 U 1 =108=02=20 U 2 =1-08 2 =036=36 U 3 =108 3 =049=49 U 4 =1一08 4 =059=59 因此,表格填写如下: 甘特图中空白括号填写如下图所示: )解析:27.设有一缓冲池 P,P 中含有 10个可用缓冲区,一个输入进程将外部数据读入 P,另有一个输出进程将P中数据取出并输出,如下所示。若进程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的设置。 输入进程 输出进程 L:读入数据
35、 L:从一满缓冲区中取出数据 将数据写入一空缓冲区将 数据输出 GOTO L GOTO L(分数:2.00)_正确答案:(正确答案:(1)设置信号量 mutex,empty,full 初值:mutex=1,empty=10,full=0 (2)设置 wait,signal 操作如下: 输入进程 输出进程 L:读入数据 L:wait(full) wait(empty) wait(mutex) wait(mutex) 从一满缓冲区中取出数据 将数据写入一空缓冲区 signal(mutex) signal(mutex) signal(empty) signal(full) 数据输出 )解析:28.一
36、个 SPOOLing系统由输入进程 I、用户进程 P、输出进程 O、输入缓冲区、输出缓冲区组成。进程 I通过输入缓冲区为进程 P输入数据,进程 P的处理结果通过输出缓冲区交给进程 0输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPOOLing 系统的数据块通信原语保证始终满足:i+o()max。其中,max 为磁盘容量(以该数据块为单位),i 为磁盘上输入数据块总数,o为磁盘上输出数据总数。 该 SPOOLing系统运行时: (1)只要有输入数据,进程 I终究会将它放入输入缓冲区; (2)只要输入缓冲区有数据块,进程 P终究会输入、处理并产生结果数据写到输
37、出缓冲区; (3)只要输出缓冲区有数据块,进程 O终究会输出它。 请说明该 SPOOLing系统在什么情况下死锁,并说明如何修正约束条件(1)避免死锁,同时仍允许输入数据块和输出数据块存储在同一个磁盘上。(分数:2.00)_正确答案:(正确答案:(1)i+omax (2)当 i=max,P 的输出数据无处存放,i 的输入数据占满磁盘时,死锁。 (3)应该增加约束:i+omax,使得输出数据块的长度 o0。)解析:29.什么是 AND信号量?请利用 AND信号量写出生产者一消费者问题的解法。(分数:2.00)_正确答案:(正确答案:此题主要考查进程与死锁的相关转换内容。 (1)为解决并行所带来的
38、死锁问题,在 wait操作中引入 AND条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源一次性地全部分配给进程,用完后一次性释放。 (2)解决生产者一消费者问题可描述如下: var mutex,empty,full:semaphore:=1,n,0; buffer:array0n1of item; in,out:integer:=0,0; begin parbegin producer:begin repeat produce an item in nextp; wait(empty); wait(s1,s2,s3,sn); s1,s2,s3,sn 为执行生产者进程除 empty外
39、其余的条件 wait(mutex); buffer(in):nextp; in:=(in+1)mod n; signal(mutex); signal(full);signal(s1,s2,s3,sn); until false; end consumer:begin repeat wait(full); wait(k1,k2,k3,kn); k1,k2,k3,kn 为执行生产者进程除 full外其余的条件 wait(mutex); nextc:=buffer(out); out:=(out+1)mod n; signal(mutex); signal(empty); signal(k1,k2
40、,k3,kn): consume the item in nextc; until false; end parend end)解析:30.测量控制系统中的数据采集任务把所采集的数据送一个单缓冲区,计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。(分数:2.00)_正确答案:(正确答案:此题主要考查进程间共享缓;中区来实现同步的相关内容。 int mutex=1 int empty=n; int full=0; int in=0; int out=0; main() cobegin send(); obtain(): coend send() whi
41、le(1) collect data in nextp wait(empty): wait(mutex): buffer(in)=nextp; in=(in+1)mod n: signal(mutex): signal(full); send obtain() while(1) wait(full); wait(mutex): nextc:=buffer(out); out:=(out+1)mod n; signal(mutex); signal(empty): culculate the data in nextc; while obtain)解析:31.试利用记录型信号量写出一个不会出现死
42、锁的哲学家进餐问题的解决算法。(分数:2.00)_正确答案:(正确答案:此题主要考查进程控制过程中的信号量技术的运用。 设初始值为 1的信号量 cI表示 I号筷子被拿(I=1,2,3,4,2n),其中 n为自然数。 send(I): begin if I mod 2=1 then P(CI); P(eI 一 1 mod 5); Eat; V(CI 一 1 mod 5); V(CI); else P(eIl rood 5);P(CI); Eat; V(CI); V(CI1 mod 5); end)解析:32.为什么进程在进入临界区之前应先执行“进入区”代码,在退出临界区后又执行“退出区”代码?(分数:2.00)_