有三個(gè)用戶進(jìn)程A、B和C,在運(yùn)行過(guò)程中都要使用系統(tǒng)中的一臺(tái)打印機(jī)輸出計(jì)算結(jié)果。
(1)試說(shuō)明A、B、C進(jìn)程之間存在什么樣的制約關(guān)系?
(2)為保證這三個(gè)進(jìn)程能正確地打印出各自的結(jié)果,請(qǐng)用信號(hào)量和P、V操作寫(xiě)出各自的有關(guān)申請(qǐng)、使用打印機(jī)的代碼。要求給出信號(hào)量的含義和初值。
判斷下面的同步問(wèn)題的算法是否正確?若有錯(cuò),請(qǐng)指出錯(cuò)誤原因并予以改正。
設(shè)A、B兩進(jìn)程共用一個(gè)緩沖區(qū)Q,A向Q寫(xiě)入信息,B則從Q讀出信息,算法框圖如圖所示。
用PV操作解決讀者寫(xiě)者問(wèn)題的正確程序如下: