一、单标志发
算法思想:一个进程在访问完临界区之后会把权限交给另一个临界区‘’每个进程进入临界区的权 限只能被另一个进程赋予
turn =0表示允许进入信号区,p0进入临界区,p1不允许进入临界区一直循环直到时间片用完
只有p0在退出将turn为1时,p1才能进入临界区
优点:该算法实现同一时间段只允许一个进程访问临界区
主要问题:违背了空闲让进原则、轮流访问一个进程无法进入临界区,另一个也无法进入
二、双标志先检查法
算法思想:设置一个布尔型数组flag[]数组中的元素标记各个进程想进入临界区的意愿
优点:不用
缺点:进程可能同时进入临界区(违背忙着等待原则)原因在于进入区的检查和上锁是一气呵成 的在检查和上锁之间可能发生进程切换
三、双标志后检查法
算法思想:先上锁后检查
缺点:虽然解决了忙则等待的问题,但违背了空闲让进和有权等待原则,进程无法访问临界资源 而产生饥饿现象
四、peterson算法
算法思想:在双标志后检查法基础上,如果两个进程都想进入临界区,可以主动让对方进入临界区
缺点:未实现让权等待