第2章并行编程基础 1并行编程综述 a2进程任务和线程 3并行性问题 24交互和通信问题 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 第2章 并行编程基础 ◼ 1 并行编程综述 ◼2 进程任务和线程 ◼ 3 并行性问题 ◼ 4 交互和通信问题
2进程、任务和线程 一、进程、任务和线程 在并行计算机上,用户的应用程 序是以进程、任务或线程方式执 行的。 进程:是正在执行的程序。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 2 进程、任务和线程 ◼一、进程、任务和线程 ◼在并行计算机上,用户的应用程 序是以进程、任务或线程方式执 行的。 ◼进程:是正在执行的程序
1.抽象进程的定义 在两个层次上考虑进程概念是很有用 的 抽象观点 口既简单又能很好地适合于并行计算机的 用户。 进程的实现 口工作原理 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 1.抽象进程的定义 ◼ 在两个层次上考虑进程概念是很有用 的。 ◼ 抽象观点 ❑ 既简单又能很好地适合于并行计算机的 用户。 ◼ 进程的实现 ❑ 工作原理
进程的定义 个进程P是一个4元组(P,0,D, S 其中P是程序(或代码),C是控制状 态,D为数据状态以及S为进程P的 状态。 进程是动态的。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 进程的定义: ◼一个进程P是一个4元组(P,C,D, S), ◼其中P是程序(或代码),C是控制状 态,D为数据状态以及S为进程P的 状态。 ◼进程是动态的
程序(代码) 任何进程与一个程序相关 控制和数据状态 大多数程序基于命令式机器模型,中心 概念是状态更新。 个命令式程序可看成是一个状态机 (或一个自动机)。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼程序(代码) ◼ 任何进程与一个程序相关。 ◼ 控制和数据状态 ◼ 大多数程序基于命令式机器模型,中心 概念是状态更新。 ◼ 一个命令式程序可看成是一个状态机 (或一个自动机)
下面定义某些术语 程序变量集的定义: 个程序使用两个变量集:数据变量由程 序员声明用来保存数据值的变量。 ■控制变量是保存控制信息的变量,它们不 需要显式说明。 口控制变量保存的是有关下一步应执行什么操 作的信息。 数据变量集和控制变量集两者的合集形成 了程序变量集。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 下面定义某些术语 ◼ 程序变量集的定义: ◼ 一个程序使用两个变量集:数据变量由程 序员声明用来保存数据值的变量。 ◼ 控制变量是保存控制信息的变量,它们不 需要显式说明。 ❑ 控制变量保存的是有关下一步应执行什么操 作的信息。 ◼ 数据变量集和控制变量集两者的合集形成 了程序变量集
配对集的定义: 口在任何时候,一个程序的每个数据或控制 变量需与一个值配为一对,该值可能是一 个未定义的特殊值。 口在时间t时所有(数据变量,数据值)的配 对集定义了时间t的程序的数据状态。 口类似地,时间t的所有(控制变量,控制值) 配对集定义了时间t的程序的控制状态。 因此,时间t的程序状态是t时间的数据状 态和控制状态的和。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 配对集的定义: ❑ 在任何时候,一个程序的每个数据或控制 变量需与一个值配为一对,该值可能是一 个未定义的特殊值。 ❑ 在时间t时所有(数据变量,数据值)的配 对集定义了时间t的程序的数据状态。 ❑ 类似地,时间t的所有(控制变量,控制值) 配对集定义了时间t的程序的控制状态。 ❑ 因此,时间t的程序状态是t时间的数据状 态和控制状态的和
程序的最后状态和发散状态定义: 程序从初始状态启动。当执行了程序 的一个原子操作后,程序就从当前状态转 为下一状态。程序不断执行原子操作并不 断更新其状态,直至终止。此时程序处在 最后状态。 当一个程序进入一个被确认不会终结的状 态时,则说该程序进入了发散状态。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 程序的最后状态和发散状态定义: ◼ 程序从初始状态启动。 当执行了程序 的一个原子操作后,程序就从当前状态转 为下一状态。程序不断执行原子操作并不 断更新其状态,直至终止。此时程序处在 最后状态。 ◼ 当一个程序进入一个被确认不会终结的状 态时,则说该程序进入了发散状态