搜题
问题   更新时间2023/6/29 14:52:00

设A、B两个进程共用一个缓冲区Q,A向Q写入信息,B从Q读出信息,算法框图如图所示。判断该同步问题的算法是否正确?若有错,请指出错误原因并予以改正。

这个算法不正确。 因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。 进行改正:A、B两进程要同步使用缓冲区Q。为此,设立两个信号量: empty表示缓冲区Q为空,初值为1; full表示缓冲区Q为满,初值为0。 算法框图如图所示。 A进程 B进程 P(empty) P(full) 向Q写入信息 从Q中读出信息 V(full) V(empty)
王老师:19139051760(拨打)