【参考答案】D
【考查知识点】页面分配策略和页面置换策略的概念和相应的方法。
45. 有A、B 两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问 题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中,设A 的信箱 最多放M 个邮件,B 的信箱最多放N 个邮件。初始时A 的信箱中有x 个邮件 (0 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 【考查知识点】考察了利用信号量进程同步问题。