分布式系统重点教学内容.docx
- 文档编号:356337
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:12
- 大小:83.68KB
分布式系统重点教学内容.docx
《分布式系统重点教学内容.docx》由会员分享,可在线阅读,更多相关《分布式系统重点教学内容.docx(12页珍藏版)》请在冰豆网上搜索。
分布式系统重点教学内容
1.分布式系统是若干独立的计算机的集合,而对用户来说就像单个相关的系统。
2.分布式系统的目标:
可访问性,透明性,开放性,可扩展性。
3.集群计算系统和网格计算系统的概念和区别:
集群系统中底层的硬件机器是相似的,上面运行的操作系统也是相同的,通过高速的局域网连接。
网格系统是一些计算机系统的联邦,每个系统属于不同的管理域,它的硬件,软件和网络拓扑结构也不同。
4.从逻辑层次说明分布式系统的类型,各自的特点是什么?
集中式和非集中式
集中式即传统的客户服务器模式。
服务器实现软件组件的大部分功能,而客户端可以用简单的通讯访问服务器。
非集中式结构中每个机器的作用的平等的。
混合模式
5.客户服务器模式分为那几层,结合图2.4,说明这三层结构。
举例说明为什么出现这三层,好处是什么?
分为用户接口层,处理层,数据层。
用户接口层含有和用户直接交互有关的程序,通常在客户端实现,从起初的字符界面到现在的图形化界面,这个接口层越来越复杂。
处理层位于用户接口层和数据层之间,通常包含应用程序的核心功能,它通常不是通用的,不同的系统的处理层不同。
数据层包含应用程序对实际数据的操作。
它要保证数据的完整性和实时性,通常用数据库来实现。
现在常用的数据库是关系数据库和关系-对象数据库。
例如互联网搜索引擎的实现。
它含有用户界面,用户可以输入搜索的关键字,然后得到一个网站页面的列表,这是用户接口层。
后台是一个巨大的网页页面的数据库,可以采用预取和索引技术,这是数据层。
而中间的处理层是核心,它接受客户的搜索请求,把请求转变为一条或多条数据库查询语言,然后把查询结果按照某种算法排序,并且形成html页面,发送给客户端。
这样分层的好处是实现了分布式的透明性。
客户不需要了解中间复杂的计算,他要做的只是输入关键字,然后就等待查询结果。
数据层也是标准的数据库,不需要考虑如何处理查询结果。
6.什么是瘦客户端,什么是胖客户端?
它们各自的好处是什么?
瘦客户端是处理层和数据层的大部分是放在服务器一端。
因为虽然客户端机器能做很多事情,它们也常常容易出问题。
把更多的功能放在客户端使客户端的软件更容易出错,并且更依赖于客户的底层平台(例如操作系统和资源)。
从系统管理的角度来讲,使用胖客户端不是最优的。
实际上,瘦客户端使客户接口更简单,而且是客户感觉性能更好。
胖客户端是指把处理层甚至数据层的一部分放在客户端。
这样做服务器负担较轻,响应比较快。
交互性强。
7.什么是垂直分布和水平分布?
各有什么优缺点。
垂直分布是分层的客户服务器模式分布,逻辑上来说,不同的组件分布在不同的机器上。
它的优点是当功能逻辑的和物理的分布在不同的机器上时,每个机器都可以定制,以实现某些特定的功能。
缺点是服务器的负载较重。
水平分布是客户或服务器被物理的分为逻辑上平等的部分,每一部分处理自己完整的数据集,从而达到负载平衡。
每个进程即是客户端,又是服务器,进程的交互式对等的。
它可以分为有结构和无结构两种形态。
它的缺点是每台机器都要运行复杂的进程。
8.Chord系统的结构和无层次名字解析。
节点逻辑上组成一个环,关键字是K的数据项被映射到最小的标识符id-k,被称为k的后继,记为succ(k)。
在实际查找数据项的时候,运行在任意节点的应用程序会调用函数lookup(k),这个函数会返回succ(k)的地址。
然后,应用程序会连接相应的节点,得到数据的副本。
查找不是按照这个环的顺序依次查找,而是在每个节点保存有到达其他节点的捷径,这样查找可以在O(log(N))的时间复杂度内完成。
(N是参与这个覆盖网络的节点数)。
节点如何加入这个系统。
首先要生成一个随机的标示符id。
如果标示符空间足够大,并且生成的随机数足够随机,那么生成的随机数和已经存在的节点标示符相同的概率几乎为零。
然后,这个节点运行lookup(id),查找这个节点的后继,这个succ(id)的地址就会被返回。
那么,新加入的节点就会联系这个后继和它的前趋,并且插入。
当然,系统中的每个节点都保留它的前趋的信息。
最后,现在应该以id为后继的数据从原来的后继中被转移过去。
节点离开。
节点离开很简单。
节点id把离开的信息通知它的前趋和后继,然后把他的数据转移给succ(id)。
9.非结构化点对点体系结构的主要思想,为什么要引入覆盖网络。
非结构化点对点系统主要依靠构建一个覆盖网络的随机算法。
它的主要思想是每一个节点维护一个邻居列表,但是这张表或多或少是以一种随机的方式构建的。
同样,数据项也是随机分布在节点上的。
当一个节点定位某个数据项时,它只能用洪泛法查询整个网络。
很多非结构化的点对点系统的目标是构建一个很像随机图的覆盖网络。
基本的模式是每个节点维护一张邻居表,理想的状态是每个邻居节点是从现在的节点集中随机的选择“活的”节点。
节点表也被称为部分视图。
10.为什么要引入超级对等体?
引入超级对等体有什么好处?
在非结构化的对等系统中,随着网络的增大,定位数据项就成了问题。
因为一个节点只能使用洪泛法定位数据,在某些情况下洪泛还可能被切断。
因此人们考虑利用一些特殊的节点维护数据的索引或者作为代理服务器缓存一些网页供客户端访问,这些节点就成了超级对等体。
超级对等体也可以组成对等网络,这样就成了分层的结构。
普通对等体作为客户端连接到超级对等体。
它们之间的通信通过超级对等体进行。
客户端和超级对等体的关系可以是固定的,这要求超级对等体的可靠性要高,或者通过备份超级对等体实现可靠性;它们的关系也可以是可变的,客户端可以选择更好的超级对等体。
引入超级对等体使非结构化的系统具有了某种结构,从而解决了数据定位的问题。
11.BitTorrent的原理。
BitTorrent是点对点的文件下载系统。
它的基本思想是当终端用户寻找文件下载时,他可以从其他用户下载文件的数据块,直到这些数据块能够组成完整的文件。
下载用的.torrent文件含有下载特定的文件需要的信息,通常它指向一个跟踪器。
跟踪器实际是一个服务器,上面记录有保存请求的文件的数据块的活跃节点。
一旦确定一个节点上保存有指定文件的数据块,这个节点立刻成为活跃节点,也就是说,它是被迫帮助别人。
这种强迫性是由一个简单的规则确定的:
如果P节点觉察到节点Q下载的数据多于它上传的数据,P就决定降低它向节点p发送数据的速度。
这样节点形成了交易数据的情形。
12.拦截器的定义,基本思想和工作流程。
拦截器是一种软件架构,它会中断正常的控制流,并且允许其他代码(特定的应用程序)执行。
拦截器的基本思想是对象A可以调用对象B的方法,而对象B和对象A不在同一台机器上。
工作步骤:
1)对象A有一个本地接口和对象B的本地接口一样。
对象A只要调用本地接口中的方法就可以了。
2)对象A的调用被转换成通用的对象调用,这是通过对象A所在的机器的中间件提供的通用对象调用接口实现的。
3)最后,通用对象调用被转换成消息,然后通过A的本地操作系统的传输层接口发送出去。
解释:
当客户应用程序对象A调用位于不同机器的对象B后,B.do_something(value)调用转换成诸如invoke(B,&do_somethinig,value)之类的通用调用。
现在假如B有很多副本,请求级拦截器将要为每个副本调用invoke(B,&do_something,value)。
只有请求级拦截器才需要知道B的副本的存在,而对象A和中间件不需要和副本打交道。
然后远程对象的调用必须在网络上发送,消息级拦截器负责将远程对象的调用封装成消息进行发送,并在发送的过程中可将消息进行分组拆分发送,在目的地在进行组装。
13.进程和线程的区别和联系。
进程是正在执行的一段程序。
操作系统维护一张进程表,包括CPU寄存器的值,内存映射,打开的文件,计数器信息,优先级等等。
一个重要问题是操作系统要确保每个进程不会有意或者无意的影响其它进程的行为。
也就是说多个进程并发共享一个CPU和其它硬件资源的事实是透明的,通常由操作系统提供这些支持。
这种并发透明的获得有相对较高的代价。
例如,每次进程创建的时候,操作系统要为它分配独立的地址空间,然后初始化内存段(包括数据段清零,拷贝相关程序到代码段,设立一个栈,用来保存临时数据)。
另外CPU在切换两个进程的时候代价也很高,要保存CPU上下文,修改内存控制单元的寄存器和使快表中的地址缓冲无效。
而且,如果内存不能容纳操作系统支持的程序,还要再内存和磁盘之间进行置换操作。
线程和进程一样,要执行独立于其它线程的一段代码。
和进程不同的是,如果分布透明会导致性能的下降的话,线程就放弃。
因此线程只拥有让CPU可以被共享的少量信息。
例如,线程只拥有CPU上下文和少量用于线程控制的信息,比如线程被阻塞的互斥信号量。
因此,保护线程的数据不被同一进程的其它线程非法访问的任务落在了程序开发者的身上。
这种方式有两个含义,一是多线程的程序性能不能比相应的单线程的程序性能差,实际上,很多情况下,多线程的程序性能更好。
二是因为线程不象进程那样受到操作系统的保护,多线程的开发需要开发者付出更多的努力。
14.客户端浏览器使用多线程的好处
一个好处是在用户不必等待浏览器下载完整个页面再浏览。
HTML的主文件下载以后,客户端浏览器可以激活多个线程来处理其它部分。
每一个线程分别建立一个连接,并下载数据。
建立连接和从服务器读取数据可以使用标准的系统调用,当然阻塞的系统调用不会阻塞整个进程。
这样用户只发现图片等元素下载延迟,而可以在等待的同时浏览文档的文字信息。
第二个好处如果Web网页有多个副本,并且分布在不同的服务器上,多线程的浏览器可以使用多个连接连接到不同的副本上,使数据并行的,高效的传输。
当然这要求客户端能处理并行下载的数据,同样需要多线程的支持。
15.从服务器的角度解释多线程。
多线程不仅会大大简化服务器端的代码,而且使得开发服务器代码更容易,使服务器代码可以并行运行,从而获得很高的性能,即使在单处理机环境下。
在现在的多处理机环境下,用多线程实现并行执行变得更加有用。
在多线程的文件服务器中,一个线程叫做调度线程,它负责接收文件操作的请求。
然后服务器选择一个空闲的工作线程(例如阻塞的)来处理这个请求。
工作线程在本地的文件系统上执行阻塞的读操作。
那么线程有可能阻塞等待数据从磁盘返回。
如果线程被阻塞,可以选择另一个线程执行。
例如,可以选择调度器接受更多的任务,或者调度一个准备好数据的工作线程。
16.什么是虚拟化
虚拟化,类似于只有单个处理器但感觉有多个处理器的机制可以扩展到其它资源,导致所谓的资源虚拟化,即只有单个资源,但感觉有多个资源的备份。
虚拟化使应用软件比底层的系统软件和硬件的生命周期更长。
17.虚拟化产生和发展的动因。
在20世纪70年代,引入虚拟化的一个重要原因是让老化的软件能继续在昂贵的大型机系统上运行,这些软件包括各种应用软件和它们开发所支持的操作系统。
在IMB370大型机上部署了一个虚拟机可以移植不同的操作系统,支持各种老化的软件。
后来,随着硬件越来越便宜,计算机越来越强大,操作系统的数量也逐渐减少,虚拟化不太受到关注。
在20世纪90年代后期,由于几个原因,情况发生了改变。
第一是由于硬件和底层的系统软件更新较快,而抽象层次更高的软件(例如,中间件和应用)相对更加稳定。
也就是,应用软件比它所依赖的平台更新更慢。
这就用到了虚拟化。
虚拟化可以把老化的软件移植到新平台上,让心平台即时运行大量的现存程序。
第二是由于网络的普及,很多计算机都联网。
管理员常常要维护大量的,而且是异构的服务器,每一个服务器都运行不同的应用程序,供客户端访问。
同时,各种资源要能够被这些应用程序很容易的访问。
虚拟化能发挥作用。
通过让每个应用程序,可能还包括相关的库函数和操作系统,运行在自己的虚拟机上,而这些虚拟机则运行在同一个平台上。
这种类型的虚拟化能提供很高程度的可移植性和灵活性。
18.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 系统 重点 教学内容
![提示](https://static.bdocx.com/images/bang_tan.gif)