硬件同步机制
要解决进程互斥进入临界区的问题有三种方法,关中断(进程在执行期间不响应中断,可以保证锁的测试和开关操作的完整性)、利用TS指令实现互斥、利用swap指令交换内容,但是硬件同步机制虽然也能实现互斥,但临界资源忙碌时,其他访问进程必须不断的测试,处于忙碌状态,且不满足让权等待的原则,不能用来解决复杂的进程同步问题。
信号量机制
整形信号量
通过两个标准的原子操作来访问(PV操作)其必须成对出现,一为申请资源,一为释放资源,但整型信号量由于临界资源忙碌,就会不断测试,不满足让权等待的原则。
记录型信号量
不存在“忙等”现象,采取记录型的数据结构,增加两个变量,value(表示资源的数目)、list(链接所有等待进程),满足让权等待的原则。
AND信号量
将进程在整个运行过程中需要的所有资源,一次性全部分配给进程,使用完后一起释放,则可以避免出现死锁的状态。
信号量集
对AND信号量进行的扩充,设置资源分配的下限值。