2.几个基本概念 ①并发单元的特点诸程序单元并行活动 ②同步问题 正确访问缓冲区:不会向已满的缓冲区写数据, 不会从空缓冲区读数据
2. 几个基本概念 ①并发单元的特点:诸程序单元并行活动 ②同步问题 正确访问缓冲区:不会向已满的缓冲区写数据, 不会从空缓冲区读数据
动作的”不可分”与”可分 设表示所存项目总数 append是生产者向缓 冲区存数的操作, remove是消费者从缓冲区取 数的操作这两个操作都要修改t的值相应执行 操作(1)t:=t+1和(2)t=t-1来实现。假定(1)和 (2)是这样实现的 读t到一个专用寄存器; 更新专用寄存器的值; 将专用寄存器的值写到t;
动作的”不可分”与”可分” 设t表示所存项目总数,append是生产者向缓 冲区存数的操作,remove是消费者从缓冲区取 数的操作,这两个操作都要修改t的值,相应执行 操作(1)t:=t+1和(2)t:=t-1来实现。假定(1)和 (2)是这样实现的: 读t到一个专用寄存器; 更新专用寄存器的值; 将专用寄存器的值写到t;
互斥:执行(1)时不能开始执行(2),反之亦然。 即、(1)和(2)必须以互斥的方式执行,(1)或(2)就 像不可分的操作。 ③进程的并发性诸进程的执行概念上是可重 叠的(即正在执行的进程尚未终止,另一个进 程可能开始执行)
互斥:执行(1)时不能开始执行(2),反之亦然。 即,(1)和(2)必须以互斥的方式执行,(1)或(2)就 像不可分的操作。 ③进程的并发性:诸进程的执行概念上是可重 叠的(即正在执行的进程尚未终止,另一个进 程可能开始执行)
3.信号灯 信号灯是一个数据对象,该数据对象采用一个 整数值,并可用原语P和Ⅴ对它进行操作。信号 灯在说明时以某个整数值对它初始化
3. 信号灯 信号灯是一个数据对象,该数据对象采用一个 整数值,并可用原语P和V对它进行操作。信号 灯在说明时,以某个整数值对它初始化
①P、V操作的定义 P(S): if s>0 then S: s-1 else挂起当前进程 V(s):if信号灯上有挂起的进程 then唤配进程 else s =S+1
①P、V操作的定义 P(s): if s>0 then s:=s-1 else 挂起当前进程 V(s): if 信号灯上有挂起的进程 then 唤配进程 else s:=s+1