有參考書上的原分析如下:
事實(shí)上這個(gè)分析是錯(cuò)誤的,但是答案是正確,為什么?
首先來明白什么是互斥信號(hào)量。互斥信號(hào)量是一個(gè)可以處于兩態(tài)之一的變量:解鎖態(tài)和加鎖態(tài)。在該題中,即表示:PA、PB中任何一個(gè)在對(duì)管道進(jìn)行讀或?qū)憰r(shí),剩下的那個(gè)進(jìn)程必須等待,而不能一起進(jìn)行讀寫,只有當(dāng)其中一個(gè)操作之后才可以讓另一個(gè)對(duì)管道操作。而互斥信號(hào)量的使用如下:
// mutext是互斥信號(hào)量進(jìn)程A:
// mutext是互斥信號(hào)量進(jìn)程A:
{
......
P(mutext);
臨界區(qū);
V(mutext);
.....
}
進(jìn)程B:
{
......
P(mutext);
臨界區(qū);
V(mutext);
.....
}
再回到那個(gè)題目,如果按照該題的原分析,使用一個(gè)同步信號(hào)量一個(gè)互斥信號(hào)量,不管你如何調(diào)整語句順序,都不能使PA、PB正常并發(fā)執(zhí)行。
相關(guān)推薦:2008下半年軟件水平考試軟件設(shè)計(jì)師押題試卷
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |