2009并行计算与多核程序设计05-06线程基本概念.pptVIP

2009并行计算与多核程序设计05-06线程基本概念.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文档。上传文档
查看更多
并行计算与多核程序设计 理论课5-6 线程的基本概念 陈天洲,施青松,胡威 {tzchen, zjsqs, ehu}@ 2009年11月25日,玉泉校区曹西101 程序设计语言的挑战:低级语言 汇编语言是多核SOC中是主流程序设计语言 DSP+ARM 用汇编控制各个器件 在CMP上怎么办 目前OS厂家未能充分利用多核 多核上OS启动,是分为主核与应用核 在工业控制领域需要 裸机+监控程序 SSE汇编 实现了虚数、codec、SSL、XML等功能 却无法实现并发 目前情况 芯片厂家提供了新的编程接口,但是不开放 可以在UEFI平台上做设计,不能针对裸机 程序设计语言的挑战:结构化语言 结构化语言 C语言、Pascal、Fortran等 以函数、过程为基本单元进行抽象 本质上不支持多核 单入口单出口 不并发 程序设计语言的挑战:高级语言 快速开发语言/工具 可以由虚拟机平台支持多核完成 以java虚拟机为代表 虚拟机本身多核化 新型语言 如Ct/TBB/go等语言 在C/C++基础上做多核化 并行编程模型 对C和C++进行了扩展 将任务分配给多个处理器 适应复杂的并行处理 开发人员能够像为一个处理器核编写应用程序一样编程 代码在进行编译和运行的时候进行多核优化 降低编程难度 目前的做法 1、线程 是目前的主流,是多核编程的门槛 2、共享内存 依赖于处理器的存储结构 3、消息 依赖于核间架构 4、虚拟化 由操作系统与硬件协作,提供虚拟运行环境 5、机器码级分发 目前研究热点 6、编译自动完成 面临巨大困难 进程与线程 线程是“进程中的一条执行路径或线索” 或“进程中的一个可调度实体” 多线程的概念 线程(thread) 进程上下文(context)中执行的代码序列 轻量级进程(light weight process) 在支持多线程的系统中 进程成为资源分配和保护的实体 线程是被调度执行的基本单元。 进程的资源 包括进程的地址空间,打开的文件和I/O等 属于同一个进程的线程 共享该进程的代码段和数据段,打开的文件,信号等 还包含各自的线程ID,线程执行状态,CPU寄存器状态和栈 单线程与多线程模型 线程 可以获得快速的用户响应 如在C/S模式下,web server为每个用户连接运行一个线程; RPC服务器中,RPC服务进程会开启多个线程服务于每个RPC request 进程是拥有资源的基本单位(CPU,地址空间,I/O资源),进程中的线程可以共享这些资源 一些应用程序可以分成若干相对独立的部分,每一部分又一个线程来实现 线程间通信无需内核干预,需要进行线程间同步 多线程的优点 传统优点 创建一个线程比创建一个进程的代价要小 终止一个线程比终止一个进程的代价要小 线程的切换比进程间的切换代价小 Eg: solaris中创建线程比进程快30倍,线程切换比进程切换快5倍 多核上多线程的优势 充分利用多处理器 数据共享 数据共享使得线程之间的通信比进程间的通信更高效 快速响应特性 在系统繁忙的情况下,进程通过独立的线程及时响应用户的输入 线程计算模型 用户级线程 在应用软件中所创建和操纵的线程 内核级线程 操作系统实现大多数线程的方式 硬件线程 线程在硬件执行资源上的表现形式 可以使用纯硬件来实现硬件线程 使用可重构FPGA资源 用户级线程 用户级线程 有关线程的所有管理工作都由在用户级实现的线程库来支持 用户级线程特征 户级线程的创建和管理等操作无须内核参与,操作更快 并行性不高,一个线程被系统阻塞后,整个进程被阻塞 内核级线程 内核级线程 内核级线程的所有管理操作都是由操作系统内核完成的 特点 并行性高, 多个线程可被同时调度 充分利用多处理器 创建和管理代价高 多线程的映射模型 对于实现了用户级线程和内核级线程的操作系统,用户级线程和内核级线程之间的可以有不同的映射方式。 多对一模型 多对一模型把多个用户级线程映射到一个内核级线程。 线程的管理在用户空间实现,所以效率高。 当一个线程因调用系统调用被阻塞时,整个进程被阻塞。 多线程的映射模型(续) 一对一模型 一对一模型把每个用户级线程影射到一个内核级线程。 当一个线程阻塞时,其他线程仍然可以运行。 Each user-level thread maps to kernel thread. (纯核心级线程) Examples Windows 95/98/NT/2000 OS/2 多线程的映射模型(续) 多对多模型 多对多模型将m个用户级线程影射到n个内核级线程,m≥n。 用户可以创建所需要的用户级线程,通过分配适当数目的内核级线程获得并发执行的优势并节省系统资源。 Examples Solaris 2 Windows NT/2000 with t

文档评论(0)

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

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

1亿VIP精品文档

相关文档