Peterson算法与Dekker算法解析
进来Bear正在学习巩固并行的基础知识,所以写下这篇基础的有关并行算法的文章。
在讲述两个算法之前,需要明确一些概念性的问题,
Race Condition(竞争条件),Situations like this, where two or more processes are reading or writing some shared data and the final result depends on who runs precisely when, are called race conditions.多个进程(线程)读写共享区域(共享文件、共享变量、共享内存等)时,最后的结果依赖于他们执行的相对时间。
Critical Regions(关键区域),That part of the program where the shared memory is accessed.在程序中,访问共享内存的部分。
Mutual exclusion(互斥), that is, some way of making sure that if one process is using a shared variable or file, the other processes will be excluded from doing the same thing.指在一个进程在使用共享区域时,防止另外的进程做同样的事情。
同样,需要四个条件来找到一个好的解决方案,实现进程(线程)之间的互斥:
aaarticlea/png;base64,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" alt="" />
Dekker算法与Peterson算法就是用来实现进程或者线程之间的互斥。
Dekker算法:(参考了百度百科上面的Dekker算法解析,还是挺易懂的)
Dekker算法可以用于控制两个进程(线程)之间的同步,如下实现的功能就是专门用于线程的同步:
其中,flag[2]用来表示是否想要使用关键区,turn用来表示具有访问权限的进程ID。(重点看注释,通过注释,挺好理解的哟~)
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#define true 1
#define false 0
typedef int bool;
bool flag[];
int turn;
void visit(int num)
{
sleep();
printf("P%d is visting\n",num);
}
void P0()
{
while(true)
{
flag[] = true;//P0想使用关键区。
while(flag[])//检查P1是不是也想用?
{
if(turn == )//如果P1想用,则查看P1是否具有访问权限?
{
flag[] = false;//如果有,则P0放弃。
while(turn == );//检查turn是否属于P1。
flag[] = true;//P0想使用。
}
}
visit(); //访问Critical Partition。
turn = ; //访问完成,将权限给P1。
flag[] = false;//P0结束使用。
}
}
void P1()
{
while(true)
{
flag[] = true; //P1想使用关键区。
while(flag[]) //检查P0是不是也想用?
{
if(turn == ) //如果P0想用,则查看P0是否具有访问权限?
{
flag[] = false; //如果有,则P1放弃。
while(turn == ); //检查turn是否属于P1。
flag[] = true; // P1想使用。
} }
visit(); //访问Critical Partition。
turn = ; //访问完成,将权限给P0。
flag[] = false; //P1结束使用。
}
} void main()
{
pthread_t t1,t2;
flag[] = flag[] = false;
turn = ;
int err;
err = pthread_create(&t1,NULL,(void*)P0,NULL);
if(err != ) exit(-);
err = pthread_create(&t2,NULL,(void*)P1,NULL);
if(err != ) exit(-);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
exit();
}
如上所示,如果flag数组和turn都没有符合使用关键区的条件的时候,是不可能进入关键区的。
Peterson算法:
Peterson算法也是保证两个进程(线程)实现互斥的方法,比之前的Dekker算法更加简单,他同样提供了两个变量,保证进程不进入关键区,一个是flag[2],一个是turn,两者的表达意思也类似,flag数组表示能否有权限使用关键区,turn是指有访问权限的进线程ID。(注释很重要,帮助你理解)
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#define true 1
#define false 0
typedef int bool;
bool flag[];
int turn;
void procedure0()
{
while(true)
{
flag[] = true;
turn = ;
while(flag[] && turn == )//退出while循环的条件就是,要么另一个线程
//不想要使用关键区,要么此线程拥有访问权限。
{
sleep();
printf("procedure0 is waiting!\n");
}
//critical section
flag[] = false;
}
}
void procedure1()
{
while(true)
{
flag[] = true;
turn = ;
while(flag[] && turn == )
{
sleep();
printf("procedure1 is waiting!\n");
}
//critical section
flag[] = false;
}
}
void main()
{ pthread_t t1,t2;
flag[] = flag[] = false;
int err;
turn = ;
err = pthread_create(&t1,NULL,(void*)procedure0,NULL);
if(err != ) exit(-);
err = pthread_create(&t2,NULL,(void*)procedure1,NULL);
if(err != ) exit(-);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
exit();
}
Bear将turn的赋值放在while循环的后面,然后main函数中赋初值,也是可行的。
如有错误,请指正,感激不尽!
参考书籍:
《Modern.Operating.Systems.3rd.Edition》作者:Andrew S.Tanenbaum
参考网站:
https://zh.wikipedia.org/wiki/Peterson
(貌似要翻墙)
http://baike.baidu.com/link?url=h-hOJrsTo24PXgPweosxSpnzeaKhJwhz7N3PbZhG_2_M_8U6RQqEYt9KWGzyclw6lr9Qbi4FkLdyrIKDeBQ6qq
Peterson算法与Dekker算法解析的更多相关文章
- Dekker算法在多核处理器下的失效
Dekker algorithm是一种著名的并发编程的算法,Dekker算法的核心部分是一组对称的代码来访问一组共享变量,使得两个线程不可能同时进入临界区(只要cpu内存模型是遵循顺序一致性的),从而 ...
- 进程互斥软件实现之Dekker算法
一. 为什么需要互斥? 大多数系统允许多个进程共享资源(如CPU,IO设备,硬盘等), 为了保证进程间能够互不影响.安全正确地访问这些共享资源, 就必须对进程访问共享资源采取互斥控制. 进程互斥原则: ...
- SSL握手两大加密算法 : RAS算法 和 DH算法解析
写下此博客记录心得体会,如有不足之处请指正 先是手稿笔记 : 正文: 在Https协议中,Client端和Server端需要三个参数才能生成SessionKey来加密信息. 三个参数分别是 ...
- 无监督域对抗算法:ICCV2019论文解析
无监督域对抗算法:ICCV2019论文解析 Drop to Adapt: Learning Discriminative Features for Unsupervised Domain Adapta ...
- Levenshtein Distance算法(编辑距离算法)
编辑距离 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符, ...
- 行为识别笔记:improved dense trajectories算法(iDT算法)(转载)
iDT算法是行为识别领域中非常经典的一种算法,在深度学习应用于该领域前也是效果最好的算法.由INRIA的IEAR实验室于2013年发表于ICCV.目前基于深度学习的行为识别算法效果已经超过了iDT算法 ...
- Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦
Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 + PPT 的下载地址:http ...
- react 局部更新的关键算法 DOM diff算法
下图是diff算法结构的详细解析: 要点总结:DIFF算法在执行时有三个维度,分别是Tree DIFF.Component DIFF和Element DIFF,执行时按顺序依次执行,它们的差异仅仅因为 ...
- 算法:KMP算法
算法:KMP排序 算法分析 KMP算法是一种快速的模式匹配算法.KMP是三位大师:D.E.Knuth.J.H.Morris和V.R.Pratt同时发现的,所以取首字母组成KMP. 少部分图片来自孤~影 ...
随机推荐
- NSString NSMutableString copy mutableCopy retain weak strong整合
copy retain assign的差别在于对象属性的set方法 NSString 与 NSMutableString NSString是不可变字符串对象,这句话的意思,结合代码: #import ...
- how to develop mobile web
http://blog.templatemonster.com/2010/05/11/how-make-mobile-website-6-easy-tips/ http://mobile.smashi ...
- Colored Sticks
poj2513:http://poj.org/problem?id=2513 题意:就是求一个欧拉回路. 题解:本题是判断欧拉通路是否存在,但是如果是用map的话就会超时,这里采用了trie树,有发现 ...
- Celery Flower监控,完美搞定
XXXX啊,,从上午就看到QUEQUE有问题,但一直不晓得哪里出了问题, 后来,安装上FLOWER看一下,队列就出来了... 神器啊.. 安装不说,运行很EASY.. celery flower -A ...
- 编译GNU/Linux共享库, 为什么要用PIC编译?
http://blog.csdn.net/chenji001/article/details/5691690
- 23个移动app界面上的旋钮和刻度盘设计示例
摘要: 从最初进入电子设备领域,旋钮和刻度盘的由最初的功能性设计转变为时尚的外观设计元素,比如在移动app中.这种转变并意外,旋钮和刻度盘不需要占用移动设备的太多空间,并可以简单地为用户提供一些列 ...
- 【CF】121 Div.1 C. Fools and Roads
题意是给定一棵树.同时,给定如下k个查询: 给出任意两点u,v,对u到v的路径所经过的边进行加计数. k个查询后,分别输出各边的计数之和. 思路利用LCA,对cnt[u]++, cnt[v]++,并对 ...
- Spark快速数据处理
原书名:Fast Data Processing with Spark 原出版社:Packt Publishing 作者: (美)Holden Karau 丛书名:大数据技术丛书 出版社:机械工业出版 ...
- xcode duplicate symbol _GAD_MD5 解决方法
添加了mobi的广告平台后,在Device状态打包时,出现此错误. duplicate symbol _GAD_MD5 in: 解决方法: Targets ->Build Setting 中设 ...
- Windows SharePoint Services 默认母版页
转:http://msdn.microsoft.com/zh-cn/library/ms467402(v=office.12).aspx 最终用户可以自定义的 Windows SharePoint S ...