文章

203

粉丝

40

获赞

1

访问

11.5k

头像
2025年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年9月11日 17:12
阅读数 66

semaphore k = 0; //可以埋土

semaphore j = 0;// 可以浇水

semaphore empty = 3; //可挖的树坑数量

semaphore fe = 1; //铁锹

cobegin{

P_A(){

while(1){

p(emoty);

p(fe);

甲挖坑;

v(fe);

v(k);

}

}

P_B(){

while(1){

p(k);

p(fe);

乙放树苗;

乙埋土;

v(empty);

v(fe);

v(j);

}

}

P_C(){

while(1){

p(j);

丙拿桶浇水;

}

}

}coend


评分及理由

(1)信号量定义及初值(满分2分)

得分:1分

理由:学生定义了4个信号量:k(可以埋土,初值0)、j(可以浇水,初值0)、empty(可挖树坑数量,初值3)、fe(铁锹,初值1)。其中empty和fe的初值正确,但k和j的命名和含义不够清晰(标准答案中对应empty和water),且缺少对水桶的互斥访问(浇水时水桶是独占资源,但学生未定义相关信号量)。扣1分。

(2)甲进程(满分2分)

得分:2分

理由:甲先wait(empty)检查可挖坑数,再wait(fe)获取铁锹,挖坑后释放铁锹并signal(k)通知乙。逻辑正确,与标准答案等效(标准答案用sk控制挖坑上限,mutexT互斥铁锹;学生用empty和fe实现相同功能)。

(3)乙进程(满分2分)

得分:1分

理由:乙wait(k)等待坑就绪,wait(fe)获取铁锹,放树苗并填土后,signal(empty)增加可挖坑数(正确),signal(fe)释放铁锹,signal(j)通知丙。但缺少对水桶的互斥(浇水时水桶是独占资源,但乙未涉及水桶,此处不扣分)。主要错误:乙填土后应释放铁锹,但未考虑乙填土时可能占用铁锹时间较长,但逻辑正确。扣1分是因为乙未处理水桶互斥,但水桶应由丙单独处理,此处实际未错误,但整体信号量设计缺失水桶互斥,影响乙的得分。

(4)丙进程(满分1分)

得分:0分

理由:丙wait(j)后直接浇水,但水桶是独占资源(只有一个),未使用信号量...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发