- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十八讲线程概念,用户级线程实现目的与要求:掌握线程.ppt
* * 第十八讲 线程概念,用户级线程实现 目的与要求:掌握线程概念,线程与进程区 别及用户级线程的实现. 重点与难点:线程如何从原进程概念中剥离 出来,线程控制块, 线程状 态。用户级线程实现方法及优 缺点。 作业:2,7 线程的引入 传统进程既是除处理机以外的资源分配单位(如内存占用单位),又是执行单位。随着共享内存多外理机的发展,为了支持进程内多道程序设计而引入线程。 8.1.1 对称多处理 对称多处理机指共享内存,且多个处理机都可响应中断并可以运行用户和核心程序的多处理机系统。 第8章 并行与分布式操作系统 8.1 并行操作系统 处理机 Cache 处理机 Cache 处理机 Cache ... 主存 总线适配器 I/O总线 系统总线 打印机 硬盘 对称多处理机系统结构 新结构对操作系统的要求 多任务并行支持。希望同一进程的程序可同时在多CPU上运行,同时还共享进程存储空间。 同步支持。当运行在不同CPU上的程序访问共享数据时,要有利用硬件支持的同步手段(如:读后置1)。 每个CPU都应该能够运行操作系统调度程序进行自行调度。 多CPU cache一致性的要求(全部由硬件实现或由硬件和操作系统合作实现)。 8.1.2 线程概念 将原进程的PCB内容分成两部分。 将第二部分内容作为线程描述表的内容,且进程内允许多个线程存在。 描述进程资源和空间的部分。 描述执行现场、状态及调度的部分。 一、进程与线程区别 新的进程被定义为:资源分配单位。 线程被定义为:CPU分配单位(执行单位)。 新进程描述: 一个独立的进程空间,可装入进程映像。 一个独立的进程关联的执行文件。 进程所用系统资源。 一个或多个线程。 进程在创建时一般同时创建好第一个线程,其他线程按需要由用户程序请求创建。 线程TCB描述 线程标识信息; 状态和调度信息; 现场信息(组织成栈帧); 线程私有存储区; 指针指向PCB。 传统进程与多线程进程比较 PCB 用户 栈 用户 地址 空间 核心 栈 a.传统进程模型 用户 栈 核心 栈 用户 栈 核心 栈 用户 地址 空间 PCB TCB TCB ... b.多线程进程模型 二、多线程应用 多线程可以方便地实现CPU之间的并行,以及CPU与外设间的并行。多线程与多进程相比,多线程天然地共享空间,而多进程要通过如shmget系统调用才可共享部分空间。 举例:有任务1和任务2两个任务,把它们组织到单进程中,然后与多线程中运行的时间花费进行比较。 任务1 等 I/O 任务1 任务2 等 I/O 任务2 a.单线程进程单CPU执行 任务1 任务1 等 I/O 任务2 任务2 等 I/O 线程1 处理机1 线程2 处理机2 b.多线程进程多CPU执行 线程1 线程2 CPU切换 任务1 等 I/O 等 CPU 任务1 任务2 等 I/O 任务2 c.多线程进程单CPU执行 等CPU 三、线程状态变化 进程产生时同时产生第一个线程,其他线程在以后由任一线程请求创建。 线程创建后运行过程中的三个主要状态是:运行、就绪、阻塞。 运行 就绪 结束 阻塞 结束 被调度 时间片 完 或被剥 夺 等待事 件 事件发 生 重新初始 化 创建 原进程的运行、就绪、阻塞状态已变为针对线程,而原挂起状态反映的是进程映像在不在内存,因而还是进程的状态。 四、线程间通信与同步 线程间通过共享空间通信。 可以通过同步原语(系统调用/或利用硬同步指令的同步函数),实现互斥与同步。 五、多线程编程接口举例 UNIX的pthread库所提供的有关线程函数。 1.创建线程 int pthread_create (pthread_t *tid, const pthread_attr_t *attr, void *(*func)(void *), void *arg); 2.等待某线程结束 int pthread_join(pthread_t tid,void **status); tid是我们必须要等待线程的tid 3.获得正在执行线程的ID pthread_t pthread_self(void); 4.将线程变为独立状态 int pthread_detach(pthread_t tid); 线程或者是可汇合的(joinable)或者是独立的(detached)。当可汇合的线程终止时,其线程ID和退出状态将保留,
您可能关注的文档
- 第二讲,比较法,综合法与分析法随堂练习.doc
- 第二讲MATLAB的数值计算-湖南科技学院--首页.ppt
- 第二讲法的概念问题-教学资源-上财教学网.ppt
- 第二讲物质分类及重要物质的化学性质.doc
- 第二讲远程教育的基本概念与基本理论.ppt
- 第二课时元素的性质与原子结构.doc
- 第二课时反应热的测量与计算.doc
- 第二部分物质的化学变化.doc
- 第二部分项目技术与产品实现.doc
- 第五十二讲常数项级数的概念和性质.doc
- 2025江浙沪居民睡眠健康小调研报告.pdf
- 毕业论文的开题报告范文.docx
- 团委活动方案(拓展).docx
- 汽车智能驾驶行业深度报告:端到端与AI共振,智驾平权开启新时代.pdf
- 小核酸行业深度:技术平台和适应症不断验证,迎来销售和临床密集兑现期-华福证券-2025.3.31-65页.docx
- 医药生物行业医疗AI专题报告二多组学篇AI技术驱动精准诊断实现重要突破-25031440页.docx
- CXO行业系列报告三寒冬已过行业需求逐步回暖-25031430页.docx
- 全国租赁市场报告2025年3月_可搜索.pdf
- 玩具行业“情绪经济”专题:创新玩法+IP赋能,重新定义玩具-华鑫证券-2025.docx
- 医疗保健行业PCAB抑制剂药物深度报告抑酸药物市场空间广阔PCAB抑制剂大有可为-25.pdf
文档评论(0)