《软件技术基础》之《同步》

本文深入探讨了进程并发控制的关键概念,包括互斥与同步的基本原理,Peterson互斥算法的细节,信号量方法及其在实现互斥和前趋关系中的应用。此外,还介绍了管程的概念、特点及在生产者-消费者问题中的应用,以及消息传递机制在进程通信中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程并发控制:互斥与同步

在这里插入图片描述

并发控制

示例:
在这里插入图片描述
进程间的制约关系

  • 间接制约:资源共享→互斥
  • 直接制约:进程合作→同步

临界资源:必须互斥使用的资源称为临界资源。

临界区:访问临界资源的那段代码称为临界区。
在这里插入图片描述

竞争临界资源引起的问题:忙等、饥饿、死锁。
在这里插入图片描述
临界区使用原则(互斥条件):空闲让进、忙则等待、优先等待、让全等待。
在这里插入图片描述

互斥与同步的解决策略

在这里插入图片描述
在这里插入图片描述

软件方法

在进入区设置和检查一些标志来标明是否有进程在临界区。若已经有进程在临界区,则在进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。

初步设想——轮换使用临界区
在这里插入图片描述

第一次改进——设置临界区状态标志
在这里插入图片描述
在这里插入图片描述
第二次改进——预先表明进入临界区的态度
在这里插入图片描述
在这里插入图片描述
第三次改进——预先表明进入临界区的态度+谦让
在这里插入图片描述
在这里插入图片描述
谦让的改进:给定序号避免过分谦让
在这里插入图片描述
在这里插入图片描述

Peterson互斥算法

在这里插入图片描述

软件方法的特点

在这里插入图片描述

信号量方法

信号量实现进程互斥的基本原理

在这里插入图片描述

信号量定义

在这里插入图片描述
信号量的两个原子操作:wait(s)和signal(s),有时也称作P(s)和V(s)。
在这里插入图片描述

信号量的物理意义

在这里插入图片描述

wait、signal的应用

在这里插入图片描述

利用信号量实现互斥的通用模式

在这里插入图片描述

利用信号量实现前趋关系示例

P1、P2、P3、P4、P5、P6为一组合作进程,其进程前趋图如下所示,用P、V操作实现这六个进程的同步。
在这里插入图片描述
###

信号量的类型

依据使用方式:
在这里插入图片描述
在这里插入图片描述

管程

管程的组成

在这里插入图片描述

管程的概念

一个管程定义了一个数据结构和(在该数据结构上)能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。

管程的特点

在这里插入图片描述

若由于某种原因,一个正在管程中执行的进程必须阻塞,该如何处理?
答:释放管程供其他进程使用→同步机制。

管程中的同步机制

在这里插入图片描述

管程的结构

在这里插入图片描述

生产者-消费者问题

在这里插入图片描述
在这里插入图片描述
生产者-消费者模型

  • 缓冲区:固定大小
  • 生产者:满则等待,空则填充
  • 消费者:空则等待,有则获取

在这里插入图片描述
在这里插入图片描述
限制要求:
在这里插入图片描述
流程图:
在这里插入图片描述
代码:
在这里插入图片描述
生产者-消费者问题的管程解决方法:
在这里插入图片描述

消息传递

进程通信:进程之间的信息交换。

进程通信方式
在这里插入图片描述

进程通信的方式

在这里插入图片描述

共享存储区方式

在这里插入图片描述

电子邮件的发送与接收过程:
在这里插入图片描述

消息传递机制

数据交换以格式化的消息为单位。

消息的一般格式:
在这里插入图片描述
消息传递的同步:
在这里插入图片描述
三种同步方式:
在这里插入图片描述
在这里插入图片描述
消息传递的寻址:
在这里插入图片描述
在这里插入图片描述

邮箱:不限制进程数,允许多个发送进程向邮箱发送消息,同时,也允许多个接收进程从邮箱接收信息。
在这里插入图片描述

利用消息传递实现互斥

在这里插入图片描述
代码:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值