有三个并发进程R、M、P,它们共享一个可循环使用的缓冲区B,缓冲区B共有N个单元,三个进程不允许同时访问缓冲区。进程R负责从输入设备读信息,每读入一个字符后,把它存入缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。(1)请分析三个进程之间的互斥和同步关系(2)说明信号量的设置、初值及含义。(3)请用P、V操作写出它们能正确并发执行的程序。
举一反三
- 有三个并发进程:R 负责从输入设备读入信息块,M 负责对信息块加工处理;P 负责打印输出信息块。今提供; l )一个缓冲区,可放置k个信息块; 2 )二个缓冲区,每个可放置k个信息块;M从一个缓冲区中取数据加工处理,将结果放到另外一个缓冲区。 试用信号量和P 、V 操作写出三个进程正确工作的流程。
- 有3个并发进程R、M、P,它们共享同一个缓冲区,假定缓冲区只能存放一条记录。进程R负责从输入设备读信息,每读入一个记录后,就把它放进缓冲区;进程M在缓冲区中加工读入的记录;进程P把加工后的记录打印输出。读入的记录经加工输出后,缓冲区又可以存放下一个记录。试写出他们能够正确执行的并发程序(见图16—9)。
- 有三个并发进程,R负责从输入设备读入信息并传送给M,M将信息加工后并传送给P,P把加工后的信息打印输出。现有:(1)一个缓冲区;(2)两个缓冲区;用PV操作写出这三个进程能正确工作的程序。
- 设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的初值。
- 假定有3个并发进程P、Q、R,其中R负责从输入设备上读入信息并传送给Q,Q将信息加工后传送给P,P则负责把信息打印出去。假定R与Q共享一个缓冲区,Q与P则共享另一缓冲区。试用P、V操作写出P、Q、R这3个进程的同步算法。