2.3.2——1 进程互斥的软件实现的方法
以下介绍四种软件实现互斥的方法,说先需要说明一下:flag可以表示为 意愿turn 可以表示为 谦让每一个进程之间实际可以交叉运行,但是在这个基础上,我们必须实现互斥的算法!这就是实现互斥的意义所在!这是一个违反 “空闲让进” 原则的算法。如何理解呢?就是说,两个程序必须交替运行,如果说P0-P0-P0这样执行的话,他会因为谦让而无法执行!首先两个标志位 同时都是false(我也不是很理解)这个算
·

如果没有进程互斥会发生什么呢?

以下介绍四种软件实现互斥的方法,说先需要说明一下:
flag 可以表示为 意愿
turn 可以表示为 谦让
每一个进程之间实际可以交叉运行,但是在这个基础上,我们必须实现互斥的算法!
这就是实现互斥的意义所在!
单标志法

这是一个违反 “空闲让进” 原则的算法。
如何理解呢?
就是说,两个程序必须交替运行,如果说P0-P0-P0这样执行的话,他会因为谦让而无法执行!
双标志先检查

首先两个标志位 同时都是false(我也不是很理解)
这个算法违反了“忙则等待”的条件,如果1、5、2、6、3、7
这样执行,会造成同时执行的情况,严重违反互斥!
双标志后检查

这个算法解决了忙则等待
违反了“有限等待”导致各个进程无法访问资源产生“饥饿”现象
1、5、2、6
Peterson

违反了”让权等待“
1、6、2、7、8 这样就再P0期望执行的情况下执行了P1
总结:

更多推荐

所有评论(0)