操作系统 第五章 作业

单选题

1、以下关于临界资源和临界区的说法正确的是( )?

A. 临界资源是指可同时多个进程使用的资源,临界区是指访问临界资源的那段程序
B. 临界资源是指一次仅允许一个进程使用的资源,临界区是指访问临界资源的那段程序
C. 临界资源是指用于共享的资源,临界区是指一块共享的区域
D. 临界资源是指不可共享的资源,临界区是指一块不可共享的资源

2、下列有关P、V操作说法错误的是( )?

A. 若S对应资源数量,S>0表示有资源可用,S=0表示无资源可用
B. P表示申请一个资源,V表示释放一个资源
C. 若S对应资源数量,S<0时,V(S)操作会导致错误使得程序终止
D. 若S对应资源数量,S<0时,S的绝对值表示等待该资源的进程数量

(书P154)
在这里插入图片描述
S为信号量,执行V操作时,当信号量的值小于等于0时,应释放一个等待该信号量的进程。
P、V操作是一对原子操作,P操作的作用是申请资源,即将资源数减1,然后判断资源数是否小于0,若小于0,则自我阻塞在当前资源链表中。
V操作的作用是归还资源,将所申请的资源数加一,然后判断资源数是否小于等于0,若小于等于0说明有进程阻塞在当前资源上,唤醒一个当前资源链表中的进程。

多选题

3、【多选】下列关于基本通信方式,说法正确的有( )?

A. 低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如PV操作)
B. 共享存储器通常是在内存种分配一片空间作为共享存储区,需要进行通信的进程把它附加到自己的地址空间中,不需要时则把它取消
C. 高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息
D. 消息传递是以消息为单位在进程间进行数据交换
E. 高级进程通信方式有很多种,大致可归并为三类:共享存储器、管道文件和消息传递
F. 管道文件是连接两个命令的一个打开文件:一个命令向该文件中写入数据,为写者;另一个命令从该文件中读出数据,为读者。
G. 进程通信根据交换信息量的多少分为高级通信和低级通信

主观题

4、写出相应的程序来描述下方所示的前趋图。
在这里插入图片描述

设7个同步信号量f2、f3、f4、f5、f6、f7、f8分别表示进程S2、S3、S4、S5、S6、S7、S8是否可以开始执行,其初值均为0。

semaphore  f2=f3=f4=f5=f6=f7=f8=0;

main ( ){ 

  cobegin

  S1();

  S2();

  S3();

  S4();

  S5();

  S6();

  S7();

  S8();

  coend  

}

这8个进程的语句形式如下:
在这里插入图片描述

知识补充(书P155):
在这里插入图片描述

5、某宠物店提供1个宠物用餐位和10个宠物等待位。假设每次顾客只带一只宠物进店。若等待位有空余,则到店顾客可以从取号机取号并等待服务,取号机每次只允许一位顾客使用。当宠物用餐位空闲时,服务员通过叫号选取一位顾客,允许其带宠物进入用餐。

服务员与顾客的活动过程描述如下:

cobegin
{
  process顾客i
  {
    从取号机获得一个号码;

    等待叫号;

    进入宠物用餐位;
  }

  process服务员
  {
    while(TRUE)
    {
      叫号;
      
      带顾客去宠物用餐位;
    }
  }
}coend

请添加必要的信号量及P、V操作,实现上述过程的互斥与同步。

要求写出完整的过程,说明信号量的用途(含义)并赋初值。

semaphore mutex=1; //互斥使用取号机

semaphore empty=10; //空闲等待位的数量

semaphore full=0; //已占等待位的数量

semaphore service=0; //等待叫号

cobegin

{

  process顾客i

  {

    P(empty);

    P(mutex);

    从取号机获得一个号;

    V(mutex);

    V(full);

    P(service); //等待叫号

    进入宠物用餐位;

  }



  process服务员

  {

    while(TRUE)

    {

      P(full);

      V(empty);

      带顾客去宠物用餐位;

      V(service); //叫号

    }

  }

}coend

知识补充(P156):
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值