有4个进程A,B,C,D共享一个缓冲区,进程A负责循环地从文件读一个整数放入缓冲区,进程B从缓冲区取出MOD 3为0的整数并累计求和;进程C从缓冲区取出MOD 3为1的整数并累计求和;进程D从缓冲区取出MOD 3为2的整数并累计求和.请用wait、signal操作写出能够正确执行的程序。
举一反三
- 设有4个进程A、B、C、D共享一个缓冲区,进程A负责循环地从文件读一个整数并放入缓冲区;进程B从缓冲区中循环读取MOD 3为0的整数并累计求和;进程C从缓冲区中循环读取MOD 3为1的整数并累计求和;进程D从缓冲区中循环读取MOD 3为2的整数并累计求和。请用信号量机制写出能正确执行的算法。
- 设有3个进程A、B、C共享一个缓冲区,进程A负责循环地从文件读一个整数并放入缓冲区;进程B从缓冲区中循环读取MOD 2为0的整数并累计求和;进程C从缓冲区中循环读取MOD 2为1的整数并累计求和。请用信号灯机制写出能正确执行的算法。
- 进程A和进程B通过共享缓冲区协作完成数据处理,进程A负责产生数据并放入缓冲区,进程B从缓冲区读数据并输出。进程A和进程B之间的制约关系是
- 设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的初值。
- 有三个并发进程R、M、P,它们共享一个可循环使用的缓冲区B,缓冲区B共有N个单元,三个进程不允许同时访问缓冲区。进程R负责从输入设备读信息,每读入一个字符后,把它存入缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。(1)请分析三个进程之间的互斥和同步关系(2)说明信号量的设置、初值及含义。(3)请用P、V操作写出它们能正确并发执行的程序。