正在加载图片...
锁机制实现 临界资源锁机制 L=0打开状态,资源空闲 :一圈 进程 m锁变量L L=1关闭状态,资源忙 check: if(L==1 check: if(L==1) goto check; 每个进程必须按照以下过程操作资源 goto chec else l= 1 else = 1 临界区}[L=0 临界区 临界 unlock(L; 锁操作的一般模型(Pi:进程i;C(i):Pi的临界区) lock( L) unlock( L) PJ lock( L) unlock( L) 出了问题的锁 锁与中断 进程1 秀【的进程2剪 通过开、关中断,保证关锁操作不被打断 关中断 check: if(L== 1) Check: if (L==1) goto check;问题出在9 o check 开中断 else l= 1 判断状态后seL=1 是 临界区 数变状态前 临界区 被打断 unlock(L) unlock (L) 开中断 出现问题的锁 信号量机制 锁操作特点 32进程同步的信号量机制( semaphore) 锁操作的特点: ◆(1)信号量 现了进程互斥访间临开资源。 c信号量是对具体物理资源的抽象 ◆不巡循让权等特原则。—忙等 c不同类的资源用不同名称的信号量代表 c同类资源的个数用>0的信号量值表示 c信号量值为0或1的信号量表示临界资源 开中斷 □伯号量是比夏高的资源抽象力式 F中断锁机制 ◼ 临界资源锁机制 锁 锁变量L 每个进程必须按照以下过程操作资源 L = 1 关闭状态,资源忙 L = 0 打开状态,资源空闲 抽象 … L=1 临界区 L=0 … 锁机制实现 ...... ...... check: if ( L = = 1){ goto check; else L = 1; 临界区 L 进程 1 进程 2 unlock( L ); ...... check: if ( L = = 1){ goto check; else L = 1; 临界区 unlock( L ); ...... 10 锁操作的一般模型 (Pi: 进程 i ; C( i ): Pi 的临界区) Pi:...... lock( L ) → C( i ) → unlock( L ) ......... Pj:...... lock( L ) → C( j ) → unlock( L ) ......... 出了问题的锁 ...... ...... check: if ( L = = 1){ goto check; else L = 1; 临界区 unlock( L ); ...... check: if ( L = = 1){ goto check; else L = 1; 临界区 unlock( L ); ...... 出现问题的锁 进程 1 进程 2 L 10 尚未执行 问题出在? 判断状态后 改变状态前 被打断 锁与中断 ◼ 通过开、关中断,保证关锁操作不被打断 L==0? L=1 关中断 开中断 开中断 是 否 锁操作特点 ◼ 锁操作的特点: ◆实现了进程互斥访问临界资源。 ◆不遵循让权等待原则。——忙等 L==0? L=1 关中断 开中断 开中断 是 否 信号量机制 ◼ 3.2 进程同步的信号量机制(semaphore) ◆(1)信号量 信号量是对具体物理资源的抽象 不同类的资源用不同名称的信号量代表 同类资源的个数用> 0的信号量值表示 信号量值为 0 或 1 的信号量表示临界资源 信号量是比锁更高级的资源抽象方式
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有