试题详情
简答题 判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。 设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。
  • 这个算法不对。
    因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。
    进行改正:
    A.B两进程要同步使用缓冲区Q。为此,设立两个信号量:
    Empty表示缓冲区Q为空,初值为1;
    Full表示缓冲区Q为满,初值为0。
    算法框图如图所示。
  • 关注下方微信公众号,在线模考后查看

热门试题