-->
当前位置:首页 > 题库

主观题:h398.有三个进程,Reader进程读入数据number1,将其放入缓冲器B1,Executor进程将B1中数据取出,处理成数据number2......

Luz4年前 (2022-09-09)题库789
有三个进程,Reader进程读入数据number1,将其放入缓冲器B1,Executor进程将B1中数据取出,处理成数据number2,将其放入缓冲器B2,Printer进程将number2数据取出打印,假设B1 和B2只能存放一个数据,用P、V操作管理这三个进程的执行。







答案:解:解:采用P、V操作的同步算法如下:

BEGIN
semaphore empty1, full1, empty2, full2 ;
empty1.vale = empty2.value = 1 ;
ful2.value = full2.value = 0 ;
PARBEGIN
Reader:BEGIN
L1:read number1 ;
P(empty1) ;
B1=number1 ;
V(full1) ;
goto L1;
END(3分)

Executor:BEGIN
L2:P(full1) ;
take number1 from B1 ;
V(empty1) ;
Process number1-->number2 ;
P(empty2) ;
B2=number2 ;
V(full2) ;
goto L2;
END(3分)

Printer:BEGIN
L3:P(full2);
take number2 from B2 ;
V(empty2) ;
Print(number2) ;
goto L3;
END
COEND
END(4分)