同步互斥发展历史算法
来源:互联网 发布:mysql 子查询效率 编辑:程序博客网 时间:2024/06/07 01:24
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
缺点:不能让权等待;可能会饥饿
- 同步互斥发展历史算法
- 多線程同步(互斥)
- 同步互斥
- 同步和互斥
- 线程同步互斥
- 同步的互斥
- 多线程互斥同步
- 多线程互斥同步
- 互斥与同步
- 互斥与同步
- 互斥和同步
- 进程同步 & 互斥
- 互斥与同步
- 同步和互斥
- 同步和互斥
- 同步互斥阻塞
- 同步和互斥
- 互斥与同步
- Makefile实例1
- 给Android应用开发者的十个建议
- MFC应用---超链接RichEdit
- js 下拉框
- ContentProvider学习心得(中)--通过单元测试的方式完成对通讯录内容的操作
- 同步互斥发展历史算法
- Android--用JSON解析数据
- 真机测试及布署Code Sign error问题总结
- 购房随想
- Android之Activity与Service通信
- iOS中autorelease变量应注意的问题
- 【算法导论】之堆排序
- awk提取一串字符中的数字
- c++初级学习