并发性:互斥和同步、死锁和饥饿

本文详细介绍了并发编程中的关键概念,包括原子操作、临界区、死锁、互斥和同步。阐述了并发的原理,强调在单处理器和多处理器系统中的执行特性。还深入探讨了实现互斥的多种方法,如中断禁用、信号量、管程和消息传递。最后,讨论了死锁的概念、原因和预防策略,包括资源的分类和死锁的四个必要条件。
摘要由CSDN通过智能技术生成

一、与并发相关的关键术语:

  • 原子操作:要保证指令的序列作为一个组来操作执行,要么都不执行;要么执行要直接执行到指令完毕,中间不能中断
  • 临界区:是一段代码,在这段代码中进程将访问共享资源,当有一个进程在这段代码中运行时,其他进程不能在这段代码中运行
  • 死锁:两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而不能继续执行,这种情形称为死锁
  • 互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源,这种情形称为互斥
  • 同步:同步是在互斥的基础上(大多数情况),通过对其他机制实现访问者对资源的有序访问
  • 饥饿:指一个可运行的进程尽管能继续执行,但被调度程序无限期地忽视,而不能调度执行的情形
  • 竞争条件:多个线程或进程在读写一个共享数据时,结果依赖于它们执行的相对时间,这种情形称为竞争条件

二、并发的原理

在单处理器多道程序设计系统中,进程被交替执行,表现出一种并发执行的外部特征。即使不能实现真正的并行处理,并且在进程间来回切换也需要一定的开销,交替执行在处理效率和程序结构上还是带来了重要的好处。在多处理器系统中,不仅可以交替执行进程,而且可以重叠执行进程。

三、进程的交互

我们可以根据进程相互之间

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值