- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在操作系统中引入进程的目的,是为了使多个程序能并发执行
第二章 进程管理 线程的基本概念 线程的引入 如果说,在操作系统中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。 若能将进程的上述两个属性分开,由操作系统分开处理,亦即对于作为调度和分派的基本单位,不同时作为拥有资源的单位,以做到“轻装上阵”;而对于拥有资源的基本单位,又不对之进行频繁的切换。正是在这种思想的指导下,形成了线程的概念。 线程与进程的比较 1) 调度 在传统的操作系统中,作为拥有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的操作系统中,则把线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位,把传统进程的两个属性分开,使线程基本上不拥有资源,这样线程便能轻装前进,从而可显著地提高系统的并发程度。在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换。 2)并发性 在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,使得操作系统具有更好的并发性,从而能更加有效地提高系统资源的利用率和系统的吞吐量。 3)拥有资源 不论是传统的操作系统,还是引入了线程的操作系统,进程都可以拥有资源,是系统中拥有资源的一个基本单位。一般而言,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源,即一个进程的代码段、数据段及所拥有的系统资源。 4)系统开销 在创建或撤消进程时,系统都要为之创建和回收进程控制块,分配或回收资源,操作系统所付出的开销明显大于线程创建或撤消时的开销。一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。在一些操作系统中,线程的切换、同步和通信都无须操作系统内核的干预。 线程的属性 在多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有下述属性。 (1)轻型实体。线程中的实体基本上不拥有系统资源,只是有一点必不可少的、 能保证其独立运行的资源。 (2)独立调度和分派的基本单位。在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小。 (3)可并发执行。在一个进程中的多个线程之间可以并发执行,甚至允许在一个进程中的所有线程都能并发执行;同样,不同进程中的线程也能并发执行。 (4)共享进程资源。在同一进程中的各个线程都可以共享该进程所拥有的资源,这首先表现在所有线程都具有相同的地址空间(进程的地址空间)。这意味着线程可以访问该地址空间中的每一个虚地址;此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。 线程的状态 (1)状态参数。在OS中的每一个线程都可以利用线程标识符和一组状态参数进行描述。状态参数通常有这样几项: ① 寄存器状态 ② 堆栈 ③ 线程运行状态 ④ 优先级 ⑤ 线程专有存储器 ⑥ 信号屏蔽,即对某些信号加以屏蔽 (2) 线程运行状态。线程在运行时也具有下述三种基本状态: ① 执行状态,表示线程正获得处理机而运行; ② 就绪状态,指线程已具备了各种执行条件,一旦获得CPU便可执行的状态; ③ 阻塞状态,指线程在执行中因某事件而受阻,处于暂停执行时的状态。 线程的创建和终止 在多线程OS环境下,应用程序在启动时,通常仅有一个线程在执行,该线程被人们称为“初始化线程”。它可根据需要再去创建若干个线程。在创建新线程时,需要利用一个线程创建函数(或系统调用),并提供相应的参数。 终止线程的方式有两种:一种是在线程完成了自己的工作后自愿退出;另一种是线程在运行中出现错误或由于某种原因而被其它线程强行终止。 多线程OS中的进程 在多线程OS中,进程是作为拥有系统资源的基本单位,通常的进程都包含多个线程并为它们提供资源,但此时的进程就不再作为一个执行的实体。多线程OS中的进程有以下属性: (1)作为系统资源分配的单位。 (2)可包括多个线程。 (3)进程不是一个可执行的实体。 线程间的同步和通信 互斥锁(mutex) 互斥锁是一种比较简单的、用于实现线程间对资源互斥访问的机制。由于操作互斥锁的时间和空间开销
您可能关注的文档
最近下载
- 《工程建设标准强制性条文》电力工程部分2016版.pptx VIP
- 2023-2024学年天津市小学三年级数学第一学期期末统考试题含答案.doc
- 2024年广东省深圳33校联考九年级英语试卷(含答案) .pdf VIP
- 2024-2025学年上海市浦东新区九年级上学期期中考语文试卷含答案.docx
- 包材质量承诺书范文.docx
- 经典童话故事宝莲灯.pptx VIP
- 湖南省九校联盟2025届高三第一次联考 英语试卷(含答案详解)原版.pdf
- XXX钢屋架安装技术交底.doc VIP
- IPC7525B2011(CN)Stencildesignguidelines模板设计指南(中文版).pdf
- 个人租房合同(一张纸打印版).docx VIP
文档评论(0)