软考--操作系统知识--PV操作

摘要:
A、 当执行V操作时,执行B操作。执行P操作。时间片耗尽。高优先级进程准备就绪。当PV操作用于管理互斥体使用的资源时,信号量的初始值应定义为.A-1B.1C.-nD.n11.当等待进程被V操作唤醒时,唤醒进程的状态应改变为状态。为了防止操作错误,生产室A中的工人和支持室中的工人应该相互排斥地接近衣架F1,而生产室B中的工人与支持室中工人应该相互独占地接近裤子架F2。

1.任何两个并发进程之间存在着( D)的关系。
A.各自完全独立 B.拥有共享变量 C.必须互斥 D.可能相互制约
2.并发进程执行的相对速度是(D )。
A.由进程的程序结构决定的 B.由进程自己来控制的 C.在进程被创建时确定的 D.与进程调度策略有关的
3.并发进程执行时可能会出现“与时间有关的错误”,这种错误是由于并发进程(A )引起的。 A.使用共享资源 B.执行的顺序性 C.要求计算时间的长短 D.程序的长度
4.并发进程中与共享变量有关的程序段称为(B )。 A.共享子程序 B.临界区 C.管理区 D.公共数据区
5.用来实现进程同步与互斥的PV操作实际上是由( D)过程组成的。 A.一个可被中断的 B.一个不可被中断的 C.两个可被中断的 D. 两个不可被中断的
6.进程从运行态变为等待态可能由于(B )。 A.执行了V操作 B.执行了P操作 C.时间片用完 D.有高优先级进程就绪
7.用PV操作管理互斥使用的资源时,信号量的初值应定义为( A)。 A.任意正整数 B.1 C.0 D.-1
8.用P、V操作管理临界区时,互斥信号量的初值应定义为( B )。
A.任意值 B.1 C.0 D.-1

9.现有n个具有相关临界区的并发进程,如果某进程调用P操作后变为等待状态,则调用P操作时信号量的值必定为(A )。 A.≤0 B.1 C.n-1 D.n
10.用PV操作管理临界区时把信号量的初值定义为1,现已有一个进程在临界区,但有n个进程在等待进人临界区,这时信号量的值为(C )。 A.-1 B.1 C.-n D.n
11.用V操作唤醒一个等待进程时,被唤醒进程的状态应变成(B )状态。 A.执行 B.就绪 C.运行 D.收容
12.进程间的同步是指进程间在逻辑上的相互( B)关系。 A.联接 B.制约
C.继续 D.调用

多项选择题 

1.有关并发进程的下列叙述中,(CDE )是正确的。 A.任何时刻允许多个进程在同一CPU上运行 B.进程执行的速度完全由进程自己控制 C.并发进程在访问共享资源时可能出现与时间有关的错误 D.同步是指并发进程中存在的一种制约关系 E.各自独立的并发进程在执行时不会相互影响
2.一个正在运行的进程调用P(s)后,若S的值为(AD ),则该进程可以继续运行。 A.S>0 B.S<0 C.S≠0 D.S≥0 E.S≤0

判断题
1.有交往的并发进程一定共享某些资源。 ( X)
2.如果不能控制并发进程执行的相对速度,则它们在共享资源时一定会出现与时间有关的错误。 (X )
3.并发进程的执行结果只取决于进程本身,不受外界影响。 (X )
4.多道程序设计必然导致进程的并发执行。 ( √ )

有m个进程共享同一临界资源,若使用信号量机制实现对资源的互斥访问,则信号量值的变化范围是_[1-m,1_]__
对于两个并发进程,设互斥信号量为mutex,若mutex=0,则_B_
A 表示没有进程进入临界区 B 表示有一个进程进入临界区
C表示有一个进程进入临界区,另一个进程等待进入
D 表示有两个进程进入临界区
设系统中有n(n>2)进程,且当前不在执行进程调度程序,试考虑下述4种情况哪种不能发生:A
A没有运行进程,有2个就绪进程,n-2个进程处于等待状态。
B有1个运行进程,没有就绪进程,n-1个进程处于等待状
C有1个运行进程,有1个就绪进程,n-2个进程处于等待状态
D有1个运行进程,有n-1个就绪进程,没有进程处于等待状态

应用题
用P、V操作实现下述问题。桌子上有一个盘子,可以存放一个水果,父亲总是放苹果到盘子中,而母亲总是放香蕉到盘子中;一个儿子专等吃盘中的香蕉,而一个女专等吃盘中的苹果。
设dish=1表示盘子是否为空;apple=0表示盘中是否有苹果;banana=0表示盘中是否有香蕉。

   semaphore dish=1;
   semaphore apple=0;
   semaphore banana=0;
    Main()
      {  cobegin
             father();
             mather();
             son();
             daughter();
         coend  
       }
Father()                                                 
    {  while(ture)    
        {     p(dish);
              将苹果放入盘中;
              v(apple);
          }
      }
Mother()
     {   while(ture)
          { p(dish);
            将香蕉放入盘中;
                v(banana);
          }
     }
 son()
      {  while(ture)
          {     p(banana);
          从盘中取出香蕉;
                v(dish);
               吃香蕉;
          }
      }
daughter()      {  while(ture)          {     p(apple);                从盘中取出苹果;                v(dish);               吃苹果;          }      }

某套装服装厂有甲乙两个制作室和一个配套室。两个制作室分别生产上衣和裤子,每制作一件上衣或裤子后制作室工人都要分别把它们送到配套室的衣架F1和裤架F2上,衣架F1上存放上衣,裤架F2上存放裤子,衣架最多能放50件上衣,裤架最多能放50条裤子。配套室工人每次从架上取一件上衣和一条裤子,然后将它们配成套装,并进行包装。为防止操作出错, 甲制作室工人及配套室工人对衣架F1的存取动作应互斥进行,乙制作室工人及配套室工人对裤架F2的存取动作应互斥进行。用P、V原语进行正确管理,分别描述甲制作室工人、乙制作室工人以及配套室工人的工作过程。
这里写图片描述

解:
(1)设公用信号量mutex1和mutex2控制进程对衣架和裤架的互斥操作
设私用信号量empty1和empty2分别表示衣架和裤架的空位数,
full1表示衣架上的衣服数,full2表示裤架上的裤子数
(2)初始化mutex1=1,mutex2=1,
empty1=50,empty2=50,full1=0,full2=0
(3)描述:
甲制作室工人工作过程:    乙制作室工人工作过程:
L1:生产一件上衣        L2:生产一条裤子
P(empty1)            P(empty2)
P(mutex1)            P(mutex2)
将上衣放到衣架上        将裤子放到裤架上
V(mutex1)           V(mutex2)
V(full1)            V(full2)
Goto L1            Goto L2

配套工人工作过程:
L3:P(full1)
P(full2)
P(mutex1)
P(mutex2)
分别取上衣和裤子进行配套
V(mutex1)
V(mutex2)
V(empty1)
V(empty2)
Goto L3

在一个盒子里,混装了数量相等的黑白围棋子。现在利用自动分拣系统把黑子、白子分开,设分拣系统有两个进程P1和P2,其中进程P1拣白子;进程P2拣黑子。规定每个进程一次拣一子,当一个进程在拣时不允许另一个进程去拣,当一个进程拣了一子时,必须让另一个进程去拣。试写出进程P1和P2能够正确并发执行的程序。
设私有信号量S1=1;S2=0

P1(){            P2(){
P(S1);           P(S2);
拣白子;           拣黑子;
V(S2);}            V(S1);}

设公共汽车上,司机和售票员的活动分别是
司机活动:启动车辆;正常运行;到站停车。 售票员活动:关门;售票;开门。用信号量和P、V操作实现它们的关系。

设置两个信号量:S1、S2,S1表示是否允许司机启动汽车,其初值为0;S2表示是否允许售票员开门,其初值为0。

      semaphore  s1=0;
      semaphore  s2=0;
      main( )
     { 
        Cobegin
          Driver( );
          Busman();
        Coend
      }

 Driver()
     {
       While(true)
       {   p(s1);
          启动车辆;
          正常行车;
          到站停车;
          V(S2);
       }
}



 Busman( )
{  
While(true)
  {  关车门;
V(S1);
 售票;
P(S2);
开车门;
上下乘客;
}
}

免责声明:文章转载自《软考--操作系统知识--PV操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇批处理脚本C# XML序列化实例学习下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】DELPHI 线程类

原文地址:http://yyimen.blog.163.com/blog/static/179784047201211811178223/ Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就...

FreeRTOS系列第20篇---FreeRTOS信号量API函数

FreeRTOS的信号量包括二进制信号量、计数信号量、相互排斥信号量(以后简称相互排斥量)和递归相互排斥信号量(以后简称递归相互排斥量)。我们能够把相互排斥量和递归相互排斥量看成特殊的信号量。 信号量API函数实际上都是宏。它使用现有的队列机制。这些宏定义在semphr.h文件里。假设使用信号量或者相互排斥量。须要包括semphr.h头文件。 二进制信...

Windows多线程多任务设计初步(转)

Windows多线程多任务设计初步 [前言:]当前流行的Windows操作系统,它能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的应用软件无一不是多线...

zookeeper(五) curator 锁机制

分布式锁的应用 分布式锁服务宕机, ZooKeeper 一般是以集群部署, 如果出现 ZooKeeper 宕机, 那么只要当前正常的服务器超过集群的半数, 依然可以正常提供服务持有锁资源服务器宕机, 假如一台服务器获取锁之后就宕机了, 那么就会导致其他服务器无法再获取该锁. 就会造成 死锁 问题, 在 Curator 中, 锁的信息都是保存在临时节点上,...

操作系统知识总结

操作系统 面向进程和线程学习操作系统。 目录 Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 进程线程模型 进程间通信 同步互斥机制 存储管理 网络I/O模型 内容 进程线程模型 线程和进程的概念已经在操作系统书中被翻来覆去讲了很多遍。很多概念虽然都是套话,但没能理解透其中深意会导致很多内容...

操作系统笔记-1

第一章 操作系统引论 ★计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件(或程序集合)。 1.OS的目标:有效性、方便性、可扩充性、开放性 2.OS的作用:1) OS作为用户与计算机硬件系统之间的接口;             ★(用户使用计算机的三种方式:命令、系统调用、图标窗口) 2)OS作为计算机系统资源的管理者;           ...