操作系统的原理与应用-孔宪君-第3章 线程机制.pptVIP

操作系统的原理与应用-孔宪君-第3章 线程机制.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统原理 Principles of Operating System 主讲:孔宪君 第3章 线程机制 3.1.1任务的概念 所谓的任务是指一个具有开始时间和完成时间的操作,任务是系统的基本工作单元。 3.1.2多任务处理和多重处理 多任务是指在同一时间内同一系统中同时运行多个进程,这里包含多重处理和多进程并发执行。 多重处理是针对多机系统定义的 。 多重处理是多任务处理在多机系统中的一个特例,多重处理是多任务处理的子集。 3.1.3多任务机制与单任务机制的比较 传统的应用程序多采用单任务顺序结构设计。 多任务应用程序是将整个应用程序分成多个任务,每个任务完成一种特定的功能。 3.1.4会话 在OS/2操作系统中通用的进程概念被分成了三个独立类型的实体,既会话、 进程和线程。 一个会话是一组与用户接口(键盘、显示器、鼠标)相关联的一个或多个进程。 会话代表了一个交互式的用户应用程序,这个概念使得PC用户可以打开一个以上的应用程序,在屏幕上显示一个或更多的窗口。 3.2线程的概念 3.2.1为什么引入线程 传统进程有两个属性,就是操作系统进行资源分配的基本单位和处理机调度的基本单位。一是与资源的所有权有关,另一个是与执行有关。 操作系统中进程的数量不宜过多,进程切换的频率不宜过高,但这也就限制了并发程度的进一步提高。 为解决这个问题,把进程的两个属性分离,即作为程序的执行单位,不同时作为独立分配资源的单位。对拥有资源的单位,不对之进行频繁切换。这就需要引入线程的概念。 3.2.2线程的定义 线程是指进程内部的一个可独立执行的实体。 线程是具有最少开销的程序执行实体。多线程允许在同一进程中并发执行多个指令流,而每一个指令流就是线程。 由于同一进程内各线程都可访问整个进程的所有资源,资源的拥有者还是进程或任务。 进程还是一个正在执行的程序的概念,进程是指一个或多个线程和相关系统资源的集合。 系统资源包含数据和代码的存储器空间、打开的文件和设备等。这样传统的进程概念可以理解为只有一个控制线程的进程。 在引入线程的操作系统中,从物理上看,线程是处理机执行的基本单位。从逻辑上看,线程是指进程内部的一个可独立执行的实体。 线程拥有少量必不可少的资源,它具有程序计数器(PC)与保持局部变量与返回地址痕迹的堆栈等最少状态参数来控制它的执行。 3.2.3进程与线程的关系 从以下几个角度对进程和线程进行比较 : ⑴资源和调度方面。 ⑵地址空间资源。不同进程的地址空间是相互独立的,而同一进程的各线程共享同一地址空间。 ⑶通信关系。 ⑷ 并发性。 ⑸系统开销。 3.2.4线程的优点 线程具有如下优点: ①线程是具有最少开销的程序执行实体。②撤消线程比撤消进程花费的时间短。 ③线程间切换比进程间切换花费的时间短。并且同一进程线程之间的切换是在同一地址空间内进行的,因此切换开销更小。 ④进程中的线程可以访问该进程的所有资源。这些资源包括:程序指令,全局数据,信号处理程序,工作环境信息(当前工作目录、用户ID和组ID等)。同时,每个线程有自己的一些专用资源:寄存器组,线程堆栈(存放线程自己的局部变量和返回地址),优先级,线程ID,信号屏蔽掩码,全局错误代码errno等。 ⑤多线程可以提高通信效率。由于同一进程内线程间共享内存和文件资源,多线程可以直接进行通信,不通过操作系统内核。 ⑥一个线程可以与其他线程并发执行,甚至在一个任务中的所有线程都可并发执行。 ⑦多线程适合多机系统。例如:LAN中的一个文件服务器,在一段时间内需要处理几个文件请求。因此有效的方法是为每一个请求创建一个线程。在一个多CPU的机器上,多个线程可以同时在不同的CPU上运行。 3.2.5线程的状态 ①创建线程。当产生一个新进程时,同时也为该进程产生了一个线程,随后,进程中的线程可以在同一个进程中产生另一个线程,并为新线程提供指令指针和参数,同时还提供新线程自己的寄存器上下文和栈空间,新线程被放置在就绪队列中。 ②线程的阻塞。与进程一样,当线程等待一个事件时,它将阻塞(保存用户寄存器、程序计数器和栈指针),此时处理机转而执行另一个就绪线程。 ③线程的唤醒。当线程等待的一个事件发生时,该线程由阻塞状态转变为就绪状态,被插入就绪队列中。 ④线程的结束。当线程执行任务结束后,系统将释放它所占用的寄存器上下文和栈空间。 3.3线程类型 3.3.1用户线程 用户线程仅存在于用户空间中,不依赖于操作系统内核,在用户层通过线程库来实现。线程库提供对线程创建、调度和管理的支持而无需内核支持。 由于操作系统内核不了解用户线程的存在,所以一个用户线程在进入系统调用后阻塞,则整个进程都必须等待,即使还有其他线程可以在应用程序内运行。CPU时间片分配给进程,当进程内有

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档