进程同步之Perterson算法
来源:互联网 发布:淘宝纯露哪家比较好 编辑:程序博客网 时间:2024/05/29 18:04
进程同步主要用来解决临界区问题,简单来讲就是确保同一时间只能有一个进程访问临界区。现在介绍一个比较经典的Peterson算法。
Peterson算法的表述如下:对于进程Pi和Pj来说,设置一个整数变量turn来确定谁可以进入临界区,和一个整型数组flag[2]来确定谁想进去临界区。
do{
flag[i]=true;
turn= j;
while(flag[j]==1 && turn ==j);
//临界区
flag[i] =false;
//剩余区
}
我们可以这么理解这段代码。对于一个进程Pi而言,如果它想进入临界区,首先它要告诉操作系统它想进入临界区(flag[i]=true),但此时它还不能进入临界区。这时操作系统说,由于进程Pi没有进入临界区,进程Pj就可以进入临界区(turn=j)。当然Pj也可以选择不进入临界区,那么Pi就进入临界区,在它操作完成之后,它需要告诉操作系统自己不再想进入临界区了,然后把flag[i]设为false,以避免占有“进入的欲望”。但是,如果进程Pj选择进入临界区,那么进程Pi就得等待,也就是代码中的for循环。
这个代码的设计思路在于——“让”。进程Pi提出请求后,操作系统会先把进入权给予其他进程,确保其他进程都不想进入的情况把,才允许进程Pi进入临界区。
更多讲解,请参看《操作系统概念(第7版)》P169.
阅读全文
0 0
- 进程同步之Perterson算法
- 进程同步之临界区域问题及Peterson算法
- 进程同步之临界区域问题及Peterson算法
- 进程同步之临界区域问题及Peterson算法
- 操作系统之进程同步
- 操作系统之进程同步
- 操作系统之进程同步
- 操作系统之进程同步
- 操作系统之进程同步
- 操作系统之进程同步
- 进程同步之信号量
- 进程同步03--Peterson算法
- 进程间同步之--信号量
- 进程同步之理发师问题
- 进程同步之事件(Event)
- 进程同步之条件变量
- 进程管理之进程同步笔记
- Linux进程通信之同步进程
- [2017纪中11-5]好路线 DP
- matlab 函数集锦
- 20171105在杭州
- 【代码优化】学会利用“配置文件”优化我们的代码结构
- 微积分
- 进程同步之Perterson算法
- 第4章:高级类特性1(day07-day09)
- 动画CGAffineTransformTranslate
- 移动硬盘拒绝访问
- Matlab制作高清晰度的图表
- FPGA 电路开发入门实验
- 第5章:高级类特性2(day09-day11)
- (四)、Java复习笔记之Collection集合
- HDU 2023 求平均成绩