724 B
724 B
归档文件 - 实验六 同步机制——信号量集与哲学家就餐问题
6.1 实验目的
理解 Linux SystemV 信号量集同步机制,掌握 semget/semctl/semop,解决哲学家就餐死锁问题。
6.2 实验内容
创建 5 个信号量(叉子),哲学家同时申请左右叉子,避免死锁。
6.3 实验准备
- semget:创建信号量集
- semctl:设置初值
- semop:原子操作多个信号量
6.4 实验设计
semget 创建 5 信号量,semctl 置 1,fork 5 进程,semop 同时申请/释放两把叉子。
6.6 实验结果
无相邻哲学家同时进食,无死锁。
6.7 思考问题
- 用 clone/vfork 替代 fork。
- 用信号量集解决吸烟者问题。