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