网站大量收购独家精品文档,联系QQ:2885784924

高级操作系统.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级操作系统

分布式系统概念:一个分布式系统是若干个独立的计算机的集合,但是对该系统的用户来说,感觉该系统就像一台计算机一样。 分布式操作系统:是对分布式系统提供资源管理的软件系统。通常表现为中间件形式。 一、分布式系统的关键目标 分布式系统的4个关键目标: 必须是资源共享的。要让用户方便地访问资源,并且以一种受控的方式与其他用户共享这些资源。 必须是透明的。使分布式系统能够在用户和应用程序面前呈现为单个计算机系统。 必须是开放的。它根据一系列准则来提供服务,这些准则描述了所提供服务的语法和语义。说明良好的接口定义允许需要某个接口的任意进程与提供该接口的进程进行通信。同时它也允许独立的双方各自完成截然不同的接口实现,这样就会出现运行方式完全相同的两个独立的分布式系统。 必须是可扩展的。可以通过三个方面来度量。首先,系统要能在规模上扩展,即可以方便地把更多的用户和资源加入到系统中去。其次,如果系统中的用户和资源可以相隔极为遥远,这种系统就称为地域上可扩展的系统。最后,系统在管理上是可扩展的,也就是说,即使该分布式系统跨越多个独立的管理机构,仍然可以方便地对其进行管理。 二、中间件的特点 中间件在体系结构中的位置:分布式系统由独立的计算机组成,但同时隐藏了其中单个计算机在系统里所承担任务的细节。即使分布式系统中某些部分可能暂时发生故障,但其整体在通常情况下总是保持可用。用户和应用程序不会察觉到哪些部分正在进行替换和维修,以及加入了哪些新的部分来为更多的用户和应用程序提供服务。 为了使种类各异的计算机和网络都呈现为单个的系统,分布式系统常常通过一个“软件层”组织起来,该“软件层”在逻辑上位于由用户和应用程序组成的高层与由操作系统组成的低层之间。 作为中单件组织的分布式系统。中间件层延伸到了 多台机器上,且为每个应用程序提供了相同的接口 中间件在应用程序和分布式平台之间形成了一个层,一个重要的目的是提供一定程序的透明性,也就是一定程序上向应用程序隐藏数据处理的控制的分布性。 在实践中常见的中间件系统实际上是遵循一定的体系结构风格的。 使中间件按照特定的体系结构整合到系统中,有利于使应用程序的设计变得更简单。 分布式系统的软件体系结构,主要以中间件为基础,是庞大则复杂的。在很大程度上,这种庞大和复杂性是来自于提供分布式透明性的要求的。同时,应用程序具有特定的额外功能要求,这与完全实现透明性是相冲突的。这种通用性和特殊性需求之间的冲突,使得中间件应是调试灵活的。但是,付出的代价是复杂性。 三、远程过程调用(RPC)通信模型的基本原理及主要步骤 RPC的目的在于将消息传递的大部分复杂性隐藏起来,它比较适用于客户-服务器应用程序。 客户存根程序:主程序端的子程序代理 服务器存根程序:子程序端的主程序代理 客户过程以普通方式调用客户存根 客户存根建立消息并调用本地操作系统(激活内核陷阱) 客户端操作系统将消息发送给远程操作系统(内核将消息发送到远程内核) 远程操作系统(内核)将消息送到服务器存根 服务器存根取出消息中的参数后调用服务器的过程 服务器完成要求的操作后将结果返回至服务器存根 服务器存根将它打包成消息并调用本地操作系统(激活内核陷阱) 服务器操作系统(远程内核)将含有结果的消息发送回客户端操作系统(客户内核) 客户端操作系统(客户内核)将消息交给客户存根 客户存根从消息中取出结果返回给客户 总的来说,将客户过程对客户存根发出的本地调用转换成对服务器过程的本地调用,而客户和服务器都不会意识到有中间步骤的存在。 四、Lamport逻辑时钟算法基本原理 C(a)表示事件a的时钟值。性质: if a(b;则C(a)C(b) (a,b C(a)( C(b) C是递增的 *校正时间的操作是给时间加上一个正值,而不能是减掉一个正值。 校正算法 a(b, if C(b)C(a), 则C(b) = C(a) +1 三个进程,各有自己的局部时钟,它们速率不同 通过Lamport算法,校正时钟 实现Lamport逻辑时钟,每个Pi维护一个局部计数器Ci。这些计数器按如下步骤进程更新: Pi在执行一个事件之前,Pi执行Ci←Ci+1 Pi在发送消息m给Pj时,时间戳ts(m) ←Ci Pj接受到消息m后,Cj←max{Cj,ts(m)} 举例:全序多播(一次将所有的消息以同样的顺序传递给每个接收的多播操作) 问题:两个进程分别对同一个复制数据库进行更新时,造成不一致状态 原因:全局次序不一致。u1→u2; u2→u1 解决方案:全序多播 发送进程多播发送消息m时,给m带上当前时间戳ts。当接收进程收到消息m后,存放其局部队列q,按时间戳排序接收进程向所有进程多播发送应答。当消息m被所有进程应答,且排在队列q队首后,方可处理 定理:各个进程的局部队列的值

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档