同步互斥发展历史算法

1、单标志法:
P0进程: P1进程:
while(turn != 0); while(turn != 1);
critical section critical section
turn = 1; turn = 0;

remainder section remainder section

缺点:必须交替运行

掌握软件实现互斥同步的发展过程
2、双标志法先检查:
第二章进程管理
Pi进程: Pj进程:
while(flag[j]); while(flag[i]);
flag[i] = TRUE; flag[j] = TRUE;
critical section critical section
flag[i] = FALSE; flag[j] = FALSE;
remainder section remainder section
优点:可以实现互斥同步;缺点:有可能同时进入

3、双标志法后检查:
Pi进程: Pj进程:
flag[i] = TRUE; flag[j] = TRUE;
while(flag[j]); while(flag[i]);
critical section critical section
flag[i] = FALSE; flag[j] = FALSE;
remainder section remainder section
优点:可以实现互斥同步;缺点:有可能都不能进入

4、Peterson’s Algorithm:
Pi进程: Pj进程:
flag[i] = TRUE;turn=j;flag[j] = TRUE;turn=i;
while(flag[j] && turn == j); while(flag[i] && turn == i);
critical section critical section
flag[i] = FALSE; flag[j] = FALSE;
remainder section remainder section
优点:可以完全实现互斥同步的软件算法

硬件实现互斥同步的原理
1、检测和设置(TS)指令(test & set)
while TS(&lock);
critical section
lock = FALSE;
remainder section
缺点:不能实现让权等待
实现临界区互斥的基本方法:软件方法;硬件方法
硬件实现互斥同步的原理
2 swap指令(或exchange指令)
第二章进程管理
、key = true;
do{
swap(&lock,&key);
}while(&key);
critical section
lock = FALSE;
remainder section
缺点:不能让权等待;可能会饥饿

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值