进程同步的基本概念
进程之间的关系
- 间接制约:互斥关系——进程共享资源
- 直接制约:同步关系——进程之间存在联系
进程同步:两个进程所表示事件的发生有着某种时序上的关系。
临界资源(Critical Resource)
一次仅允许一个进程使用的资源,如慢速设备、共享变量、数据结构、缓冲区等
结论:多道系统中,为保证进程并发执行且结果确定,必须互斥使用临界资源。
题目:两个进程分别对共享account变量进行(+100)和(+200)的操作,设account初值为0,则执行后account的值是多少?
考虑执行顺序
竞争条件Race condition:两个或多个进程并发读写一个共享变量,而共享变量的值取决于最后访问它的进程执行结果的情况。
临界区(Critical Resource)
定义:进程中访问临界资源的代码段。
使用原则:互斥使用,先申请,判断
进程同步机制应遵循的原则:
1. 空闲让进;
2. 忙则等待;
3. 有限等待;
4. 让权等待;
临界资源的循环进程结构
While (true) {
entry section; //进入区
critical section; //临界区
exit section; //退出区
remainder section; //剩余区
}
软件方法解决互斥问题
方法1:设置标志位flag[if]和flag[j]———标志Pi和Pi进程是否在临界区,初值为false