硬件解法(3) “开关中断”指令 进入临界区前执行: 执行“关中断”指令 离开临界区后执行 执行“开中断”指令
硬件解法 (3) “开关中断”指令 进入临界区前执行: 执行“关中断”指令 离开临界区后执行: 执行“开中断”指令
54信号量 信号量概念 信号量及同步原语 信号量的应用
5.4 信号量 信号量概念 信号量及同步原语 信号量的应用
信号量的概念 1、概念:信号量表示资源的物理实体,是 个与队列有关的整体变量,除对其初始 化外,其值仅能由wait和 signal两种不可中 断的操作来改变。 2、对信号量S的操作有两个: wait signal (又称同步原语)表示为wa(s) signal(s)
一、信号量的概念 1、概念:信号量表示资源的物理实体,是 一个与队列有关的整体变量,除对其初始 化外,其值仅能由wait和signal两种不可中 断的操作来改变。 2、对信号量S的操作有两个:wait 与signal。 (又称同步原语)表示为wait(s),signal(s)
、信号量及同步原语 1、信号量分类 ·二元信号量:它允许取值仅为0,1,其 初始值为1,主要用于解决进程互斥问题 ·一般信号量:取值不限于0和1,其初值 为0或为某个正整数n,主要用于进程间 的同步 2、同步原语的实现 同步原语的描述有两种不同的形式: 阻塞等待方式,忙等待方式
二、信号量及同步原语 1、信号量分类 • 二元信号量:它允许取值仅为0,1,其 初始值为1,主要用于解决进程互斥问题。 • 一般信号量:取值不限于0和1,其初值 为0或为某个正整数n,主要用于进程间 的同步。 2、同步原语的实现 同步原语的描述有两种不同的形式: 阻塞等待方式,忙等待方式
(1)阻塞等待方式 WAIT (S) SIGNAL (S S=S-1 S=S+1 判断S 判断S 进程继续阻塞该进程 将进程插入S的等待队进程唤醒等待队列中 的一个进程,重 列L中,重新调度 继续新调度
(1)阻塞等待方式 WAIT(S) 判断S 进程继续 阻塞该进程 将进程插入S的等待队 列L中,重新调度 SIGNAL(S) S=S+1 判断S 进程 继续 唤醒等待队列中 的一个进程,重 新调度 S>0 S<0 S<=0 S=S-1 S>=0