注:

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

35说明虚拟化的含义,为了实现虚拟化,计算机系统通常提供四种类型的接口,说明这四种接口,并说明两种实现方式。P55
答:计算机系统通常在4个不同层次提供4种不同界面:

(1)     由机器指令组成,可由任何程序激起的硬件软件界面。

(2)     由机器指令组成,只有特权程序(像操作系统)才可激起的硬件软件界面。

(3)     由操作系统提供的系统调用(system call)组成的界面。

(4)     由库调用组成的界面,通常形成了所谓的应用程序编程接口(API)。很多情况下前述的系统调用由API隐藏。

虚拟化的两种实现方式:

(1)     可以构建一个运行时(runtime)系统,实质上提供一套抽象指令集来执行程序。指令可以被翻译执行(像Java运行环境),也可以仿真执行,就像在Unix平台上运行Windows系统。后者的这种虚拟化被称为进程虚拟机,用以强调虚拟化实质上作用在进程上。

(2)     提供一种系统。把它做成一层完全屏蔽硬件但提供一种同样指令集(或其他硬件)的界面。关键是这个界面可以同时提供给不同的程序。结果,可以有多个不同的操作系统独立并发的运行在同一个平台。这个层通常叫虚拟机监视器(VMM)。

 

36在分布式系统中,为什么需要代码迁移?代码迁移可以分为Sender-initiated和Receiver-initiated,解释其中的含义,并举例说明。P72、P74

答:进行代码迁移的理由:

(1)     提高性能。基本思想是:如果把进程由负载较重的机器上转移到负载较轻的机器上去,就可以提高系统的整体性能。负载通常是有CPU列表长度或者CPU利用率来衡量的,也可以使用其他性能标准来衡量。

对于代码迁移,还可以通过并行的使用来提高性能,而不会带来通常的并行编程所具有的复杂性。

(2)     提高灵活性。代码可以在不同的机器之间移动,就可以动态地配置分布式系统。

Sender-initiated(发送者启动):代码当前驻守在哪台机器上或者正在哪台机器上执行,就由该机器来启动迁移。一般来说,在往计算机服务器上载程序时发送的就是发送者启动的迁移。通过因特网向Web数据库服务器发送搜索程序以在该服务器上进行查询,也是发送者启动迁移的一个例子。

Receiver-initiated(接收者启动):代码的主动权掌握在目标机器手里,由接收者来启动迁移。Java小程序就是接收者迁移的一个例子。

 

37 为了支持大规模网络中的移动实体可以采用Home-Based方法,说明其工作原理,并说明存在的问题及可能的解决办法。P134

答:基于宿主位置的办法:

持续跟踪实体的当前位置,可以使用特殊的技术来预防网络故障或进程失效。在实践中,通常选择创建实体的位置作为其宿主位置。每个移动主体都使用一个固定的IP地址,所有与该IP地址进行的通信一开始都被转发到移动主机的宿主代理(home agent)中。宿主代理位于局域网中,与包含在移动主机IP地址中的网络地址相对应。当一台移动主机转移到另一个网络中时,它请求一个可以用来通信的临时地址,即为转移地址(care-of address)要在宿主位置中注册。

当宿主代理接收到发给移动主机的数据包时,它会查找主机的当前位置。如果在当前本地网络中,那么就只需转发数据包。否则,它会建立一条通往主机当前位置的通道,也就是说,它会把数据包组装成IP包,然后发送给转角地址。同时,将把主机的当前地址告诉数据包的发送者。IP地址被有效用作移动主机的标识符。

存在的问题:

(1)            为了与移动主体通信,客户首先必须与宿主位置联系,而宿主位置可能与实体本身处于完全不同的位置。结果是增加了通信延迟。

(2)            使用了固定的宿主位置。以方便,必须保证宿主位置始终存在。否则,将无法与实体联系。如果决定把一个长期存在的实体永久转移到网络的一个完全不同的部分中,而不是转移到宿主位置所在的网络部分,那么问题会进一步恶化。

解决方法:在传统的命名服务中注册宿主位置,然后让客户首先查找宿主位置所在的位置。由于可以假定宿主位置是相对稳定的,所以在查找它以后可以有效地缓存它。

38在DHT-based系统中可以采用finger table提高查找效率,说明其工作原理,并举例说明。P135

答:基于DHT的系统很多,但Chord系统很具有代表性,Chord系统使用一个m位的标识符空间,把随机选择的标识符赋给结点,并把键值赋给特定实体。实体可以使虚拟的任意东西,比如文件、进程等。根据所用的散列函数,位数m通常为128或160.含有键值k的实体位于含有最小标识符id≥k的结点之内。该结点成为k的后继者,用succ(k)表示。

       基于DHT系统的主要问题是高效地把键值k解析为succ(k)的地址。一个无扩展性的方法是,让每个结点p跟踪后继者succ(p+1)和前继者pred(p)。只要结点p接收到一个将键值k解析的请求,除非pred(p)<k≤p,否则它只需将该请求转发给两个邻结点(总有一个是适合的)即可。如果pred(p)<k≤p,那么结点p应把它自己的地址返回给发起请求解析键值k的进程。

每个Chord结点维护一个最多有m个实体的指状表(fingertable)。如果用FTP表示结点p的指状表,那么有FTP[i]=succ(P+2i-1),即第i个实体指向p后2i-1的第一个结点。要查找键值k,结点p立即把该请求转发给p的指状表中索引为j的结点q,其中q=FTP[j]≤k<FTP[j+1]。

例子:

从结点1解析26,如上图。首先,结点1在其指状表中查找k=26,发现该值大于FT1[5],表示该请求将转发给结点18(= FT1[5]),而结点18将选择结点20,因为FT18[2]<k≤FT18[3]。最后,该请求从结点20转发给结点21,从结点21有转发给结点28,该结点负责k=26。此时,结点28的地址返回给结点1,于是就完成了该键值的解析。

《分布式操作系统》&《分布式系统原理与范型》思考题一共38道习题(1~38)一~六,答案基本上都来自课本以及对其的加工整理,仅供参考!OVER!

《分布式操作系统》知识点(35~38)六相关推荐

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

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

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

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

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

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

  4. 操作系统知识点及题目

    操作系统知识点 第一章 基本构成 处理器(CPU),由控制器,运算器,一组寄存器组成 主存储器(只读:ROM,随机存取:RAM) 输入输出模块 系统总线 操作系统的特征 并发性,共享性,随机性 操作系 ...

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

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

  6. 计算机考研:计算机操作系统知识点复习

    在考研大纲里,操作系统占了35分,次于数据结构和组成原理,但高于计算机网络.总的来说,操作系统实际上是四门考察课程里最简单的.除了PV操作这一大难点,基本没有其它特别难的原理或复杂的算法.重要的是区分 ...

  7. 江苏大学 操作系统 知识点提纲 期末考试/考研 复习

    基于江苏大学教材<操作系统设计原理(第二版)>,科学出版社出版.詹永照.薛安荣主编. 部分内容与考试考点与王道考研等参考资料略有区别,请自行区分. 目录 第一章 绪论 第二章 进程与线程 ...

  8. windows操作系统知识点

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

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

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

最新文章

  1. 认清自己,愉快度过每一天
  2. 深度学习多变量时间序列预测:Bi-LSTM算法构建时间序列多变量模型预测交通流量+代码实战
  3. Nginx-03:Nginx安装、命令、配置文件
  4. 遍历结构体_三菱ST语言编程(3)——结构体变量
  5. 域管理员在域计算机安装程序,本人电脑菜鸟,现在正用管理员用户登录,如何设置某个域用户拥有安装软件的权限?尽量详解。谢谢!...
  6. Atitit nodejs db api// 加载 mysql modulevar sys = require(“sys“);var mysql = require(“mysql“);va
  7. 单机版redis的安装以及redis生产环境启动方案
  8. CentOS 安装JDK8
  9. 数字化转型案例:美的集团
  10. 微信小程序中的列表渲染
  11. BPM 与 SOA的演进与展望
  12. win10家庭版,双击bat文件无法运行_20200120
  13. 下载win10镜像_安装配置win10虚拟机_获取win10产品密钥
  14. 《 PHP+H5全栈工程师培训项目实战》
  15. ps怎么对比原图快捷键_PS图片调色常用快捷键,专为新手整理
  16. 光敏二极管、光电二极管判断正负
  17. typhon自带base64函数
  18. Flume编写拦截器
  19. Android学习之省份城市县区选择+向上一级活动返回数据
  20. 主力用计算机吸筹,主力进场 主力吸筹

热门文章

  1. 深入理解分布式技术 - 缓存过期策略手写LRU
  2. RocketMQ-初体验RocketMQ(06)-使用API操作RocketMQ ,理解RocketMQ的存储结构
  3. 白话Elasticsearch08-深度探秘搜索技术之基于boost的细粒度搜索条件权重控制
  4. postman怎么导出测试用例_postman---postman文件夹介绍以及批量执行用例
  5. pdb连接数_Oracle 19c 之多租户 PDB 连接与访问(三)
  6. 系统优化怎么做-新系统上线前做什么
  7. Lock锁的基本使用
  8. 模型训练 准确率下降_手写批量线性回归算法:在Python3中梯度下降方法实现模型训练
  9. 关闭服务器 找不到文件,在服务器上找不到文件时阻止代码崩溃的方法?
  10. java网络编程udp_java网络编程(UDP详解)