1、操作系统习题及三习题三 同步、通信与死锁一、单项选择题1、在单一处理机上,将执行时间有重叠的几个程序称为A.顺序程序B.多道程序C.并发程序2、进程间的根本关系为。A.相互独立与相互制约B.同步与互斥C.并行执行与资源共享D.信息传递与信息缓冲。D.并行程序3、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的关系。A.同步B.互斥C.竞争D.合作4、在一段时间内,只允许一个进程访问的资源称为。A.共享资源B.临界区C.临界资源D.共享区5、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是。A
2、.S0B.S=0C.S0D.S06、信号量A10S的初值为8,在B8S上执行了10C6次P操作,6次D4V操作后,S的值为。7、临界区是指 ( )。并发进程中用于实现进程互斥的程序段B并发进程中用于实现进程同步的程序段C并发进程中用户实现进程通信的程序段D并发进程中与共享变量有关的程序段8、以下对线程的描述中, ()是错误的。A不同的线程可执行相同的程序B线程是资源的分配单位C线程是调度和执行单位D同一进程中的线程可共享该进程的主存空间9、P,V操作是A.两条低级进程通信原语C.两条系统调用命令10、假设P,V操作的信号量A.0个B.1个11、是一种只能进行A.调度B.进程B.两组不同的机器指
3、令D.两条高级进程通信原语S初值为2,当前值为-1,那么表示有C.2个D.3个P操作和V操作的特殊变量C.同步D.信号量等待进程。A.12、下面的表达中正确的选项是。操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同为了防止发生进程死锁,各进程只能逐个申请资源C.操作系统用 PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息A.进程同步是指某些进程之间在逻辑上的相互制约关系13、对于两个并发进程,设互斥信号量为mutex,假设mutex=0,那么表示没有进程进入临界区表示有一个进程进入临界区表示有两个进程进入临界区14、发生死锁的必要条件有四个,要防止死锁的发生,
4、可以破坏这四个必要条件,但破坏条件是不太实际的。A互斥B不可抢占C局部分配D循环等待15、资源的按序分配策略可以破坏条件。A互斥使用资源B占有且等待资源C非抢夺资源D循环等待资源16、在的情况下,系统出现死锁。计算机系统发生了重大故障B有多个封锁的进程同时存在C假设干进程因竞争资源而无休止地相互等待他方释放己占有的资源D资源数大大小于进程数或进程同时申请的资源数大大超过资源总数17、银行家算法是一种算法。A死锁解除B死锁防止C死锁预防D死锁检测18、某系统中有 3个并发进程,都需要同类资源少资源数是。4个,试问该系统不会发生死锁的最A9B10C11D1219、信箱通信是一种通信方式。A.直接通
5、信B.间接通信C.低级通信D.信号量20、并发进程失去了封闭性是指()。多个相对独立的进程以各自的速度向前推进并发进程共享变量,其执行结果与速度有关二、填空题1、假设一个进程已进入临界区,其他欲进入临界区的进程必须。2、用P,V操作管理临界区时,任何一个进程在进入临界区之前应调用操作,退出临界区时应调用操作。3、用信箱实现通信时,应有和两条根本原语。4、有m个进程共享同一临界资源,假设使用信号量机制实现对临界资源的互斥访问,那么信号量值的变化范围是。5、死锁产生的必要条件有四个,即、6、银行家算法中,当一个进程提出的资源请求将导致系统从进入拒绝它的资源请求。7、PV操作也可看作为进程间的一种通
6、信方式,由于只交换了少量的信息,故称为。时,系统就。8、在多线程操作系统中,线程与进程的根本区别在于进程作为是单位。单位,而线程9、界区是指并程中与10、操作系中信号量的与有关的程序段_ _的使用情况有关,它的能由来改。三、简答题1、什么是程的互斥与同步?2、一个程入界区的度原是什么?3、在操作系中, P操作和V操作各自的作是如何定的?4、什么并程行可能会生与有关的?如何防止?5、什么采用有序源分配法不会生死?四、应用题1、四个程 A、B、C、D都要一个共享文件制是程 A和程C不能同文件 F,程四个程并行能按系要求使用文件,用BF,系允多个程同文件F。但限和程D也不能同文件 F。了使PV操作行
7、管理,答复下面的:1如何定信号量及初;2在以下的程序中填上适当的P、V操作,以保它能正确并工作:程A程B程C程D1;3;5;7;readF;readF;readF;readF;2;4;6;8;2、有一台算机,有两条 I/O通道,分接一台卡片入机和一台打印机。卡片机把一叠卡片逐一入到冲区B1中,加工理后再搬到冲区B2中,并在打印机上打印,:系要几个程来完成个任?各自的工作是什么?些程有什么的相互制关系?用P、V操作写出些程的同步算法。3、生者-消者表述如下:一生者程和一消者程通冲区生系。生者程将生的品送入冲区,消者程从中取出品。假定形冲池中共有N个冲区,号0N-1。了描述生者程和消者程,指in和
8、out分指向生者程和消者程当前所用的冲区(buffer),初均0。1置三个信号量两程的同步,分是full、empty和mutex。出它的含及初。2下面是生者程的算法描述,填写相的P、V操作句。while(TRUE);品送往bufferin;in=in+1modN;/*mod取模运算*/;3指出生产者进程算法中的临界区是哪一段程序?4、在银行家算法中,假设出现下述资源分配情况:AllocationNeedAvailableP0003200121622P110001750P213542356P303320652P400140656试问:(1)该状态是否平安?(2)如果进程 P2提出请求Reques
9、t2(1,2,2,2)后,系统能否将资源分配给?5、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸、儿子、女儿三个并发进程的同步。6、哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论:在讨论的间隙四位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如下图。请用信号量及P、V操作说明这四位哲学家的同步、互斥过程。丁刀1叉2¥b丙食品甲b¥刀2叉1乙答案三同步、通信与死锁一、1、C2、B3、A4、C5、A6、C7、D8、B9、A10、B11、D
10、12、D13、B14、A15、D16、C17、B18、B19、B20、D二、填空1、等待2、P、V3、送、接收4、1至(m-1)5、互斥条件、不剥条件、局部分配、路条件6、平安状、不平安状7、低通信8、源分配、度和行位9、共享量10、源、PV操作三、答1程的互斥是指在上本来完全独立的假设干程,由于争同一个源而生的相互制关系。程的同步是程共同完成一任直接生相互作用的关系,也就是,些具有伙伴关系的程在行次序上必遵循确定的律。2一程入界区的度原是:如果有假设干程要求入空的界区,一次允一个程入。任何候,于界区内的程不可多于一个。如已有程入自己的界区,其它所有入界区的程必等待。入界区的程要在有限内退出,
11、以便其它程能及入自己的界区。如果程不能入自己的界区,出CPU,防止程出“忙等象。3P操作序行下述两个作:信号量的减1,即S=S-1;如果S0,程行;如果S0,把程的状置阻塞,把相的PCB入信号量列的末尾, 并放弃理机,行等待直至其它程在S上行V操作,把它放出来止。操作序行下述两个作:S加1,即S=S+1;如果S0,程运行;如果S0,放信号量列上的第一个PCB即信号量指所指向的PCB所的程把阻塞改就,行V操作的程运行。4有交往的并程可能会同使用共享源,如果种情况不加控制,由于程占用理器的、行的速度和外界的影响等,就会引起与有关的。 只要使假设干并程的相关界区互斥行,就可防止造成。5了便于明,不妨
12、系中有m源,n个程,分用 Rl,R2,Rm(1,2,m可看作源号 )和P1,P2,Pn表示。根据有序源分配法可知,程申源必按照源号的升序行,即任何程在占有了Ri源后,再申的源Rj的号j一定大于i。因此在任一刻,系中至少存在一个程Pk,它占有了高号的资源Rh,且它继续请求的资源必然是空闲的,因而Pk可以一直向前推进直至完成,当Pk运行完成后即会释放它占有的所有资源;在Pk完成之后,剩下的进程集合中同样会存在一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以一直向前推进直至完成;以此类推,所有进程均可运行完成,故不会发生死锁。四、应用题1解:1定义二个信号量S1、S2,初
13、值均为1,即:S1=1,S2=1共2分2从1到8分别为:P(S1),V(S1),P(S2),V(S2),P(S1),V(S1),P(S2),V(S2)2、解:系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。R进程受C进程影响,B1放满信息后R进程要等待等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约
14、束:B2中信息放满后P进程才可从中取出它们,进行打印。信号量含义及初值:B1full缓冲区B1满,初值为0;B1empty缓冲区B1空,初值为0;B2full缓冲区B2满,初值为0;B2empty缓冲区B2空,初值为0;R进程C进程P进程输入信息写入缓冲区B1;V(B1full);P(B1full);P(B2full)P(B1empty);从B1中取出信息;从B2中取出信息进行打印;加工信息;V(B2empty);结果送入B2;V(B1empty);V(B2full);P(B2empty);(3答:1full表示放有产品的缓冲区数,初值为0;empty表示可供使用的缓冲区数,初值为N;mute
15、x为互斥信号量,初值为1,表示互斥进入临界区。2Pempty,Pmutex,Vmutex,Vfull3生产者进程算法中的临界区是如下程序段:产品送往bufferin;in=(in+1)modN;/*mod为取模运算*4解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的平安性分析情况:WorkNeedAllocationWork+AllocationFinishP01622001200321654trueP31654065203321986trueP419860656001419910trueP1199101750100029910trueP229910235613543121
16、414true从上述分析中可以看出,此时存在一个平安序列P0,P3,P4,Pl,P2,故该状态是平安的。2P2提出请求Request2(1,2,2,2),按银行家算法进行检查:Request2(1,2,2,2)Need2(2,3,5,6)Request2(1,2,2,2)Available(1,6,2,2)试分配并修改相应数据结构,资源分配情况如下:AllocationNeedAvailableP0003200120400P110001750P225761134P303320652P400140656再利用平安性算法检查系统是否平安,可用资源Available0,4,0,0已不能满足任何进程的
17、需要,故系统进入不平安状态,此时系统不能将资源分配给P2。5解:在此题中,应设置三个信号量S,So,Sa,信号量S表示盘子是否为空,其初值为1;信号量 So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下:intS=1;intSo=0;intSa=0;maintcobeginfather;son;daughter;coendfather()while(1)P(S);将水果放入盘中:If (放入的是桔子elseV(Sa):)V(So);son()while(1)P(So);从盘中取出桔子;V(S):吃桔子;daughter()while(1)P(Sa):从盘
18、中取出苹果;V(S):吃苹果;6解:在此题中,应设置四个信号量forkl、fork2、knifel、knife2,其初值均为表示资源叉1、叉2、刀1、刀2是否可用。同步描述如下:1,分别int fork1=l;int fork2=1;int knife1=l;int knife2=l;main()cobeginPa();/*分别用进程Pa、Pb、Pc、Pd代表哲学家甲、乙、丙、丁的活动*/Pb();Pc();Pd();coendPa()while(1)P(knife1);P(fork1);进餐;V(knife1);V(fork1);讨论问题:Pb()while(1)P(knife2);P(fork1);进餐;V(knife2);V(fork1);讨论问题;Pc()while(1)P(knife2);P(fork2);进餐;V(knife2);V(fork2);讨论问题:Pd()while(1)P(knife1);P(fork2);进餐:V(knife1);V(fork2);讨论问题;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1