尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

用信号量机制实现互斥,同步,前驱

用信号量机制实现互斥,同步,前驱
📅 发布时间:2026/6/20 11:54:29

实现进程互斥

1.分析并发进程的关键活动,划定临界区(如:对临界资源打印机的访问)

2.设置互斥信号量mutex,初始值为1 (mutex n.互斥)

3.进入区P(mutex)--申请资源

4.退出区V(mutex)--释放资源

注意:

对于不同的临界资源需要设置不同的互斥信号量mutex

P/V操作必须成对出现,缺少P就不难保证临界资源的互斥访问,缺少V就会导致资源永不被释放

实现进程同步

让各并发进程按照要求有序进行推进。

P1,P2并发执行,由于存在异步性,二者交替推进的次序是不确定的。

若P2的代码4要基于p1的代码1和代码2的运行结果才能执行,就必须保证代码4一定要在代码2之后执行

P1(){代码1;代码2;代码3;
}
P2(){代码4;代码5;代码6;
}

我们分析在什么地方需要实现同步关系,必须保证以前以后之心两个操作,会哦这两句代码,设置同步信号量S,初始值为0

semaphore S=0;//初始化信号量,初始值为0P1(){代码1;代码2;V(S);代码3;
}
P2(){P(S);代码4;代码5;代码6;
}

当先执行p1再执行p2的时候

执行完代码1和2,S++变为了1

然后执行到P(S)时,表示有可用资源,执行S(--)S的值会变回0

P2进程不会执行block原语,而是继续往下执行代码4

如果先执行p2再执行p1

由于S=0,S--后变为了-1,表示这个时候没有可用的资源,因此会执行block原语,主动请求阻塞

等执行完代码1和代码2后,执行V(S)让S++,S变回0

此时S的值依然<=0因此执行wakeup指令,唤醒P2进程,此时p2可继续执行代码4

实现前驱关系

进程P1中有一句代码S1,P2中又一句代码S2,P3中...这些代码要求按照一定的顺序来执行

此时每一对前去关系都是一个进程同步的问题(需要保证一前一后操作)

1.要为每一对前去关系各设置一个信号同步量

2.在前操作之后对响应的同步信号量执行V操作

3.在后操作之前对响应的同步信号量执行P操作

前V后P

相关新闻

  • AxC杂题乱做
  • Apache Hive 如何在大内容中发挥能量
  • 基于遗传优化的SVM织物瑕疵类型识别matlab仿真 - 实践

最新新闻

  • Gemma-3-12B-IT WebUI安全加固:HTTPS、IP白名单与频率限制实战
  • 关于北大青鸟马甸华腾校区介绍及官方公告 - 北大青鸟总部
  • 告别白边:3个方法让照片拼接边缘完美融合 - 软件工具教程方法
  • 图片格式转换工具怎么选?看这6款小程序对比结果 - 软件工具教程方法
  • PaddleOCR完整指南:从图像到结构化数据的AI文档解析革命
  • 无保卡老旧腕表没人收?南京回收不设门槛,新旧都收 - 讯息早知道

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号