文章
14
粉丝
0
获赞
0
访问
1.4k
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分
登录后发布评论
暂无评论,来抢沙发