文章
156
粉丝
195
获赞
0
访问
28.5k
1)
完成时间:P1=18, P2=11, P3=23
周转时间:P1=18, P2=8, P3=18
平均周转时间:(18 + 8 + 18) / 3 = 44 / 3 ≈ 14.67ms
2)
系统处于安全状态,一个安全序列是 P1→P2→P3
3)
semaphore S1 = 0;//P1与P2的同步
semaphore S2 = 0;//P2与P3的同步
P1() {
request(A, 1); // 申请打印机
// 使用打印机执行任务
// 运行时间 10ms(模拟)
release(A, 1); // 释放打印机
V(S1); // 通知 P1 已完成
}
P2() {
P(S1); // 等待 P1 完成
request(A, 1); // 申请打印机
request(B, 1); // 申请扫描仪
// 使用资源执行任务
// 运行时间 8ms
release(A, 1);
release(B, 1);
V(S2); // 通知 P2 已完成
}
P3() {
P(S2); // 等待 P2 完成
request(A, 1); // 申请打印机
// 使用打印机执行任务
// 运行时间 5ms
release(A, 1);
}
评分及理由
(1)得分及理由(满分2分)
学生答案中完成时间、周转时间计算完全正确,平均周转时间计算也正确。与标准答案一致。得2分。
(2)得分及理由(满分2分)
学生正确判断系统处于安全状态,并给出了正确的安全序列P1→P2→P3。虽然未展示详细计算过程,但结论正确。得2分。
(3)得分及理由(满分4分)
学生答案中存在以下问题:
1. 信号量定义正确,但伪代码中使用了P/V操作的标准写法(P(S1)、V(S1)),与题目要求的wait/signal不一致,但语义正确,此处不扣分。
2. 主要问题:P2进程中缺少对P1完成打印的等...
登录后发布评论
暂无评论,来抢沙发