进程间制约关系
- 进程的制约关系:并发进程之间彼此相关,相互影响,一个进程的执行可能影响其他进程的执行结果。
- 制约关系的类型:根据共享资源性质的不同,可分为:
- 直接制约关系:也称"合作关系",是指一个进程执行完后,另一个进程才能开始,否则不能开始。
- 间接制约关系:也称"竞争关系",指一个进程访问共享资源时,其他需访问此资源的进程必须等待。
进程同步和互斥的概念
同步:指两个或两个以上的进程由于某种时序上的限制而形成的相互合作的制约关系。(直接制约关系)
互斥:指两个或两个以上的进程由于竞争资源而形成的制约关系。(间接制约关系)
下列活动分别属于哪种制约关系?
- 若干同学去图书馆借书(互斥)
- 输入进程和计算进程(同步)
- 流水线生产的各道工序(同步)
- 若干进程使用一台打印机(互斥)
- 商品生产和社会消费(同步)
临界资源和临界区
- 临界资源:指一次只允许一个进程使用资源
- 系统中许多独占性硬件资源(如卡片输入机和打印机等)和软件资源(如变量、表格、队列、栈和文件等)均属于临界资源。
- 临界区:指进程访问临界资源的那段程序代码。
临界区的管理准则
- 空闲让进:当临界资源空闲时,可允许进入访问;
- 忙则等待:当临界区已有进程访问时,其他需进入临界区进程必须等待
- 有限等待:对于进入临界区的进程,应保证在有限时间内能进入临界区,以免陷入 "死等"状态;
- 让权等待:当进程不能进入临界区时,应立即释放CPU,以免进程陷入"忙等"。
进程同步和互斥的关系
- 互斥反映了进程间的竞争关系,而同步则反映了进程间的合作关系。
- 进程互斥是进程同步的一种特殊情况
- 互斥所涉及的进程之间没有固定的必然的联系,它们只是竞争获得共享资源的使用权;而同步所涉及的并发进程之间有一钟必然的联系,即使资源可用,若没有获得同步消息,进程也不能去使用。
互斥和同步的比较
同步(直接制约) | 互斥(间接制约) |
---|---|
进程————进程 | 进程————资源————进程 |
时间次序上受到某种限制 | 竞争到某一物理资源时不允许其他进程再访问 |
相互清楚对方的存在及作用,交换信息 | 不一定清楚其他进程情况 |
往往指有几个进程共同完成一个任务 | 往往指多个任务多个进程间通讯制约 |
生产者————消费者 | 交通十字路口、单轨火车的拔道岔 |