程序的执行 ●程序执行的描述 前趋图 ●程序的顺序执行 ●程序的并发执行
程序的执行 ⚫ 程序执行的描述 – 前趋图 ⚫ 程序的顺序执行 ⚫ 程序的并发执行
前趋图 概念: 前趋图是一个有向无循环图 ●要求 每个结点可用于表示一条语句、一个程序段等 结点间的有向边表示在两个结点之间存在的前趋关 系 例如: 图2-1所示
前趋图 ⚫ 概念: – 前趋图是一个有向无循环图。 ⚫ 要求 – 每个结点可用于表示一条语句、一个程序段等 – 结点间的有向边表示在两个结点之间存在的前趋关 系 ⚫ 例如: – 图2-1所示
程序的顺序执行 概念: 程序在执行时,必须按某种先后次序逐个执 行操作,只有当前一个操作执行完后,才能 执行后一个操作。 特征: 顺序性 封闭性 可再现性
程序的顺序执行 ⚫ 概念: – 程序在执行时,必须按某种先后次序逐个执 行操作,只有当前一个操作执行完后,才能 执行后一个操作。 ⚫ 特征: – 顺序性 – 封闭性 – 可再现性
程序的并发执行 ●概念: 是指在一个时间段内执行多个程序。 ●特征: 间断性 失去封闭性 不可再现性 ●程序并发执行的判断方法: Bernstein条件 利用前趋图
程序的并发执行 ⚫ 概念: – 是指在一个时间段内执行多个程序。 ⚫ 特征: – 间断性 – 失去封闭性 – 不可再现性 ⚫ 程序并发执行的判断方法: – Bernstein条件 – 利用前趋图
Bernstein条件 ●原理: 不同运算(或程序)的读集与写集的交集和写集与 写集的交集的并集为空集时,这几个运算(或程序) 可以并发执行 ●解释 运算的读集是指在运算执行期间引用的所有变量的 集合 运算的写集是指在运算执行期间要改变的所有变量 的集合 例子: 例2-2
Bernstein条件 ⚫ 原理: – 不同运算(或程序)的读集与写集的交集和写集与 写集的交集的并集为空集时,这几个运算(或程序) 可以并发执行。 ⚫ 解释: – 运算的读集是指在运算执行期间引用的所有变量的 集合; – 运算的写集是指在运算执行期间要改变的所有变量 的集合。 ⚫ 例子: – 例2-2