题目详情

若某航空公司飞机订票系统有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使用权,并唤醒其他进入等待状态售票终端进程。最后售票终端进程输出"票已售完"提示信息。

你可能感兴趣的试题

单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.0
  • B.1
  • C.2
  • D.3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.1、1
  • B.1、2
  • C.2、2
  • D.2、3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.V(S3)和V(S5)V(S6)
  • B.P(S3)和V(S5)V(S6)
  • C.V(S3)和P(S5)P(S6)
  • D.P(S3)和P(S5)P(S6)
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.243ms
  • B.246ms
  • C.254ms
  • D.280ms
查看答案

相关题库更多 +