2016___操作系统PPT_ch2-2.4线程及其实现.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2016___操作系统PPT_ch2-2.4线程及其实现

2.4 线程及其实现 2.4.1 引入多线程的动机 2.4.2 多线程环境中的进程和线程 2.4.3 线程的实现 单线程结构进程给并发程序设计效率带来问题 ?进程切换开销大 ?进程通信代价大 ?进程间的并发性粒度较粗,并 发度不高 ?不适合并行计算和分布并行计算 的要求 ?不适合客户/服务器计算的要求。 线程的概念(1) 操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源使用率和提高系统效率, 操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。 线程的概念(2) 解决问题的基本思路: ?把进程的两项功能--“独立分配资源”与“被调度分派执行”分离开来, ?进程作为系统资源分配和保护的独立单位,不需要频繁地切换; ?线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。 2.4.2 多线程环境中的进程与线程 ? 多线程结构进程 进程 进程PCB 资源 线程 控制块 用户栈 核心栈 线程 控制块 用户栈 核心栈 … 线程n 控制块 用户栈 核心栈 存储区 存储空间 全局数据 程序代码 线程1 线程1 线程 控制块 … 线程2 线程1 线程 控制块 用户栈 核心栈 线程i 线程n 1.多线程 进程是操作系统中进行除处理器外的资源分配和保护的基本单位,它有一个独立的虚拟地址空间,用来容纳进程映像(如与进程关联的程序与数据),并以进程为单位对各种资源实施保护,如受保护地访问处理器、文件、外部设备及其他进程(进程间通信)。 ? 多线程环境中的线程概念 线程是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。线程是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是多线程。 线程组成 线程惟一标识符及线程状态信息; 未运行时保存的线程上下文;可把线程看成是进程中一个独立的程序计数器在操作; 核心栈,核心态下工作时,保存参数,函数调用时的返回地址等; 用于存放线程局部变量及用户栈的私有存储区。 线程又称轻量进程 ?线程运行在进程的上下文中,并使用进程的资源和环境。 ?系统调度的基本单位是线程而不是进程,每当创建一个进程时,至少要同时为该进程创建一个线程,否则该进程无法被调度执行。 并发多线程程序设计的优点 ? 快速线程切换。 ? 减少(系统)管理开销。 ?(线程)通信易于实现。 ? 并行程度提高。 ? 节省主存空间。 ?2.线程的状态 线程状态有:运行、就绪和阻塞,线程的状态转换也类似于进程。 挂起状态对线程是没有意义的,如果进程挂起后被对换出主存,则它的所有线程因共享了进程的地址空间,也必须全部对换出去。 3.?线程的组织 进程中线程多种组织方式: 第一种是调度员/工作者模式 第二种是组模式 第三种是流水线模式 多线程技术的应用 ?前台和后台工作 ?C/S应用模式 ?任务异步处理 ?用户界面设计 2.4.3 线程的实现 从实现的角度看,线程分成: ?用户级线程ULT(如Java ,Informix) ?内核级线程KLT(如OS/2)。 ?混合式线程(如,Solaris)。 2.4.3 线程的实现 2.4.3 线程的实现 1.内核级线程 线程管理的所有工作都由内核完成,应用程序部分只有一个访问内核级线程设施的应用程序编程接口(API)。内核维护进程和线程的上下文信息,调度对象是线程。 优点: 内核可以调度同一个进程中的所有线程; 内核自身也可以是多线程 缺点: 线程切换需要内核模式切换,开销较大 2.4.3 线程的实现 2.用户级线程 用户级线程是指线程的管理由应用程序完成,在用户空间中实现,内核无需感知线程的存在。 优点: 线程切换的开销小 线程调度是应用程序专用的 可以不必修改内核,用户级线程就可以运行在任何操作系统中 缺点: 系统调用引起阻塞 不能利用多处理技术 2.4.3 线程的实现 三、混合方法 Solaris操作系统采用组合方法 线程的创建是在用户层进行 线程的调度和同步在用户层进行 选择一部分用户级线程映射到一些内核级线程上

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档