2015考研電腦真題大題訊號量進程同步問題

來源:互聯網
上載者:User

標籤:

哈哈哈,拿到考研的題目來考考你們,看看你們做的出來不,誰讓我是正在考電腦研究生的筒子,希望能馬上加入研發團隊,畢竟我那麼想當個技術宅。

45. 有A、B兩人通過信箱進行辯論,每人都從自己的信箱中取得對方的問題。將答案和向對方提出的新問題組成一個郵件放入對方的郵箱中,設A的信箱最多放M個郵件,B的信箱最多放 N個郵件。初始時A的信箱中有x個郵件(0<x<M). B 中有y個(0<y<N)。辯論者每取出一個郵件,郵件數減1.
A、B兩人操作過程:
Code Begin
A{
While(TRUE){
從A的信箱中取出一個郵件;
回答問題並提出一個新問題;
將新郵件放入B的信箱;
}
}

B{
While(TRUE){
從B的信箱中取出一個郵件;
回答問題並提出一個新問題;
將新郵件放入A的信箱;
}
}
Code End
當信箱不為空白時,辯論者才能從信箱中取郵件,否則等待。
當信箱不滿時,辯論者才能將新郵件放入信箱,否則等待。
請添加必要的訊號量和P、V(或wait, signed)操作,以實現上述過程的同步,要求寫出完整過程,並說明訊號量的含義和初值。
【參考答案】
Semaphore mutexA=1;
Semaphore mutexB=1;
Semaphore emptyA=M;
Semaphore emptyB=N;
Semaphore fullA=0;
Semaphore fullB=0;
Code Begin
A{
While(TRUE){
P(fullA);
P(mutexA)
Get a mail from A_mailbox;
V(mutexA);
V(fullA);

Answer the question and raise a question;

P(emptyB);
P(mutexB)
send the mail to B;
V(mutexB);
V(emptyB);
}
}

B{
While(TRUE){
P(fullB);
P(mutexB)
Get a mail from B_mailbox;
V(mutexB);
V(fullB);

Answer the question and raise a question;

P(emptyA);
P(mutexA)
send the mail to A;
V(mutexA);
V(emptyA);
}
}
Code End
【考查知識點】 考察了利用訊號量進程同步問題。

<P><A href="http://www.kyjxy.com/fushi/zhinan/">考研複試英語聽力</A></P>
<P><A href="http://www.kyjxy.com/yingyu/zhenti/">考研英語真題</A></P>
<P><A href="http://www.kyjxy.com/yuanxiao/zhengce/">考研專業目錄</A></P>

2015考研電腦真題大題訊號量進程同步問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.