【OS学习笔记】进程同步与通信

进程同步与通信

进程同步

并发进程的关系

  1. 间接制约关系:一组(两个或多个)进程共享一中资源,且该资源一次仅允许一个进程使用。
  2. 直接制约关系:几个进程相互协作完成一项任务,这些进程要求必须按照规定好的顺序依次执行。

    进程的互斥与同步

  • 1.进程同步:若干进程为为完成一个共同的任务而互相合作等待对方的消息的协调关系称为进程同步。
  • 2.进程互斥:进程之间争夺互斥资源引起的。
  • 2.1 饥饿:一个就绪进程所申请的资源总是被优先于自己的其他进程占有,而始终处于不能被调度执行的状态,这种情况称为饥饿。
  • 2.2 死锁:一个进程集合中,已经占有部分资源的两个或两个以上的进程,还需要获得已被其他进程占有的资源才能继续执行;有可能出现某些进程相互之间都在等待对方的资源且无法运行的局面,即在进程集合中的这些进程处于永远的阻塞状态,这就是死锁。
  • 3.二者相似之处
    进程互斥实质上是进程同步的一种特殊情况。
  • 4.进程同步与进程互斥的区别:~

临界资源与临界区

  • 一段时间内只能允许一个进程使用的资源(即互斥资源)称为临界资源。
  • 对临界资源的访问只能互斥进行,也即个进程对同一临界资源进行操作的程序段也应互斥执行,只有这样才能保证对临界资源的互斥访问。我们把进程中访问临界资源的代码段称为临界区
    临界区同步机制的4条准则:
    1 .空闲让进。
    2 .忙则等待。
    3 .有限等待。若干进程要求进入同一临界资源的临界区时,应在有限的时间内使一进程进入临界区,即不应出现各进程相互等待而都无法进入临界区的情况。
    4 .让权等待。当进程不能进入其临界区时应立即释放所占有的CPU,以免陷入忙等(进程占用CPU的同时又一直等待)。