cobegin
答:int Splate = 1;int Sapple = 0;int Sorange= 0;cobegin father();{ son() // daughter()} coend father(){ while(1){ P(Splate); /* 获取空盘子 */ 将水果放入盘子中;if (放入的是桔子)V(Sorange); /*通知女儿吃桔子*/ else V(Sapple); /*通知儿子...
答:begin B:integer S, SO,SE:semaphore;S:=1;SO:=0;SE:=0;cobegin process R X:integer begin L1:从输入设备读一个数;x:=读入的数 P(S);B:=X;If B=偶数 then V(SO)else V(SE);go to L1 end;process W1 Y:integer begin L2:P(SO);Y:=B;V...
答:semaphore emptyA, emptyB, fullA, fullB;emptyA=emptyB=A;fullA=fullB=0;main(){ Cobegin PA()PB()PC()Coend;{ While(A){ 从磁盘读一个记录;P(emptyA);将记录存入缓冲区A;V(fullA);} } PB(){ While(A){ p(fullA);从缓冲区A中取出记录;V(emptyA);p(emptyB);将记录存入缓冲...
答:司机启动车辆与售票员关门动作统一,售票员开门与司机停车车辆统一,则用两个信号量表示s1,s2,s1表示是否允许司机启动汽车,初值为0,s2表示是否允许售票员开门,初值为0 算法如下:int s1=0;int s2=0;main (){ cobegin drive()busman()coend } drive(){ while(1){ wait(s1)启动车辆;正常驾驶;...
答:begin与end为一对,表示一段代码的开始和结束,在不同语言中作用不同,常用于函数、过程、区、段、模块的定界符 parbegin=prallel begin,与parend为一对,表示并行开始/并行结束一段代码 cobegin/coend,concurrent begin/concurrent end基本与parbegin/parend一个意思,表示并发开始和并发结束 关于并发和...
答:Var a,b,c,d: semaphore:=0,0,0,0;begin parbegin begin p1;signal(a);signal(b);end;begin wait(a);p2;signal(c);end;begin wait(b);p3;signal(d);end;begin wait(c);wait(d);p4;end;parend end 自己写的,lz满意吗?
答:Var B:array[0..N-1] of char;Var s, s1, s2, s3: semaphor;Var i, j, k:integer S:=1; s1:=N; s2:=0; s3:=0; i:=0; j:=0; k:=0;Cobegin Process R Var x:char;begin L1:读入一个字符x P(s1)P(s)B[i]:=x i:=(i+1)mod N V(s2)V(...
答:The P,V code Using Pascal var mutex,Beginready,Testready,Endready:semaphore;//mutex用以标示教室门这个临界资源 //beginready等待考生来全,标示考试开始 mutex:=1;Beginready:=-(N-1);Testready:=0;Endready:=-(N-1);cobegin Procedure Student Procedure Teacher P(mutex); P(mutex...
答:所以设置一个信号量s.售票厅最多容纳20个进程,即可用资源实体数为20,s的初值就设为20. 实现:begin s:semaphore; s:=20; cobegin process PI(I=1,2,……) begin P(s); 进入售票厅; 购票; 退出; V(s); end; coend 当购票者进入售票厅前要执行P...
答:Void customer(){ While(1){ Wait(mutex);取号;Signal(mutex);等待 Signal(full);} } Void bank(){ While(1){ Wait(full);Wait(mutex);叫号 Signal(mutex);服务 } } Semaphore mutex=1,full=无穷 Void mian(){ Cobegin;Customer();bank();Coend;} ...
网友评论:
宋平15340648234:
cobegin 和 coend 是什么意思 -
39370况策
: 呼叫开始和 呼叫结束
宋平15340648234:
计算机操作系统中Parbegin和Cobegin区别 -
39370况策
: 计算机操作系统中parbegin与parend配对使用,意思为并行开始.1、操作系统中的parbegin是指并发进程的意思.2、并发性:一组进程的执行在时间上是重叠的.即一个进程执行第一条指令是在另一个进程执行的最后一条指令完成之前开始的...
宋平15340648234:
Cobegin怎么创建轻权进程 -
39370况策
: cobegin创建的就是轻权进程.
宋平15340648234:
操作系统PV原语中信号量初值为n是? -
39370况策
: PV原语的含义P操作和V操作是不可中断的程序段,称为原语.PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的.信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用...
宋平15340648234:
计算机操作系统:读者——写者问题,用PV原语做.(读者优先) -
39370况策
: Var a,b,c,d: semaphore:=0,0,0,0; beginparbeginbegin p1;signal(a);signal(b);end;begin wait(a);p2;signal(c);end;begin wait(b);p3;signal(d);end;begin wait(c);wait(d);p4;end;parend end 自己写的,lz满意吗?
宋平15340648234:
试用P - V操作定出他们能同步、互斥的相关语句 -
39370况策
: 这个问题可看作是2个生产者和2个消费者共享一个容量为1的缓冲区的进程同步问题. 需要定义三个信号量: mutex //用于测试盘中能否放水果 SO //用于测试盘中是否有桔子 SA //用于测试盘中是否有苹果参考代码如下:beginmutex, SO, SA :...
宋平15340648234:
用PV操作解决读者写者问题? -
39370况策
: 答(1)Sr用于读者计数rc的互斥信号量; (2)if rc=1 then P(S)中的P(S)用于读写互斥,写者进程中的P(S)用于写写互斥,读写互斥. (3)程序中增加一个信号量S5,初值为5,P(S5)语句加在读者进程P(Sr)之前,V(S5)语句加在读者进程第2个V(Sr)之后.
宋平15340648234:
用C语言实现 -- 生产者与消费者的问题(PV操作) -
39370况策
: 这个问题蛮好的 我给你个程序 给我加分啊#include <windows.h>#include <stdio.h>#include <stdlib.h>typedef HANDLE Semaphore; // 信号量的Windows原型#define P(S) WaitForSingleObject(S, INFINITE) // 定义Windows下的P操作#...
宋平15340648234:
操作系统PV操作中 while(1)是怎么个情况 -
39370况策
: 这个不可能啊,一定要有的,这个就是while(ture),是个循环的条件啊,没有了还怎么循环啊,比如说生产者问题,你不可能只生产一个吧?好像据说09年那道PV操作的题,cobegin表示并发,/while(true)表示循环,不写都是扣一分的,据说好多人程序都会写,这些小问题一分一分的让扣的最后也没得几分的很多的
宋平15340648234:
用PV操作解决读者写者问题?用PV操作解决读者写者问题的正确程序如下:begin Sr,S:Semaphore; Rc:integer;S:=1;Sr:=1,rc:=0;Cobegin PROCESS Readi... -
39370况策
:[答案] int readcount=0; //读进程计数semaphore writeblock,mutex;writeblock=1;mutex=1;cobegin process reader_i(){ process writer_j(){P(mutex); P(writeblock);readcount++; {写文件};if(readcount==1) V(writeblock...