请在 下方输入 要搜索的题目:

今有三个并发进程R,M,P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有N个单元。进程R负责从输入设备读信息,每读一个字符后,把它存放在缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。请用PV操作为同步机制写出它们能正确并发执行的程序。 (10分)

今有三个并发进程R,M,P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有N个单元。进程R负责从输入设备读信息,每读一个字符后,把它存放在缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。请用PV操作为同步机制写出它们能正确并发执行的程序。 (10分)

发布时间:2025-04-02 20:58:23
推荐参考答案 ( 由 快搜搜题库 官方老师解答 )
联系客服
答案:解:(10分)beginVar mutex,input,calculate,output:semaphore:=1,n,0,0;buffer:array[0,…,n-1] of item;in,mid,out:integer := 0,0,0;proR() { do {wait (input);wait (mutex);buffer(in):=input data;in := (in 1) mod n ;signal (calculate);signal (mutex);while true ; }proM() { do {wait (calculate);wait (mutex);buffer(middle):=calculate data ;mid := (mid 1) mod n ;
专业技术学习
专业技术学习
搜搜题库系统