1、进程的同步与互斥关系
同步:多个并发进程(线程)协同完成一项任务是,由于数据交互需要而在进程(线程)执行次序上的约束关系,叫同步关系,亦称功能合作关系
互斥:并发进程(线程)间为竞争同一个资源而间接发生的相互制约关系,叫互斥关系,亦称为资源竞争关系
同步进程必须按照设定的顺序执行,否则会出错,而互斥关系的进程无论哪个先执行,都不会影响运行结果的正确性
2、临界资源与临界区
临界资源:系统中一次只允许一个进程(线程)访问的资源称为临界资源,一旦分配给进程,不能强制剥夺,直到主动释放
- 物理资源:I/O 设备
- 逻辑资源:共享变量、共享文件、控制信号等
临界区:并发执行的进程中,访问(读取或者修改)临界资源必须互斥执行的程序段叫临界区,临界区分散在并发执行的进程中
3、进程同步机制
同步机制:多个相关进程(线程)在执行次序上的协调称为进程同步,用于保证多个进程在执行次序上的协调关系的机制成为进程同步机制
- 空闲让进
- 忙则等待:互斥的访问临界资源
- 有限等待
- 让权等待:进程不能进入自己的临界区时,应立即释放CPU资源
4、临界区互斥访问
互斥访问策略:设置和清除“正在访问临界区”标志
- 软件方法:编程复杂,局限性大 (可能两个线程都进入临界区,违反忙则等待原则)
- 硬件指令:简单实用,效率较低 (测试并设置原语,但违反让权等待原则)
- 信号量:应用广泛