防止死锁发生时可采用什么策略来使循环等待资源的条件不成立?这个策略如何应用到5个哲学家就餐问题中?
防止死锁发生时可采用什么策略来使循环等待资源的条件不成立?这个策略如何应用到5个哲学家就餐问题中?
【正确答案】:对资源采取按序分配的策略修改第5个哲学家的程序,即规定每个哲学家想吃面条时,总是从自己左右两旁的筷子中先取编号小的筷子,再取编号大的筷子;对于第5个哲学家,他必须先拿到右边的编号小的筷子,再拿左边的筷子。
【题目解析】:死锁预防的方法是破坏产生死锁的四个必要条件之一,互斥条件不可破坏,占有并等待条件和不可抢夺条件属于资源静态分配策略,分配原则是:一个进程在申请新资源的要求得不到满足时,便处于等待状态,而处于等待状态的进程的全部资源可以被剥夺。资源有序分配的思想是:对系统所有资源类型进行线性排序,并赋予不同的序号。进程申请资源时,必须严格按照资源编号的顺序进行。即一个进程先得到编号小的资源,才能申请编号大的资源。释放资源时,次序相反,破坏了循环等待条件。在哲学家进餐问题中,如果每个哲学家同时拿起左边的筷子,此时产生死锁。采用资源按序分配策略,可以破坏循环等待条件,即规定每个哲学家想吃面条时,总是从自己左右两旁的筷子中先取编号小的筷子,再取编号大的筷子;对于第5个哲学家,他必须先拿到右边的编号小的筷子,再拿左边的筷子。
Top