多核程序设计课件3线程的基本概念PPT格式课件下载.ppt

上传人:b****1 文档编号:14689328 上传时间:2022-10-23 格式:PPT 页数:46 大小:1.06MB
下载 相关 举报
多核程序设计课件3线程的基本概念PPT格式课件下载.ppt_第1页
第1页 / 共46页
多核程序设计课件3线程的基本概念PPT格式课件下载.ppt_第2页
第2页 / 共46页
多核程序设计课件3线程的基本概念PPT格式课件下载.ppt_第3页
第3页 / 共46页
多核程序设计课件3线程的基本概念PPT格式课件下载.ppt_第4页
第4页 / 共46页
多核程序设计课件3线程的基本概念PPT格式课件下载.ppt_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

多核程序设计课件3线程的基本概念PPT格式课件下载.ppt

《多核程序设计课件3线程的基本概念PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《多核程序设计课件3线程的基本概念PPT格式课件下载.ppt(46页珍藏版)》请在冰豆网上搜索。

多核程序设计课件3线程的基本概念PPT格式课件下载.ppt

线程是被调度执行的基本单元。

进程的资源进程的资源l包括进程的地址空间,打开的文包括进程的地址空间,打开的文件和件和I/O等等属于同一个进程的线程属于同一个进程的线程l共享该进程的代码段和数据段,共享该进程的代码段和数据段,打开的文件,信号等打开的文件,信号等l还包含各自的线程还包含各自的线程ID,线程执行,线程执行状态,状态,CPU寄存器状态和栈寄存器状态和栈进程与线程进程与线程线程是线程是“进程中的一条执行路径或线索进程中的一条执行路径或线索”或或“进程中的一个可调度实体进程中的一个可调度实体”单线程与多线程模型单线程与多线程模型线程控制块(线程控制块(ThreadControlBlock)包含:

)包含:

寄存器映像(寄存器映像(registerimage)线程优先权(线程优先权(threadpriorityand)线程状态信息(线程状态信息(threadstateinformation)线程线程可以获得快速的用户响应可以获得快速的用户响应l如在如在C/S模式下,模式下,webserver为每个用户连接运行为每个用户连接运行一个线程;

一个线程;

lRPC服务器中,服务器中,RPC服务进程会开启多个线程服务于服务进程会开启多个线程服务于每个每个RPCrequest进程是拥有资源的基本单位(进程是拥有资源的基本单位(CPU,地址空间,地址空间,I/O资源),进程中的线程可以共享这些资源资源),进程中的线程可以共享这些资源一些应用程序可以分成若干相对独立的部分,每一些应用程序可以分成若干相对独立的部分,每一部分又一个线程来实现一部分又一个线程来实现线程间通信无需内核干预,线程间通信无需内核干预,需要进行线程间同步需要进行线程间同步多线程的优点多线程的优点传统优点:

传统优点:

l创建一个线程比创建一个进程的代价要小创建一个线程比创建一个进程的代价要小l终止一个线程比终止一个进程的代价要小终止一个线程比终止一个进程的代价要小l线程的切换比进程间的切换代价小线程的切换比进程间的切换代价小Eg:

solaris中创建线程比进程快中创建线程比进程快30倍,线程切换比倍,线程切换比进程切换快进程切换快5倍倍多核多核l充分利用多处理器充分利用多处理器l数据共享数据共享数据共享使得线程之间的通信比进程间的通信更高效数据共享使得线程之间的通信比进程间的通信更高效l快速响应特性快速响应特性在系统繁忙的情况下,进程通过独立的线程及时响应在系统繁忙的情况下,进程通过独立的线程及时响应用户的输入用户的输入线程计算模型线程计算模型用户级线程用户级线程l在应用软件中所创建和操纵的线程在应用软件中所创建和操纵的线程内核级线程内核级线程l操作系统实现大多数线程的方式操作系统实现大多数线程的方式硬件线程硬件线程l线程在硬件执行资源上的表现形式线程在硬件执行资源上的表现形式l可以使用纯硬件来实现硬件线程可以使用纯硬件来实现硬件线程使用可重构使用可重构FPGA资源资源用户级线程用户级线程用户级线程用户级线程l有关线程的所有管理工有关线程的所有管理工作都由在用户级实现的作都由在用户级实现的线程库来支持线程库来支持用户级线程特征用户级线程特征l户级线程的创建和管理户级线程的创建和管理等操作无须内核参与,等操作无须内核参与,操作更快操作更快l并行性不高,一个线程并行性不高,一个线程被系统阻塞后,整个进被系统阻塞后,整个进程被阻塞程被阻塞内核级线程内核级线程内核级线程内核级线程l内核级线程的所有内核级线程的所有管理操作都是由操管理操作都是由操作系统内核完成的作系统内核完成的特点特点l并行性高,并行性高,多个线程可被同时调多个线程可被同时调度度充分利用多处理器充分利用多处理器l创建和管理代价高创建和管理代价高多线程的映射模型多线程的映射模型对于实现了用户级线程和对于实现了用户级线程和内核级线程的操作系统,内核级线程的操作系统,用户级线程和内核级线程用户级线程和内核级线程之间的可以有不同的映射之间的可以有不同的映射方式。

方式。

多对一模型多对一模型l多对一模型把多个用户级多对一模型把多个用户级线程映射到一个内核级线线程映射到一个内核级线程。

程。

l线程的管理在用户空间实线程的管理在用户空间实现,所以效率高。

现,所以效率高。

l当一个线程因调用系统调当一个线程因调用系统调用被阻塞时,整个进程被用被阻塞时,整个进程被阻塞。

阻塞。

多线程的映射模型(续)多线程的映射模型(续)一对一模型一对一模型l一对一模型把每个用户级线程影射到一个内核级线程。

一对一模型把每个用户级线程影射到一个内核级线程。

l当一个线程阻塞时,其他线程仍然可以运行。

当一个线程阻塞时,其他线程仍然可以运行。

Eachuser-levelthreadmapstokernelthread.(纯核心级线程)(纯核心级线程)ExampleslWindows95/98/NT/2000lOS/2多线程的映射模型(续)多线程的映射模型(续)多对多模型多对多模型l多对多模型将多对多模型将m个用户级线个用户级线程影射到程影射到n个内核级线程,个内核级线程,mn。

l用户可以创建所需要的用户用户可以创建所需要的用户级线程,通过分配适当数目级线程,通过分配适当数目的内核级线程获得并发执行的内核级线程获得并发执行的优势并节省系统资源。

的优势并节省系统资源。

lExamplesSolaris2WindowsNT/2000withtheThreadFiberpackage多线程的映射模型(续)多线程的映射模型(续)多线程编程的问题:

多线程编程的问题:

l需要重复创建和销毁线程,需要重复创建和销毁线程,l大量创建的线程可能会耗尽系统资源。

大量创建的线程可能会耗尽系统资源。

线程池是一组被创建的线程的集合线程池是一组被创建的线程的集合l当一个进程需要线程时,如果线程池中还有可当一个进程需要线程时,如果线程池中还有可用的线程,就从中取出一个投入使用。

用的线程,就从中取出一个投入使用。

l当线程完成任务后,被归还线程池。

当线程完成任务后,被归还线程池。

l当线程池中没有可用的线程时,创建线程的请当线程池中没有可用的线程时,创建线程的请求必须等待,保护系统资源不被耗尽。

求必须等待,保护系统资源不被耗尽。

线程的生命周期线程的生命周期线程的标识线程的标识l通常用一个整数来标识一个线程通常用一个整数来标识一个线程线程的创建线程的创建l自动创建从自动创建从main函数开始的主线程函数开始的主线程l调用函数库接口创建一个新的线程调用函数库接口创建一个新的线程(pthread_create)线程的终止线程的终止l执行完毕,或者调用了执行完毕,或者调用了pthread_exitl主线程退出导致整个进程会终止主线程退出导致整个进程会终止多线程环境下的进程控制语义多线程环境下的进程控制语义进程创建进程创建l一种被称为单线程复制一种被称为单线程复制l另一种被称为多线程复制另一种被称为多线程复制执行新的程序执行新的程序lexec将会终止所有的线程,用新的程序覆盖进程的地址空间,将会终止所有的线程,用新的程序覆盖进程的地址空间,并开始执行新的程序。

并开始执行新的程序。

进程结束进程结束l在任何一个线程中调用在任何一个线程中调用exit将会结束整个进程的。

将会结束整个进程的。

l从主线程返回等同于调用从主线程返回等同于调用exit而导致进程结束。

而导致进程结束。

l从线程中退出则调用专用的线程退出函数(比如从线程中退出则调用专用的线程退出函数(比如pthread_exit)。

)。

信号处理信号处理l信号可能是同步的也可能是异步的。

发送给进程的信号在多信号可能是同步的也可能是异步的。

发送给进程的信号在多线程环境下有多种选择:

线程环境下有多种选择:

1发送给信号;

发送给信号;

2发送给所有的线发送给所有的线程;

程;

3发送给特定的线程;

发送给特定的线程;

4指定一个线程处理所有的信号。

指定一个线程处理所有的信号。

线程的状态线程的状态线程的状态线程的状态l就绪(就绪(ready):

线程等待可用的处理):

线程等待可用的处理器。

器。

l运行(运行(running):

线程正在被执行。

):

l阻塞(阻塞(blocked):

线程正在等待某个):

线程正在等待某个事件的发生(比如事件的发生(比如I/O的完成,试图加的完成,试图加锁一个被上锁的互斥量)。

锁一个被上锁的互斥量)。

l终止(终止(terminated):

线程从起始函数):

线程从起始函数中返回或者调用中返回或者调用pthread_exit。

线程状态的转换线程状态的转换线程的同步线程的同步由于线程共享同一进程的内存空间,多个由于线程共享同一进程的内存空间,多个线程可能需要同时访问同一个数据。

线程可能需要同时访问同一个数据。

对共享数据的并发访问可能导致数据的不对共享数据的并发访问可能导致数据的不一致性一致性如果没有正确的保护措施,对共享数据的如果没有正确的保护措施,对共享数据的访问会造成数据的不一致和错误。

访问会造成数据的不一致和错误。

竞争条件竞争条件l若干进程并发地访问并

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1