第5講 隨堂典型問題填空題1

一.填空題(共1題,100.0分)
1
問題:用P、V操作解決下面問題

司機進程:

REPEAT

啓動車輛

正常駕駛

到站停車

UNTIL…

售票員進程:

REPEAT

關門

售票

開門

UNTIL…

解答:

設置信號量:

設同步信號量S_Door,表示是否關好車門,初值爲0;設同步信號量S_Stop,表示是否停穩車,初值爲0。

則司機進程和乘務員進程描述如下:

司機進程()

{ while(1){

(【1】);

啓動;

駕駛;

停車;

(【2】);}

}

乘務員進程()

{while(1){

關門;

(【3】);

售票;

(【4】);

開門;}

}

請分別在【1】【2】【3】【4】四個空白處填寫正確的wait操作或signal操作。

(注意:wait和signal字母需要用小寫字母,圓括號使用英文半角輸入方式書寫,信號量與題目所定義的信號量保持一致。)

比如填上答案爲:wait(S_Door)或signal(S_Door)

正確答案:

第一空:
wait(S_Door)

第二空:
signal(S_Stop)

第三空:
signal(S_Door)

第四空:
wait(S_Stop)

我的答案: 得分: 100.0分
第一空:
wait(S_Door)

第二空:
signal(S_Stop)

第三空:
signal(S_Door)

第四空:
wait(S_Stop)

批語

答案解析:

答案解析:

同步要求:先關門,後開車;

先停車,後開門

設置信號量:

設同步信號量S_Door,表示是否關車門,初值爲0;設同步信號量S_Stop表示是否停車,初值爲0。

則司機進程和乘務員進程描述如下:

司機進程()

{ while(1){

wait(S_Door);

啓動;

駕駛;

停車;

signal(S_Stop);}

}

乘務員進程()

{while(1){

關門;

signal(S_Door);

售票;

wait(S_Stop);

開門;}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章