2015考研计算机真题大题信号量进程同步问题

哈哈哈,拿到考研的题目来考考你们,看看你们做的出来不,谁让我是正在考计算机研究生的筒子,希望能马上加入研发团队,毕竟我那么想当个技术宅。

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>

时间: 2024-10-08 05:35:23

2015考研计算机真题大题信号量进程同步问题的相关文章

考研计算机专业课基础:计算机结构化编程

1.11 结构化编程 20世纪60年代,许多大型软件的开发遇到了严重困难.常常推迟软件计划,因而使成本大大超过预算,而且最终产品也不可靠.人们开始认识到,软件开发是项复杂的活动,比原来所预想的要复杂得多.20世纪60年代的研究结果是结构化编程(structured programming)的出现,用规定的方法编写程序比非结构化编程能产生更清晰.更容易测试/调试以及更容易修改的程序. 本书的第2章将介绍结构化编程原理.第3章到第5章则会开发多种结构化程序.结构化编程研究的一个更具体结果是1971年

2015考研 杭电 计算机学院 复试笔试题第一题 JAVA语言解法

杭电 2015年考研 计算机学院 复试笔试第一题 JAVA解法 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /* 杭电2015年 计算机学院 复试 笔试题第一题 JAVA解答 * author 刘汪洋 QQ 605283073 * 求出:字符串如:"34223abd#34SB-11--" * 中整数的和 其中-在数字前表示负号,否则为字符 */ pub

计算机考研复试真题 众数

题目描述 输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个). 输入描述: 测试数据有多组,每组输入20个1-10之间的数. 输出描述: 对于每组输入,请输出1-10中的众数. 示例1 输入 5 1 5 10 3 5 3 4 8 6 8 3 6 5 10 7 10 2 6 2 输出 5 //计算机考研复试真题 众数 /* 程序设计思想:假双数组法,数组值存放出现的次数,数组下标存放对应的数. */ //程序实现:

厦门大学考研上机真题

来自于:王道论坛-2017厦大计算机专硕复试题 判断回文数字 第一题判断一个整数是否为回文数,例如123321 1 #include <stdio.h> 2 3 // 判断是否为回文数列 4 int main() 5 { 6 int num, huiwei, temp; 7 while(scanf("%d", &num) != EOF) 8 { 9 temp = num; 10 huiwei = 0; 11 while(temp > 0) 12 { 13 hu

2015.12.29~2015.12.30真题回顾!-- HTML5学堂

2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停哦! HTML5真题[2015.12.29]题目 学习JavaScript或应用JavaScript进行脚本开发,“变量”这是必须要学会使用的.什么是变量呢?又什么作用呢?ok,大家稍安勿躁哦,试体验体验这题目<HTML5真题[2015.12.29]题目>与 <HTML5真题[2015.12

WEB前端开发 辨析类 面试真题 大集锦

WEB前端开发 辨析类 面试真题 大集锦 HTML5学堂-码匠:面试里最常出现的问题句式大概就是"说说XXX和XXX的区别""谈谈XXX和XXX的不同"了吧~!一波波的辨析题正在袭来,快快开启防御,杀出重围,来一场绝地反击! 僵尸,啊,不对,辨析三连发! 扫描了众多的面试题,发现--额--各个技术之间的辨析真的是如僵尸一般,一波一波的~ 相信不少人都在面试当中遇到过各类的辨析题,面试的画风大概是这样的 -- 面试官:strong.em.b.i的区别是什么? 面试官:

2015腾讯笔试大题

今天做完腾讯的在线笔试,感觉自己弱爆了,选择题部分考得比较基础,但是考的面比较广,数据结构,计算机网络,算法常识,概率题,C,C++,都有.大题如下: 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code).请编写一个函数,使用递归方法生成N位的格雷码,并且保证这个函数的健壮性. 2. 有下图的题解,请用C/C++代码来列出满足下图0-100内的所有答案. 3. 如图所示,系统中有三个进程Producer,Transmitter和Consumer.

复旦大学数学学院高等代数历届期中考试大题精选(未完待续)

本文收集了从 2009 年至今复旦大学数学学院高等代数历届期中考试精选的大题, 其中有的大题由习题课老师或任课老师自编而来, 有的大题由其他大学的教材或学习指导书中的题目或考研试题改编而来, 也有相当部分的大题已经融入到复旦高等代数学习指导书 (第三版) 中了. 这里我们将不会公布这些精选大题的解答, 但会附加一些注解, 以供读者参考. 本科 16 级高代 I 期中考试 四.(10分)  设 $A=(a_{ij})$ 是 $n$ 阶非零实矩阵, 其中 $n\geq 3$ 为奇数. 设 $A_{i

【转载】POJ水题大集合

POJ水题大集合 poj1000:A+B problempoj1002:电话上按键对应着数字.现在给n个电话,求排序.相同的归一类poj1003:求最小的n让1+1/2+1/3+...+1/n大于给的一个实数poj1004:求一堆实数的平均数poj1005:由坐标 (0,0) 开始,以半圆为形状每年侵蚀50m^2,问(0,0)开始到(x,y)结束需要多长时间poj1006:三个周期是常数.现在给三个周期出现高峰的时候,问下一次出现高峰是什么时候poj1007:求字符串排序poj1008:一种日历