第三章进程的同步和通讯 (Synchronization and Communication Among Processes 教学目的: 在进程的控制的基础上这课引入进程同步和进程同步机制的 概念,它对并发执行进程的推进序列加以限制以保证互斥使用 临界资源或协同完成任务,解决程序并发执行时带来结果不可 再现问题。这课介绍了用软件、硬件、信号量机制、AND型 信号量集、一般信号量集等各种解决进程互斥同步问题的方法, 重点介绍了信号量机制的概念和用信号量机制解决进程互斥同 步问题的方法
第三章 进程的同步和通讯 (Synchronization and Communication Among Processes ) 教学目的: 在进程的控制的基础上这课引入进程同步和进程同步机制的 概念,它对并发执行进程的推进序列加以限制以保证互斥使用 临界资源或协同完成任务,解决程序并发执行时带来结果不可 再现问题。这课介绍了用软件、硬件、信号量机制、AND型 信号量集、一般信号量集等各种解决进程互斥同步问题的方法, 重点介绍了信号量机制的概念和用信号量机制解决进程互斥同 步问题的方法
教学要求: 熟悉进程间制约关系,掌握临界资源和临界区概念,掌握进 程同步和进程同步机制,熟悉利用软件方法和硬件技术解决 进程同步机制 熟练掌握信号量和P、V操作的概念、定义和实质,熟练掌握 利用信号量实现进程互斥和同步,熟悉用信号量描述前趋关 系 掌握利用信号量解生产者-消费者问题、熟悉利用信号量解读 者-写者问题等经典同步问题,掌握进程同步分析方法。 了解用AND型信号集机制、一般信号集机制解经典同步问题 熟悉进程通讯的概念和共享存储器系统、消息传送系统、管 道通信系统三类高级通讯机制,掌握消息缓冲队列通信机制。 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 教学要求: 熟悉进程间制约关系,掌握临界资源和临界区概念,掌握进 程同步和进程同步机制,熟悉利用软件方法和硬件技术解决 进程同步机制。 熟练掌握信号量和P、V操作的概念、定义和实质,熟练掌握 利用信号量实现进程互斥和同步,熟悉用信号量描述前趋关 系。 掌握利用信号量解生产者-消费者问题、熟悉利用信号量解读 者-写者问题等经典同步问题,掌握进程同步分析方法。 了解用AND型信号集机制、一般信号集机制解经典同步问题。 熟悉进程通讯的概念和共享存储器系统、消息传送系统、管 道通信系统三类高级通讯机制,掌握消息缓冲队列通信机制
31进程同步( Synchronization of multiple processes)的基本概念 进程间制约关系 在多道程序环境下,系统中各进程以不可预测的速度向前 推进,进程的异步性会造成了结果的不可再现性。为防止这 种现象,异步的进程间推进受到二种限制 1、资源共享关系( Cooperation Among Processes by Sharing) 多进程共享资源,运算上无关,但使用资源有关一一> 间接关系; 例如:打印机一一>互斥使用。对CPU也是一种共享。排它性。 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 3.1进程同步(Synchronization of multiple processes)的基本概念 进程间制约关系 在多道程序环境下,系统中各进程以不可预测的速度向前 推进,进程的异步性会造成了结果的不可再现性。为防止这 种现象,异步的进程间推进受到二种限制: 1、资源共享关系(Cooperation Among Processes by Sharing) 多进程共享资源,运算上无关,但使用资源有关――> 间接关系; 例如:打印机――>互斥使用。对CPU也是一种共享。排它性
进程同步的概念-1 2、相互合作关系(直接关系) ( Cooperation Among Processes by Communication 为完成共同任务各个进程之间可能有的关系一一>利用 同步机制加以实现。 例如一个程序的输入、计算、打印三个程序段作为三个 进程并发执行,由于这三个进程间存在着相互合作的关系, 即先输入再计算、最后再打印的关系,所以这三个进程在并 发执行时推进序列受到限制,要保证其合作关系正确,进程 间这种关系称为同步关系。司机与售票员之间的关系 例:AB(可在黑板画图)中间数据N 3、主要目的: 使并发执行的各个进程之间能有效地共享资源和相互合 作一一>可再现性。 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 进程同步的概念-1 2、相互合作关系(直接关系) (Cooperation Among Processes by Communication) 为完成共同任务各个进程之间可能有的关系――>利用 同步机制加以实现。 例如一个程序的输入、计算、打印三个程序段作为三个 进程并发执行,由于这三个进程间存在着相互合作的关系, 即先输入再计算、最后再打印的关系,所以这三个进程在并 发执行时推进序列受到限制,要保证其合作关系正确,进程 间这种关系称为同步关系。司机与售票员之间的关系。 例: A B(可在黑板画图)中间数据N 3、主要目的: 使并发执行的各个进程之间能有效地共享资源和相互合 作――>可再现性
3.1.1临界资源 临界资源 象打印机这类资源一次只允许一个进程使用的资源称为临 界资源。或者:进程之间必须采用互斥方式共享的资源称为 临界资源 硬件资源打印机、磁带机 纸带机、读卡机 软件资源消息缓冲队列 变量、中间结果 数组 缓冲区等 共享资源:当然还有一类象磁盘等资源,它允许进程间共享, 即可交替使用 临界资源又称独享资源 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 3.1.1 临界资源 临界资源 象打印机这类资源一次只允许一个进程使用的资源称为临 界资源。或者:进程之间必须采用互斥方式共享的资源称为 临界资源。 硬件资源 打印机、磁带机 纸带机、读卡机 软件资源 消息缓冲队列 变量、中间结果 数组 缓冲区等 共享资源:当然还有一类象磁盘等资源,它允许进程间共享, 即可交替使用。 临界资源又称独享资源
3.1.1临界资源 对于临界资源的理解: 生产者---消费者 生产者:产生信息的进程; 消费者:使用/消耗信息的进程; 例:输入--计算 计算-打印相对性。 BB 0 B n 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 3.1.1 临界资源 对于临界资源的理解: 生产者-----消费者 生产者:产生信息的进程; 消费者:使用/消耗信息的进程; 例:输入---计算 计算---打印 相对性。 P1 Pm m C1 Cq B0 B1 …. …... ……… Bn-1
3.1.1临界资源 规则: (1)只有在缓冲池中至少有一个缓冲区已存入消息后,消费者才能从中一 提取消息。 (2)只有缓冲池中至少有一个缓冲区是空时,生产者才能把消息放入缓 冲区 用一个数组 buffer来表示上述具有n个缓冲区的缓冲池 In:表示输入指针;表示下一个可投放数据的缓冲区,每当生产者进程生 并投放一个消息后,in+1; Out:表示输出指针;表示下一个可获取数据的缓冲区,每当消费者进程消 费/取走一个消息后,out+1 循环缓冲0,1,…,n-1;in:=(in+1)modn; out: =(out+1)mod n Counter:计数器,生产一个消息-→ buffer;+1 buffer-→取走一个消息;-1 解释P62/p63 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 3.1.1 临界资源 规则: (1)只有在缓冲池中至少有一个缓冲区已存入消息后,消费者才能从中 提取消息。 (2)只有缓冲池中至少有一个缓冲区是空时,生产者才能把消息放入缓 冲区。 用一个数组buffer来表示上述具有n个缓冲区的缓冲池; In:表示输入指针;表示下一个可投放数据的缓冲区,每当生产者进程生 产并投放一个消息后,in+1; Out:表示输出指针;表示下一个可获取数据的缓冲区,每当消费者进程消 费/取走一个消息后, out+1; 循环缓冲0,1,…,n-1; in:=(in+1)mod n; out:=(out+1)mod n; Counter:计数器,生产一个消息-→buffer; +1 buffer-→取走一个消息;-1 解释P62/p63
3.1.2临界区( critical sections 、临界区( critical sections)的定义和进入 定义: 临界区: 每个进程中访问临界资A 源的那段程序段称为临 界区(临界段)。 D 进程c 进程进程B 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 3.1.2临界区(critical sections 临界区: 每个进程中访问临界资 源的那段程序段称为临 界区(临界段)。 一、临界区(critical sections)的定义和进入 1、定义:
临界区( critical sections)的定义和进入 2、进入(可细讲) 例如进程A的程序如下(进程B的程序类似) a: begin Input data 1 form I/0 1 Computer Print results l by printer A临界区 end 解决办法:申请进入、退出说明。 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 一、临界区(critical sections)的定义和进入 2、进入(可细讲) 例如进程A的程序如下(进程B的程序类似): A: begin Input data 1 form I/O 1 ; Computer……; Print results 1 by printer ; A临界区 end 解决办法:申请进入、退出说明
3.1.2临界区 进程同步机制应遵循的原则 进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加以限制 以保证互斥地使用临界资源,相互合作完成任务 多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次 序上的协调关系的相应机制称为进程同步机制。所有的进程同步机制应遵循: 空闲让进。 当无进程进入临界区时,相应的临界资源处于空闲状态,因而允许一个请求进入 临界区的进程立即进入自己的临界区。 忙则等待 当已有进程进入自己的临界区时,即相应的临界资源正被访问,因而其它试图进 入临界区的进程必须等待,以保证进程互斥地访问临界资源 有限等待。 对要求访问临界资源的进程,应保证进程能在有限时间进入临界区,以 免陷入“饥饿”状态。 让权等待 当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等 例:p1,p2并发工作,若P1先进入临界区,则先占用临界资源R。时间片到, P2想进入临界区,就需忙则等待(释放CPU),有限等待,若Pl退出,则空 闲让进P2。 2001年9月20日9时1分 计算机操作系统
2001年9月20日9时1分 计算机操作系统 3.1.2 临界区 二、 进程同步机制应遵循的原则 进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加以限制 以保证互斥地使用临界资源,相互合作完成任务。 多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次 序上的协调关系的相应机制称为进程同步机制。所有的进程同步机制应遵循: ⚫ 空闲让进。 当无进程进入临界区时,相应的临界资源处于空闲状态,因而允许一个请求进入 临界区的进程立即进入自己的临界区。 ⚫ 忙则等待。 当已有进程进入自己的临界区时,即相应的临界资源正被访问,因而其它试图进 入临界区的进程必须等待,以保证进程互斥地访问临界资源。 ⚫ 有限等待。 对要求访问临界资源的进程,应保证进程能在有限时间进入临界区,以 免陷入“饥饿”状态。 ⚫ 让权等待。 当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等。 例:p1,p2并发工作,若P1先进入临界区,则先占用临界资源R。时间片到, P2想进入临界区,就需忙则等待(释放CPU),有限等待,若P1退出,则空 闲让进P2