当前位置: 首页 > news >正文

软件同步机制-Peterson解决方案 简单讲解

Peterson 解决方案是用来处理两个进程互斥访问临界区的问题,临界区就是一段不允许其他进程同时进入执行的代码区域 。

共享变量

  • int turn = 0; :这个变量用来记录轮到哪个进程进入临界区。它就像一个指示牌,告诉进程现在该谁 “上场” 了。初始值为 0 ,可以理解为一开始默认先让某个进程(比如进程 0 )有优先进入的机会。
  • turn == i; :这是一个判断条件,当turn的值等于进程编号i时,意味着当前进程Pi可以进入临界区。
  • j = 1 - i; :因为是两个进程,i取值为 0 或 1 ,通过这个计算得出另一个进程的编号。比如i = 0时,j = 1 ,代表另一个进程 。
  • boolean flag[2]; :这是一个布尔数组,有两个元素。flag[0]flag[1] ,分别对应两个进程。
  • flag [0] = flag [1] = false; :表示一开始两个进程都没有准备进入临界区。
  • flag [i] = true ; :当进程Pi想要进入临界区时,会把自己对应的flag[i]设为true ,就像举个牌子说 “我准备进入临界区啦” 。

进程 Pi 的执行流程

  • 准备阶段
    • flag [i]:= true; :进程Pi把自己的flag标记设为true ,宣告自己想进入临界区。
    • turn = j; :进程Piturn设为另一个进程Pj的编号,这是一种 “礼让” 行为,意思是 “我虽然想进,但也先看看对方要不要进” 。
    • while (flag [j] and turn = j); :进程Pi会检查另一个进程Pj的状态。如果Pj也想进入临界区(flag[j]true ) ,而且现在轮到Pjturn = j ) ,那进程Pi就会在这个循环里等待。就好比在门口排队,得等前面的人进去或者轮到自己才能进 。
  • 进入临界区:当等待条件不满足了,说明Pj不想进或者轮到自己了,进程Pi就可以进入临界区执行关键代码 。
  • 离开临界区flag [i] = false; ,进程Pi执行完临界区的代码后,把自己的flag标记设为false ,表示 “我已经从临界区出来啦” 。
  • 剩余区操作:进程Pi去执行其他非关键代码部分,也就是剩余区的操作 ,然后又会循环回到准备进入临界区的步骤,不断重复这个过程 。

Peterson 解决方案满足了

互斥(同一时刻只有一个进程能进入临界区 )、

进展(只要有进程需要进入临界区,就不会出现所有进程都无法进入的死锁情况 )、

有限等待(一个进程请求进入临界区后,在其他进程有限次进入临界区后,该进程一定能进入 )这三个需求,有效解决了两个进程的临界区问题 。 

相关文章:

  • day38 python Dataset和Dataloader
  • SSM整合:Spring+SpringMVC+MyBatis完美融合实战指南
  • 基于大模型的慢性胃炎全周期预测与诊疗方案研究报告
  • 【Quest开发】空间音频的使用
  • 异常:UnsupportedOperationException: null
  • 【运维_日常报错解决方案_docker系列】一、docker系统不起来
  • OpenCV CUDA模块图像处理------颜色空间处理之用于执行伽马校正(Gamma Correction)函数gammaCorrection()
  • OpenCV CUDA模块图像处理------颜色空间处理之GPU 上对两张带有 Alpha 通道的图像进行合成操作函数alphaComp()
  • 传统数据表设计与Prompt驱动设计的范式对比:以NBA投篮数据表为例
  • 【请关注】VC++ MFC常见异常问题及处理方法
  • 【LeetCode 热题 100】打家劫舍 / 零钱兑换 / 单词拆分 / 乘积最大子数组 / 最长有效括号
  • react基础技术栈
  • [React]实现一个类zustand公共状态库
  • Nginx 性能优化全解析:从进程到安全的深度实践
  • HJ25 数据分类处理【牛客网】
  • 【前端】【React】React性能优化系统总结
  • 嵌入式学习--江协stm32day1
  • 电芯单节精密焊接机:以先进功能与特点赋能电池制造科技升级
  • java-jdk8新特性Stream流
  • 无人机多人协同控制技术解析
  • 个人网站备案建设方案书/沧州网站建设
  • 做网站怎样盈利/宁波网站建设推广平台
  • 网站代理维护/有什么推广的平台
  • 关于营销方面的网站/查图百度识图
  • flash网站标题和网址/外链生成网站
  • 东城精锐传媒专注于各类网站建设/独立站建站平台