操作系统-同步互斥

进程的并发执行

进程互斥

1
2
3
4
竞争条件: 多进程读写共享数据,结果取决于进程执行的时序
进程互斥: 多进程使用共享资源,资源排他性使用。
临界资源,互斥资源,共享变量: 一次只能被一个进程使用
临界区(互斥区):各个进程中对某个临界资源实施操作的程序片段

实现进程互斥的方案

  • 软件方案

dekker解法

1
2
两个进程P,Q , 以标志pturn, qturn 的true,false标识是否想进入临界区的意向
然后以turn标志,处理两个都有意向的时候,某一个进行谦让设置为false,让另一个进入临界区

Peterson解法

1
2
3
4
进程i:
enter_region(i)
进入临界区
leave_region(i)
  • 硬件方案

屏蔽中断, TSL(XCHG)指令

1

进程同步

多个进程发送的事件存在时序关系,需要合作完成一项任务