《线程及其实现》PPT课件

《线程及其实现》PPT课件

ID:39663389

大小:316.19 KB

页数:78页

时间:2019-07-08

《线程及其实现》PPT课件_第1页
《线程及其实现》PPT课件_第2页
《线程及其实现》PPT课件_第3页
《线程及其实现》PPT课件_第4页
《线程及其实现》PPT课件_第5页
资源描述:

《《线程及其实现》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2.4线程及其实现2.4.1引入多线程技术的动机2.4.2多线程环境中的进程和线程2.4.3线程的实现2.4.4实例研究:Solaris的进程与线程2.4.5实例研究:Windows2000/XP的进程与线程2.4.1引入多线程技术的动机考察一个文件服务器的例子单线程(结构)进程(SingleThreadedProcess)多线程(结构)进程(MultipleThreadedprocess)单线程结构进程给并发程序设计效率带来问题•进程切换开销大•进程通信代价大•进程之间的并发性粒度较粗,并发度不高•不适合并行计算和分布并行计算的要求•不适

2、合客户/服务器计算的要求。线程的概念(1)操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源使用率和提高系统效率,操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。线程的概念(2)解决问题的基本思路:•把进程的两项功能--“独立分配资源”与“被调度分派执行”分离开来,•进程作为系统资源分配和保护的独立单位,不需要频繁地切换;•线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。2.4.2多线程环境中的进程与线程单线程进程的内存布局和运

3、行进程控制块进程用户地址空间用户堆栈系统堆栈管理者执行序列单线程进程(模型)用户地址空间进程控制块用户堆栈系统堆栈管理和执行相分离的进程模型用户堆栈系统堆栈执行控制进程进程控制块用户地址空间共享执行序列管理者执行序列用户堆栈系统堆栈执行控制多线程进程的内存布局多线程进程模型用户地址空间进程控制块线程控制块系统堆栈用户堆栈线程1线程控制块系统堆栈用户堆栈线程N多线程环境中进程的定义进程是操作系统中进行保护和资源分配的基本单位。它具有:•一个虚拟地址空间,用来容纳进程的映像;•对处理器、其他(通信的)进程、文件和I/O资源等的存取保护机制。多线

4、程环境中的线程概念线程是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。线程是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是多线程。线程主要组成•线程执行状态(运行、就绪、…);•当线程不运行时,有一个受保护的线程上下文,用于存储现场信息。所以,线程也可被看作是执行在进程内的一个独立的程序计数器;•一个执行堆栈•一个容纳局部变量的主存存储区。线程具有以下特性•并行性:•共享性:•动态性:•结构性:线程的内存布局进程地址空间线程1共享空间线程2线程n线程线程又称轻量进程•线程运行在进程的上下文

5、中,并使用进程的资源和环境。•系统调度的基本单位是线程而不是进程,每当创建一个进程时,至少要同时为该进程创建一个线程,否则该进程无法被调度执行。线程的状态(1)线程状态有:运行、就绪和阻塞,线程的状态转换也类似于进程。挂起状态对线程是没有意义的,如果进程挂起后被对换出主存,则它的所有线程因共享了进程的地址空间,也必须全部对换出去。线程的状态(2)处于运行态的线程阻塞时,对某些线程实现机制,所在进程也转换为阻塞态,即使这个进程存在另一个处于就绪态的线程;对另一些线程实现机制,如果存在另外一个处于就绪态的线程,则调度该线程处于运行状态,否则进程

6、才转换为阻塞态。线程管理和线程库(1)多线程技术利用线程包(库)提供线程原语集来支持多线程运行,有的操作系统直接支持多线程,而有的操作系统不支持多线程。线程包(库)可分成两种:用户空间中运行的线程包(库)和内核中运行的线程包(库)。线程管理和线程库(2)线程包(库)提供一组API,支持应用程序创建、调度、撤销和管理线程的运行。基本线程控制原语:•孵化(Spawn):又称创建线程。•封锁(Block):又称阻塞线程。•活化(Unblock):又称恢复线程。•结束(Finish):又称撤销线程。并发多线程程序设计的优点•快速线程切换。•减少(系

7、统)管理开销。•(线程)通信易于实现。•(线程)通信易于实现。•并行程度提高。•节省内存空间。多线程技术的应用(1)进程中线程多种组织方式:第一种是调度员/工作者模式第二种是组模式第三种是流水线模式多线程技术的应用(2)•前台和后台工作。•C/S应用模式。•异步处理。•加快执行速度。•设计用户接口。2.4.3线程的实现从实现的角度看,线程可以分成:•用户级线程ULT(如Java,Informix)•内核级线程KLT(如OS/2)。•混合式线程(如,Solaris)。各种线程实现方法用户空间线程库P内核空间2)用户级线程用户空间P内核空间1)

8、内核级线程用户空间线程库PP内核空间3)混合式线程ULTKLTProcessP1.内核级线程(1)纯内核级线程设施中,线程管理的所有工作由操作系统内核做。内核专门提供KLTAPI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。