- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 28
FILENAME ch41 共 NUMPAGES 28 页
第四章 分布式系统中的进程和处理机
前两章,我们已经了解了在分布式系统中通信和同步这两个相关的主题。本章将转到另一个不同的主题:进程。尽管进程在单机系统中也是重要的概念,本章强调进程管理的特殊部分,它不同于经典操作系统中的内容。特别是在多处理机环境时如何对它进行处理。
在许多分布式系统中,一个进程可能有多个线程,这种能力提供了很多重要的好处,但也带来了各种问题。我们首先研究线程概念,接着研究如何管理处理机和进程,并且介绍几种不同的模型;然后介绍分布式系统中处理机的分配和调度;最后研究两种特殊的分布式系统。
4.1 线程
在大多数传统的操作系统中,每个进程有一个地址空间和单线程控制。事实上这几乎已成为进程的定义。然而,很多情况下希望多个线程共享一个地址空间并可并行运行,就好像PAGE \# Page: #
PAGE \# Page: #
4.1.1 线程简介
例如,假设文件服务器有时不得不因等待磁盘的响应而阻塞,如果这个服务器有多个线程,当第一个线程阻塞时第二个线程就可运行,实际结果可能是更高的吞吐量和更好的性能。不可能创建两个独立的服务进程来达到这个目的,因为它们共享同一缓冲区,要求它们在同一地址空间中。因而需要一种新的机制,但在单一处理机系统的历史上还未找到一种这样的机制。
图4-1
(a) 三个进程,每一个进程有一个线程
(b) 一个进程有三个线程
图4-1(a)中,可看到一台机器有三个进程,每个进程有它自已的程序计数器、堆找、寄存器和地址空间,这些进程之间互不相干,它们能够通过系统进程间通信原语,如:信号量、管程、消息进行通信。图4-1(b)我们看到另一台机器,有一个进程,它包含多个线程控制,经常叫线程或有时称轻量级进程。在许多方面,线程像微小进程,每个线程按顺序执行,并有自已的程序计数器和堆栈来记录运行到什么地方。线程像进程一样共享处理机:首先是一个线程运行,然后是另一个线程运行(分时)。仅在多处理机时它们才并行运行。线程能创建子线程也能阻塞以等待系统调用的完成,像通常进程一样,当一个线程被阻塞时,运行同一进程中的另一线程,类似于一个进程阻塞,另一个进程运行一样。这种情况类似:线程相对于进程,犹如进程相对于机器。
然而,同一进程中的不同线程并不像不同进程之间完全是相互独立的,所有线程有同一地址空间,也就是它们共享全局变量。由于每个线程能存取每个虚拟地址,每个线程能读写,甚至清除另一线程的堆栈,线程之间没有保护。因为(1)这不可能保护。(2)也没有必要。不像进程间,它们属于不同的用户,相互排斥,一个进程总是属于一个使用者,用户创造了多线程是为了相互合作,而不是冲突。而且共享一个地址空间,所有线程共享同一批打开文件、子进程、时钟和信号量等。如图4-2所示。图4-1(a)的结构适合于当三个进程互不相干时。当三个线程是同一任务的一部分且相互紧密合作时,图4-1(b)将是最适合的。
图4-2 每一线程与进程的内容
像传统的进程(如:只有一个线程的进程)一样,线程处于以下几种状态之一:运行、阻塞、就绪或者结束。正在运行的线程占用CPU,并且是激活的。一个阻塞的线程等待另一正在运行的线程唤醒(例如通过信号量),调度一个就绪线程运行。最后,一个结束的线程将退出,但它还没有被父线程回收(在UNIX中,父进程不执行WAIT)。
4.12 线程的用途
线程的引入是为了使并行执行与顺序执行相结合,再考虑文件服务器的例子,一种可能的结构,如图4-3(a)所示:在这里某一线程是派遣者(dispatcher),它从系统邮箱内读出输入请求。然后检查请求,选择一个空闲的工作者线程去处理它,可能是通过把指向那个请求消息的指针写入到一个与每个线程相关联的一个特殊字中。然后派遣者唤醒睡眠的工作者。
图4-3 线程与进程的三种组织
(a)派遣者/工作者模式 (b)团队模式 (c) 管道模式
当工作者唤醒后,它检查任何一个线程可访问的共享块缓冲区是否可以满足这个请求。如不能满足,给磁盘发出消息,要求所需的数据块(假设是READ),且进入休眠状态等待磁盘操作的完成。现在调用调度程序,开始另一个线程,为了获得更多的工作,此线程可能是派遣者,或者可能是另一个工作者准备运行。
考虑文件服务器在无多线程的情况下是怎样被写入的。一种可能性让它作为单独线程执行。文件服务器的主循环是接收一个请求、检查它,而且在下一个请求到来前完成它。当文件服务器等待磁盘操作时,它是空闲的且不处理另一请求,如果文件服
您可能关注的文档
最近下载
- 4郭永康光的干涉-14.ppt VIP
- 中职教育一年级上学期英语《We Are Friends》课件.pptx
- 4郭永康光的干涉-11.ppt VIP
- 《危险化学品目录(2015版)》(2022年调整)-标注为爆炸物的化学品.pdf VIP
- 湘南学院2021-2022学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
- 人美版小学四年级上册美术教案.pdf VIP
- 人教PEP版五年级上册英语Unit 2 My week单元整体教学设计(教案).docx VIP
- 4郭永康 光干涉-7 .ppt VIP
- 小学语文新部编版一年级上册全册教案(2025秋新版).doc
- 湘南学院2022-2023学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
文档评论(0)