【问题2】(4分)设S为信号量,P、V操作的形式化定义如图5-2和图5-3所示,请完成该形式化定义,将应填入(n)处的内容写在答题纸的对应栏中(直接填写编号即可)。图5-2 P操作的形式化定义图5-3 V操作的形式化定义

题目

【问题2】(4分)

设S为信号量,P、V操作的形式化定义如图5-2和图5-3所示,请完成该形式化定义,将应填入(n)处的内容写在答题纸的对应栏中(直接填写编号即可)。

图5-2 P操作的形式化定义

图5-3 V操作的形式化定义


相似考题
更多“ 【问题2】(4分)设S为信号量,P、V操作的形式化定义如图5-2和图5-3所示,请完成该形式化定义,将应填入(n)处的内容写在答题纸的对应栏中(直接填写编号即可)。图5-2 P操作的形式化定义图5-3 V操作的形”相关问题
  • 第1题:

    设S为信号量,P、V操作的形式化定义如下图(a)和(b)所示,请完成该形式化定义,将应填入(n)处的内容写在答题纸的对应栏中。


    正确答案:(1)S-- (2)SO (3)S++ (4)S=0
    (1)S-- (2)SO (3)S++ (4)S=0 解析:信号量是荷兰著名的计算机科学家Dijkstra于1965年提出的一个同步机制,其基本思想是在多个相互合作的进程之间使用简单的信号宋同步。
    在操作系统中,信号量是表示资源的实体,除信号量的初值外,信号量的值仅能由 P操作(又称Wait操作)和V操作(又称Signal操作)改变。
    设S为一个信号量,P(S)执行时主要完成的功能为:先执行S=S-1,若S0,则进程继续运行;若SO,则阻塞该进程,并将它插入该信号量的等待队列中。
    V(S)执行时主要完成的功能为:先执行S=S+1,若S>O,则进程继续执行;若 S≤0,则从该信号量等待队列中移出第一个进程,使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。
    P、V操作的形式化描述如下:
    P(S)
    {
    S --;
    IF(so){
    阻塞该进程;
    将该进程插入信号量s的等待队列;
    }
    }
    V(S)
    {
    S++;
    IF(S= 0){
    从信号量s的等待队列中取出队首进程;
    将其插入就绪队列;
    }
    }

  • 第2题:

    ●在某超市里有一个收银员,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如图1所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0和n。这样图中的a应填写 (17) ,图中的b1、b2应分别填写 (18) 图中的c1、c2应分别填写 (19) 。

    图1工作流程图

    (17) A.P(S1)

    B.P(S2)

    C.P(Sn)

    D.P(Sn)、P(S1)

    (18) A.P(Sn)、V(S2)

    B.P(Sn)、V(S1)

    C.P(S2)、V(S1)

    D.V(S1)、P(S2)

    (19) A.P(S1)、V(S2)

    B.P(Sn)、V(S1)

    C.P(S2)、V(S1)

    D.V(S1)、P(S2)


    正确答案:C,D,A
    【解析】S1是收银员进程的私用信号量;S2是顾客进程的私用信号量。由题意可知:每当有一个顾客进入时,允许进入的人数就-1,所以应该是对信号量Sn的P操作,选C,即P(Sn)。很明显,付款进程和收银员进程是一个多消费者和一个生产者的问题。开始前应该判断收银员进程是否忙。忙则挂起等待,不忙则付款。收银员进程判断是否有人来付款,有人则让其他进程等待,没人则自己挂起等待。收银完毕,则自己允许其他进程调用。因为Sn初值为n,而收银员只有一个同时也只能处理一个付款者。可以排除所有(17)、(18)中的P(Sn)的选项。cacc∥不成立,因为S1和S2信号量没有P,V成对,即只有消费或者生产cd∥不成立,理由同上dadc∥不成立,理由同上dd∥不成立,理由同上由题目定义S1和S2的初始值为0,如果(17)选择C,即P(S2)先运行,V(S1)后运行,即当开始顾客进程中的P(S2),则S2-1=-1,则顾客进程挂起;同时收银员进程执行P(S1),则S1-1=-1,则收银员进程挂起,属于典型的死锁。

  • 第3题:

    阅读下列说明和程序,回答问题l至问题3.将答案填入答题纸的对应栏内。

    【说明】

    在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:

    【程序1】;实现两个变量的值的互换;

    【程序2】:完成某功能的C语言程序;

    【程序3】和【程序4】:是P、V操作的形式化定义,设S为信号量。在多道程序系

    统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和

    互斥两个方面。信号量是解决进程间同步与互斥的有效方法。

    【程序1】

    【程序3】

    P操作的形式化定义

    P (S)

    {

    (1):

    If(2) {

    阻塞该进程;

    将该进程插入信号量S的等待队列

    }

    }

    【程序4】

    V操作的形式化定义:

    V(S)

    {

    (3)

    if(4) {

    从信号量s的等待队列中取出队首进程

    将其插入就绪队列:

    }

    }

    【问题1】(6分)

    执行【程序1】后,没有能够实现两个变量值的交换,为什么?请修改上述函数

    实现两个变量值的交换,要求函数无返回值,形式为:void swap(...)。请将答案填写在

    答题纸中对应的栏目。

    【问题2】(3分)

    请问【程序2】运行结果是什么?

    【问题3】(6分)

    请简述什么是临界资源?什么是临界区?

    请完成【程序3】和【程序4】的形式化定义,将应填入(n)处的内容写在答题纸

    的对应栏中。


    正确答案:
    分析本题考查嵌入式C/C++语言编程基础知识。【问题1】函数swap采用值传递,虽然将形参nl和n2交换了,但是并不影响到实参,所以执行【程序1】后,实参变量并没有完成数据交换。将值传递改成指针传递就可以了。对应的swap函数应修改如下:【问题3】在多道程序系统中,进程是并发执行的,这些进程之间存在着不同的相互制约关系。进程之间的这种制约关系来源于并发进程的合作以及对资源的共享。进程在运行过程中,一般会与其它进程共享资源,而有些资源的使用具有排他性。系统中的多个进程可以共享系统的各种资源,然而其中许多资源一次只能为一个进程所使用,通常把一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机、绘图机等。除物理设备外,还有许多变量、数据等都可由若干进程所共享,它们也属于临界资源。进程中访问临界资源的那段代码称为临界区,也称为临界段。访问临界资源应遵循如下原则:①空闲让进(或有空即进):当没有进程处于临界区时,可以允许一个请求进入临界区的进程立即进入自己的临界区:②忙则等待(或无空则等):当已有进程进入其临界区时,其它试图进入临界区的进程必须等待;③有限等待:对要求访问临界资源的进程,应保证能在有限时间内进入自己的临界区;④让权等待:当进程不能进入自己的临界区时,应释放处理机。信号量是荷兰著名的计算机科学家Dijkstra于1965年提出的一个同步机制,其基本思想是在多个相互合作的进程之间使用简单的信号来同步。在操作系统中,信号量是表示资源的实体,除信号量的初值外,信号量的值仅能由P操作(又称Wait操作)和V操作(又称Signal操作)改变。设S为一个信号量.P(S)执行时主要完成:先执行S=S-I:若S0则进程继续运行;若s<o则阻塞改进程,并将它插入该信号量的等待队列中。v(s)执行时主要完成:先执行S=S+I:若s>o则进程继续执行;若S≤0则从该信号量等待队列中移出第一个进程.使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。P、V操作的形式化描述如下:P(S){S—IF(S<O){阻塞该进程,将该进程插入信号量s的等待队列;}}V(S){s++;IF(S<=0){从信号量S的等待队列中取出队首进程,将其插入就绪队列;}}试题五参考答案【问题1】两个变量不能交换值的原因:因为函数是传值的,函数形参值的交换,并不影响到实参的值的变化。正确的函数编写如下(下面只是范倒,变量名称不作要求):voidswap(int*pnl.int*pn2){inttmp=*pnl;*pnl=*pn2;*pn2=tmp;}【问题2】第一次输出:fun(5)=5第二次输出:fun(7)=13第三次输出:fun(9)=34【问题3]临界资源:一次只能使一个进程访问的资源称为临界资源临界区:进程中访问临界资源的那段代码称为临界区。(l)S-(2)S<0(3)S++(4)S<=0

  • 第4题:

    (a)智能网概念模型中分布功能平面模型如下图所示,请根据此图将应填入(n)处的 字句写在答题纸的对应栏内。


    正确答案:
    (1)SMF(或业务管理功能)
    (2)SCEF(或业务生成功能)
    (3)SDF(或业务数据功能)
    (4)SCF(或业务控制功能)
    (5)SSF(或业务交换功能)
    (6)CCF(或呼叫控制功能)

  • 第5题:

    进程P1、P2、P3、P4、P5的前趋图如下。

    若用PV操作控制进程并发执行的过程,则需要相应于进程执行过程设置5个信号量S1、S2、S3、S4和S5,且信号量初值都等于零。下图中a处应填写( );b和c、d和e处应分别填写(请作答此空),f、g和h应分别填写( ) 。

    A.P(S1)和P(S2)、V(S3)和V(S4)
    B.P(S1)和P(S2)、P(S3)和P(S4)
    C.V(S1)和V(S2)、P(S3)和P(S4)
    D.P(S1)和V(S3)、P(S2)和V(S4)

    答案:D
    解析:
    根据前驱图,P1进程运行结束需要利用V操作分别通知P2和P3进程,所以用V (SI)操作通知P2进程,用V (S2)操作通知P3进程。根据前驱图,P2进程开始运行前必须等待P1进程的通知,需要用P (S1)操作测试PI进程是否运行完,P2进程运行结束而要利用V (S3)操作通知P4进程。同理根据前驱图P3进程开始运行前必须等待P1进程的通知,需要用P(S2)操作测试P1进程是否运行完,P3进程运行到结束需要利用V (S4)操作通知P4进程。根据前驱图,P4进程开始运行前必须等待P2和P3进程的通知,需要用P (S3)和P (S4)操作分别测试P2和P3进程是否运行完,故空f应填写P (S3) P (S4) 0 P4进程运行结束需利用V (S5)操作通知P5进程,故空g应填写V(S5) o根据前驱图,P5进程开始运行前必须等待P4进程的通知,需要用P (S5)操作测试P4进程是否运行故空(17)填写P (S5)。

  • 第6题:

    进程P1、P2、P3和P4的前趋图如下所示

    若用PV操作控制进程P1~P4并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于0。下图中a、b和c处应分别填写(请作答此空);d、e和f处应分别填写( )。

    A.V(S1)V(S2)、P(S1)V(S3)和V(S4)
    B.P(S1)V(S2)、P(S1)P(S2)和V(S1)
    C.V(S1)V(S2)、P(S1)P(S3)和V(S4)
    D.P(S1)P(S2)、V(S1)P(S3)和V(S2)

    答案:C
    解析:
    因为P1是P2和P3的前驱,当P1执行完需通知P2和P3,应采用V(S1)V(S2)操作分别通知P2和P3,故a处应填写V(S1)V(S2);又因为P2是P1和P3的后继,当P2执行前应测试P1和P3是否执行完,应采用P(S1)P(S3)操作测试P1和P3是否执行完,故b处应填写P(S1)P(S3);同理,P2是P4的前驱,当P2执行完应通知P4,应采用V(S4)操作分别通知P4,故C处应填写V(S4)。
    因为P3是P1的后继,当P3执行前应测试P1是否执行完,应采用P(S2)操作测试P1是否执行完,故d处应填写P(S2);又因为P3是P2和P4的前驱,当P3执行完应通知P2和P4,应采用V(S3)V(S5)操作通知P5,故e处应填写V(S3)V(S5);P4是P2和P3的后继,当P4执行前应测试P2和P3是否执行完,应采用P(S4)P(S5)操作测试P2和P3是否执行完,故f处应填写P(S4)P(S5)。

  • 第7题:

    进程P1、P2、P3、P4和P5的前趋图如下所示:

    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。如下的进程执行图中a和b处应分别填写 (请作答此空) ;c和d处应分别填写 ( ) ;e和f处应分别填写 ( ) 。

    A.V(S1)和P(S2)V(S3)
    B.P(S1)和V(S2)V(S3)
    C.V(S1)和V(S2)V(S3)
    D.P(S1)和P(S2)V(S3)

    答案:B
    解析:
    图中有五条箭线,因此需要设置五个信号量,按照从小到大的顺序分别是:P1→P2是S1,P2→P3是S2,P2→P4是S3,P3→P4是S4,P4→P5是S5。每个进程开始的时候执行P操作(P1没有P操作,只有V操作),结束的时候执行V操作,如P2开始的时候执行P(S1)的操作,结束时执行V(S2)的操作。其他同理。

  • 第8题:

    进程P1、P2、P3、P4和P5的前趋图如下所示:

    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。如下的进程执行图中a和b处应分别填写 ( ) ;c和d处应分别填写 (请作答此空) ;e和f处应分别填写 ( ) 。

    A.P(S2)和P(S4)
    B.V(S2)和P(S4)
    C.P(S2)和V(S4)
    D.V(S2)和V(S4)

    答案:C
    解析:
    图中有五条箭线,因此需要设置五个信号量,按照从小到大的顺序分别是:P1→P2是S1,P2→P3是S2,P2→P4是S3,P3→P4是S4,P4→P5是S5。每个进程开始的时候执行P操作(P1没有P操作,只有V操作),结束的时候执行V操作,如P2开始的时候执行P(S1)的操作,结束时执行V(S2)的操作。其他同理。

  • 第9题:

    进程P1、P2、P3、P4和P5的前趋图如下所示:



    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a、b和c处应分别填写(请作答此空);d和e处应分别填写( ),f和g处应分别填写( )。

    A. V(S1)、P(S1)和V(S2)V(S3)
    B. P(S1)、V(S1)和V(S2)V(S3)
    C. V(S1)、V(S2)和P(S1)V(S3)
    D. P(S1)、V(S2)和V(S1)V(S3)

    答案:A
    解析:
    试题的正确的选项为A。根据前驱图,P1进程执行完需要通知P2进程,故需要利用V(S1)操作通知P2进程,所以空a应填V(S1);P2进程需要等待P1进程的结果,故需要利用P(S1)操作测试P1进程是否运行完,所以空b应填P(S1);又由于P2进程运行结束需要利用V(S2)、V(S3)操作分别通知P3、P4进程,所以空c应填V(S2)、V(S3)。

  • 第10题:

    某公司要开发一个招投标市场计算机管理软件项目,具体项目描述如表5-1。表5-2表示分解的项目工作先后顺序。请根据以上描述回答下列问题。17、【问题1】请根据表5-1的项目描述,在对应位置完成项目里程碑甘特图。表5-1 项目描述

    18、【问题2】请根据表5-2,计算每项工作的最早开始时间和最迟开始时间,完成表5-3,并将计算结果填到答题纸的对应位置

    19、【问题3】在描述网络计划图时,由于节点表示方式可以有多种形式,进而有多种形式的网络计划图,如单代号或双代号网络图等。图5-1是网络计划图中节点的一种表示方法。依据图5-1的节点表示格式及工作代码为141的节点示例图(如图5-2所示),完成图5-3所示工作代码为122的节点图,将答案填到对应位置。


    答案:
    解析:

    18、(1)50(2)70(3)70(4)80(5)80(6)110
    19、20
    本题考查软件工程的基本知识。[问题1]甘特图(Gantt chart)是在20世纪初由亨利·甘特开发的。它基本上是一种线条图,横轴表示时间,纵轴表示要安排的活动,线条表示在整个期间上计划的或实际的活动完成情况。甘特图直观地表明任务计划在什么时候进行。本题甘特图的绘制如下图。
    18、[解析] 网络计划时间参数的计算应在确定各项工作的持续时间之后进行。1.网络计划中各项工作的最早开始时间和最早完成时间的计算应从网络计划的起始节点开始,顺着箭线方向依次逐项计算,最早开始时间和最早完成时间计算方法如下:(1)网络计划的起点节点的最早开始时间为零。(2)工作的最早完成时间等于该工作的最早开始时间加上其持续时间。

    (3)工作的最早开始时间等于该工作的各个紧前工作的最早完成时间的最大值。2.网络计划中各项工作的最迟开始时间和最迟完成时间的计算应以项目规定或计算的工期为基准,从网络计划的终止节点,逆着箭线方向依次逐项计算。最迟开始时间和最迟完成时间计算方法如下:(1)某工作的总时差应从网络计划的终点节点开始,逆着箭线方向依次逐项计算。其他工作的总时差等于该工作的各个紧后工作的总时差加该工作与其紧后工作之间的时间间隔之和的最小值。(2)某工作的最迟开始时间等于该工作的最早开始时间加上其总时差之和。(3)某工作的最迟完成时间等于该工作的最早完成时间加上其总时差之和。因此,本题各项工作的最早开始时间、最早完成时间、最迟开始时间及最迟完成时间为:

    19、[解析] 1.计算工作的总时差:工作的总时差等于该工作最迟完成时间与最早完成时间之差,或该工作最迟开始时间与最早开始时间之差。2.计算工作的自由时差:工作自由时差的计算应按以下两种情况分别考虑。(1)对于有紧后工作的工作,其自由时差等于本工作之紧后工作最早开始时间减本工作最早完成时间所得之差的最小值。(2)对于无紧后工作的工作,也就是以网络计划终点节点为完成节点的工作,其自由时差等于计划工期与本工作最早完成时间之差。需要指出的是,对于网络计划中以终点节点为完成节点的工作,其自由时差与总时差相等。此外,由于工作的自由时差是其总时差的构成部分,所以,当工作的总时差为零时,其自由时差必然为零,可不必进行专门计算。本题根据3个节点工作总时差和自由时差的计算,得到122节点的图示如下:

  • 第11题:

    阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。
    【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积 的里程数进行调整。描述会员等级调整的状态图如图 5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图 5-2 所示的类图。




    【问题1】(15分)阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。


    答案:
    解析:
    注意:原版的题目应该是Cbasic、CSilve。(1) virtual double travel(int miles,FrequentFlyer* context)=0(2)context->setState(context->Cbasic)(3)context->setState(context->CSilve)(4)context->setState(context->Cbasic)(5)context->setState(context->CSilve)

  • 第12题:

    问答题
    简述信号量的定义和作用。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所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。
    解析: 暂无解析

  • 第13题:

    进程P1、P2、P3和P4的前趋图如下所示:

    若用PV操作控制进程P1~P4并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S4-S5的初值都等于0。下图中a、b和c处应分别填写①;d、e和f处应分别填写②。

    A.V(S1)V(S2)、P(S1)V(S3)和V(S4)

    B.P(S1)V(S2)、P(S1)P(S2)和V(S1)

    C.V(S1)V(S2)、P(S1)P(S3)和V(S4)

    D.P(S1)P(S2)、V(S1)P(S3)和V(S2)


    正确答案:C
    本题只要将信号量在前趋图中标识出来,题目就非常容易解了。在前趋图中,每个箭头对应一个信号量,编号从左至右,从上至下,由小到大,如图所示。标出信号量之后,从某进程引出的信号量,在该进程末尾需要对信号量执行V操作,而信号量箭头指向的进程开始处应有信号量的P操作。以P1为例,S1与S2从P1发出,所以在P1末尾处要执行V(S1)V(S2),而在P2开始处应执行P(S1)P(S3)。

  • 第14题:

    重新定义P操作: P(s): S=S-1; if s<0 then {将本进程插入相应等待队列的队首}; V操作的定义不变。 使用上述定义的信号量操作。现有n个进程竞争进入一个临界区,需要使用(24),并保证进程能够以正常的次序公平地进入临界区。

    A.1个信号量,初值为1

    B.2个信号量,初值分别为1,0

    C.n-1个信号量,初值均为1

    D.n/2个信号量,初值均为1


    正确答案:C
    解析:本题考查的是信号量,P、V操作,队列等多方面的概念及其运用。回顾正常定义的P、V操作:P(s):s=s-1;ifs0then{将本进程插入相应等待队列的队尾};V(s):s=s+1;ifs≤0then{将本进程插入就绪队列,唤醒相应等待队列的队首进程}:显然,这样可以保证在多个进程竞争进入临界区时,能保证按先等待、先唤醒的次序进入临界区。但是,根据新的P操作定义(V操作定义不变),这时唤醒将以后进先出的次序进行。因此为了保证正常次序,每个等待队列上等待的元素不能超过两个,否则必定会产生不公平现象。根据题意,有n个进程竞争进入一个临界区,考虑临界区的互斥性,只能有一个进程进入,其余进程将进入等待队列。考虑公平性,就需要n-1个队列,也就是n-1个信号量,初值均为1。当n个进程到来时,只有1个进程进入临界区,其他进程分别进入n-1个队列等待,每队一个进程。在队列Si上等待的进程被唤醒,就将进入队列Si+1,上等待,依次下去,直到进入临界区。这时竞争进程流程见下页右侧图。

  • 第15题:

    试题五(共 15 分)

    阅读以下说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

    【说明】

    某公司要开发一个招投标市场计算机管理软件项目,具体项目描述如表 5-1。表 5-2表示分解的项目工作先后顺序。

    请根据以上描述回答下列问题。

    【问题 1】 (5 分)

    请根据表 5-1 的项目描述,在答题纸对应位置完成项目里程碑甘特图。

    【问题 2】 (6 分)

    请根据表 5-2,计算每项工作的最早开始时间和最迟开始时间,完成表 5-3,并将计算结果填到答题纸的对应位置。

    【问题 3】 (4 分)

    在描述网络计划图时,由于节点表示方式可以有多种形式,进而有多种形式的网络计划图,如单代号或双代号网络图等。

    图 5-1 是网络计划图中节点的一种表示方法。依据图 5-1 的节点表示格式及工作代码为 141 的节点示例图(如图 5-2 所示),完成图 5-3 所示工作代码为 122的节点图,将答案填到答题纸的对应位置。


    正确答案:

  • 第16题:

    若某航空公司的飞机订票系统有n个订票终端,系统为每个订票终端创建一个售票终端的进程。假设 Pi(i=1,2,…,n)表示售票终端的进程,Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数,Temp为工作单元。Pi进程的工作流程如图6-3所示,a、b和c处将执行P操作和V操作,则图6-3中a、b和c处应分别填入(11)。

    A.P(S)、V(S)和V(S)

    B.P(S)、P(S)和V(S)

    C.V(S)、P(S)和P(S)

    D.V(S)、V(S)和P(S)


    正确答案:A
    解析:这是一道考查利用P、V操作实现进程间的同步和互斥工作的综合理解题。由于“系统为每个订票终端创建一个售票终端的进程”,“Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数”,可见公共数据区厅/是一个临界资源,最多允许一个终端进程使用,因此需要设置一个互斥信号量S,初值为1。售票终端进程Pi先按照定票要求找到对应的公共数据区Hj,接着执行P(S)操作,用于检查是否有其他的售票终端进程正在使用公共数据区Hj。若有,即执行该操作前S值等于0,则本售票终端进程进入等待状态。若没有,即执行该操作前S值等于1,则将S值减1后将公共数据区Hj值复制给工作单元Temp。若Temp值大等于1,即表示该公共数据区Hj中相应航班有剩余票数,则将Temp值减1后复制给相应的公共数据区Hj,然后执行V(S)操作,表明该售票终端进程交出公共数据区Hj的使用权,并唤醒其他进入等待状态的售票终端进程。最后售票终端进程输出一张相应航班的飞机票。若Temp值小于1,即表示该公共数据区Hj中已没有相应航班的飞机票,则该售票终端进程执行V(S)操作,交出公共数据区Hj的使用权,并唤醒其他进入等待状态的售票终端进程。最后售票终端进程输出“票已售完”的提示信息。因此,(21)空缺处的正确答案为选项A。

  • 第17题:

    进程P1、P2、P3、P4、P5的前趋图如下。

    若用PV操作控制进程并发执行的过程,则需要相应于进程执行过程设置5个信号量S1、S2、S3、S4和S5,且信号量初值都等于零。下图中a处应填写(请作答此空);b和c、d和e处应分别填写( ),f、g和h应分别填写( ) 。

    A.P(S1)和P(S2)
    B.V(S1)和V(S2)
    C.P(S1)和V(S2)
    D.P(S2)和V(S1)

    答案:B
    解析:
    根据前驱图,P1进程运行结束需要利用V操作分别通知P2和P3进程,所以用V (SI)操作通知P2进程,用V (S2)操作通知P3进程。根据前驱图,P2进程开始运行前必须等待P1进程的通知,需要用P (S1)操作测试PI进程是否运行完,P2进程运行结束而要利用V (S3)操作通知P4进程。同理根据前驱图P3进程开始运行前必须等待P1进程的通知,需要用P(S2)操作测试P1进程是否运行完,P3进程运行到结束需要利用V (S4)操作通知P4进程。根据前驱图,P4进程开始运行前必须等待P2和P3进程的通知,需要用P (S3)和P (S4)操作分别测试P2和P3进程是否运行完,故空f应填写P (S3) P (S4) 0 P4进程运行结束需利用V (S5)操作通知P5进程,故空g应填写V(S5) o根据前驱图,P5进程开始运行前必须等待P4进程的通知,需要用P (S5)操作测试P4进程是否运行故空(17)填写P (S5)。

  • 第18题:

    进程P1、P2、P3、P4和P5的前趋图如下所示:

    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。如下的进程执行图中a和b处应分别填写 ( ) ;c和d处应分别填写 ( ) ;e和f处应分别填写 (请作答此空) 。

    A.P(S4)和V(S5)
    B.V(S5)和P(S4)
    C.V(S4)和P(S5)
    D.V(S4)和V(S5)

    答案:A
    解析:
    图中有五条箭线,因此需要设置五个信号量,按照从小到大的顺序分别是:P1→P2是S1,P2→P3是S2,P2→P4是S3,P3→P4是S4,P4→P5是S5。每个进程开始的时候执行P操作(P1没有P操作,只有V操作),结束的时候执行V操作,如P2开始的时候执行P(S1)的操作,结束时执行V(S2)的操作。其他同理。

  • 第19题:

    若某航空公司的飞机订票系统有n个订票终端,系统为每个订票终端创建一个售票终端的进程。假设Pi(i=1,2,…,n)表示售票终端的进程,Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数,Temp为工作单元。PJ进程的工作流程如图所示,a、b和c处将执行P操作和V操作,则图中a、b和c应填入 ( ) 。


    A.P(S)、V(S)和V(S)
    B.P(S)、P(S)和V(S)
    C.V(S)、P(S)和P(S)
    D.V(S)、V(S)和P(S)

    答案:A
    解析:
    这是一道考查利用P、V操作实现进程间的同步和互斥工作的综合理解题。由于"系统为每个订票终端创建一个售票终端的进程","Hj(j=1,2,…,m)表示公共数据区,分别存放各个航班的现存票数",可见公共数据区Hj是一个临界资源,最多允许一个终端进程使用,因此需要设置一个互斥信号量S,初值为1。售票终端进程Pi先按照定票要求找到对应的公共数据区Hj,接着执行P(S)操作,用于检查是否有其他的售票终端进程正在使用公共数据区Hj。若有,即执行该操作前S值等于0,则本售票终端进程进入等待状态。若没有,即执行该操作前S值等于1,则将S值减1后将公共数据区Hj值复制给工作单元Temp。若Temp值大等于1,即表示该公共数据区Hj中相应航班有剩余票数,则将Temp值减1后复制给相应的公共数据区Hj,然后执行V(S)操作,表明该售票终端进程交出公共数据区Hj的使用权,并唤醒其他进入等待状态的售票终端进程。最后售票终端进程输出一张相应航班的飞机票。若Temp值小于1,即表示该公共数据区Hj中已没有相应航班的飞机票,则该售票终端进程执行V(S)操作,交出公共数据区Hj的使用权,并唤醒其他进入等待状态的售票终端进程。最后售票终端进程输出"票已售完"的提示信息。

  • 第20题:

    进程P1、P2、P3、P4和P5的前趋图如下所示:




    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a、b和c处应分别填写( );d和e处应分别填写(请作答此空),f和g处应分别填写( )。

    A. V(S2)和P(S4)
    B. P(S2)和V(S4)
    C. P(S2)和P(S4)
    D. V(S2)和V(S4)

    答案:B
    解析:
    试题的正确的答案为B。根据前驱图,P3进程运行前需要等待P2进程的结果,故需执行程序前要先利用1个P操作,根据排除法可选项只有选项B和选项C。又因为P3进程运行结束后需要利用1个V操作通知P5进程,根据排除法可选项只有选项B满足要求。

  • 第21题:

    进程P1、P2、P3、P4和P5的前趋图如下图所示:



    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号量S1.S2.S3.S4和S5,且信号量S1~S5的初值都等于零。下图中a和b处应分别填写(请作答此空);c和d处应分别填写( ),e和f处应分别填写( )。


    A. V(S1)、P(S2)和V(S3)
    B. P(S1)、V(S2)和V(S3)
    C. V(S1)、V(S2)和V(S3)
    D. P(S1)、P(S2)和V(S3)

    答案:C
    解析:
    根据前驱图,P1进程执行完需要通知P2和P3进程,故需要利用V(S1)V(S2)操作通知P2和P3进程,所以空a应填V(S1)V(S2);P2进程执行完需要通知P4进程,所以空b应填V(S3)。根据前驱图,P3进程运行前需要等待P1进程的结果,故需执行程序前要先利用1个P操作,而P3进程运行结束需要通知P5进程。根据排除法可选项只有选项B和选项C。又因为P3进程运行结束后需要利用1个V操作通知P5进程,根据排除法可选项只有选项B满足要求。根据前驱图,P4进程执行结束需要利用1个V操作通知P5进程,故空e处需要1个V操作;P5进程执行前需要等待P3和P4进程的结果,故空f处需要2个P操作。根据排除法可选项只有选项B和选项C能满足要求。根据试题(27)分析可知,P3进程运行结束是利用V(S4)通知P5进程,故P4进程运行结束是利用V(S5)通知P5进程。

  • 第22题:

    阅读以下说明,回答问题1至问题3,将解答填入对应栏内。【说明】某公司要开发一个招投标市场计算机管理软件项目,具体项目描述如表5-1。表5-2表示分解的项目工作先后顺序。请根据以上描述回答下列问题。17、【问题1】请根据表5-1的项目描述,在对应位置完成项目里程碑甘特图。表5-1 项目描述



    18、【问题2】请根据表5-2,计算每项工作的最早开始时间和最迟开始时间,完成表5-3,并将计算结果填到答题纸的对应位置。



    19、【问题3】在描述网络计划图时,由于节点表示方式可以有多种形式,进而有多种形式的网络计划图,如单代号或双代号网络图等。图5-1是网络计划图中节点的一种表示方法。依据图5-1的节点表示格式及工作代码为141的节点示例图(如图5-2所示),完成图5-3所示工作代码为122的节点图,将答案填到对应位置。



    答案:
    解析:
    17、

    18、(1)50(2)70(3)70(4)80(5)80(6)110
    19、20
    【解析】
    试题五[分析]本题考查软件工程的基本知识。[问题1]甘特图(Gantt chart)是在20世纪初由亨利·甘特开发的。它基本上是一种线条图,横轴表示时间,纵轴表示要安排的活动,线条表示在整个期间上计划的或实际的活动完成情况。甘特图直观地表明任务计划在什么时候进行。本题甘特图的绘制如下图。
    18、[解析] 网络计划时间参数的计算应在确定各项工作的持续时间之后进行。1.网络计划中各项工作的最早开始时间和最早完成时间的计算应从网络计划的起始节点开始,顺着箭线方向依次逐项计算,最早开始时间和最早完成时间计算方法如下:(1)网络计划的起点节点的最早开始时间为零。(2)工作的最早完成时间等于该工作的最早开始时间加上其持续时间。



    (3)工作的最早开始时间等于该工作的各个紧前工作的最早完成时间的最大值。2.网络计划中各项工作的最迟开始时间和最迟完成时间的计算应以项目规定或计算的工期为基准,从网络计划的终止节点,逆着箭线方向依次逐项计算。最迟开始时间和最迟完成时间计算方法如下:(1)某工作的总时差应从网络计划的终点节点开始,逆着箭线方向依次逐项计算。其他工作的总时差等于该工作的各个紧后工作的总时差加该工作与其紧后工作之间的时间间隔之和的最小值。(2)某工作的最迟开始时间等于该工作的最早开始时间加上其总时差之和。(3)某工作的最迟完成时间等于该工作的最早完成时间加上其总时差之和。因此,本题各项工作的最早开始时间、最早完成时间、最迟开始时间及最迟完成时间为:




    19、[解析] 1.计算工作的总时差:工作的总时差等于该工作最迟完成时间与最早完成时间之差,或该工作最迟开始时间与最早开始时间之差。2.计算工作的自由时差:工作自由时差的计算应按以下两种情况分别考虑。(1)对于有紧后工作的工作,其自由时差等于本工作之紧后工作最早开始时间减本工作最早完成时间所得之差的最小值。(2)对于无紧后工作的工作,也就是以网络计划终点节点为完成节点的工作,其自由时差等于计划工期与本工作最早完成时间之差。需要指出的是,对于网络计划中以终点节点为完成节点的工作,其自由时差与总时差相等。此外,由于工作的自由时差是其总时差的构成部分,所以,当工作的总时差为零时,其自由时差必然为零,可不必进行专门计算。本题根据3个节点工作总时差和自由时差的计算,得到122节点的图示如下:

  • 第23题:

    简述信号量的定义和作用。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所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。