一、与并发相关的关键术语:
- 原子操作:要保证指令的序列作为一个组来操作执行,要么都不执行;要么执行要直接执行到指令完毕,中间不能中断
- 临界区:是一段代码,在这段代码中进程将访问共享资源,当有一个进程在这段代码中运行时,其他进程不能在这段代码中运行
- 死锁:两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而不能继续执行,这种情形称为死锁
- 互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源,这种情形称为互斥
- 同步:同步是在互斥的基础上(大多数情况),通过对其他机制实现访问者对资源的有序访问
- 饥饿:指一个可运行的进程尽管能继续执行,但被调度程序无限期地忽视,而不能调度执行的情形
- 竞争条件:多个线程或进程在读写一个共享数据时,结果依赖于它们执行的相对时间,这种情形称为竞争条件
二、并发的原理
在单处理器多道程序设计系统中,进程被交替执行,表现出一种并发执行的外部特征。即使不能实现真正的并行处理,并且在进程间来回切换也需要一定的开销,交替执行在处理效率和程序结构上还是带来了重要的好处。在多处理器系统中,不仅可以交替执行进程,而且可以重叠执行进程。
三、进程的交互
我们可以根据进程相互之间