已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.7 线程的概念及其实现 自从20世纪60年代提出进程概念以来,在操 作系统中一直都是以进程作为能独立运行的基本 单位。直到80年代中期,人们又提出了比进程更 小的能独立运行的基本单位线程,用它来提 高系统内程序并发执行的速度,减少系统开销, 从而可进一步提高系统的吞吐量。近几年,线程 概念已得到了广泛应用,不仅在新推出的操作系 统中,大多都已引入了线程概念,而且在新推出 的数据库管理系统和其它应用软件中,也都纷纷 引入了线程来改善系统的性能。 2.7.1 线程的引入 如果说,在操作系统中引入进程的目的 ,是为了使多个程序并发执行,以改善资 源利用率及提高系统的吞吐量;那么,在 操作系统中再引入线程则是为了减少程序 并发执行时所付出的时空开销,使操作系 统具有更好的并发性。 进程的两个基本属性: 进程是一个拥有资源的独立单位; 进程同时又是一个独立调度和分配的基 本单位。 然而为使程序能并发执行,系统还必须 进行以下的一系列操作。 创建进程。系统在创建进程时,必须为之 分配其所必需的、除CPU以外的所有资源。 如内存空间、I/O设备以及建立相应的PCB 。 撤消进程。系统在撤消进程时,又必须先 对这些资源进行回收操作,然后再撤消PCB 。 进程切换。在对进程进行切换时,由于要 保留当前进程的CPU环境和设置新选中进程 的CPU环境,为此须花费许多CPU时间。 2.7.2 进程与线程的关系 线程具有许多传统进程所具有的特征, 故又称为轻型进程(Light-Weight Process)或进程元;而把传统的进程称为 重型进程(Heavy-Weight Process),它相 当于只有一个线程的任务。在引入了线程 的操作系统中,通常一个进程都有若干个 线程,至少需要有一个线程。下面,我们 从调度、并发性、系统开销、拥有资源等 方面,来比较线程与进程。 1. 调度 在传统的操作系统中,拥有资源的基本 单位和独立调度的基本单位都是进程。而 在引入线程的操作系统中,则把线程作为 调度和分配的基本单位,而把进程作为拥 有资源的基本单位,使传统进程的两个属 性分开,线程便能轻装运行,从而可显著 地提高系统的并发程度。在同一进程中, 线程的切换不会引起进程的切换,在由一 个进程中的线程切换到另一个进程中的线 程时,将会引起进程的切换。 2. 并发性 在引入线程的操作系统中,不仅进程之间可 以并发执行,而且在一个进程中的多个线程之间 ,亦可并发执行,因而使操作系统具有更好的并 发性,从而能更有效地使用系统资源和提高系统 吞吐量。例如,在一个未引入线程的单CPU操作系 统中,若仅设置一个文件服务进程,当它由于某 种原因被阻塞时,便没有其它的文件服务进程来 提供服务。在引入了线程的操作系统中,可以在 一个文件服务进程中,设置多个服务线程,当第 一个线程等待时,文件服务进程中的第二个线程 可以继续运行;当第二个线程阻塞时,第三个线 程可以继续执行,依此类推,从而显著地提高了 文件服务的质量以及系统吞吐量。 3. 拥有资源 不论是传统的操作系统,还是设有线程 的操作系统,进程都是拥有资源的一个独 立单位,它可以拥有自己的资源。一般地 说,线程自己不拥有系统资源(只有一些必 不可少的资源),但它可以访问其隶属进程 的资源。亦即,个进程的代码段、数据 段以及系统资源,如已打开的文件、I/O设 备等,可供同一进程的所有线程共享。 4. 系统开销 由于在创建或撤消进程时,系统都要为之分 配或回收资源,如内存空间、I/O设备等。因此, 操作系统所付出的开销将显著地大于在创建或撤 消线程时的开销。类似地,在进行进程切换时, 涉及到当前进程整个CPU环境的保存以及新被调度 运行的进程的CPU环境的设置。而线程切换只需保 存和设置少量寄存器的内容,并不涉及存储器管 理方面的操作。可见,进程切换的开销也远大于 线程切换的开销。此外,由于同一进程中的多个 线程具有相同的地址空间,致使它们之间的同步 和通信的实现,也变得比较容易。在有的系统中 ,线程的切换、同步和通信都无需操作系统内核 的干预。 2.7.3 线程的状态及转换 线程既然是进程中的一个执行体,是系 统进行调度的独立单位,它就是一个动态 的过程,因此,也就有生命周期,即由创 建而产生,由调度而执行,由撤销而消亡 。在线程的生命周期中,它总是从一种状 态变迁到另一种状态。与进程类似,在不 同的操作系统中,线程的状态有所不同, 下面给出在Windows 2000/XP中的线程及其 转换图,如图2.17。 初始化 备用 终止就绪 运行 转换等待 创建和初始化 线程对象 重新初始化 放入就绪队列 选择 执行 被抢先 抢先或时 间片结束 执行完成 描述表 切换 等待完成 等待对象 句柄 换出 内核 堆栈 换入 内核 堆栈 图2.17 在Windows 2000/XP中的线 程及其转换图 2.7.4 线程调度 线程调度与进程调度类似,原则上讲, 高优先级的线程比低优先级的线程有更多 的运行机会,当低优先级的线程在运行时 ,被唤醒的或结束I/O等待的高优先级线程 立即抢占CPU并开始运行,如果线程具有相 同的优先级,则通过轮转来抢占CPU资源。 在Windows 2000/XP中,采用的是基于优先 级的抢占式多CPU调度策略。 2.7.5 线程通信 1. 互斥锁(mutex) 2. 条件变量 3. 信号量机制 私用信号量(private semaphore)。 公用信号量(public semaphore)。 2.7.6 多线程应用举例 下面以客户/服务器应用模式中服务器 程序设计为例,来说明多线程技术的应用 。 下面是该服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辽宁省凌海市高考历史真题附答案(培优B卷)
- 2025年湖北省洪湖市高二历史上册期末考试考试卷附参考答案(B卷)
- 2026车规级芯片可靠性测试标准对比研究报告
- 2026宠物行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国芯片设计行业市场发展现状与投资前景分析报告
- 2026区块链技术在跨境支付领域应用场景分析报告
- 2026中国医药行业资本市场表现与估值体系重构报告
- 2026运动康复产业链延伸背景下防护性辅具市场价值重塑战略研究
- 2026中国钛合金材料在航空航天领域应用拓展分析报告
- 2026中国超精密加工设备行业振动控制与环境要求标准报告
- 2026基层医务人员医护人员的职业防护课件
- 2026年秋北师大版四年级上册数学全册教案(完整版含教学反思)
- 限制类医疗技术临床应用自我评估报告x
- 2026年群众文化专业人员职称考试真题
- 二次函数与一元二次方程 (课件) 2026-2027学年人教版九年级数学上册
- 牙科手机注油机使用方法
- 雨课堂学堂在线学堂云《创新思维与创业实验(东南)》单元测试考核答案
- 2025年国才杯日语笔试真题及答案
- 慢性病管理APP开发
- 函数的单调性 第一课时 课件(共18张) 高一上学期数学人教A版必修第一册
- 光伏项目施工安全管理方案
评论
0/150
提交评论