- 1、本文档共199页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 综上所述,用户级线程与内核级线程各有优缺点,若想扬长避短,就需要将这两种方法结合起来。系统内核既支持多线程的建立、调度和管理,同时系统还提供线程库,允许用户程序建立、调度和管理用户级线程。在Solaris OS中,就采用了将二者结合起来的方法。 3. Solaris OS中的线程 Solaris OS 2。0是SUN Microsystem 公司於1992年推出的32位多任务多线程操作系统。在该系统中,使用了四个与线程有关的概念,即进程、用户级线程、内核级线程和轻型进程。 ⑴ 进程仍然是资源分配的基本单位,拥有用户地址空间、堆栈和PCB等。 ⑵ 用户级线程是由线程库来管理的,其数目可以很多,每个仅需一个栈和程序计数器。内核并不知道它的存在,故不受内核调度程序的调度,因此切换很快。 ⑶ 内核级线程完成内核的所有工作,是被调度并分派到一个处理机上执行的实体。 ⑷ 轻型进程(Light Weight Process-LWP)是用户级线程和内核级线程之间的接口,可以看成是被内核创建的用户级线程。 (1)内核线程 一个内核线程可以独立工作,不需要与一个用户进程联系起来。内核线程的创建与撤消是由系统的内部需求决定的,用来负责执行一个指定的任务,它共享系统的程序与全局数据,具有自己的堆栈。内核线程能够被单独调度并使用标准的系统同步机制。内核线程的创建和使用开销不是很大,它们使用的资源是内核堆栈和在它们不运行时用来保存寄存器上下文的一个内存区域,当然还需要一些数据结构来保存调度和同步信息。内核线程间的上下文切换是很快的,因为内存映射不用刷新。内核线程运行在系统空间,系统中有一张线程表,列出了所有的内核线程,系统可以选择内核线程运行。 (2)轻量级进程LWP 一个轻量级进程LWP是一个内核支持的用户线程,运行在用户空间。它是一个在内核线程基础上的高层抽象,因此内核在支持轻量级进程之前必须支持内核线程。每个进程可以有一个或多个轻量级进程LWP,用户进程通过轻量级进程LWP与内核通信,每一个轻量级进程LWP都由一个单独的内核线程支持,而有一些内核线程是专门处理系统任务而不支持轻量级线程LWP的。轻量级进程LWP可以被调度并且共享所属进程的地址空间和其它资源。它们可以对I/O设备或其它资源进行系统调用,同时也能在I/O操作或资源访问时被阻塞。除了内核堆栈和寄存器外,轻量级进程LWP也需要维护一些用户状态,主要包括用户寄存器上下文,当轻量级进程LWP被抢占CPU时这些内容必须保存下来,以便保证下次调度运行的正确进行。为了节省系统开销,多个用户进程可以多路复用一个轻量级进程LWP,但是只有连接到轻量级进程LWP的进程,才能与内核通信。 图2-30 进程、轻量级进程LWP及内核线程关系图 (3)用户线程 用户线程运行在用户空间,内核无需也无法感知它。每个用户线程仅需一个栈和程序计数器PC, 切换速度快。当一个用户线程被阻塞时, 它在停止之前选择并启动它的后继线程。 用户线程的实现是可能的,因为用户线程的上下文可以在没有内核干预的情况下被保存和恢复。每一个用户线程有自己的用户堆栈,一块用来保存用户级寄存器上下文以及如信号屏蔽等状态信息的内存区域。通过保存当前线程的堆栈和寄存器内容,以及装入新调度线程的那些堆栈和寄存器内容,可实现用户线程间的调度和上下文的切换。 内核仍然负责进程的切换,因为只有内核具有修改内存管理寄存器的权力。用户线程不是真正地可以调度的实体,内核没有保留它们的一点信息,内核只是简单地调度它们下面的进程,这些进程再使用库函数来调度它们的线程。当进程被抢占时,它们的线程也被抢占。 普通进程上的用户线程如图2-31所示。 图2-31 普通进程上的用户线程 第2章 作业 *1.为什么要引入进程概念?进程的基本特征是什么?它与程序有何区别? 2.为什么说进程控制块(PCB)是进程存的唯一标志? 3.什么是原语?原语与广义指令有何区别? 4.进程的基本状态有哪些?它们之间如何转变? 5.什么是线程?线程与进程有何区别? * * * * * * * * * * * * * * * * * * * * * * * 2.5.3 消息通信机制 1.信箱通信(间
您可能关注的文档
最近下载
- 前景理论_风险决策分析.pdf
- 苏教版小学六年级下册数学 第七单元 总复习 图形与几何 第1课时 平面图形的认识.ppt
- 人教版高中历史选择性必修1--第9课 近代西方的法律与教化.docx VIP
- 常见的面试题及其回答技巧.ppt
- 人教版高中历史选择性必修1--第6课 西方的文官制度.docx VIP
- DB36_T 943.1-2017 中小型水利水电工程单元工程施工质量验收评定规程 第1部分:土石方工程.pdf VIP
- 沙特阿拉伯王国法律法规.pdf
- 配电自动化终端检测实验报告.docx
- 人教版高中历史选择性必修1--第12课 近代西方民族国家与国际法的发展.docx VIP
- 2024年11月-JC10心理咨询伦理单元作业题(答案版).pdf VIP
文档评论(0)