这个算法不对。
因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。
进行改正:
A.B两进程要同步使用缓冲区Q。为此,设立两个信号量:
Empty表示缓冲区Q为空,初值为1;
Full表示缓冲区Q为满,初值为0。
算法框图如图所示。
(简答题)
判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。 设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。
正确答案
答案解析
略
相似试题
(简答题)
假定在某移动臂磁盘上,刚刚处理了访问75号柱面的请求,目前正在80号柱面读信息,并且有下述请求序列等待访问磁盘: 请你用最短寻找时间优先算法列出实际处理上述请求的次序。
(简答题)
有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后在搬到缓冲区B2中,并在打印机上印出。用P、V操作写出这些进程的同步算法。
(单选题)
下述页面置换算法中会产生Belady现象的算法是()。
(判断题)
Linux电梯调度算法与传统的电梯调度算法是完全一样的。
(单选题)
下列算法中用于磁盘移臂调度的是()。
(单选题)
最容易形成很多小碎片的可变分区算法是()。
(判断题)
平均周转时间和周转时间与选用的调度算法有关。
(单选题)
最先适应分配算法把空闲区()
(多选题)
移臂调度算法主要有()。