- -
每个进程都有一个进程控制块 PCB。在模拟实习中,假设进程控制块的结构如
图 3-1。其中进程的状态有:运行态、就绪态、等待态和完成态。当进程处于
等待态时,在进程控制块 PCB 中要说明进程等待原因(在模拟实习中进程等待
原因是为等待信号量 s1 或 s2);当进程处于等待态或就绪态时,PCB 中保留
了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于
完成状态,表示进程执行结束。
进程名
状态
等待原因
断点
图 3-1 进程控制块结构
(4) 处理器的模拟。
计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。
为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理职能。
模拟的一组指令见图 3-2,其中每条指令的功能由一个过程来实现。用变
量 PC 来模拟“指令计数器”,假设模拟的指令长度为 1,每执行一条模拟指令后,
PC 加 1,提出下一条指令地址。使用模拟的指令,可把生产者和消费者进程的
程序表示为图 3-3 的形式。
定义两个一维数组 PA[0..4]和 SA[0..4],每一个 PA[i]存放生产者程序中
的一条模拟指令执行的入口地址;每个 SA[i]存放消费者程序中的一条模拟指令
执行的入口地址。于是模拟处理器执行一条指令的过程为:取出 PC 之值,按
PA[PC]或 SA[PC]得模拟指令执行的入口地址,将 PC 之值加 1,转向由入口地
址确定的相应的过程执行。
模拟的指令 功能
p (s)
执行 P 操作原语
v (s)
执行 V 操作原语
put B[IN]: =product; IN: = (IN+1) mod
10
GET x: =B[out]; out: =(out+1) mod 10
produce
输入一个字符放入 C 中
consume
打印或显示 x 中的字符
GOTO L PC: =L
NOP
空操作
图 3-2 模拟的处理器指令
序号 生产者程序 消费者程序
0 produce p (s
2
)
1 p (s
1
) GET
2 PUT v (s
1
)
3 v (s
2
) consume
4 goto 0 goto 0
图 3-3 生产者和消费者程序
- .可修编 .
评论0
最新资源