- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 线程 引入多线程的动机 多线程环境中的进程和线程 线程的实现 8.1 线程-引入背景 进程的角色 资源所有权 调度/执行的单位 进程负载很重 进程的创建、删除和切换过程中较大的时空开销。 限制了系统中进程的数目和并发活动的数目。 8.1 线程- 背景 为了区分和这两个独立的特征,把进程的两项功能--“独立分配资源”与“被调度分派执行”分离开来: 进程:资源所有权、资源分配单位(任务),不需要频繁地切换; 线程:调度、执行的单位(轻便进程:light-weight process)。能轻装运行,会被频繁地调度和切换, 在这种指导思想下,产生了线程的概念。 实例分析 文件服务器 接受一个请求-------可能由于等待磁盘传输而经常被阻塞。 如果文件服务器在等待磁盘传输时,不是被阻塞而是继续接受新的文件服务器请求并进行处理,则文件服务器的性能和效率可以大大提高。 网页浏览器 在转入图像时,将阻塞,无法响应用户的请求 8.1 线程- 进程的局限性 进程时空开销大 频繁的进程上下文切换; 为每个进程分配存储空间 进程通信代价大 进程之间的或者进程和OS之间的信息传递。 不能很好地利用多处理器系统 因为一个进程在某个时刻只能使用一个处理器。虽然一个应用可以创建多个进程,并将它们分派到多个处理器上执行,但不能很好地做到使用相同的地址空间和资源。 不适合并行计算和分布并行计算的要求 8.1 线程-线程定义 线程定义 进程中的一个实体 CPU调度和分派的基本单位 与同进程内的其它线程共享进程所拥有的资源:线程必须在某个进程内执行,它所需的其它资源,如代码段、数据段、打开的文件和信号等,都由它所属进程拥有。 只拥有运行所必须的资源: 如PC、寄存器、 栈 例 MS DOS:单用户单线程 Unix:多用户多线程,每个进程一个线程 Java运行环境:单进程多线程 Windows2000、Solaris、Linux、Mach、OS/2:多进程多线程 8.2 线程-结构 每个线程有一个Thread结构,即线程控制块,用于保存自己私有的信息,主要由以下4个基本部分组成: 一个唯一的线程标识符 一组寄存器:程序计数器、状态寄存器、通用寄存器 两个栈指针:一个指向核心栈(核心态下运行时),一个指向用户栈(用户态下运行时)。 一个私有存储区:存放稀有数据和其它与该线程相关的统计信息。 8.2 线程-优点 并发程度高、响应度高。可在系统中建立多线程提高并发度。 易于调度,开销小 线程的创建时间、终止时间比进程短; 同进程内的线程切换时间比进程短(上下文有许多是相同的); 易于通信。由于同进程内线程间共享进程的代码,数据,内存和文件资源,可直接进行不通过内核的通信;而进程间的通信需要通过内核进行,以提供保护和通信所需机制 资源共享。线程共享它们所属进程的内存等资源。 多处理器体系结构的利用。 一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。每当创建一个进程时,至少要同时为该进程创建一个线程,否则该进程无法被调度执行。 地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享--某进程内的线程在其他进程不可见 通信:进程间通信采用IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信;所有线程可共享进程的主存,不需要特殊的通信机制, 调度:线程上下文切换比进程上下文切换要快得多 8.2 线程-进程和线程的比较 OS中引入进程目的:使多个程序并发执行,以便改善资源使用率和提高系统效率 OS中引入线程目的:减少程序并发执行时所付出的时空开销,并发性更好。 8.2 线程-线程的应用 前台和后台操作:如电子表格程序,一个显示菜单并读取用户输入,另一个线程执行用户命令并更新电子表格 异步处理:如网页浏览器中一个线程显示图象,另一个线程从网络中接收数据; 加速执行:通过线程可方便有效地实现并行性 当一个应用是由若干各相对独立的任务构成时有用。 进程可创建多个线程来执行同一程序的不同部分; 多个线程可以同时执行 8.2 线程-线程的应用 8. 3 线程实现 有很多OS已经实现线程,如Windows2003/XP,Linux,Java语言等,但是它们的实现方式并不完全相同,主要有以下几种: 用户级线程 内核级线程 两者结合 8. 3 线程实现-(1)用户级线程 用户级线程(ULT,User Level Thread) 用户线程的维护由应用进程通过线程库来完成; 线程库:应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程,无需内核支持。 如:POSIX PThread库 特点: 内核不了解用户线程的存在; 用户线程切换不需要内核特权; 速度快。线程的创建和调度由应用软件内部进行
您可能关注的文档
- 包头师范学院中国音乐史与欣赏课件第二章 远古夏商时期.ppt
- 包头师范学院中国音乐史与欣赏课件第九章第二讲 刘天华、阿炳与民族器乐的发展.ppt
- 包头师范学院中国音乐史与欣赏课件第九章第三讲 抗战时期音乐家聂耳、黄自.ppt
- 包头师范学院中国音乐史与欣赏课件第九章第四讲 抗战时期音乐家冼星海.ppt
- 包头师范学院中国音乐史与欣赏课件第九章第五讲 抗战时期音乐家与延 安音乐.ppt
- 包头师范学院中国音乐史与欣赏课件第九章第一讲 肖友梅 赵元任、王光祈、黎锦晖.ppt
- 包头师范学院中国音乐史与欣赏课件第六章 民歌欣赏.ppt
- 包头师范学院中国音乐史与欣赏课件第三章 周秦时期音乐.ppt
- 包头师范学院中国音乐史与欣赏课件第四章 汉魏晋南北朝时期音乐.ppt
- 包头师范学院中国音乐史与欣赏课件第五章第二讲 隋唐五代时期音乐.ppt
- 六年级数学下册教学课件《解比例》.pptx
- 8.21.5 鸟类的生殖与发育(课件)八年级生物下册课件(苏教版).pptx
- 钠离子电池项目智能制造方案(范文参考).docx
- 2023-2024学年吉林省吉林市舒兰市七年级(上)期末语文试卷.docx
- 2024年吉林省吉林市丰满区亚桥实验学校中考数学三模试卷.docx
- 2023-2024学年吉林省辽源市东辽县七年级(上)期末英语试卷.docx
- 2023-2024学年吉林四平九年级数学第一学期期末水平检测试卷.docx
- 2023-2024学年吉林市蛟河市三校联考九年级(上)期末英语试卷.docx
- 2023-2024学年吉林松原九年级英语上册考场实战试卷.docx
- 电解液新材料项目智能制造方案.docx
最近下载
- 2025年高考模考作文之审题立意解读、思路展示与优秀范文:讲究与将就.doc
- 审计年终工作总结优秀.pptx
- 南宁师范大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 有创机械通气技术操作评价标准.docx VIP
- 空调线路安装施工方案与技术措施.docx
- 2023年湖南财政经济学院信息管理与信息系统专业《计算机网络基础》科目期末试卷B(有答案).docx VIP
- 化工原理(第五版)王志魁课后习题答案.pdf
- 2023年湖南财政经济学院信息管理与信息系统专业《计算机网络基础》科目期末试卷A(有答案).docx VIP
- 肾脏疾病的超声诊断.ppt
- 空调电气系统施工方案.pdf
文档评论(0)