一、解释1、分布式系统:分布式系统是一些独立的计算机的集合,对该系统的用户来说,系统就像一台计算机一样,即:由大量CPU组成的计算机系统。
这个定义有两方面的含义:第一,从硬件角度看,每台计算机都是自主的;第二,从软件角度看,用户将整个系统视为一台计算机。
2、微内核的主要任务微内核具有更好的灵活性。
主要提供四种服务:(1) 进程间的通信机制。
(2) 某些内存管理功能。
(3) 少量的低层进程管理和调度。
(4) 低层输入和输出服务。
3、A TM对分布式系统的影响A、延时:需要新的协议和系统结构处理B、流量控制:信元淹没C、阻塞控制:防止数据丢失4、原子事务的基本特性事务具有四个重要特性:(1)原子性(Atomic):对外界来说,事务的发生是不可分割的(2)一致性(Consistent):事务不会破坏系统的恒定(3)独立性(Isolated):并发的事务不会互相干扰(4)持久性(Durable):一旦事务提交,所做的改变永远有效5、并行透明性并行透明性就是系统的活动可以在用户没有感觉的情况下并行发生(同时发生),即整个分布式并行服务器在用户看起来就像一个传统的单处理机分时系统。
6、请说出微内核优于单内核的两个优点答:(1)微内核系统具有高度的模块化,对于每一个服务都有一个定义好的借口,每一个服务程序对所有客户来说都是可以访问的,且和位置无关。
(2)微内核系统具有很高的灵活性,易于实现、安装和调试新的服务程序,因为增加或者改变一个服务程序不需要像有一个单内核那样停止系统和启动一个新的内核。
二、计算题1、一个A TM系统以OC-3的速率传递信元,每个包48字节长,刚好放进一个信元,一个中断耗时1μs,CPU用于中断处理的时间是多少?如果包长是1024字节呢?答:OC-3的数据传输速率为155.520Mbps,由题意可知,一个信元是48字节。
可得每秒传递包(信元)的数目为:((155.520*1024*1024)bps/8)/53=384609.76每进入一个包产生一次中断,一个中断耗时1μs,一秒内共产生384609.76个中断。
CPU用于中断处理的时间是:1*10-6s*384609.76≈0.38s。
如果包长是1024字节,一个包可拆分为22个信元。
每秒传递包的数目为:384609.76/22≈17482 CPU用于中断处理的时间是:1*10-6s*17482≈0. 017s.2、假设一个空RPC(0字节数据)需时间1.0ms,每增加1k数据,时间增加1.5ms。
如果要从文件服务器读32k的数据,请计算一次读取32k数据的RPC所需的时间和32次读取1k数据的RPC所需的时间?解(1)由题知我们记一次读取32k数据的RPC所需的时间记为T则T=1.0+32*1.5=49ms。
故一次读取32k数据的RPC所需的时间是49ms。
(2)32次读取1k数据所需的时间记为T1 则T1=32*(1.0+1.5)=80ms,故32次读取1k所需的时间为80ms。
3、考虑一个分布式系统中的两台机器。
这两台机器的时钟假设都每毫秒滴答1000次,但实际上只有一个是这样,而另一个一毫秒仅滴答990次,如果UTC每分钟更新一次那么时钟的最大偏移量将是多少?答:第二个时钟每秒滴答990,000次,每秒提供了一个10毫秒的误差,这个误差在一分钟已增加到600毫秒。
4、如果要求的数据在缓存中,收到任务请求,分配这个工作,并做相应的处理需要15毫秒;如果要进行磁盘读写,并且进行读写占用1/3的时间,则需要多使用75毫秒,在磁盘操作时,线程休眠。
请分别计算单线程文件服务器和多线程文件服务器每秒各能处理多少条请求?答:在单线程情况下,高速缓存命中需要15毫秒,缓存失误需要90毫秒。
它的加权平均是2/3×15+1/3×90.因此,请求的平均时间需40毫秒并且服务器每秒可以处理25次。
而对于多线程服务器,所有等待的磁盘重叠的。
因此每一个请求需要15毫秒,并且服务器可以每秒处理66 (2/3)的请求。
5、一个文件在10个服务器上复制,试列举投票表决算法所允许的读数定额与写数定额的所有组合。
答:Nr=1,Nw=10;Nr=2,Nw=9,10;Nr=3,Nw=8,9,10;Nr=4,Nw=7,8,9,10;Nr=5,Nw=6,7,8,9,10;Nr=6,Nw=5,6,7,8,9,10;Nr=7,Nw=4,5,6,7,8,9,10;Nr=8,Nw=3,4,5,6,7,8,9,10;Nr=9,Nw=2,3,4,5,6,7,8,9,10;Nr=10,Nw=1,2,3,4,5,6,7,8,9,10.6、文件服务器的一个主存来连续地存储文件,当文件增大超出了当前所在单元,该文件要进行备份。
假设一般文件长为20M字节,每拷贝32字节的字需要200纳秒(10-9秒),那么一秒钟能拷贝多少文件?你能给出一种方法,备份文件而又不一直占用文件服务器cpu的时间?1/(20*106/32*200*10-9)=8设缓存大小为1M,接受数据当缓存满了直接写入硬盘,然后再接收再写入,这样就可以备份文件而又不一直占用文件服务器cpu的时间。
三、解答题1、举出分布式系统相对于集中式系统的优缺点分布式系统相对于集中式系统的优点:(1) 经济(微处理机提供了比大型主机更好的性价比);(2) 速度(分布式系统总的计算能力比单个大型主机的更强);(3) 固有的分布性(一些应用涉及到空间上分散的机器);(4) 可靠性(如果一台机器崩溃,整个系统还可以运转);(5) 渐增(计算能力可以逐渐有所增加)。
相对于集中式系统的缺点:(1) 软件(目前为分布式系统开发的软件还很少);(2) 通信网络(网络可能饱和及引起其他问题);(3) 安全性问题(容易造成对保密数据的访问)。
2、举出WWV广播时刻与分布式系统中处理机设置的内部时钟之间引入的延迟原因。
答:有下列引入的延迟源:第一,在大气层中我们有信号传输延迟。
第二,当WWV得接收机器争取获得以太网时我们有碰撞延迟。
第三,在局域网上有分组传输延迟。
第四,由于中断处理和内部排队延误,在数据包到达后有每个处理器延迟。
3、完成一个远程过程调用,涉及的步骤调用者将消息放到参数表中传递给被调用者,结果作为过程的返回值返回给被调用者。
消息的传送与I/O操作对于编程人员来说是不可见的。
这种方法称为远程过程调用(RPC)。
步骤:(1) 客户过程以普通方式调用相应的客户存根。
(2) 客户存根建立消息并激活内核陷阱。
(3) 内核将消息发送到远程内核。
(4) 远程内核将消息送到服务器存根。
(5) 服务器存根取出消息中的参数后调用服务器的过程。
(6) 服务器完成工作后将结果返回至服务器存根。
(7) 服务器存根将它打包并激活内核陷阱。
(8) 远程内核将消息发送至客户内核。
(9) 客户内核将消息交给客户存根。
(10)客户存根从消息中取出结果返回给客户。
4、简要说明如何查找空闲工作站空闲工作站的概念:一般来说,如果几分钟内没有人接触键盘和鼠标,并且没有用户启动的进程在运行,这台工作站就可被认为是空闲的。
定位空闲工作站的方法:服务器驱动和客户端驱动服务器驱动:当一台工作站空闲时,就成为一台潜在的服务器,它通过将它的名字,网络地址和属性输入到一个注册文件中来申明其可用性。
客户端驱动:调用remote时,广播请求,说明要运行哪个程序,需多少内存,是否要浮点运算等。
返回应答时,remote调用从中挑选一台并启动。
巧妙方法是让“空闲”工作站稍微延迟应答,应答延迟与工作站当前负载呈正比。
5、TMR可以扩展到每组五个部件而不是三个吗?如果可以,它有何特性?答:可以。
只要是奇数,任何的都可以扩展。
它有五个部件和五个表决器,但是每组设备最多允许有两个故障。
6、说出至少三种可在WWV广播发送时刻和分布式系统处理机设置内部时钟之间引入的延迟源。
答:有下列引入的延迟源:第一,在大气层中我们有信号传输延迟。
第二,当WWV得接收机器争取获得以太网时我们有碰撞延迟。
第三,在局域网上有分组传输延迟。
第四,由于中断处理和内部排队延误,在数据包到达后有每个处理器延迟。
7、试说出不可更改文件语义的两个有用的特性。
不可更改文件语义的两个有用的特性:共享、复制和简单。
四、论述题1、当用一个私有工空间实现事务处理时,可能需要将大量的文件索引拷贝到父辈工作区。
怎样实现这种操作而不引入竞争条件?答:为了不引入竞争的条件,我们可以用加锁来避免这类问题。
作为一个事务的一部分,当一个进程需要拷贝时,它首先将该文件加锁,从而避免了其它的竞争条件,在完成任务后进行解锁。
2、使用上载/下载模式的文件服务系统与使用远程访问模式的文件服务系统之间有什么区别?答:上载/下载模式不需要掌握复杂的文件接口,而且整个文件传送是高效的,但需要有足够的存储空间来存储所需的文件。
文件系统运行在服务器上而不是客户端。
而远程访问模式提供了大量的操作用于打开和关闭文件,在客户端不需要很大的空间。
上载/下载模式中文件服务只提供两种主要的操作,读文件和写文件。
前一个操作是将整个文件从一个文件服务器传送到提出请求的客户;后一个操作是将整个文件从客户传送到服务器。
在任一方向上传送整个文件,这些文件可以保存在内存或本地硬盘中。
远程访问模式中,文件服务提供了大量的操作用于打开和关闭文件,读写文件的一部分,在文件中来回移动,检查和改变文件属性,等等。
而在上载/下载模式中,文件服务只提供物理存储和传送,在这里文件系统运行在服务器上而不是运行在客户端。
3、三模冗余模型可以处理Byzantine失效问题吗?请说明理由。
答:不可以。
首先,什么是三模冗余?每个设备复制三次,结果是每个设备设置三个表决器,每个表决器都有三个输入和一个输出。
若两个或三个输入相同,输出则等于该输入。
若三个输入各不相同,则输出就是不定值。
这种设计就是三模冗余。
其次,处理byzantine 错误时,出错的处理机仍然在运行并发出错误或随机的应答,那么至少需要2k+1个处理机才能达到k容错。
已经证明了一个有m 个处理机出错时的系统中要实现协同一致,只有当2m+1个正常的处理机是才可能。
处理机的总数为3m+1.即只有大于2/3的处理机正常工作时,协同工作一致才是可能的。
例如,当m=3和n=1的情况,要解决这个问题,处理机总数为3n+1=4时才能达到容错的目的,达成协议;而这里m=3是不可能协同一致的,故三模冗余不能解决byzantine型错误。
4、为什么有些分布式系统使用两级命名法?答:用户和程序使用符号名是很方便的,但在系统内部使用,这些名字太长且不方便,这样当用户打开一个文件或另外引用符号名对时,系统将立即在适当的目录中查找符号名以得到其用于定位该文件的二进制名。