进程的互斥与临界区 1)进程的互斥是由多个进程竞争同一共享资源而产生的相互 制约的关系 这种因共享资源而产生的关系称为进程的互斥(Mutual Exclusion)以 互斥关系使用的共享资源称为临界资源(Critical Source)。 临界资源包括: 硬件(打印机、显示器、软驱.) 软件(公共变量、数据、子程序.) 2) 每个进程中访问临界资源的那段代码称为临界区。为保证对 临界资源的互斥访问,进程的代码由以下部分组成: ①进入区(entry section)一申请进入临界区 ②临界区(critical section一访问临界资源 ③退出区(exit section)一退出对临界资源的访问 ④剩留区(remainder section)- 进程其他部分 电子科技大学刘民岷 进程同步和互斥 2
电子科技大学 刘民岷 2 1、进程的互斥与临界区 进程同步和互斥 1)进程的互斥是由多个进程竞争同一共享资源而产生的相互 制约的关系 这种因共享资源而产生的关系称为进程的互斥(Mutual Exclusion)以 互斥关系使用的共享资源称为临界资源(Critical Source)。 临界资源包括: • 硬件(打印机、显示器、软驱……) • 软件(公共变量、数据、子程序……) 2)每个进程中访问临界资源的那段代码称为临界区。为保证对 临界资源的互斥访问,进程的代码由以下部分组成: ①进入区(entry section)——申请进入临界区 ②临界区(critical section ——访问临界资源 ③退出区(exit section) —— 退出对临界资源的访问 ④剩留区(remainder section) ——进程其他部分
进程的同步 进程的同步(Syrchronization):多个并发进程协作完成某项任务 的过程中需要相互传递某种信息,进程之间通过在执行时序上 的一种限制而达到相互合作 例:A进程负责从健盘读取数据到缓冲区,B进程负责从缓冲区读取数据进行 计算 A进程 B进程 从键盘读入数据 等待A进程发数据 送缓冲区 送缓冲区的信号 缓冲区满 读缓冲区数据 向B发信号 并计算 等待部进程发回信号 向A进程发信号 等待下批信号送缓冲区 (缓冲区数据已取走) 进程的同步与互斥是两个既有区别又有联系的概念,并发进程的异步 运行都必须按一定的相互约束的时序进行,因此,互斥也是一种同步 关系。 电子科技大学刘民岷 进程同步和互斥 3
电子科技大学 刘民岷 3 2、进程的同步 进程同步和互斥 • 进程的同步(Syrchronization):多个并发进程协作完成某项任务 的过程中需要相互传递某种信息,进程之间通过在执行时序上 的一种限制而达到相互合作 • 例:A进程负责从键盘读取数据到缓冲区,B进程负责从缓冲区读取数据进行 计算 • 进程的同步与互斥是两个既有区别又有联系的概念,并发进程的异步 运行都必须按一定的相互约束的时序进行,因此,互斥也是一种同步 关系
、信号量和PV操作 3 1、 同步机制 通常把实现进程同步与互斥的机制称为同步机制,同步机制目标是解 决对临界资源的访问问题,应遵守以下规则: >空闲让进:无进程处于临界区内,可让一申请进入临界区的进程进入 忙则等待:若临界区内有进程,其余申请进入临界区的进程必须等待 有限等待:进程进入临界区的要求必须在有限时间内得到满足 让权等待:等待进入临界区的进程,若占有CPU必须立即释放 传统同步机制的实现之一.--硬件指令:Test and Set(TS) > 为临界资源设置“锁”,即设置一个锁变量L0ck; Lock=false,”开锁“,表临界资源空闲; >Lock=true,”关锁“,表临界资源不空;<参考书P90图2.6> 。 TS的缺点: 当一个进程在临界区上执行时,其它任何企图进入临界区的进程都 进入循环等待,不断调用TS测试,造成处理机浪费。 电子科技大学刘民岷 进程同步和互斥 4
电子科技大学 刘民岷 4 3、信号量和PV操作 进程同步和互斥 1、同步机制 • 通常把实现进程同步与互斥的机制称为同步机制,同步机制目标是解 决对临界资源的访问问题,应遵守以下规则: 空闲让进:无进程处于临界区内,可让一申请进入临界区的进程进入 忙则等待:若临界区内有进程,其余申请进入临界区的进程必须等待 有限等待:进程进入临界区的要求必须在有限时间内得到满足 让权等待:等待进入临界区的进程,若占有CPU必须立即释放 • 传统同步机制的实现之一------硬件指令:Test and Set(TS) 为临界资源设置“锁”,即设置一个锁变量Lock; Lock=false,”开锁“,表临界资源空闲; Lock=true,”关锁“,表临界资源不空;<参考书P90图2.6> • TS的缺点: 当一个进程在临界区上执行时,其它任何企图进入临界区的进程都 进入循环等待,不断调用TS测试,造成处理机浪费
3、信号量和PV操作(续) 2、PV操作 。 1986年荷兰计算机科学家Dijkstra把互斥的关键含义抽象为信号量 (Semaphore)),提出典型同步机制一P、V操作。 ·设信号量为S(整数),用$的值表示共享资源的使用情况,P、 V操作的定义如下: -P(S): 。S=S-1; ·若S>=0,该进程继续执行;否则,进程阻塞进入S信号量的等 待队列,直到其它进程执行V(S)操作为止。 -V(S): ·S=S+1; ·为 若S>0,则进程继续执行;否则唤醒阻塞队列中的一个进程, 使其进入就绪状态。 显然S可用于表示资源的数量,S>0,表示可分配的资源数量;S<0, S绝对值表示等待队列中的进程数目。 电子科技大学刘民岷 进程同步和互斥 5
电子科技大学 刘民岷 5 3、信号量和PV操作(续) 进程同步和互斥 2、PV操作 • 1986年荷兰计算机科学家Dijkstra把互斥的关键含义抽象为信号量 (Semaphore),提出典型同步机制——P、V操作。 • 设信号量为S(整数),用S的值表示共享资源的使用情况,P、 V操作的定义如下: – P(S): • S=S-1; • 若S>=0,该进程继续执行;否则,进程阻塞进入S信号量的等 待队列,直到其它进程执行V(S)操作为止。 – V(S): • S=S+1; • 若S>0,则进程继续执行;否则唤醒阻塞队列中的一个进程, 使其进入就绪状态。 – 显然S可用于表示资源的数量,S>0,表示可分配的资源数量;S<0, S绝对值表示等待队列中的进程数目
3、信号量和PV操作(续) 3、用PV操作实现进程间互斥 ·设A、B进程竞争临界资源,mutex为互斥信号量。初值为l,利 用P、V操作实现的进程互斥模型如下: A进程 B进程 ! P(mutex); P(mutex) 进入A临界区: 进入B临界区: V(mutex); V(mutex); 。进入时mutex<0,则... 。 退出时mutex+l, 。 每次只允许一个进程进入临界区。 电子科技大学刘民岷 进程同步和互斥 6
电子科技大学 刘民岷 6 3、信号量和PV操作(续) 进程同步和互斥 3、用PV操作实现进程间互斥 •• 设A、B进程竞争临界资源,mutex为互斥信号量。初值为1,利 用P、V操作实现的进程互斥模型如下: • 进入时mutex<0,则…… • 退出时mutex+1, • 每次只允许一个进程进入临界区