文章

14

粉丝

0

获赞

0

访问

1.4k

头像
2025 年 5 月第 1 次 408 月考试卷 - 第46题回答
操作系统
发布于2025年11月1日 21:02
阅读数 123

semaphore mutex1=1,mutex2=1;
semaphore amount=5,empty=30,full=0;

void yong monk i(i=1,2,3,,,n) ()
{
	while(TRUE)
	{
		P(empty);
		p(amount);
		P(mutex1);
		从井里打水;
		V(mutex1);
		P(mutex2);
		往缸里面倒水;
		V(mutex2);
		V(amount);
		V(full); 
	}
}

void old monk i(i=1,2,3,,,n) ()
{
	while(TRUE)
	{
		P(full);
		P(amount);
		P(mutex2);
		从缸里面取水使用;
		V(mutex2);
		V(amount);
		V(empty); 
	}
}

 


评分及理由

(1)信号量定义部分(满分2分)

得分:0分

理由:学生定义了mutex1和mutex2作为互斥信号量,但未明确定义水井和水缸的互斥关系;amount信号量含义不明确(可能是水桶数量?但初始值5错误,应为3);empty初始值30错误(应为10);full初始值0正确但含义不明确。信号量定义存在多处错误。

(2)小和尚进程算法(满分3分)

得分:1分

理由:基本流程正确(先申请资源,再打水,再倒水),但存在严重逻辑错误:P(amount)和V(amount)位置错误,应该在互斥操作前后;缺少水缸容量的同步控制;mutex1和mutex2的使用不够清晰。仅因基本思路正确给1分。

(3)老和尚进程算法(满分3分)

得分:1分

理由:基本流程正确(先申请水,再取水),但存在严重逻辑错误:P(amount)和V(amount)位置错误;缺少水桶资源的正确管理;mutex2的使用不够合理。仅因基本思路正确给1分。

题目总分:0+1+1=2分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发