注:

(4)8 P160:(4)代表该道题属于第4章的内容,8是题号(第8题),P160是该习题在书中的大体页码。

(4)8在实时分布式系统中,事件触发和时间触发系统的含义是什么,给出一个例子,并说明为什么动态调度适合于事件触发系统,给出三种动态调度算法。P160、P166

答:事件触发:在一个事件触发的实时系统中,当一个重要的外部事件触发时,它被传感器察觉到,并导致与传感器相连的CPU得到一个中断请求。事件触发系统因此就是中断驱动的,多数的实时系统也是以这样的方式工作的。

时间触发:在时间触发系统中,每△T毫秒产生一次时钟中断。在每一次时钟滴答时,对(选定的)传感器进行采样,并且驱动(特定的)执行机构。中断仅在时钟滴答时发生。

动态调度不要求事先做多少工作,它是执行期间动态地作出决定。动态调度在运行期间决定下面运行哪一个进程。这样更能容易的捕获系统中的触发中断,因此动态调度适合于事件触发系统。


三种动态调度算法:

第一种:比率单调算法:它是设计用来抢占式调度一个单一处理机上的没有顺序和互斥限制的周期性任务的。事先给每个任务分配一个与其执行频率相等的优先级。运行时,运行程序总是选择优先级最高的任务运行,如果有必要,可先暂停当前运行任务。

第二种:最早时限优先法:每当检测到事件时,调度程序将其加入到等待任务队列中。这个等待队列根据这些任务的时限排序,最近的时限排在最前边(对周期性任务时限就是它下一次发生时间)。然后,调度程序就从列表选择地一个任务调度,即距它最后时限最近的一个。同比率单调算法一样,它也产生最优结果,即使是对μ=1的任务集合也是一样的。

(4)9主动复制容错的典型例子是三模冗余容错,说明某组成部件出错和某表决器出错时,是如何容错的。如果在某一级上同时有两个表决器出错,其它所有部件和表决器均正常,能否屏蔽错误,为什么?如果服务器采用主动复制的方法会存在什么问题,如何解决?P152

答:每个设备复制三次,每级电路都设置三个表决器,每个表决器都有三个输入和一个输出。若两个或三个输入相同,输出则等于输入。若三个输入各不相同,则输出为不定值。

如果某部件出错,三个表决器都能得到两个好的(相同的)输入和一个坏的输出,这样都能输出正确值到下一级,这一部件的出错影响被彻底屏蔽了。如果某表决器出错,其他两个表决器都能输出正确的结果,下一级部件中只有出错表决器对应的部件的输入出错,这样再次经过三个正确的表决器,得到正确的输出,出错影响被屏蔽掉。

不能,因为每一级只有三个表决器,如果同时有两个表决器坏掉的话,超过了三分之二的要求,不能输出正确的结果,无法屏蔽错误。

主动复制时,读请求不改变服务器状态,但写请求改变。一个重要的问题是需要多少复制才合适。要保证系统在K个部件出错时仍能正常运行,则当错误是fail-silent型时需要K+1个部件,Byzantine型的至少需要2K+1个部件。一个容错系统还需要进行一些概率分析。

(4)10使用主机后备容错方法容错的主要思想是:在任何一个时刻都有一台服务器是主机,若主机失效了,后备的服务器将承担其任务。试说明主机后备方法的工作原理及存在的问题,及解决办法。P154

答:基本思想:在任一时刻都有一台服务器是主机,它完成所有的工作。若这个主服务器失效了,后备的服务器将承担其任务。


在RPC过程中,主机崩溃后产生情况如下:

1.如果主机在执行任务前崩溃,则没有损失。客户端会超时重发直到连上后备机,任务只被执行一次。

解决方案:客户端只是在超时后,再次重新发送请求消息,直到发送一定次数后,或者因得不到响应而停止发送请求消息,或者它的请求分别得到主服务器和备份服务器的处理,并且只执行一次。

2.如果主机在执行任务后向后备机发送更新消息前崩溃,此时后备机接管,请求消息再次到来,则任务被执行2次。

解决方案:还没有有效的解决方案,一般来说,在主服务器崩溃后,只正确执行一次请求消息的处理是非常困难的。

3.如果主机在后备机执行任务后自己发送响应消息前崩溃,则任务共被执行三次。一次主机完成,一次后备机完成,一次后备机接管时完成。如果请求消息带有序号,则可以减少任务执行次数。

解决方案:若每个请求消息都带有标志信息,那么请求消息只被执行两次。一般来说,在主服务器崩溃后,只正确执行一次请求消息的处理是非常困难的,以至几乎是不可能的。

(4)11一个典型的集中的、启发式的处理机分配算法,即上-下算法。说明该算法的目标,并说明该算法的主要原理。P145

答:目标:让一个等了很久的,没有使用任何处理机的申请优先于已经占用了许多多处理机的申请。此为该算法的目标即公平的分配系统资源。

主要原理:该算法是一个不需要事前了解任何信息的启发性算法。算法中有一个协调者,保存着一张使用情况的表,每个工作站在表中都有一个条目,初值为0。当有重要的时间发生时,将给协调者发信息以更新使用情况表。算法将根据使用情况表决定处理机的分配。这些决定发生在调度事件发生时:有进程请求处理机、处理机进入空闲状态或者是发生了时钟中断。使用情况表中的记录值可以为整数、零或是负数。整数表示用户纯粹是在使用系统资源,负数表示用户需要系统资源,零则介于两者中间。

(4)12 在支持多线程的系统中,可采用三种模型来组织多线程,详细说明这三种模型。如果在不支持多线程系统中实现文件服务,如何构造文件服务器。P121、P122

答:派遣者/工作者模型:某一个线程作为派遣者,它从系统邮箱内读出输入请求,然后检查请求,选择一个空闲的工作者线程去处理它。然后派遣者唤醒睡眠的工作者。 工作者被唤醒后,它检查共享块缓冲区是否可以满足这个请求。如不能满足,给磁盘发送消息,要求所需的数据块。且进入休眠状态等待磁盘操作的完成.

团队模型:所有线程都是批平等的,每个都获得和处理自己的请求。没有派遣者。如果工作来了不能处理,尤其是如果每个线程用来处理一种特殊的工作,可以维护一个队列,挂起的作业保存在作业队列中。线程在察看系统信箱前先察看作业队列。

管道线模型:这种模型中第一个线程产生一些数据传给下一个线程去处理。数据持续从一个线程传到另一个线程,经过的每一个线程都进行处理。(生产者-消费者问题)

构造文件服务器:

另一种可能性是将服务器作为大的有限状态机运行,当请求到来后有唯一的一个线程检查它,如果缓存区能满足,则运行之,但如果不能满足,则必须向磁盘发送一条消息。

(3)13 在机器0上进程0在等待机器0上进程1所拥有的资源,进程1在等待机器1上进程2所拥有的资源,进程2在等待进程机器1上3,4所拥有的资源,进程3在等待机器2上进程5所拥有的资源,机器2上的进程5在等待机器0上进程0所拥有的资源,画出简化的资源图并说明用Chandy-Misra-Hass提出的分布式死锁检测算法如何检测死锁,并打破死锁。P113

答:资源图:

检测死锁:进程0等待进程1,将调用Chandy-Misra-Has算法。此时,生成一个特殊的探测消息并发送给占用资源的进程。消息由三个数字构成:阻塞的进程,发送消息的进程,接收消息的进程,由0到1的初始消息包含三元组(0,0,1)。接到消息后,接受者检查以确定它自己是否也在等待其它进程。如果是,那么消息就要被更新,第一个字段保持不变,第二个字段改为当前进程号,第三个字段改为等待的进程号。然后消息接着被发送到等待的进程。如果在等待多个进程,就需要发送多个不同的消息。不论资源时在本地还是在远程,该算法都要继续下去。如图中我们可以看到标记为(0,1,2),(0,3,5),(0,5,0)的远程消息。如果消息转了一圈后又回到了最初的发送者,那么就说明存在一个有死锁的环路系统。

打破死锁:一种方法是使最初发送探测消息的进程自杀。然而若有多个进程同时调用了此算法,那就会出问题。如图中假设进程0到5都同时阻塞,而且都初始化了探测消息,那么每个进程最终都会发现死锁,并且因此而自杀。然而这是不必要的,终止掉一个进程就足够了。

另一个算法是将每个进程的标识符添加到探索消息的末尾,这样当它返回到最初的发送者时,完整的环路就可以列出来了。于是发送者就能看出那个进程的编号最大,可以将它中止或发送消息给它请求自杀。无论如何,若多个进程同时发现了同一个环路,它们就一定会选择同一个牺牲者。

(3)14在分布式系统事务提交操作可能需要不同机器上的多个进程的协作,举一个实际例子,并说明实现原子性提交的两阶段提交协议的基本思想。P108

答:例子:航空订票系统

预定一张从A到D的机票:

(a)预定三个航班机票的事务

BEGIN_TRANSACTION

reserve  A_B

reserve  B_C

reserve  C_D

END_TRANSACTION

(b) 当第三个航班的机票预定失败后事务中止

BEGIN_TRANSACTION

reserve A_B

reserve B_C

C_D full--->

ABORT_TRANSACTION

两阶段提交协议:


如上图所示,两阶段提交协议的基本思想是有一个进程作为协调者,通常是执行事务的进程。在准备提交阶段,协调者向日志中写入Prepare,然后向所有服务器发送准备提交消息。服务器接收消息后,检查自己是否准备提交,如果是,就向日志中写入Ready,然后向协调者发送准备好消息。在提交阶段,协调者接收所有响应后决定提交或终止。如果所有所有服务器都准备提交,则提交事务。如果有一个服务器未准备好,则终止事务。无论结果如何,协调者都会写入日志,并发送决定消息。服务器接到消息后,也将结果写入日志。并发送结束消息,完成整个过程。

《分布式操作系统》知识点(8~14)二相关推荐

  1. 《分布式操作系统》知识点(35~38)六

    注: (4)8 P160:(4)代表该道题属于第4章的内容,8是题号(第8题),P160是该习题在书中的大体页码. 35说明虚拟化的含义,为了实现虚拟化,计算机系统通常提供四种类型的接口,说明这四种接 ...

  2. 《分布式操作系统》知识点(29~34)五

    注: (4)8 P160:(4)代表该道题属于第4章的内容,8是题号(第8题),P160是该习题在书中的大体页码. 29在分布式操作系统中,说明单内核的含义,并说明为什么采用微内核技术,通常微内核提供 ...

  3. 《分布式操作系统》部分知识点整理

    最近学习了一下<分布式系统>和<分布式系统原理与范型>,自己想整理一下相关的知识和习题. <分布式操作系统> Tanenbaum著 电子工业出版社 <分布式系 ...

  4. 操作系统知识点总结和题集大杂烩

    第一轮:从当前位置开始扫描到第一个(A =0, M = 0)的帧用于替换.表示该页面最近既未被访问,又未被修改,是最佳淘汰页 第二轮:若第一轮扫描失败,则重新扫描,查找第一个(A =0, M = 1) ...

  5. 计算机三级网络技术知识点大全(二)

    1.基于网络的信息系统主要包括以下几个部分:网络运行环境.网络系统.网络操作系统.网络应用软件开发与运行环境.网络应用系统.网络安全系统和网络管理系统. 2.网络运行环境包括机房和电源两部分. 3.网 ...

  6. 我花了72小时,用了近4万字,总结了65道操作系统知识点!

    本人是北京航空航天大学21软件学院的一名在读硕士,下面是我研究生复试和面试整理的操作系统知识点,覆盖了操作系统的全部内容,我相信无论是企业面试和还是考试,都不会超出里面的范围.现在发布出来,供大家参考 ...

  7. windows操作系统知识点

    windows操作系统知识点 第一章 操作系统概述 1)一个完整的计算机系统是由硬件系统和软件系统两大部分组成 2)计算机软件是指程序和与程序相关的文档的集合 3)按功能可把软件分为"系统软 ...

  8. 王道考研 操作系统知识点汇总(目录+思维导图)

    第一章 计算机系统概述 文章目录 前言 1.1.1 操作系统的概念.功能和目标 思维导图 本节内容 1.1.2操作系统的特征 思维导图 本节内容 1.1.3操作系统的发展与分类 思维导图 本节内容 1 ...

  9. 操作系统:操作系统知识点总结

    操作系统知识点总结 1. 基础知识 1.1 内核态和用户态 多数计算机有两种运行模式,用户态和内核态.软件中最基础的部分是操作系统,它运行在内核态.在这个模式中,操作系统具有对所有硬件的完全访问权,可 ...

  10. 操作系统知识点大总结【进程同步与互斥】

    文章目录 一.临界与同步 1.临界资源与临界区 2.进程同步 3.信号量实现进程同步 二.进程互斥 1.进程互斥的软件实现方法 2.进程互斥的硬件实现方法 3.信号量实现互斥 4.信号量进程互斥 三. ...

最新文章

  1. java打印设备集中管理_Kafka+Log4j实现日志集中管理
  2. 多线程和单线程 打印数字到100000 的速度对比
  3. Express + Node 爬取网站数据
  4. html 权限模块设置,角色权限设置.html
  5. Linux平台kafaka安装及使用
  6. python 如何显示时钟_python控制台显示时钟的示例
  7. DirectX12(D3D12)基础教程(十八)—— PBR基础从物理到艺术(中)
  8. 程序员双十一都该买点啥?
  9. 一款PHP版三合一收款码_附50多款模板源码
  10. 不忘来时路 心系梦归处
  11. Vivado工程清除中间文件
  12. 搭建一条区块链需要多少时间和资金
  13. Linux基金会的执行董事Jim Zemlin:开源不能没有“信任”
  14. Cat Snuke and a Voyage
  15. 客户分级管理的意义和方法?如何高效的对客户进行分级?
  16. python数据域宽左对齐_Python语言及其运用_第七章_像高手一样玩转数据
  17. ubuntu12.04 rythonbox不支持mms电台
  18. 今日头条统一提现怎么开通?
  19. kali-linux u盘便携性系统,暗组u盘怎么进入kali linux系统
  20. 秒懂Android属性动画

热门文章

  1. c语言函数之间互相调用符号,如何实现C和C++函数互相调用
  2. php屏蔽行,PHP屏蔽过滤指定关键字的方法
  3. quartz mysql 建表_quartz创建表语句
  4. linux修改容器内的mysql端口映射_修改docker容器端口映射的方法
  5. 深入理解分布式技术 - 限流
  6. Elasticsearch-03 CentOS7 / Windows上部署Elasticsearch5.6.16集群模式
  7. Android日期分组,按查询分组在列表视图android中显示一些意...
  8. 判断均匀平面波的极化形式_测瑞通|怎样判断电波暗室的性能?
  9. bpython bs4用哪个解释器好_针对python爬虫bs4(BeautifulSoup)库的基础问题
  10. 怎样查看was的服务器信息,WAS 查看服务状态