第三课进程的同步和通讯 (Synchronization and Communication Among Processes 教学目的: 在进程的控制的基础上这课引入进程同步和进程同 步机制的概念,它对并发执行进程的推进序列加以限 制以保证互斥使用临界资源或协同完成任务,解决程 序并发执行时带来结果不可再现问题。这课介绍了用 软件、硬件、信号量机制、AND型信号量集、一般信 号量集、管程等各种解决进程互斥同步问题的方法, 重点介绍了信号量机制的概念和用信号量机制解决进 程互斥同步问题的方法
第三课 进程的同步和通讯 (Synchronization and Communication Among Processes ) 教学目的: 在进程的控制的基础上这课引入进程同步和进程同 步机制的概念,它对并发执行进程的推进序列加以限 制以保证互斥使用临界资源或协同完成任务,解决程 序并发执行时带来结果不可再现问题。这课介绍了用 软件、硬件、信号量机制、AND型信号量集、一般信 号量集、管程等各种解决进程互斥同步问题的方法, 重点介绍了信号量机制的概念和用信号量机制解决进 程互斥同步问题的方法
教学要求: 熟悉进程间制约关系,掌握临界资源和临界区概念,掌 握进程同步和进程同步机制,熟悉利用软件方法和硬件 技术解决进程同步机制。 熟练掌握信号量和P、V操作的概念、定义和实质,熟练 掌握利用信号量实现进程互斥和同步,熟悉用信号量描 述前趋关系。 掌握利用信号量解生产者-消费者问题、熟悉利用信号 量解读者-写者问题等经典同步问题,掌握进程同步分 析方法。 了解用AND型信号集机制、一般信号集机制和管程解经 典同步问题 熟悉进程通讯的概念和共享存储器系统、消息传送系统 管道通信系统三类高级通讯机制,掌握消息缓冲队列通 信机制
教学要求: 熟悉进程间制约关系,掌握临界资源和临界区概念,掌 握进程同步和进程同步机制,熟悉利用软件方法和硬件 技术解决进程同步机制。 熟练掌握信号量和P、V操作的概念、定义和实质,熟练 掌握利用信号量实现进程互斥和同步,熟悉用信号量描 述前趋关系。 掌握利用信号量解生产者-消费者问题、熟悉利用信号 量解读者-写者问题等经典同步问题,掌握进程同步分 析方法。 了解用AND型信号集机制、一般信号集机制和管程解经 典同步问题。 熟悉进程通讯的概念和共享存储器系统、消息传送系统、 管道通信系统三类高级通讯机制,掌握消息缓冲队列通 信机制
()进程同步 Synchronization of multiple processes) (1)进程同步的概念 进程间制约关系 在多道程序环境下,系统中各进程以不可预测的速度向 前推进,进程的异步性会造成了结果的不可再现性。为防止 这种现象,异步的进程间推进受到二种限制: 资源共享关系( Cooperation among Processes by Sharing) 多进程共享资源,例如各进程争用一台打印机,这时各进 程使用这台打印机时有一定的限制。每次只允许一个进程使 用一段时间打印机,等该进程使用完毕后再将打印机分配给 其它进程。这种使用原则称为互斥使用
(一)进程同步 (Synchronization of multiple processes) (1)进程同步的概念 1。进程间制约关系 在多道程序环境下,系统中各进程以不可预测的速度向 前推进,进程的异步性会造成了结果的不可再现性。为防止 这种现象,异步的进程间推进受到二种限制: 资源共享关系(Cooperation Among Processes by Sharing) 多进程共享资源,例如各进程争用一台打印机,这时各进 程使用这台打印机时有一定的限制。每次只允许一个进程使 用一段时间打印机,等该进程使用完毕后再将打印机分配给 其它进程。这种使用原则称为互斥使用
进程同步的概念-1 进程之间竞争资源面临三个控制问题: 互斥( mutual exclusion)指多个进程不能同时使用同一个 资源; 死锁( deadlock)指多个进程互不相让,都得不到足够的资源; 饥饿( starvation)指一个进程一直得不到资源(其他进程可 能轮流占用资源) 相互合作关系 ( Cooperation Among Processes by Communication) 在某些进程之间还存在合作关系,例如一个程序的输入、计 算、打印三个程序段作为三个进程并发执行,由于这三个进程 间存在着相互合作的关系,即先输入再计算、最后再打印的关 系,所以这三个进程在并发执行时推进序列受到限制,要保证 其合作关系正确,进程间这种关系称为同步关系
进程同步的概念-1 进程之间竞争资源面临三个控制问题: 互斥( mutual exclusion )指多个进程不能同时使用同一个 资源; 死锁( deadlock )指多个进程互不相让,都得不到足够的资源; 饥饿( starvation )指一个进程一直得不到资源(其他进程可 能轮流占用资源) 相互合作关系 (Cooperation Among Processes by Communication) 在某些进程之间还存在合作关系,例如一个程序的输入、计 算、打印三个程序段作为三个进程并发执行,由于这三个进程 间存在着相互合作的关系,即先输入再计算、最后再打印的关 系,所以这三个进程在并发执行时推进序列受到限制,要保证 其合作关系正确,进程间这种关系称为同步关系
临界资源和临界区 临界资源 象打印机这类资源一次只允许一个进程使用的资源称为临 界资源。属于临界资源有硬件打印机、磁带机等,软件在消 息缓冲队列、变量、数组、缓冲区等。当然还有一类象磁盘 等资源,它允许进程间共享,即可交替使用,所以它称为共 享资源,而临界资源又称独享资源。 临界区( critical sections) 多个进程共享临界资源时必须互斥使用,例如A和B两个进程 都需要使用打印机,它们必须互斥使用。如果为了保证结果 的正确性限制A、B二进程推进序列,规定进程A执行好再执行 进程B,这样的限制就显得过死,因为它已不能保证进程A、B 能并发执行,所以必须把限制减少到最少,以尽可能支持并 发执行。为此把各进程分解,把访问临界资源的那段代码 (称为临界区)与其它段代码分割开来,只对各种进程进入 自己的临界区加以限制,即各进程互斥地进入自己的临界区
2. 临界资源和临界区 临界资源 象打印机这类资源一次只允许一个进程使用的资源称为临 界资源。属于临界资源有硬件打印机、磁带机等,软件在消 息缓冲队列、变量、数组、缓冲区等。当然还有一类象磁盘 等资源,它允许进程间共享,即可交替使用,所以它称为共 享资源,而临界资源又称独享资源。 临界区(critical sections) 多个进程共享临界资源时必须互斥使用,例如A和B两个进程 都需要使用打印机,它们必须互斥使用。如果为了保证结果 的正确性限制A、B二进程推进序列,规定进程A执行好再执行 进程B,这样的限制就显得过死,因为它已不能保证进程A、B 能并发执行,所以必须把限制减少到最少,以尽可能支持并 发执行。为此把各进程分解,把访问临界资源的那段代码 (称为临界区)与其它段代码分割开来,只对各种进程进入 自己的临界区加以限制,即各进程互斥地进入自己的临界区
临界资源和临界区 例如进程A、B的程序如下: A: begin Input data 1 form I/0 1 Computer... Print results1 by printer;A临界区 nd b: begin Input data 1 form I/0 2 Computer... Print results2 by printer;B临界区 end
临界资源和临界区 例如进程A、 B的程序如下: A: begin Input data 1 form I/O 1 ; Computer……; Print results 1 by printer ; A临界区 end B: begin Input data 1 form I/O 2 ; Computer……; Print results 2 by printer ; B临界区 end
3.进程同步机制 进程在并发执行时为了保证结果的可再现性,各进 程执行序列必须加以限制以保证互斥地使用临界资 源,相互合作完成任务。 多个相关进程在执行次序上的协调称为进程同步。 用于保证多个进程在执行次序上的协调关系的相应 机制称为进程同步机制。 所有的进程同步机制应遵循下述四条准则: ●空闲让进。 当无进程进入临界区时,相应的临界资源处于空 闲状态,因而允许一个请求进入临界区的进程立即 进入自己的临界区
3. 进程同步机制 进程在并发执行时为了保证结果的可再现性,各进 程执行序列必须加以限制以保证互斥地使用临界资 源,相互合作完成任务。 多个相关进程在执行次序上的协调称为进程同步。 用于保证多个进程在执行次序上的协调关系的相应 机制称为进程同步机制。 所有的进程同步机制应遵循下述四条准则: ⚫ 空闲让进。 当无进程进入临界区时,相应的临界资源处于空 闲状态,因而允许一个请求进入临界区的进程立即 进入自己的临界区
进程同步机制 ●忙则等待。 当已有进程进入自己的临界区时,即相应的 临界资源正被访问,因而其它试图进入临界区的 进程必须等待,以保证进程互斥地访问临界资源。 有限等待 对要求访问临界资源的进程,应保证进程能 在有限时间进入临界区,以免陷入“饥饿”状态 让权等待。 当进程不能进入自己的临界区时,应立即释 放处理机,以免进程陷入忙等
进程同步机制 ⚫ 忙则等待。 当已有进程进入自己的临界区时,即相应的 临界资源正被访问,因而其它试图进入临界区的 进程必须等待,以保证进程互斥地访问临界资源。 ⚫ 有限等待。 对要求访问临界资源的进程,应保证进程能 在有限时间进入临界区,以免陷入“饥饿”状态。 ⚫ 让权等待。 当进程不能进入自己的临界区时,应立即释 放处理机,以免进程陷入忙等
进程同步机制 A enters critical region A leaves critical region Process A B attempts to B enters B leaves enter critical critical region critical region region Process B I B blocked Time Mutual exclusion using critical regions
进程同步机制 Mutual exclusion using critical regions
进程同步机制 个由临界区和剩余区1和剩余区2程序段组成的进程采 用进程同步机制后的描述如下: begin remainder section 1 剩余区1 进入区 critical section 临界区 退出区 remainder section2;剩余区2 en 进程同步机制在临界区前加上进入区,它负责对欲访问 的临界资源状态进行检查,以决定是允许该进程进入临 界区还是等待。同时在临界区后加上退出区,它负责释 放临界资源以便其它等待该临界资源的进程使用 实现进程互斥和同步的信号量机制有软件方法、硬件指 令方法、信号量机制和管程等
进程同步机制 ⚫ 一个由临界区和剩余区1和剩余区2程序段组成的进程采 用进程同步机制后的描述如下: begin remainder section 1; 剩余区1 进入区 critical section ; 临界区 退出区 remainder section 2 ; 剩余区2 end 进程同步机制在临界区前加上进入区,它负责对欲访问 的临界资源状态进行检查,以决定是允许该进程进入临 界区还是等待。同时在临界区后加上退出区,它负责释 放临界资源以便其它等待该临界资源的进程使用。 实现进程互斥和同步的信号量机制有软件方法、硬件指 令方法、信号量机制和管程等