第十五章—分布式进程管理【计算机操作系统】

15.1 讨论实现进程迁移的原因。

负载共享:通过将进程从负载较重的系统迁移到负载较轻的系统,负载就会得到平衡,从而提高整体性能。通信性能:可以将交互密集的多个进程移动到同一节点上,以减少因为它们之间的交互而带来的通信开销。同样,当一个进程在某些文件或某组文件上执行数据分析,且文件的大小比进程要大很多时,将该进程移动到数据端也许是更有利的。可用性:需要长时间运行的进程,在得到错误的预先通知时,或者在预定的关机时间之前,为了能够存活下来,可能需要迁移到其他机器中。如果操作系统提供了这样的通知,则那些需要继续运行的进程可以迁移到另一个系统上,或者保证在稍后的某个时间在当前系统上能重新启动。特殊功能的使用:进程的迁移可以充分利用特定节点上独特的硬件或软件功能。

15.2 在进程迁移过程中,进程地址空间是如何处理的?

下列策略可能被采用:Eager(all):在迁移时转移整个地址空间。

预先复制(precopy):进程继续在源节点上执行,而地址空间已经复制到了目标节点上。在预先复制的过程中,源节点上的某些页有可能又被修改,这些页必须被复制第二次。

Eager(dirty):仅仅转移那些位于主存中且已被修改了的地址空间的页。虚地址空间的所有其他块将在需要时才转移。

基于引用的复制(copy-on-reference):这是Eager(dirty)的变体,只有在引用某页时,该页才被取入。

刷新(flushing):通过把脏页写回磁盘,该进程的页可以从源机器的主存中清除。这样,在需要时可以从磁盘访问到页,而不是从源节点的存储器中访问。

15.3 抢占式和非抢占式进程迁移的动机是什么?

非抢占式进程迁移对于负载平衡是很有用的,它的优点是能够避免全面性进程迁移的开销,缺点是该方法对于负载分布的突然变化反应不佳。

15.4 为什么不可能确定真正的全局状态?

因为系统之间的通信延迟,不可能在系统范围内维护一个所有系统都随时可用的时钟。而且,维护一个中央时钟并让所有本地时钟与之保持精确同步,这在技术上也是不现实的,因为经过一段时间后,在各个本地时钟之间就会产生一些偏差,这将导致同步的丢失。

15.5 集中式算法和分布式算法所实行的分布式互斥有何区别?

在完全集中式算法中,一个节点被指定为控制节点,它控制对所有共享对象的访问。当任何进程请求对一个临界资源进行访问时,就向本地资源控制进程发送一个请求,这个进程接着向控制节点发送一条请求消息,当共享对象可用时,将返回一条许可消息。当进程结束使用资源后,向控制节点发送一条释放消息。

在分布式算法中,互斥算法涉及到每个离散的实体之间的同步合作。

15.6 定义两种类型的分布式死锁。

在资源分配中产生的死锁以及由于消息通信而产生的死锁。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章