实验四 车辆行驶死锁问题
实验目的
(1) 理解死锁产生的原因,掌握预防和预防死锁的方法,以及死锁的检测方法。
(2) 通过车辆行驶死锁问题的设计与实现掌握解决死锁的方法。
实验内容
车辆行驶死锁问题,在 Linux 下用 C 语言完成下面模型:设有一个 T 型路口,其中
A,B,C,D 各处可容纳一辆车,车型方向如图所示。找出死锁并用有序分配法消除之,要
求资源编号合理。
A B E:左转
W:直行 D C
S:左转
T 型路口模拟图
根据上述介绍,编写车辆行驶死锁问题的程序,要求如下:
(1) 在 Linux 下用 C 语言编程,利用信号量操作实现进程同步;
(2) 假设 3 个方向的车辆数目相等,数只有用户输入,并动态显示车辆行驶的状态,
每个车辆行驶所用的时间可以预先设定。
准备知识
(1) 了解进程死锁的原理。
(2) 掌握自然有序分配法。
实验原理
死锁是指在一组进程中的各个进程占有不会释放的资源,但因互相申请被其他进程所
占用不会释放的资源而处于一种永久等待的状态。
死锁的 4 个必要条件:
(1) 互斥条件。
(2) 请求与保持条件。
(3) 非剥夺条件。
评论0
最新资源