设有无穷多个缓冲区和无穷多个信息,A进程把信息逐个的写入每个缓冲区,B进程则逐个地从缓冲区中取出信息。试问:(1)两个进程之间的制约关系; (2)用P、V操作写出两进程的同步算法,并给出信号量的初值; (3)指出信号量的值的变化范围和其值的含义
举一反三
- 设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的初值。
- 系统中有多个生产者进程和多个消费者进程,共享一个能存放1000件产品的环形 缓冲区(初始为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待; 当緩冲区未空时,消费者进程可以从緩冲区取走一件产品,否则等待。要求一个消费者进程 从缓冲区连续取出10件产品后,其他消费者进程才可以取产品。请使用信号量P,V(wait(), signal())操作实现进程间的互斥与同步,要求写出完整的过程,并说明所用信号量的含义和 初值。
- 有三个并发进程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 操作写出三个进程正确工作的流程。
- 设有4个进程A、B、C、D共享一个缓冲区,进程A负责循环地从文件读一个整数并放入缓冲区;进程B从缓冲区中循环读取MOD 3为0的整数并累计求和;进程C从缓冲区中循环读取MOD 3为1的整数并累计求和;进程D从缓冲区中循环读取MOD 3为2的整数并累计求和。请用信号量机制写出能正确执行的算法。