文章

35

粉丝

0

获赞

0

访问

1.2k

头像
2011年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年10月22日 18:10
阅读数 30

    chair=10;mutex1=1;call=1;

chair为初始座位;mutex1为顾客对取号机的互斥信号量;call为营业员和顾客的同步信号量

    process 顾客i{
        p(chair);
        p(mutex1);
        //从取号机获得一个号码;
        v(mutex1);
        p(call);
        v(chair);
        //获得服务;
    }

    process 营业员 {
        while(true){
            v(call);
            //为顾客服务;

        }
    }

 


评分及理由

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

得分:1分

理由:学生定义了三个信号量:chair(初始值10,表示座位数)、mutex1(初始值1,用于取号机互斥)、call(初始值1,用于同步)。其中chair和mutex1的定义基本正确,但call的初始值应为0(因为初始时没有顾客等待叫号),这里存在逻辑错误。扣1分。

(2)顾客进程实现(满分3分)

得分:1分

理由:顾客进程基本框架正确,使用了P(chair)控制座位数量,P(mutex1)保护取号机。但存在以下严重逻辑错误:①P(call)操作位置错误,应该在获得号码后立即执行,而不是在V(chair)之前;②V(chair)操作位置错误,应该在获得服务后释放座位,而不是在等待叫号前;③缺少对座位区的互斥保护。扣2分。

(3)营业员进程实现(满分3分)

得分:1分

理由:营业员进程使用了while(true)循环结构正确,但存在以下逻辑错误:①V(call)操作应该在叫号后执行,而不是在服务前;②缺少对座位区的互斥操作;③缺少对座位计数的管理(P(full)/V(empty)等)。扣2分。

题目总分:1+1+1=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发