c语言水果系统链表,CH3讲义.doc

CH3讲义

本章知识点:

进程的顺序性和并发性

分析与时间有关的错误。(★)

进程同步与互斥的概念。

临界区及其调度。(★)

记录型信号量与PV操作。(★★★)

条件变量和管程。(★★)

进程通信种类

消息传递的两种方式及其原语。(★)

本章思考题:

叙述顺序程序设计的特点以及采用顺序程序设计的优缺点。

程序并发执行为什么会失去封闭性和结果可再现性?

叙述并发程序设计的特点以及采用并发程序设计的优缺点。

解释并发进程的无关性和交往性。

并发进程的执行可能产生与时间有关的错误,试各举一例来说明与时间有关错误的两种表现形式。

解释进程的竞争关系和协作关系。

试说明进程的互斥和同步两个概念之间的区别。

什么是临界区和临界资源?对临界区管理的基本原则是什么?

哪些硬件设施可以实现临界区管理?

什么是信号量?如何对它进行分类。

为什么PV操作均为不可分割的原语操作?

从信号量和PV操作的定义,可以获得哪些推论?

叙述AND型信号量机制的特点

叙述一般信量机制的特点

有三个并发进程:R负责从输入设备读入信息,M负责对信号加工处理;P负责打印输出。今提供;

一个缓冲区,可放置K个信息;

二个缓冲区,每个可放置K个信息;

试用PV操作写出三个进程正确工作的流程

没有n个进程共享一个互斥段,如果:

每次只允许一个进程进入互斥段;

每次最多允许m个进程(m≤n)同时进入互斥段。

试问:所采用的互斥信号量初值是否相同?信号量值的变化范围如何?

三个进程并发活动,其算法描述如下,试分析是否有错,如有则指出原因并改正。

Begin

S:=-1;

Cobegin

P1:Begin

……

V(S);

End

P2:Begin

……

V(S)

End;

P3:Begin

P(S)

……

End

Cobegin

End

何谓管程?它有哪些属性?管程中的过程在执行中能被中断吗?为什么?

试比较Hanson和Hoare两种管程实现方法。

已经有PV操作可用作同步工具,为什么还要有消息传递机制。

叙述信件,信箱和间接通信原语。

简述消息缓冲通信机制的实现思想。

什么是管道(pipeline)?如何通过管道机制实现进程间通信?

有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名读者离开时要批销登记信息;假如阅览室共有100个座位。试用:1)信号量和P.V标作;2)管程;来实现用户进程的同步算法

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

管程的同步机制使用条件变量和Wait及Signal,尝试为管程设计一种仅仅使用一个操作的同步机制。

一个快餐厅有4种职员:(1)领班:接受顾客点菜;(2)厨师:准备顾客的饭菜;(3)打包工:将做好的饭菜打包;(4)出纳员-收款并提交食品。每个职员可被看作一个进程,试写出能让四类职员正确并发运行的程序。

在信号量S上作P.V操作时,S的值发生变化,当S>0、S=0、S〈 0时,它们的物理意义是什么?

二个并发进程并发执行,其中,A、B、C、D、E是原语,试给出可能的并发执行路径。

Process P Process Q

begin begin

A; C;

B; D;

C; end;

end;

是否在任何情况下,‘忙式等待’都比‘阻塞等待’方法的效率低?试解释之。

证明信号量与管程的功能是等价的:

(1)用信号量实现管程;

(2)用管程实现信号量。

面包房(Bakery Algorithm)算法,解决互斥问题的另一个算法:

Var choosing:array [0…n-1] of boolean;

number:array [0…n-1] of integer;

Repeat

Choosing [i]:=True;

Number[i]:=1+max ( number [0],…nuber [n-1] );

Choosing[i]:=false;

for j:=0 to n-1 do

begin

while choosing [j] do {nothing};

while number[j]≠0 ∧(number [j], j)<(number[i],i)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值