程序间并发执行 程序间并发执行的特征 ◆并发执行是否还保持顺序执行的特征? 执行的顺序性? 资源占用的封闭性? 结果的可再现性?
11 程序间并发执行 ◼ 程序间并发执行的特征 ◆并发执行是否还保持顺序执行的特征? 执行的顺序性? 资源占用的封闭性? 结果的可再现性?
程序(间)并发执行的特征: 执行的顺序性m→执行的间断性 程序A 程序B ■■■■■■■■■■ ■mmm■■■■■■■ OS调度 ■■■ JO A ■■■■■■■ lO B 多道程序系統 t2 12
12 程序(间)并发执行的特征: ◼ 执行的顺序性 执行的间断性 多道程序系统 程序A 程序B OS调度 I/O A I/O B t1 t2
程序(间)并发执行的特征: 程序运行时独占资源→资源非封闭 1N=3; 5)K=5 print(N 6)print(K) 3N=N+1 ⑦K=K+1 print(NI (8) print(K) 程序a 程序b 顺序执行ab 打印结果:3456 并发执行ab ④⑤③34(8 26⑦ 打印结果:3546 13
13 程序(间)并发执行的特征: ◼ 程序运行时独占资源 程序a N = 3; print(N) N = N + 1 print(N) K = 5; print(K) K = K + 1 print(K) 程序b 顺序执行 a b 打印结果:3 4 5 6 并发执行 a b 1 2 3 4 5 6 7 8 1 2 5 3 4 6 7 8 打印结果:3 5 4 6 资源非封闭
程序(间)并发执行的特征: 结果可再现m→多次执行结果不同,不可再现 N=5; → Ca print( N N=N+1程序a N=0 →Pbb 程序b a 打印输出N的值 5 PbIb la)→ca 6 0 Pb)(lb 14
14 程序(间)并发执行的特征: ◼ 结果可再现 N = 5; N = N +1; print( N ); N = 0; Ia Ca Pb Ib Ia Pb Ib 打印输出 5 N的值 1 Ia Ca 程序a 程序b Ca Pb Ib 6 0 多次执行结果不同,不可再现
进程的引入 程序间顺序执行和程序间并发执行的特征 ◆顺序执行 c顺序性:前一程序执行完后才执行后一程序 封闭性:程序运行时独占资源 可再现性:环境和初始条件不变下,程序多次重 ◆并发执行复执行,结果一样 c执行的间断性 造成原因 u资源占用的非封闭性x程序有问题? 结果的不可再现性程序的执行过程有问题? 15
15 进程的引入 ◼ 程序间顺序执行和程序间并发执行的特征 ◆顺序执行 顺序性: 封闭性: 可再现性: ◆并发执行 执行的间断性 资源占用的非封闭性 结果的不可再现性 前一程序执行完后才执行后一程序 程序运行时独占资源 环境和初始条件不变下,程序多次重 复执行,结果一样 造成原因 程序有问题? 程序的执行过程有问题?