某系统有输入机和打印机各一台。今有两个进程要同时使用它们。请写出采用PV操作实现请求使用和归还释放的程序。检查所写的程序会产生死锁吗?若否,请说明理由。若会产生死锁,则请适当修改程序以防止死锁。
这两个进程采用PV操作,可能不产生死锁,也可能产生死锁。如果PV操作对两个资源进行按序分配,则不会产生死锁,反之,则于进行的并发性,其执行速度无法预知,当一个进程得到输入机另一进程得到打印机时,PV操作虽然实现互斥访问,但两个进程进入循环等待而死锁。
以下是根据按序分配的策略写成的PV操作控制方法:
可见其会类似于哲学家一样而产生死锁。(如进程R1占用了打印机,请求输入设备,而R2占用输入设备,请求打印机)。解决的方法是同时申请这两个资源,一起使用。