11、桌上有一空盘子,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用wait和signal原语实现爸爸、儿子、女儿三个并发进程的同步。
12、(1)写出wait和signal操作的定义。
(2)有三个进程PA、PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。用wait和signal操作来保证文件的正确打印。
20
13、设某商店内有一个货架,上面摆放着某种商品,货架一共可以摆放100个商品。不断有顾客来此货架选购该商品,每个顾客每次拿走一个商品。如果货架上已经被取空没有商品,顾客就停下来等待。货架旁有一个售货员,当货架上有空位(即货架上不满100个商品)时,售货员就拿来新的商品摆放到货架上,每次摆放一个商品。如果是满的,售货员就停下来休息。要求顾客和售货员不能同时到货架上拿商品或放商品。
请使用生产者和消费者的原理来描述售货员拿来新的商品摆放到货架上与顾客拿走商品的过程。 要求:
(1)初始时货架是满的,有100个商品。
(2)下面给出了顾客进程与售货员进程的程序框架,请自定义信号量并给出初值,并将应执行的wait和signal操作填入到程序中合适的位置,以保证顾客与售货员之间正确的同步、互斥关系。
/* 第i个顾客 */ void 顾客(int i); {
走到货架前;
取一件商品; 离开; }
void 售货员() {
while(TRUE) {
放一件商品到货架上; } }
21
main() {
?? cobegin {
顾客(1); 顾客(2);
??; 顾客(n); 售货员(); } }
14、有一个报箱为A,B两人共同使用,每次只能装一份报纸。A订阅《生活报》,B订阅《新晚报》,投递员C,D分属于生活报和新晚报报社,试用信号量机制来实现A,B,C,D这四个并发进程的同步与互斥活动,并说明所定义信号量的初值及含义。
15、计算机系统中的数据库文件常被多个进程共享,但其中某些进程可能只要求读数据(称为读者Reader);另一些进程则要求修改数据(称为写者Writer)。就共享数据而言,Reader和Writer是两组并发进程共享一组数据区,要求:
(1)允许多个读者同时执行读操作; (2)不允许读者、写者同时操作; (3)不允许多个写者同时操作。
Reader和Writer的同步问题中有一种读者优先的情况,应满足下列条件: 如果新读者到:
①无读者、写者,新读者可以读;
②有写者等待,但有其它读者正在读,则新读者也可以读; ③有写者写,新读者等待。
22
如果新写者到:
①无读者,新写者可以写; ②有读者,新写者等待; ③有其它写者,新写者等待。
请用信号量机制实现这两组进程的同步活动,并说明所定义信号量的含义。要求用伪代码描述。
16、利用信号量实现下述的前驱关系。s1abs2s3des4s5cfgs6
23
17、(2010年计算机专业研究生入学考试试题)某银行提供一个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号,取号机每次允许一个顾客使用。当营业员空闲时,通过叫号机选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:
Cobegin {
Process 顾客:
}
Process 营业员: {
} }
}coend
请添加必要的信号量和wait,signal操作,实现上述过程的互斥和同步。要求写出完整的过程,说明信号量的含义并赋初值。
为顾客服务;
叫号;
While(true)
{
获取服务;
等待叫号;
{
从取号机获取一个号码;
24
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统 总复习题(5)在线全文阅读。
相关推荐: