1 / 43
文档名称:

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

格式:ppt   大小:907KB   页数:43页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:xinsheng2008 2017/9/5 文件大小:907 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:并行计算与多核程序设计 理论课5-6 线程的基本概念
陈天洲,施青松,胡威
{tzchen, zjsqs, ehu}***@zju.
2009年11月25日,玉泉校区曹西101
1
程序设计语言的挑战:低级语言
汇编语言是多核SOC中是主流程序设计语言
DSP+ARM
用汇编控制各个器件
在CMP上怎么办
目前OS厂家未能充分利用多核
多核上OS启动,是分为主核与应用核
在工业控制领域需要
裸机+监控程序
SSE汇编
实现了虚数、codec、SSL、XML等功能
却无法实现并发
目前情况
芯片厂家提供了新的编程接口,但是不开放
可以在UEFI平台上做设计,不能针对裸机
2
程序设计语言的挑战:结构化语言
结构化语言
C语言、Pascal、Fortran等
以函数、过程为基本单元进行抽象
本质上不支持多核
单入口单出口
不并发
3
程序设计语言的挑战:高级语言
快速开发语言/工具
可以由虚拟机平台支持多核完成
以java虚拟机为代表
虚拟机本身多核化
4
新型语言
如Ct/TBB/go等语言
在C/C++基础上做多核化
并行编程模型
对C和C++进行了扩展
将任务分配给多个处理器
适应复杂的并行处理
开发人员能够像为一个处理器核编写应用程序一样编程
代码在进行编译和运行的时候进行多核优化
降低编程难度
5
目前的做法
1、线程
是目前的主流,是多核编程的门槛
2、共享内存
依赖于处理器的存储结构
3、消息
依赖于核间架构
4、虚拟化
由操作系统与硬件协作,提供虚拟运行环境
5、机器码级分发
目前研究热点
6、编译自动完成
面临巨大困难
6
进程与线程
线程是“进程中的一条执行路径或线索”
或“进程中的一个可调度实体”
7
多线程的概念
线程(thread)
进程上下文(context)中执行的代码序列
轻量级进程(light weight process)
在支持多线程的系统中
进程成为资源分配和保护的实体
线程是被调度执行的基本单元。
进程的资源
包括进程的地址空间,打开的文件和I/O等
属于同一个进程的线程
共享该进程的代码段和数据段,打开的文件,信号等
还包含各自的线程ID,线程执行状态,CPU寄存器状态和栈
8
单线程与多线程模型
线程控制块(Thread Control Block)包含:
寄存器映像(register image)
线程优先权( thread priority and )
线程状态信息(thread state information)
9
线程
可以获得快速的用户响应
如在C/S模式下,web server为每个用户连接运行一个线程;
RPC服务器中,RPC服务进程会开启多个线程服务于每个RPC request
进程是拥有资源的基本单位(CPU,地址空间,I/O资源),进程中的线程可以共享这些资源
一些应用程序可以分成若干相对独立的部分,每一部分又一个线程来实现
线程间通信无需内核干预,需要进行线程间同步
10