313进程间的相互合作 1通过共享合作 这些进程并不是通过名字察觉到对方, 而是通过共享访问间接察觉。进程间通 过共享方式进行合作。除互斥、死锁和 饥饿外,保证数据的一致性也是一个潜 在的控制问题
6 3.1.3 进程间的相互合作 1.通过共享合作 这些进程并不是通过名字察觉到对方, 而是通过共享访问间接察觉。进程间通 过共享方式进行合作。除互斥、死锁和 饥饿外,保证数据的一致性也是一个潜 在的控制问题
313进程间的相互合作 2通过通信合作 进程通信是指进程之间可直接以较高的 效率传递较多数据的信息交换方式。这 种方式中采用的是通信机构,在进程通 信时往往以消息形式传递信息。因为在 消息传递中不存在共享,所以这种形式 的合作不需要互斥,但是还存在死锁和 饥饿问题
7 3.1.3 进程间的相互合作 2.通过通信合作 进程通信是指进程之间可直接以较高的 效率传递较多数据的信息交换方式。这 种方式中采用的是通信机构,在进程通 信时往往以消息形式传递信息。因为在 消息传递中不存在共享,所以这种形式 的合作不需要互斥,但是还存在死锁和 饥饿问题
314互斥的要求 并发进程的成功完成需要有定义临界段和 实现互斥的能力,这是任何并发进程方案 的基础。解决互斥问题必须满足以下要求 互斥执行 ·执行非临界段的进程不能受到其他进程的 干扰 有限的等待 没有进程相对速度和数目的假设 进程进入到临界段中的时间有限
8 3.1.4 互斥的要求 并发进程的成功完成需要有定义临界段和 实现互斥的能力,这是任何并发进程方案 的基础。解决互斥问题必须满足以下要求: • 互斥执行 • 执行非临界段的进程不能受到其他进程的 干扰 • 有限的等待 • 没有进程相对速度和数目的假设 • 进程进入到临界段中的时间有限
32互斥—软件解决方法 软件方法对并发进程不提供任何支持, 因此,无论是系统程序或应用程序,进 程都要同其他进程合作以解决互斥,它 们从程序设计语言和操作系统那里得不 到任何支持。软件方法易引起较髙的进 程附和较多的错误,但有利于深刻理解 并发的复杂性
9 3.2 互斥——软件解决方法 软件方法对并发进程不提供任何支持, 因此,无论是系统程序或应用程序,进 程都要同其他进程合作以解决互斥,它 们从程序设计语言和操作系统那里得不 到任何支持。软件方法易引起较高的进 程附和较多的错误,但有利于深刻理解 并发的复杂性
321 Dekker算法 Dekker算法的优点在于它描述了并发进 程发展过程中遇到的大部分共同问题。 任何互斥都必须依赖于一些硬件上的基 本约束,其中最基本的约束是任一时刻 只能有一个进程访问内存中某一位置
10 3.2.1 Dekker算法 Dekker算法的优点在于它描述了并发进 程发展过程中遇到的大部分共同问题。 任何互斥都必须依赖于一些硬件上的基 本约束,其中最基本的约束是任一时刻 只能有一个进程访问内存中某一位置