课程目标

1、了解高级系统相关内容(主要包括网络OS与分布式系统的概念、特点、应用额体系结构与软硬件组成等);

2、掌握单机操作系统设计实现原理(特别是常见的操作系统习题、试题的了理解和解答方法)。

1 Distributed Systems

1.1 Definition

一个分布式系统是:独立计算机的集合,对用户而言,它们看起来像是一个统一的系统。

  • 尚不存在一致性的定义,普遍接受的定义是:
  • 分布式系统是若干***立计算机的一种联合体,对用户而言,这个联合体就是一台单独的计算机。
  • 在这个定义中,前半句说明是对计算机硬件的要求,后半句是对计算机软件的要求,这两项都是对分布式系统的基本的要求。

另一个角度:

  • 分布式系统是这样一个系统,它运行在不具有共享内存的多台计算机上,但在用户眼里它却像是一台计算机。
  • 实质思想:用户不必去关心系统中的多台计算机的存在。
  • 尽管目前不存在完全满足该条件的系统,但已经有一些原型出现。
Machine A               Machine B             Machine C
----------              ----------            ----------
|        |              |        |            |        |
|       Distributed  Application     分布式应用程序       |
|        |              |        |            |        |
|       Middleware  Service             中间件服务       |
|        |              |        |            |        |
|Local OS|              |Local OS|            |Local OS|
----------              ----------            ----------
    |                       |                     |
-----------------------------------------------------------Network

中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

组织为中间件的分布式系统。
请注意,中间件层覆盖了多台计算机。

1.2 分布式系统的特点

1.2.1 资源共享 Resource Sharing

  • 硬件资源共享:专用设备共享 =》 处理资源共享 =》 负载共享与负载均衡
  • 信息资源共享:如:电子商务应用共享同一数据对象,协同工作组共享同一数据空间
  • 软件资源共享:软件开发组共享同一开发工具,同一类应用任务调用同一处理软件
  • 资源异构、分布 =》 资源命名方案、分布资源管理模型、策略与机制是要解决的重点
  • 互联网络环境 =》 计算机资源共享和多媒体信息资源共享成为研究和开发的热点

1.2.2 透明性 Transparency

  • 透明性的基本概念和内容

机器边界、网络细节和系统状态对用户和应用程序员呈不可见性。多计算机环境 =》 单机环境。例如用户不必知道数据存在何处,进程在何处运行。

  • 优点

软件易于研制;资源变动,软件影响小;

易于实现资源冗余;有利于资源操作移动

  • 实现难点

大多数分布计算机系统固有的异构性增加了透明性实现的难度。

硬件异构性:指令系统不同、数据表示不同。系统配置不同

软件异构性:操作系统不同、网络协议不同

局部自治性限制全局透明性

Transparency Description
Access 访问 隐藏数据表示形式和资源访问方式的差异
Location 隐藏资源所在的位置
Migration 转移 隐藏资源可能会移动到另一个位置
Relocation 重定位 隐藏资源在使用中可能会移动到另一个位置
Replication 复写 隐瞒资源可以通过多个副本进行部署和分发
Concurrency 隐瞒资源可能会由几个竞争用户共享
Failure 隐藏资源的故障和恢复
Persistence 隐藏(软件)资源是在内存中还是在磁盘上

分布式系统透明性的不同形式。

1.3 开放性 Openess

  • 是指系统以各种方式进行扩展的能力。核心是要求不同厂家的系统(软硬件)具有互操作性(Interoperability)和可移植性(Portability)

互操作性:不同厂家的系统可有效地相互交换信息

可移植性:在较大范围的平台上运行同一软件的功能

UNIX是一个优秀的开放式软件系统:开放式结构、源代码可用、硬件无关性;TCP/IP协议是另一个开放式系统的例子

  • 标准化是实现开放性的基本保证

标准是已被广泛接受的一种特定实现方法或功能集(接口)。

开房放概念是一种思想、设计观点、系统特征。因此,标准并不意味着是最好的、并不总是绝对需要的(尤其是在早期)、不是一成不变的。

国际标准化组织ISO

1.4 延展性 Scalability

延展性的制约:

Concept Example
Centralized services 集中服务 一台适用于所有用户的服务器
Centralized data 集中数据 一本在线电话簿
Centralized algorithms 集中式算法 根据完整信息进行路由

Scaling Techniques

1.5 容错性 Fault Tolerance

基本概念 系统部分失效是能继续发挥作用的能力。如某个网络节点故障而不影响网络系统正常行为。

分布计算系统的资源多重性为实现容错创造条件:硬件资源冗余、数据多副本、动态切换

系统容错是提高系统可靠性的重要途径。可靠性描述了系统成功运行的寿命特性。

容错性是分布计算应用的强烈需求:国防应用系统,电子商务应用的电子支付系统。