- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
只有一个到内核线程设施的应用程序编程接口API
CHAPTER 4THREADS,SMP,AND MICROKERNELS 本章讲述一些与进程管理相关的更高级的概念。它体现了两个分离的独立概念:一个与资源所有权有关,一个与执行相关。这个区别导致在一些操作系统中线程(Thread)结构的发展。 4.1 进程和线程 进程的概念体现出两个特点: ①资源所有权:一个进程包括一个保存进程映像的虚地址空间,并且不时地被分配给对资源 的控制或所有权, . ②调度/执行:一个具有执行状态(运行、就绪等)和调度优先级的进程是一个被操作系统调度并分派的实体。 为区分这两个特点,调度并分派的部分通常称作线程或轻便进程(lightweight process),而资源所有权的部分通常仍称作进程或任务。 Multithreading (多线程) 多线程是指操作系统支持在一个进程中执行多个线程的能力。 传统的每个进程中只有一个线程在执行(没有考虑线程的概念),称作单线程方法。 例如图4.1 在多线程环境中,进程被定义成资源分配的实体(unit)和保护的实体(unit),即: ①保存进程映像的虚地址空间。 ②受保护地访问处理器、文件和I/O资源 等。 Thread Function( 线程功能) Thread State (线程状态):运行、就绪和阻塞。 与线程状态变化的4种基本操作: ①产生(Spawn):当产生一个新进程时,同时也为该进程产生了一个线程,随后,进程中的线程可以在同一个进程中产生另一个线程,新线程被放置在就绪队列中。 ②阻塞(B1ock):当线程需要等待一个事件时,它将阻塞,此时处理器转而执行另一个就绪线程。 ③解除阻塞(Unb1ock):当阻塞一个线程的事件发生时,该线程被转移到就绪队列中。 ④结束(Finish):当一个线程完成时,其寄存器的信息和栈都被释放。 Thread Synchronization(线程同步) 一个线程对资源的任何修改都会影响同一个进程中其他线程的环境。 因此,需要各种线程的活动进行同步,以便它们互不干涉且不破坏数据结构。 User-Level and Kernel-Level Threads(用户级和内核级线程) 线程可以分为两类:用户级线程(ULT))和内核级线程(KLT),KLT又称作内核支持的线程或轻便进程。 用户级线程(User-Level Threads) 在一个纯粹的ULT软件中,有关线程管理的所有工作都由应用程序完成,内核没有意识到线程的存在。 描述此类线程的数据结构以及控制此类线程的原语在核外子系统中实现。 Kernel-Level Threads 在一个纯粹的KLT软件中,有关线程管理的所有工作都是由内核完成的,应用程序部分没有进行线程管理的代码,只有一个到内核线程设施的应用程序编程接口(API)。 内核为该进程保存整个环境信息,并为进程中的各个线程保存它们的信息,调度是由内核基于线程的调度完成的。 描述此类线程的数据结构以及控制此类线程的原语在核心子系统中实现。 4.3 MICROKERNELS(微内核) 微内核是一个小型的操作系统核心。 提出的问题: 1.内核必须有多小才能称作微内核? 2.从硬件抽象出它们的功能时,怎样设计设备驱动程序才能获得最佳性能? 3.是在内核空间还是在用户空间运行一个非内核的操作? 4.是保留现有的子系统代码,还是从头开始? Microkernel Achitecture(微内核体系结构 ) 微内核的基本原理:只有最基本的操作系统功能才能放在内核中。不是最基本的服务和应用程序在微内核之上构造,并在用户模式下执行。 许多传统上属于操作系统一部分的功能现在都是外部子系统,包括设备驱动程序、文件系统、虚存管理程序、窗口系统和安全服务,它们可以与内核交互,也可以互相交互。 Benefits of a Microkernel organization(微内核组织结构的优点 ) 微内核结构为进程请求提供一致接口,进程不需要区分是内核级服务还是用户级服务,因为所有服务都是通过消息传递提供的。 微内核结构促进了可扩展性,允许增加新的服务以及在同一个功能区域中提供多个服务。 微内核结构具有灵活性。不仅可以在操作系统中增加新功能,还可以删除现有的功能,以产生一个更小、更有效的实现。 Microkernel Performance(微内核性能) 微内核的一个潜在缺点是性能问题。即通过微内核构造和发送信息、接受应答并解码所花费的时间比进行一次系统调用的时间要多 。 解决这个问题的方法: 把一些关键的服务程序的驱动程序重新放回操作系统以增大微内核,它是以微内核的设计强度(最小的接口、灵活性等)为代价减少性能损失的。 使得微内核不会变大而会变小。
文档评论(0)