第2章 并行编程基础 第2节进程任务和线程 并行处理与体系结构教学课件.pptVIP

第2章 并行编程基础 第2节进程任务和线程 并行处理与体系结构教学课件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 并行编程基础 第2节进程任务和线程 并行处理与体系结构教学课件

哈尔滨工业大学计算机科学与技术学院 并行处理与体系结构 第2章 并行编程基础 ?1 并行编程综述 ?2 进程任务和线程 ?3 并行性问题 ?4 交互和通信问题 ?2 进程、任务和线程 一、进程、任务和线程 在并行计算机上,用户的应用程序是以进程、任务或线程方式执行的。 进程:是正在执行的程序。 1.抽象进程的定义 在两个层次上考虑进程概念是很有用的。 抽象观点 既简单又能很好地适合于并行计算机的用户。 进程的实现 工作原理 进程的定义: 一个进程P是一个4元组(P,C,D,S), 其中P是程序(或代码),C是控制状态,D为数据状态以及S为进程P的状态。 进程是动态的。 程序(代码) 任何进程与一个程序相关。 控制和数据状态 大多数程序基于命令式机器模型,中心概念是状态更新。 一个命令式程序可看成是一个状态机(或一个自动机) 。 下面定义某些术语 程序变量集的定义: 一个程序使用两个变量集:数据变量由程序员声明用来保存数据值的变量。 控制变量是保存控制信息的变量,它们不需要显式说明。 控制变量保存的是有关下一步应执行什么操作的信息。 数据变量集和控制变量集两者的合集形成了程序变量集。 配对集的定义: 在任何时候,一个程序的每个数据或控制变量需与一个值配为一对,该值可能是一个未定义的特殊值。 在时间t时所有(数据变量,数据值)的配对集定义了时间t的程序的数据状态。 类似地,时间t的所有(控制变量,控制值)配对集定义了时间t的程序的控制状态。 因此,时间t的程序状态是t时间的数据状态和控制状态的和。 程序的最后状态和发散状态定义: 程序从初始状态启动。 当执行了程序的一个原子操作后,程序就从当前状态转为下一状态。程序不断执行原子操作并不断更新其状态,直至终止。此时程序处在最后状态。 当一个程序进入一个被确认不会终结的状态时,则说该程序进入了发散状态。 进程状态 在任何时间,进程具有某个状态(status)。下图画出了某些重要状态以及它们之间的转换。 进程状态转换图的说明: 开始时,进程为不存在状态。当它的创建者,父进程执行进程创建操作后,它才出现。一个新创建的子进程准备执行,但仅在被调度后,它方可开始运行(执行其代码)。 在进程运行中可能发生以上几种状态。 在实现进程时,必须考虑以下各方面: 执行方式; 地址空间; 进程现场; 进程描述符; 进程控制。 二.进程的变异 传统的操作系统进程有分离的地址空间; 分离的地址空间概念将使进程管理非常耗时。 Unix进程为重量级进程 例如,当一个Unix进程执行一个fork()系统调用以创建一个子进程时,它必须为子进程创建一个新的地址空间。这意味着必须分配存储器,复制父进程的数据段和描述符,并为子进程设置一个运行时间堆栈。由于这种性能原因。 进程创建和切换的高开销会对并行处理造成有害影响。 重量级的并行进程不适用于可扩展并行计算机,除非并行进程具有粗计算粒度。 要开发较细粒度并行性,必须使用轻量级进程。 在许多操作系统、线程库和并行语言中已提出了轻量级进程(也称为线程)概念并已得到实现。 OS进程和线程间的主要差别: 在重量级的OS进程中,多个线程能共存于进程(包括进程描述符)的同一地址空间,并且共享。 当创建一个(重量级)进程时,通常它有一个单线程,称为基本线程。 通过执行一个线程创建操作,任何进程能创建另外的线程。 典型的线程创建操作形式如下: threalcreate(foo,argument1,……,argument n); 这种操作与过程调用非常类似。 该操作创建一个进程,它将用给定的n个参量执行函数和。 创建一个线程要比创建一个重量级进程快得多。 在一般的并行描述里: 任务=进程=重量级进程=操作系统进程 只用术语进程来表示重量级进程或线程: 轻量级进程=线程 * *

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档