- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.4 线程及其实现 2.4.1 引入多线程的动机 2.4.2 多线程环境中的进程和线程 2.4.3 线程的实现 线程的概念(1) 操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源使用率和提高系统效率, 操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。 线程的概念(2) 解决问题的基本思路: ?把进程的两项功能--“独立分配资源”与“被调度分派执行”分离开来, ?进程作为系统资源分配和保护的独立单位,不需要频繁地切换; ?线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念。 2.4.2 多线程环境中的进程与线程 ? 多线程结构进程 多线程环境中进程的定义 进程是操作系统中除处理器外进行的资源分配和保护的基本单位,它有一个独立的虚拟地址空间,用来容纳进程映像(如与进程关联的程序与数据),并以进程为单位对各种资源实施保护,如受保护地访问处理器、文件、外部设备及其他进程(进程间通信)。 ? 多线程环境中的线程概念 线程是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。线程是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是多线程。 线程组成 线程惟一标识符及线程状态信息; 未运行时保存的线程上下文;可把线程看成是进程中一个独立的程序计数器在操作; 核心栈,核心态下工作时,保存参数,函数调用时的返回地址等; 用于存放线程局部变量及用户栈的私有存储区。 线程又称轻量进程 ?线程运行在进程的上下文中,并使用进程的资源和环境。 ?系统调度的基本单位是线程而不是进程,每当创建一个进程时,至少要同时为该进程创建一个线程,否则该进程无法被调度执行。 ?Linux线程做法不一样。 ?线程的状态 线程状态有:运行、就绪和阻塞,线程的状态转换也类似于进程。 挂起状态对线程是没有意义的,如果进程挂起后被对换出主存,则它的所有线程因共享了进程的地址空间,也必须全部对换出去。 线程管理和线程库(2) 线程包(库)提供一组API,支持应用程序创建、调度、撤销和管理线程的运行。基本线程控制原语: ?孵化(Spawn):又称创建线程。 ?封锁(Block):又称阻塞线程。 ?活化(Unblock):又称恢复线程。 ?结束(Finish):又称撤销线程。 并发多线程程序设计的优点 ? 快速线程切换。 ? 减少(系统)管理开销。 ?(线程)通信易于实现。 ?(线程)通信易于实现。 ? 并行程度提高。 ? 节省主存空间。 ?多线程技术的应用 进程中线程多种组织方式: 第一种是调度员/工作者模式 第二种是组模式 第三种是流水线模式 多线程技术的应用 ?前台和后台工作 ?C/S应用模式 ?异步处理 ?加快执行速度。 ?设计用户接口。 2.5 Linux进程与线程 进程描述符task_struct中包含:进程标识、链接信息、调度信息、文件信息、虚存空间信息、信号处理信息等。 Linux中认为线程就是共享地址空间及其他资源的进程,故并没有单独为线程定义数据结构,有一套在用户模式下运行的线程库-pthread,但每个线程都拥有惟一隶属于自己的task_struct。 Linux2.4进程的核心栈、PCB 和虚存映象 Linux2.6进程的核心栈 Linux进程的运行环境信息thread_info结构 包含: 进程描述符task_struct指针、 当前CPU号、 底层标志、 线程同步标志、 内核抢占计数器等。 Linux2.6 task_struct 增加用于调度的新成员,主要有: 动态优先级prio 静态优先级static_prio 正常优先级normal_prio 优先级数组prio_array 进程平均等待时间sleep_avg 负载平衡权重load_weight等 Linux进程状态 TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_ZOMBIE。 TASK_STOPPED TASK_SWAPPING Linux进程状态及转换 2.6Windows 2003进程与线程 进程是资源的容器,容纳各种分配到的资源如主存、已打开文件等; 线程是可被内核调度的执行实体,可被中断,使CPU能转向另一线程执行。 进程和线程用对象来实现。 Windows 对象分类(1) Windows 是一个基于对象的操作系统,用对象来
您可能关注的文档
最近下载
- 电子对抗原理与技术(第3版)全套PPT课件.pptx
- 冷拼课件教学课件.pptx VIP
- 最新2025年秋开学第一课主题班会PPT课件(含抗战胜利80周年内容).ppt
- 22G101 三维彩色立体图集.docx VIP
- 2024年秋季新北师大版七年级上册数学全册教案设计.docx
- 吴清忠:人体复原工程.pdf VIP
- 川崎 Kawasaki 2022款 Z 400 中文用户手册 使用说明书2021年4月14日印刷.doc VIP
- [北京]冷轧带钢工程薄板酸轧设备基础施工方案.doc VIP
- 全国教学能力比赛《声临其境·影视配音要旨》教案(一等奖).pdf
- (高清版)DB36∕T 713-2013 高速公路红砂岩路基施工技术规范 .pdf VIP
文档评论(0)