失去封闭性
– 程序在并发执行时,是多个程序共享系统中的各种 资源,因而这些资源的状态将由多个程序来改变, 致使程序的运行失去了封闭性。
4.程序并发执行时特征(续)
不可再现性
– 程序在并发执行时,由于失去了封闭性,也导致失去了可再现 性。
– 例如:有两个循环程序A和B,它们共享一个变量N。程序A 每执行一次时都要做N=N+1操作;程序B每执行一次时,都 要做print(N)操作,然后再将N置成“0”,程序A和B以不同 的速度运行。(假定某时刻变量N的值为k)
进程上下文
上文:
– 已执行过的进程指令\数据在寄存器和栈中的内容
正文
– 正在执行的
下文
– 待执行的进程指令\数据在寄存器和栈中的内容
机器指令与寄存器
通过DEBU了解机器指令理解寄存器
C程序
汇编程序
int a = 3; a=a+1; b=a+2;
mov [010B], 3
mov ax, [010B] add ax, 1 mov [010B], ax mov ax, [010B] add ax, 2 mov [010D], ax
CPU现场保护的必要性
CPU
AX
BX
C…X
mov ax, 3 add ax, 1 mov [010B], ax
进程A
mov ax, 5 add ax, bx mov [020C], ax
进程B
Process Control Block (PCB进程控制块)
OS为了管理、控制进程,设置 PCB,存储进程相关信息
若有两条语名P1: c=a+b; P2:x=x+1; 则它们的读集与写为:
R(P1)={ a, b } W(P1)={ c }