您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 高级操作系统详细资料
第一章分布式系统概述1.1什么是分布式系统?分布式系统是若干独立计算机的集合,它们对于用户来说就像一个系统。1.2分布式系统中透明性的种类、定义。透明性:如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统,这样的分布式系统就称为是透明的。分类:1、访问透明性:隐藏数据表示形式以及访问方式的不同2、位置透明性:隐藏数据所在位置3、迁移透明性:隐藏资源是否已移动到另一个位置4、重定位透明性:隐藏资源是否在使用中已移动到另一个位置5、复制透明性:隐藏资源是否已被复制6、并发透明性:隐藏资源是否由若干相互竞争的用户共享7、故障透明性:隐藏资源的故障和恢复8、持久性透明性:隐藏资源(软件)位于内存里或在磁盘上。1.3分布式系统中的扩展技术有哪些?(1)隐藏通信等待时间:包括异步通信和减少通信量(2)分布技术:即分割组件,然后分散到系统中,例如DNS和(3)复制技术:多拷贝1.4分布式系统的类型。(1)分布式计算系统(分为群集计算系统和网格计算系统)(2)分布式信息系统(分为事务处理系统和企业应用集成)(3)分布式普适系统(如家庭系统、电子健保系统、传感器网络)第二章体系结构2.1四种体系结构样式。分层体系结构(Layeredarchitectures)(网络通信广泛应用)基于对象的体系结构(Object-basedarchitectures)(特点:松散的组织结构;通过远程过程调用进行通信)以数据为中心的体系结构(Data-centeredarchitectures)基于事件的体系结构(Event-basedarchitectures)(优点:进程松散耦合)2.2客户端-服务器模型。服务器(server):实现某个特定服务的进程客户(client):向服务器请求服务的进程客户端-服务器之间的一般交互:请求/回复(如下左图)基于无连接协议的客户和服务器通信:高效,但是易受传输故障的影响(无法检测消息是否丢失也无法解释是否发生传输故障)。适合局域网。基于连接的协议:性能相对较低,不适合局域网,适合广域网(基于可靠的TCP/IP)。客户服务器应用程序通常组织为三个层次(如上右图):(1)用户界面层:含有直接与用户交互所需的一切;(2)处理层:含有应用程序核心功能;(3)数据层:操作数据或文件系统,保持不同应用程序之间的数据一致性。客户端-服务器模型可能的组织结构如下图:(a)只有与终端有关的用户接口部分位于客户机器上;(b)把整个用户接口软件放在客户端(c)部分应用程序移到前端;(d)大多数的应用程序基本是运行在客户机上,但所有对文件或数据库项目的操作都是在服务器上;(e)同(d),本地硬盘含有部分数据。2.3协作分布式系统BitTorrent工作原理。文件共享系统(BitTorrent)是一种点对点下载系统工作原理如下图。基本思想是,当一个终端用户要查找某个文件时,他可以从其他用户那里下载文件块,直到所下载的文件块能够组装成完整的文件为止。一个重要的设计目标是确保协作性。在大多数文件共享系统中,参与者只是下载文件,其他什么也不做。总之只有当下载客户为他人提供了内容,文件才可以被下载。BT下载网络有三个关键静态组件:•跟踪器(Tracker):Tracker跟踪器是一个中央服务器,它主要跟踪系统中所有的参与结点,收集和统计这些结点的状态,帮助参与结点间互相发现并进行文件块的交换;•种子节点(Seed):Seed种子节点是指拥有完整文件的节点,提供上载服务;•下载节点(Downloader)。相对于Seed的节点称为下载节点,一个下载节点完成下载后,可以成为种子节点动态流程(基于上图)•第一个用户通过BT工具制作要共享文件的Torrent文件(Torrent文件包含共享文件的下载信息)并发布此Torrent文件到中。•其他用户从WEB服务器上下载此Torrent文件并通过节点跟踪器协议(如TrackerHTTP)去访问Tracker跟踪器,参与到此Torrent网络中。•Tracker跟踪器接收到一个新加入节点的下载请求后,随机选择部分此Torrent网络中的节点发送给新加入者作为邻居节点,并记录新节点。•新加入节点通过一定的算法同邻居节点连接进行文件的下载和上载直到文件下载完成,这一过程会根据一定的策略重复(3)。如果继续上载,Tracker服务器将此节点看作种子节点。•所有参与的节点将周期地报告自己的状态和进程给Tracker跟踪器。关键技术•BT文件发布系统采用针锋相对(Tit_for_Tat)的方法来达到帕累托(pareto)有效,与当前其他的P2P技术相比,它达到了更高层次的鲁棒性和资源利用。•帕累托最优:指资源配置已达到这样一种境地,即任何重新改变资源配置的方式,都不可能使一部分人在没有其他人受损的情况下受益。•最少优先原则:对一个下载者来说,在选择下一个被下载的片断时,通常选择的是它的Peers所拥有的最少的那个片断,也就是所谓的“最少优先”。第三章分布式进程管理3.1进程和线程的比较。进程定义为执行中的程序。未引入线程前是资源分配单位(存储器、文件)和CPU调度(分配)单位。引入线程后,线程成为CPU调度单位,而进程只作为其他资源分配单位。线程是CPU调度单位,拥有线程状态、寄存器上下文和栈这些资源,同线程一样也有就绪、阻塞和执行三种基本状态。(1)对于地址空间和其他资源(如打开文件)来说,进程间是相互独立的,同一进程的各线程间共享该进程地址空间和其他资源(某进程内的线程在其他进程不可见)。(2)在通信上,进程间通信通过IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信--需要进程同步和互斥手段的辅助,以保证数据的一致性。(3)在调度上,线程上下文切换比进程上下文切换要快得多。线程是CPU调度单位,而进程只作为其他资源分配单位。线程的创建时间比进程短;线程的终止时间比进程短;同进程内的线程切换时间比进程短。因此,多线程能提高性能;线程不像进程那样彼此隔离,并受到系统自动提供的保护,因此多线程应用程序开发需要付出更多努力。3.2多线程服务器的优点?多线程技术不仅能够显著简化服务器代码,还能够使得应用并行技术来开发高性能的服务器变得更加容易,即使在单处理器系统上也是如此。多线程能够保留顺序处理的思路,使用阻塞性系统的系统调用,仍然能到达并行处理的目的。使用阻塞系统调用使编程更容易,并行处理能提高系统的性能。3.3代码迁移的动机有哪些?代码迁移指的是将程序(或执行中的程序)传递到其它计算机。(基本思想:把进程由负载较重的机器上转移到负载较轻的机器上去,就可以提升系统的整体性能)迁移动机:(1)实现负载均衡:将进程从负载重的系统迁移到负载轻的系统,从而改善整体性能。(2)改善通信性能:交互密集的进程可迁移到同一个节点执行以减少通信开销,当进程要处理的数据量较大时,最好将进程迁移到数据所在的节点。(3)可用性:需长期运行的进程可能因为当前运行机器要关闭而需要迁移。(4)使用特殊功能:可以充分利用特定节点上独有的硬件或软件功能。(5)灵活性:客户首先获取必需的软件,然后调用服务器。3.4代码迁移时进程对资源的绑定类型有哪些?进程对资源的绑定类型有三类:分别是按标志符(URL)、按值和按类型。3.5代码迁移时资源对机器的绑定类型有哪些?资源对机器绑定类型分成:未连接(数据文件)、附着连接(数据库)和紧固连接(本地设备)三类。如下图:掌握迁移代码时,根据引用本地资源方式不同应采取的做法。3.6处理机分配的超载者启动的分布式启发式算法思想。算法描述:当一个进程创建时,若创建该进程的机器发现自己超载,就将询问消息发送给一个随机选择的机器,询问该机器的负载是否低于一个阀值。1)如果是,那么该进程就被传送到该机器上去运行。2)否则,就再随机地选择一台机器进行询问。这个过程最多执行N次,若仍然找不到一台合适的机器,那么算法将终止,新创建的进程就在创建它的机器上运行。算法分析:当整个系统负载很重的时候,每一个机器都不断地向其他机器发送询问消息以便找到一台机器愿意接收外来的工作。在这种情况下,所有机器的负载都很重,没有一台机器能够接收其它机器的工作,所以,大量的询问消息不仅毫无意义,而且还给系统增添了巨大的额外开销。3.7处理机分配的欠载者启动的分布式启发式算法思想。算法描述:在这个算法中,当一个进程结束时,系统就检查自己是否欠载。如果是,它就随机地向一台机器发送询问消息。如果被询问的机器也欠载,则再随机地向第二台、第三台机器发送询问消息。如果连续N个询问之后仍然没有找到超载的机器,就暂时停止询问的发送,开始处理本地进程就绪队列中的一个等待进程,处理完毕后,再开始新一轮的询问。如果既没有本地工作也没有外来的工作,这台机器就进入空闲状态。在一定的时间间隔以后,它又开始随机地询问远程机器。算法分析:在欠载者启动的分布式启发式算法中,当系统繁忙时,一台机器欠载的可能性很小。即使有机器欠载,它也能很快地找到外来的工作。在系统几乎无事可做时,算法会让每一台空闲机器都不间断地发送询问消息去寻找其它超载机器上的工作,造成大量的系统额外开销。但是,在系统欠载时产生大量额外开销要比在系统过载时产生大量额外开销好得多。3.8什么软件代理?举例说明其作用。软件代理是一些独立的单元,能与其他的代理进行协作,一同执行任务。定义为对环境的变化做出反应,并且启动这种变化的自治进程,而且可以与用户代理或其他代理协同。与进程的区别在于能够对自己执行操作,在适当的时候采取主动。代理分类:(1)合作代理:通过协作达到某个共同的目标:会议安排(2)移动代理:能够在不同机器间迁移(3)接口代理:协助最终用户使用应用程序,拥有学习能力:促成买卖(5)信息代理:管理来自多个信息源的信息:排序、过滤和比较a.固定信息代理:电子邮件代理b.移动信息代理:网络漫游,搜集所需信息第四章分布式系统通信4.1什么是远程过程调用?远程过程调用的步骤。远程过程调用(RemoteProcedureCall)RPC是指本地程序调用位于其他机器上的进程,调用方通过消息的形式把参数传递到被调用方的进程,然后等待被调用方执行完后用消息的方式把结果传回调用方。具体步骤是:(1)客户过程以正常的方式调用客户存根(2)客户存根生成一个消息,然后调用本地操作系统(3)客户端操作系统将消息发送给远程操作系统(4)远程操作系统将消息交给服务器存根(5)服务器存根将参数提取出来,然后调用服务器(6)服务器执行要求的操作,操作完成后将结果返回给服务器存根(7)服务器存根将结果打包成一个消息,然后调用本地操作系统(8)服务器操作系统将含有结果的消息发送回客户端操作系统(9)客户端操作系统将消息交给客户存根(10)客户存根将结果从消息中提取出来,返回给调用它的客户过程4.2什么是远程对象调用?远程对象调用指的是在本地调用位于其他机器上的对象。和远程过程调用主要的区别在于方法被调用的方式。在远程对象调用中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被远程对象调用的客户方所调用。在远程过程调用中,当一个请求到达远程过程调用的服务器时,这个请求就包含了一个参数集和一个文本值。4.3消息持久通信与暂时通信的区别?消息持久通信指的是,需要传输的消息在提交之后由通信系统来储存,直到将其交付给接受者为止,在将消息成功交付给下一个服务器之前消息一直储存在通信服务器上,因此发送消息的程序不必在发送消息后保持运行,同样要接受消息的应用程序在消息提交的时候可以不处于运行状态。即,不需要消息发送方和接收方在消息的传输过程中都保持激活状态。提供消息的中介存储(如,消息队列系统,面向消息的中间件),实时性要求较低,允许几分钟完成的传输。消息暂时通信指的是通信系统只是在发送和接收消息的应用程序运行期间存储消息,否则消息就会被丢弃。不提供消息的中介存储,实时性要求较高,几秒甚至几毫秒完成。如BerkeleySockets(套接字),Messa
本文标题:高级操作系统详细资料
链接地址:https://www.777doc.com/doc-5588356 .html