约 1 分钟
同步与互斥思维导图

同步与互斥的基本概念

  • 临界资源
  • 临界资源的访问过程
    • 进入区(上锁)
    • 临界区(又称临界段
    • 退出区(解锁)
    • 剩余区
  • 同步(直接制约关系)
  • 互斥
    • 间接制约关系
    • 准则
      • 空闲让进
      • 忙则等待
      • 有限等待
      • 让权等待

实现临界区互斥的基本方法

  • 软件实现方法
    • 单标志法
    • 双标志法先检查
    • 双标志法后检查
    • Peterson’s Algorithm
  • 硬件实现方法
    • 中断屏蔽方法
      • 简单粗暴
      • 限制了处理机交替执行程序的能力
      • 关中断权力下放,很不明智
      • 不适用于多处理机系统
    • 硬件指令方法
      • TestAndSet(TS指令/TestAndSet Lock/TSL指令)
      • Swap指令

互斥锁

  • acquire()
  • release()
  • *自旋锁:需要连续循环忙等的互斥锁,都可称为自旋锁(spin lock),如TSL指令、Swap指令和单标志法等
acquire(){
	while(!available); //忙等待
	available = false; //获得锁
}
release(){
	available=true;    //释放锁
}

信号量

  • 信号量其实就是一个变量,可以用一个信号量表示系统中某种资源的数量
  • wait(S) & signal(S)(P操作和V操作)

管程

经典同步问题