第 3 章 进程的同步与通信3
1 基本点、重点和难点在多道程序系统中,程序的执行失去了封闭性和再现性,程序的运行具有不确定性,这是我们所不希望看到的
如果多道程序系统中程序的执行不加控制,程序的每次执行就可能得到不同的结果
如何使多道程序的执行的结果具有再现性和确定性
这就需要通过进程间的同步和互斥来实现,将原来无序的、不确定的程序的执行转换为有序的、确定的执行
解决同步和互斥问题最常用的方法就是信号量的方法,通过在程序中使用 P、V 操作达到同步和互斥的目的
在使用信号量和 P、V 操作时,很多学生觉得无从下手,感到困惑
这主要是因为他们对进程的本质理解还不够深入、对多道程序设计的原理还不够清楚、对信号量的含义还不够明白造成的
但这部分内容又是各类考试的必考点
本章有很多经典问题,其解题的方法和答案在很多资料上都可以见到
但这些解题的结果是专家们长期精炼而成的,初学者在开始时不可能得到这样的结果
对于初学者而言,迫切想知道的已不单是解题的结果,而是问题解决的思考和分析过程
为此,本章中对一些问题的解答给出了详细的分析过程
1 进程的同步和互斥的概念1
同步(Synchronization)相互合作的进程需要在某些点上协调,先到达某点的进程需要等待后到达的进程,进程间的这种协调关系叫同步
互斥(Mutex)互斥是一种特殊的同步方式
当多个进程需要使用相同的资源,而此资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待
进程间的这种相互排斥关系叫互斥
临界资源与临界区(Critical Resource and Critical Section)临界资源是一次只允许一个进程使用的资源
临界区是在进程中操作临界资源的程序段
2 锁操作法实现互斥1. 基本思想实现互斥的基本思想是使多个进程不能同时进入临界区