高级操作系统讲义a.docx

上传人:b****6 文档编号:7010782 上传时间:2023-01-16 格式:DOCX 页数:22 大小:46.50KB
下载 相关 举报
高级操作系统讲义a.docx_第1页
第1页 / 共22页
高级操作系统讲义a.docx_第2页
第2页 / 共22页
高级操作系统讲义a.docx_第3页
第3页 / 共22页
高级操作系统讲义a.docx_第4页
第4页 / 共22页
高级操作系统讲义a.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

高级操作系统讲义a.docx

《高级操作系统讲义a.docx》由会员分享,可在线阅读,更多相关《高级操作系统讲义a.docx(22页珍藏版)》请在冰豆网上搜索。

高级操作系统讲义a.docx

高级操作系统讲义a

高级操作系统

北京邮电大学计算机

学院

第一章分布式计算机系统

下一步的技术发展很难准确预测,我

们要在网络、分布式环境下

开发,需要掌握分布式计算机系统

的原理,也需要了解他们的实

现原理。

分布式操作系统是为分布式计算机

系统配置的一种操作系统。

分布式系统需要与集中式系统完全不同的软件。

分布式计算机系统

第一,从硬件角度来讲,各个计算

机都是自治的;第二,从软件角度

来讲,用户将整个系统看作是一台

计算机。

这两者都是必需的,缺一

不可。

分布式系统由许多独立的CPU组

成,它们在一起工作使得整个系统

看上去像一台计算机。

 

任务分布:

把一个任务分解成多个可并行执行的子任务,分散给各场点协同完成。

功能分布:

把系统的总功能划分成若干子功能,分配给各场点分别承担。

分布式系统的特征

1资源共享

硬件资源、软件资源。

2开放性

可伸缩性、可移植性、互操作性;

数据是可以交换的、对外接口是

公开的、系统提供统一的通信机

制、提供统一的用户界面。

3并发性

同时工作没有冲突;

有冲突,通过相应算法解决;

并发控制;

4容错性

两个基本方法,硬件冗余、软件

恢复(数据备份、日志);

5透明性

实际上比其表面要微妙得多的含糊概念之一

种类

含义

位置透明

用户不知道资源位于何处

迁移透明

资源可以不改名地随意移动

复制透明

用户不知道有多少个拷贝存在

并发透明

多个用户可以自动的共享资源

并行透明

系统活动可以在用户没有感觉的情况下并行发生

分布式系统的优点

1性能价格比高

2速度

3内在的分布性

3可扩充性

5可靠性

6适用于多种环境

分布式系统的不足

1管理复杂

2性能和可靠性依赖于网络

3保密性差

4应用软件少

 

项目

描述

软件

目前为分布式系统开发的软件还很少

网络

网络可能饱和和引起其它的问题

安全

容易造成对保密数据的访问

分布式系统的资源管理

1全集中管理方式

一个资源由一个管理机制管理。

2分担管理方式

一个资源虽由几个管理机制管理,但各分担一种管理职能。

3轮流管理方式

一个资源可由几个管理机制管理,但轮流执行管理职责。

4全分散管理方式

一个资源由多个管理机制在协商—致的原则下共同管理。

性能比较:

基本开销:

连接系统中的各个站点要多少花费?

通信开销:

从站点A发送信息到站点B需要多少时间?

可靠性:

 

分布式系统的拓扑结构

1全互连结构

优点:

各场点间消息传递快,可靠性较高。

缺点:

开销高。

2部分互连结构

其开销比全互连结构低,但通信速度较全互连结构慢。

可靠性也相对较低。

3层次结构

通常情况下,其中的任何中间节点故障都可能将这种结构分割成若干不相交的子树。

因此,可靠性较低。

4星形结构

这种结构的基本开销与场点个数成正比,这种通信速度却是没有保障的,因为中央场点可能变成瓶颈。

5环形结构

基本开销较低,但通信代价可能较高。

6总线结构

这类结构的开销同场点成正比,通信代价也很低。

7立方体结构

计算机支持的协同工作系统

(CSCW,ComputerSupported

CooperativeWork),也是一种

分布式系统。

CSCW特点:

群体性、交互性、分布性、协同性。

CSCW具体类型:

(1)电子邮件系统

(2)电子布告栏系统(BBS,BulletinBoardSystem)

(3)群体决策支持系统

(4)协同编辑系统

(5)计算机会议系统

(6)协同计算机开发环境

多机OS的基本结构

主从式独立式分布式

分布式OS

分布式计算机系统(DistributedComputingSystems)是由多个分散的计算机经互连网络连结而成的计算机系统。

其中各个资源单元(物理或逻辑的)既相互协同又高度自治。

能在全系统范围内实现资源管理,动态地进行任务分配或功能分配而且能够并行地运行分布式

程序。

分布式操作系统是为分布式计算机系统配置的操作系统。

系统任务可以在系统中任何别的处理机上运行。

并提供高度的并行性和有效地同步算法和通信机制,自动实行全系统范围的任务分配并自动调节各处理机的工作负载.为用户提供一个方便、友善的用机环境。

分布式系统与网络系统是有区别的。

从操作系统的角度来看,网络操作系统是为计算机网络配置的操作系统,网络中的各台计算机配置各自的操作系统,而网络操作系统把它们有机地联系起来。

操作系统的形成和发展阶段:

1.手工操作阶段

每个程序员都必须亲自动手操作计算机:

装入卡片或纸带,按电钮,查看存储单元等。

2.批量处理阶段

用户不用与计算机直接打交道,而是通过专门的操作员来完成作业的输入和输出。

3.操作系统形成阶段

多道程序和分时系统的出现,标志着操作系统的正式形成。

1)多道程序设计的定义

所谓多道程序设计,是指同时把若干个作业存放在内存中,并且同时处于执行过程中。

但是在某时刻只能有一个程序占用CPU执行。

2)分时系统

所谓分时系统,就是在一台计算机上,连接若干个终端,用户通过这些联机终端设备采用交互方式把他的程序和数据输入到计算机中,并同时控制程序的执行。

操作系统分类:

1.单用户操作系统

在这种操作系统控制下,计算机系统串行地执行用户程序,即在执行完一个用户程序后

才接受另一个用户程序。

一些微机上配置的操作系统大多数就属这种类型。

2.批处理操作系统

在这种操作系统的控制下,计算机系统可以同时接受多个多用户程序,一批批地进行处

理。

批处理操作系统一般都提供多道程序设计功能,允许多个程序同时装入内存执行。

3.分时操作系统

分时操作系统又称多用户操作系统,在这种操作系统的控制下,多个用户可以通过各自

的终端同时使用一台计算机。

分时操作系统有三个明显的特点:

多路性,交互性和独占性。

4.实时操体系统

实时操作系统是为实时计算机系统配置的一种操作系统,在这种操作系统的控制下,计

算机系统能及时地响应外部事件的请求,在规定的时间内尽快地完成对该事件的处理,并有

效地控制所有实时设备和实时任务协调地进行。

在设计这类操作系统时,首先要考虑系统的

实时性和可靠性,其次才是效率。

5.网络操作系统

网络操作系统是为计算机网络配置的操作系统。

网络中的各台计算机配置有各自的操作系统,而网络操作系统把它们有机地联系起来,因此,它除了具有常规操作系统所应具备的存贮管理、处理机管理、设备管理、信息管理和作业管理等功能外,还具有以下网络管理功能:

高效可靠地网络通信能力以及多种网络服务功能。

6.分布式操作系统

分布式操作系统是为分布式计算机系统配置的操作系统。

系统任务可以在系统中任何别的处理机上运行。

并提供高度的并行性和有效地同步算法和通信机制,自动实行全系统范围的任务分配并自动调节各处理机的工作负载.为用户提供一个方便、友善的用机环境。

7.多处理机操作系统

多处理机系统是由多台处理器组成的计算机系统。

多处理机系统可分成两大类:

基于

共享存储的多处理机系统和基于分布存储的多处理机系统。

前者称为紧耦合多处理机系统,而后者称为松耦合多处理机系统。

多处理机系统也称为并行计算机系统。

并行机上使用的操作系统称为并行操作系统。

 

分布式OS的控制策略

集中决策分布决策

信息交换合作

分布式OS设计中的关键问题(目标)

1透明性2灵活性

3可靠性

4性能5可扩展性

分布式操作系统主要特点:

1进程通信不能借助于公共存

储器,常采用信息传递方式;

2系统中的资源分布于多个站

点,进程调度、资源分配、系

统管理必须满足分布式处理要

求,采用一致性、强健性的

分布式算法;

3适时地协调各站点的负载;

4故障检测、恢复、系统重构

1分布式系统,首先必须有一个单一的、全局的进程间的通信机制,从而使任何进程都可以和其它进程进行通信。

2不同机器上,进程管理也相同。

进程建立、撤消、启动、停止都相同。

3文件系统也必须看起来是相同的。

同时,每个文件应该是在所有地方都是可见的,当然,这必须遵守保护和安全性约束的限制。

需要一个全局的文件系统。

4在系统的所有地方都使用相同的系统调用接口。

基于总线的多处理机

在CPU和总线之间增加一个高速缓冲存储器(cachememory),如图1-5所示。

缓冲存储器保留着最近刚存取过的字。

所有的内存访问请求都要经过它。

如果请求的字在缓冲存储器中,缓冲存储器就会直接响应CPU,而不产生总线请求。

如果缓冲存储器足够大的话,那么成功的可能性,称为命中率,将是很高的。

而且每个CPU的总线通信量也会急剧下降,系统中也就能够容纳更多的CPU。

通常,缓冲存储器的大小从64K到1M,命中率经常可以达到90%或更高。

Bus

图基于总线的多处理机

Cache的一致性问题;

第二章分布式通信

2.1消息传递

2.2组通信

2.3远程过程调用RPC

单处理机系统中

共享存储器

分布式系统实现进程间通信注意的

问题:

1无共享存储器,不能借助共享

变量的方法;

2机器间消息传递的可靠性低于

机器内信息传递的可靠性;

3系统内任意两台机器未必直接连

接,往往需要中转;

4系统内的各台机器型号可能不同;

5通信的实现与系统结构、通信线路

结构、通信介质的物理性能

等有密切关系。

进程间通信

进程间通信的实现方法:

可以是低级的,涉及系统调用,或者

通过语言级的支持实现

进程间通信方法主要有:

1消息传递

2管道

3sockets

4RPC

5供享内存

对象之间的通信手段:

CORBA,DCOM

选择进程间通信方法主要考虑的问题

1程序员对所选方法的熟悉程度

2进程间通信机制的透明性,程序员

知道得细节越少,出错得机会

也就越少。

3系统所支持的方法

4考虑系统的扩充

5支持进程的迁移,不同文件系统的

进程间通信

6通信机制的标准化问题

7通信机制的有效性

 

2.1消息传递

消息传递,物理上复制要共享的数据

到另外一个进程的地址空间。

下列情况,一般不常用消息传递

1两进程不共享内存空间

2在不同的系统中

5在同一系统中,每个进程有自己

的内存

消息通常是用消息包或帧的形式发送

的,通过OS提供的基本通信原语。

异步型同步型

阻塞原语实现进程不再阻塞,一般有

2种方法:

1轮询

利用测试原语,测试缓冲区的相关信

息(状态),忙等待。

2中断

也可以在非阻塞原语种利用。

轮询一直不成功,或者一直无中断,

这样会无限阻塞下去。

要有计时器,缺省的设置,或者程序

员控制

阻塞send&receive

ProcedureA

Begin

Instructions

……

send(B,message)

//whereBisthedestination

//waitingforacknowledgment

//receivedsendacknowledgment

nextinstructions

……

End

 

ProcedureB

Begin

Instructions

……

receive(A,message)

//whereAisthesource

//waitingformessage

//receivedmessage

nextinstructions

……

End

 

消息传递(同步)适合于C/S模型

C/S模型的几个设计问题

1寻址

2阻塞和非阻塞原语

3有缓冲和无缓冲原语

4可靠和非可靠原语

管道

两进程间的通信通过内核在有限大

小的缓冲区上实现,这类原语通

过系统调用实现。

当缓冲区满时,引

起阻塞。

Sockets

通过网络的通信,不是共享数据结

构或文件。

2.2组通信

用途:

1具有冗余结构的系统

2在分布式系统中查找

3多副本的更新

4各种通知

组通信的特性1原子性

2定序

组通信最简单的实现方式就是不可靠

组播,即简单地向每个目标

发送一条消息。

可靠组播:

一种实现方式是发送者向

一个组中所有成员发送消息,

然后等待每一个成员的回复。

2.3远程过程调用RPC

RPC使用过程调用实现远程通信,

在传统的过程化程序设计

语言环境中,它的语义类似于本地

过程调用的语义,因此,它

可向应用层用户提供良好的接口。

Client进程←→Client’sStub

←→Server’sStub←→Server进程

程序员不知道调用的是一个远程过

程,还是一个本地过程,这

需要有相应的支持机制,将一台计

算机上语言级调用自动转化

为另一台计算机上相应的语言级调

用,实现变量和结果的传送。

调用者阻塞,等待返回值,而不是

仅仅一个确认值。

与各种程序设计语言一样,对参数

的数目和数据类型有限制。

RPC与本地调用的区别

1数据表示问题

如果RPC是在两种异构的机器上进

行的,不同机器数据表示可能

不同,包括机器的字长等。

2指针

在不具备共享地址空间的情况下,

RPC不可能允许在网络范围内

传递指针。

3故障

调用者和被调用者都可能在调用期

间发生故障。

 

对于故障,由于调用者无法知道到

底出现了那种情况,因此,

系统需要提供一些基本的保护机

制来确保RPC的正确效果。

不同RPC实现方案定义的这种

效果或RPC语义是有差别的。

以下是几种常用的RPC调用语义。

RPC调用语义

1At-Most-Once(最多一次)

相同RPC的重复调用,服务器不处

理。

2At-least-Once(至少一次)

RPC将被执行至少一次,可能多次。

3Last-of-Many-Call(最近调用)

每个调用包含一个标识,client接收

最近调用者的返回值。

RPC系统的实现问题

1RPC协议族

(1)面向连接的

面向非连接的

(2)选择标准的通用协议,还是

专门为RPC设计的协议

 

(3)信包和报文的长度

2确认

停等协议(stopandwaitprotocol)

爆发协议(blastprotocol)

3缓冲区缓冲池

 

4计时管理

失败情况下的PRC语义,

可能出现的问题及其解决方法:

1Client无法定位Server

2客户请求消息丢失

3Server应答消息丢失

4Server崩溃

5Client崩溃

 

RPC存在的问题:

1服务器必须被正确定位;

2指针与复杂的数据结构难以传送;

3全局变量很难使用;

4很难有精确的RPC语义;

 

第三章分布式协同处理

全局时间为进程和数据提供时间戳。

3.1事件定序与时间戳

计算机上运行的应用程序只关心

事件发生的次序,而不是事件

发生的绝对时间,即只需要用计数

器的值去给事件打上相应的时间戳。

对于集中的物理时间:

请求类和

广播类

难点:

requestfortime

--------------

clienttimeserver

---------------

currenttime(delay)

有延迟,而且是不确定的,因为网

络故障,可能会传送多次。

Cristian

Berkeley算法

网络时间协议(NTP)

UTC统一协调时间

时间的质量、精确性与时间提供者

的价格等相关;

物理时间:

人的时间;

逻辑时钟:

是一种单调增长的软

件计数器,对事件集进行部分

排序。

相对时间,逻辑上是一致的。

定序:

(1)若两个事件发生在同一进程中,

则可用观察到的次序来

确定它们发生的次序;

(2)无论何时在进程间传递消息,

发送消息的事件先于接收

同一消息的事件。

先决条件:

两个事件之间,逻辑时

钟至少变一次,两个事件不会

精确地同时发生。

3.2分布式互斥

要求:

(1)安全性

(2)可用性

(3)定序

在单机系统中,使用信号量

(semaphores)、管程(monitors)

等来保护临界区。

SP(S)V(S)

Wait(s)Singal(s)

1集中式算法

2分布式算法

要求:

系统中所有的事件都是全序的

当一个进程接受到另一个进程请

求消息(Request)时,

(1)若接受者不在临界区中,也不想

进入临界区,它就向发送者送

Reply消息

(2)已在,它就不

回答(推迟)

(3)要进入,但还没

有进入,它就将自己的请求

消息(Request)时间戳与收到的时间

戳比较,若收到的小,回

Reply消息,否则,推迟

8

8812

12

12

812为时间戳

 

ReplyReply

Reply

 

当进程0完成时,进程0返回Reply

Reply

 

在产生请求冲突时,遵守按时间戳排序,小时间戳优先的规则。

每次进入临界区需要2(n-1)条消息,n为系统中的进程数目。

相对集中式算法,慢、复杂、贵、不健壮

 

3令牌算法

系统中所有的进程可组成一个虚拟或逻辑环,每个进程要知道谁在

它的下一个位置。

算法:

令牌环被初始化后,进程0首先获得令牌,这样令牌开始绕

环运动,它从进程k传递k+1,以点到点方式

若一个进程得到了它相邻进程传递来的令牌,但它并不想进入临界

区,就将该令牌往下传递。

仅拥有令牌的进程才有权进入临界区。

 

每次进出需要的消息进入前的延迟问题

集中式32协调者崩溃

分布式2(n-1)2(n-1)任一进程崩溃

令牌1到∞0到n-1丢失令牌,进程崩溃

不定

 

3.3选择算法

如果这个协调者进程由于它驻留

的处理机故障,而无法正常

工作(称为故障),系统只得通过

在另一个处理机上重新开始

一个新的协调者副本才能运行,确

定在何处重新开始一个新

的协调者算法,就称为选择算法。

Bully(欺负算法)

(1)Pi给所有比它优先数大的进程

发送消息;

(2)若无进程响应,Pi获胜成为协

调者;

(3)若有优先数比Pi大的进程响应

Pk,响应者Pk接管Pi的工作完成;

基于环结构的算法(基于没有

令牌的环)

(1)当任何一个进程发现协调者

进程不起作用时,构造一个包含

它自身进程号的消息给后继者;若后

继者失败,继续下一个;

(2)消息到达了始发者的手中,始

发者接收者接收到包含它

自身进程号的消息后,将其转化为协

调者消息;

(3)该消息将再一次绕环运行,向

所有进程通知谁是协调者;

具有最大优先数的进程,将它作为

新的协调者;

评价分布式同步互斥算法标准:

1响应时间和吞吐量

充分利用系统的分布性,获得高的吞吐量和小的响应时间。

2容错性

具有幸免于故障的能力。

3开销大小

算法需要的一些额外开销,消息的数目和大小等。

4收敛和公平

请求进入临界段的进程终将进入,在临界段执行的进程终将

离开临界段。

并且对各进程公平。

5可扩充性

容易加入新的结点和新的进程。

6确定性

一定能保证同步、互斥,还是可能保证,如果不是确定的,

就是概率性的。

7恢复

对错误恢复的能力如何。

8实用性

对其使用作了多少限制。

9可理解性

如果一个算法是简单的,则很容易给出规范的正确证明。

简单是很重要的,包括:

算法的实现、测试、维护、修改等等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1