高级操作系统详细资料.docx
- 文档编号:8102233
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:27
- 大小:82.92KB
高级操作系统详细资料.docx
《高级操作系统详细资料.docx》由会员分享,可在线阅读,更多相关《高级操作系统详细资料.docx(27页珍藏版)》请在冰点文库上搜索。
高级操作系统详细资料
第一章分布式系统概述
1.1什么是分布式系统?
分布式系统是若干独立计算机的集合,它们对于用户来说就像一个系统。
1.2分布式系统中透明性的种类、定义。
透明性:
如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统,这样的分布式系统就称为是透明的。
分类:
1、访问透明性:
隐藏数据表示形式以及访问方式的不同2、位置透明性:
隐藏数据所在位置3、迁移透明性:
隐藏资源是否已移动到另一个位置4、重定位透明性:
隐藏资源是否在使用中已移动到另一个位置5、复制透明性:
隐藏资源是否已被复制6、并发透明性:
隐藏资源是否由若干相互竞争的用户共享7、故障透明性:
隐藏资源的故障和恢复8、持久性透明性:
隐藏资源(软件)位于内存里或在磁盘上。
1.3分布式系统中的扩展技术有哪些?
(1)隐藏通信等待时间:
包括异步通信和减少通信量
(2)分布技术:
即分割组件,然后分散到系统中,例如DNS和WWW
(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文件到WWW中。
•其他用户从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(套接字),Message-PassingInterface消息传输接口。
4.4消息同步通信与异步通信的区别?
异步通信特征在于发送者要把传输的消息提交之后立即执行其他的程序,这意味着该消息存储在位于发送端主机的本地缓冲区里中,或者存储在送达的第一个通信服务器上的缓冲区上中。
而对于同步通信来说,发送者在提交信息之后会被阻塞直到消息已经到达并储存在接收主机的本地缓冲区中以后也就是消息确实已经传到接收者之后,才会继续执行其他程序。
4.5给出示意图,能够判断消息通信的类型
a)持久异步通信b)持久同步通信
c)暂时异步通信d)基于接收的暂时同步通信
e)基于交付的暂时同步通信f)基于响应的暂时同步通信
4.6多播通信:
反熵和gossiping。
(2009)
多播:
服务器向其他N台服务器发送更新时,底层的网络负责向多个接收者发送一个消息,高效
Epidemic协议使用本地信息在大型节点集中快速地传播信息。
提供最终一致性:
保证所有的副本最终是一致的
一个服务器可以是:
传染性的:
持有愿意向其他服务器散布的更新
易感的:
尚未更新的服务器
隔离的:
已更新的服务器如果不愿意或不能扩散其更新
反熵传播模型:
服务器P周期的随机选取一台服务器Q交换更新,方式包括:
P只把自己的更新推入Q:
较差的选择
P只从Q拉出新的更新
P和Q相互发送更新
可以证明:
如果初始只有一台服务器具有传染性,无论采用哪种形式,更新最终将被传播到所有服务器上。
Gossiping思想:
如果服务器P刚刚因为数据项x而被更新,那么它联系任意一个其他服务器Q,并试图将更新推入Q。
如果Q已经被其他服务器更新了,P可能会失去继续扩散的兴趣,变成隔离的(这种可能性是1/k)
评价:
快速传播更新的方法;但不能保证所有的服务器都被更新了。
s=e-(k+1)(1-s),k=3时,s小于2%;k=4时,s小于0.7%
第五章命名
5.1DNS名称解析的方法有哪两种?
各自优缺点?
(1)迭代名称解析:
每个服务器只能解析自己下面的路径服务器,把服务器的地址给解析程序,然后解析程序继续访问下一个服务器一直到实体。
优点:
名称服务器负担小
缺点:
通信开销大
处理过程如下图:
解析root:
:
:
首先,名称解析程序把完整的名称(root:
:
根服务器会尽量深入解析路径名,然后把结果返回给客户。
图中服务器只能解析标示符nl,然后根服务器将返回与nl相关的名称服务器所用的地址。
(#
)
然后,客户把剩下的路径名(即:
nl:
:
而该服务器只能解析标示符vu,然后返回相关服务器名称地址,同时剩下路径名vu:
:
以下,客户名称解析程序继续同下面的名称服务器联系…
最后一步,名称解析程序找到由vu节点返回的cs服务器地址,cs服务器解析到ftp地址。
将其返回给名称解析程序。
名称解析程序将该地址输出,即可以输出地址#
至此,名称解析程序完成工作。
(得到ftp服务器请求发送路径名所指的文件,由客户进程独立完成。
(2)递归名称解析:
在每一台服务器都使用递归解析。
优点:
缓存效果更有效;减少通信开销
缺点:
要求名称服务器有较高性能
如下图解析root:
:
不同于迭代名称解析,每次名称服务器找到下一台服务器会把结果传给下一台服务器。
如,根名称服务器找到使用nl节点的名称服务器所用的地址后,会请求该名称服务器解析路径名nl:
:
例:
5.2移动实体定位的方法有哪些?
(1)广播和多播
广播:
(可提供多播的网络)主机将包含该实体标示符的消息广播到每台机器上,并且请求每台机器查看是否拥有该实体。
只有能够为该实体提供访问点的机器才会发送回复消息,回复消息中包含访问点的地址。
多播:
(点对点网络使用)主机向一个多播地址发送消息,会发送给该多播组中的所有成员。
(2)转发指针:
当实体从A移动到B时,它将在后面留下一个指针,这个指针指向它在B中的新位置。
一旦查找到实体,客户可顺着转发指针形成的链来查找实体的当前地址。
(3)基于起始位置的方法:
客户必须与起始位置联系,起始位置返回客户所要查找的主机的地址。
(4)分布式散列表。
(5)分层方法:
见5.3。
5.3描述分层方法中查找一实体的过程
(1)希望定位实体E的客户向它所在的叶域D的目录节点发送了一个查找请求
(2)如果叶域D的目录节点中没有存储该实体的位置记录,那么就说明该实体现在不在D中。
因此这个节点会把请求转发给它的父节点。
(3)如果父节点也没有E的位置记录,那么就会把查找请求转发给更高一层的域,依次类推
(4)如果节点M存储了E的位置记录,那么一旦请求到达M后,就可以知道E位于节点M代表的域中,M存储了一条位置记录,其中包含了一个指向其子域的指针
(5)然后M就把请求转发给那个子域的目录节点,那个子域会依次向树的下方转发请求,直到请求最终到达叶节点为止。
存储在叶节点的位置记录会包含E在哪一个叶域中的地址。
(6)将该地址返回给发送请求的客户。
图:
在分层组织的定位服务中的位置查找
5.4描述分层方法中插入一实体的过程
(1)实体E在叶域D中创建了一个复制实体,需要在这个复制实体中插入E的地址。
插入操作从D的叶节点开始,然后D会立即把插入请求转发给它的父节点。
(2)父节点也转发插入请求,直到插入请求到达已经为E存储了位置记录的目录节点M为止。
(3)节点M在E的位置记录中存储了一个指针,这个指针指向转发插入请求的那个子节点,该子节点会建立一条关于E的位置记录,这条位置记录中包含一个指针,该指针指向转发请求的下一层节点。
这个过程会连续进行,直到到达发起请求的叶节点为止
(4)最后,那个叶节点会建立一条记录,这条记录包含实体在关联叶域中的位置。
图:
更新操作
·插入请求被转发到第一个知道实体E的节点
·转发指向叶节点的指针所形成的链
5.5删除无引用实体的方法
(1)引用计数方法:
包括简单引用计数和高级引用计数方法
在通信不可靠的情况下维护正确的引用计数所存在的问题
a)向其他进程复制引用计数之后再递增引用计数b)解决方法
a)加权引用计数中权数的初始值b)创建新引用时的权数值
在引用的部分权数达到1时创建一个间接权数在世代引用计数中创建和复制引用
(2)引用列表方法:
在骨架端维护一张明确的列表,持续跟踪引用他的代理。
优点:
不需要可靠通信;进程发生故障时,容易保持引用列表的一致性
缺点:
引用列表的规模问题---注册的引用在有效时间内有效(分发租用)
第六章同步
6.1Lamport时间戳算法的思想
·网络上的每个系统(站点)维护一个计数器,起时钟的作用
·每个站点有一个数字型标识,消息的格式为(m,Ti,i),m为消息内容,Ti为时间戳,i为站点标识
·当系统发送消息时,将时钟加一
·当系统接收消息时,将它的时钟设为当前值和到达的时间戳这两者的最大者加一
·在每个站点,时间的排序遵循以下规则
---对来自站点i的消息x和站点j的消息y,如果
·Ti ·Ti=Tj,且i ---则说消息x早于消息y 6.2全局状态 全局状态定义了每个进程的本地状态和正在传输中的消息 一致的全局状态: 如果已经记录了一个进程P收到了来自进程Q的一条消息,那么也应该记录Q确实已经发送了那条消息。 a)一致的切口b)不一致的切口 6.3选举算法中Bully算法的思想 选举算法: 选择一个进程作为协调者、发起者或其他特殊角色,一般选择进程号最大的进程(假设每个进程都知道其他进程的进程号,但不知道是否还在运行)它的目的是保证在选举之行后,所有进程都认可被选举的进程。 Bully算法: 当进程P注意到需要选举一个进程作协调者时: (1)向所有进程号比它高的进程发ELECTION消息 (2)如果得不到任何进程的响应,进程P获胜,成为协调者 (3)如果有进程号比它高的进程响应,该进程接管选举过程,进程P任务完成 (4)当其他进程都放弃,只剩一个进程时,该进程成为协调者 (5)一个以前被中止的进程恢复后也有选举权 进程4启动选举 进程5和进程6响应,接管选举,成为协调者 进程6响应进程5的消息,接管选举,进程6成为协调者,通知所有进程 6.4选举算法中环算法的思想 不使用令牌,按进程号排序,每个进程都知道自己的后继者,当进程P注意到需要选举一个进程作协调者时: (1)创建一条包含该进程号的ELECTION消息,发给后继进程 (2)后继进程再将自己的进程号加入ELECTION消息,依次类推 (3)最后回到进程P,它再发送一条COORDINATOR消息到环上,包含新选出的协调者进程(进程号最大者)和所有在线进程,这消息在循环一周后被删除,随后每个进程都恢复原来的工作。 6.5无线环境下的选举算法 ·不能保证其消息传送是可靠的以及网络拓扑结构不改变 ·源节点向其相邻节点发送ELECTION消息开始一个选举 ·当节点第一次收到ELECTION消息时,会将发送者作为其父节点,然后将ELECTION消息发给其相邻节点(父节点除外)。 等到其他节点的确认消息都收到后,再向父节点确认(消息中包含资源容量)。 ·而从某个节点再次收到ELECTION消息时,只是确认。 6.6分布式互斥算法 (1)当进程想进入临界区时,它向所有其他进程发一条打了时间戳的消息Request (2)当收到所有其他进程的Reply消息时,就可以进入临界区了 (3)当一个进程收到一条Request消息时,必须返回一条Reply消息: –如该进程自己不想进入临界区,则立即发送Reply消息 –如该进程想进入临界区,则把自己的Request消息时间戳与收到的Request消息时间戳相比较, •如自己的晚,则立即发送Reply消息 •否则,就推迟发送Reply消息 a)进程0和2都想进入临界区 b)进程0的时间戳低,抢先进入临界区 c)进程0退出临界区后,发应答给进程2,进程2随后进入临界区 6.7实现事物的方法 (1)私有工作空间: 为进程提供一个私有工作空间,包含进程有权访问的所有对象。 进程的读写操作在私有工作空间进行,而不对实际的文件系统进行。 如果事务中止,私有工作空间被释放,指向的私有块被删除。 如果事务提交,私有索引被移到父辈空间,不再被访问的块被释放掉。 a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 操作系统 详细资料
![提示](https://static.bingdoc.com/images/bang_tan.gif)