高级操作系统讲义.docx
- 文档编号:7013429
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:49
- 大小:332.33KB
高级操作系统讲义.docx
《高级操作系统讲义.docx》由会员分享,可在线阅读,更多相关《高级操作系统讲义.docx(49页珍藏版)》请在冰豆网上搜索。
高级操作系统讲义
高级操作系统
一上课基础
学习过本科操作系统课程
熟悉一种程序设计语言
二参考书:
1.何炎祥等高级操作系统科学出版社,1999年;
2.何炎祥分布式操作系统高等教育出版社,2005年;
3.AndrewS.TanenbaumDistributedOperatingSystems.中译本分布式操作系统电子出版社1999年;
本科阶段
4.张尧学,史美林计算机操作系统教程清华大学出版社,2000;
5.汤子瀛等计算机操作系统西安电子科技大学出版社,1999;
6.AbrahamSilberschatzetal.OperatingSystemConcept高等教育出版社,20032007;
7.孟祥武张玉洁等操作系统考研指导北京邮电大学出版社,2002;
8.张玉洁孟祥武操作系统习题解答与考试复习指导,机械工业出版社,2012年;
三主要内容
1.分布式计算机系统
2.分布式通信
3.分布式协同处理
4.资源管理
5.进程与处理机管理
6.任务分配与负载平衡
7.分布式文件系统
8.命名服务
9.事务的并发控制
10.分布式事务
11.恢复与容错
12.分布式共享内存
13.Hadoop系统
●主要讨论设计和构造分布式操作系统的基本原理和典型实现技术。
●分布式操作系统(DistributedOS,DOS)
●目前,分布式操作系统作为多机操作系统的高级表现形式,仍处于研究和发展阶段,在理论和研制方法上仍有待于进一步解决和探索的问题。
四主要考核内容
五教学目的
1.了解分布式操作系统技术方面的新成果,了解目前技术发展的情况,在实际应用中,科学、合理选择产品、系统,避免盲目、为进行二次开发等打下基础。
2.目前操作系统产品正逐步吸收分布式操作系统方面的研究成果,通过学习,可以从更高一层看目前的操作系统技术、产品,可以预测它的发展。
3.如果做实际、应用项目,可以采用一些新技术。
包括完成系统软件和应用软件。
第0章引言
操作系统(本科基础)进一步:
1.网络操作系统
具有网络功能的操作系统,无严格定义。
●MS-DOS
(1)网络通信能力
(2)提供网络服务
网络上各节点的主机运行自身的操作系统,它不仅要保证本机的系统进程或用户进程能简便、有效地使用网络中各种资源;同时,也为网中其它用户使用本机资源提供服务。
●OS+网络协议
2.分布式操作系统
每台计算机没有各自独立的OS,用户不了解其文件存储在什么地方,也不了解其程序是由远程处理机执行的,分布式OS自动管理文件的放置;网络OS每台计算机均有自己的OS;网络OS的用户要访问资源,用户必须了解资源的位置,用“文件传输”命令在计算机之间移动文件。
分布式操作系统是为分布式计算机系统配置的一种操作系统。
分布式OS在这种多机系统环境下:
-负责控制和管理以协同方式工作的各类系统资源;
-负责分布式进程的同步与执行,处理机间的通信、调度与分配等控制事务,自动实行全系统范围内的任务分配和负载平衡;
-具有高度并行性以及故障检测和重构能力。
3.并行操作系统
并行机——>并行操作系统
→并行DBMS——>
→并行算法——>
→并行程序设计语言及
其开发环境(并行编译):
国内的:
银河机、曙光机等;
PVM(parallelmachine);
NOW工作站机群系统;
CPU
10——>40——>20
20——>80——>40
4.实时操作系统(Real-TimeOperatingSystem,RTOS)
支持实时系统工作的操作系统,响应时间有明确的规定;
-执行效率高、快速、实时性强
-系统小,可剪裁,核心部分更小;
-主要应用于实时控制领域;
5.三种系统之间的一些不同之处:
项目
网络操作系统
分布式操作系统
多处理机操作系统
看起来是否像一个虚拟的单处理机系统?
否
是
是
所有的机器只运行相同的操作系统?
否
是
是
有多少操作系统的拷贝?
N
N
1
怎样通信?
共享文件
消息
共享存储器
需要共同一致的网络协议?
是
是
否
是否只有一个运行队列?
否
否
是
文件共享是否有良好的语义定义?
通常没有
是
是
推动操作系统发展的因素:
-硬件升级、或者出现了新的硬件类型;
-GUI取代字符界面;
-用户、系统管理者的需求,新的功能、工具不断加入到OS中;
-bug维护、修补;
第一章分布式计算机系统
下一步的技术发展很难准确预测,我们要在网络、分布式环境下开发,需要掌握分布式计算机系统的原理,也需要了解他们的实现原理。
分布式操作系统是为分布式计算机系统配置的一种操作系统。
分布式系统需要与集中式系统完全不同的软件。
分布式计算机系统:
-从硬件角度来讲,各个计算机都是自治的;
-从软件角度来讲,用户将整个系统看作是一台计算机。
这两者都是必需的,缺一不可。
分布式系统由许多独立的CPU组成,它们在一起工作使得整个系统看上去像一台计算机。
任务分布:
把一个任务分解成多个可并行执行的子任务,分散给各场点协同完成。
功能分布:
把系统的总功能划分成若干子功能,分配给各场点分别承担。
分布式系统的特征:
1.资源共享:
硬件资源、软件资源;
2.开放性:
可伸缩性、可移植性、互操作性;
数据是可以交换的、对外接口是公开的、系统提供统一的通信机
制、提供统一的用户界面。
3.并发性:
同时工作没有冲突;有冲突,通过相应算法解决;并发控制;
4.容错性:
两个基本方法,硬件冗余、软件恢复(数据备份、日志);
5.透明性:
实际上比其表面要微妙得多的含糊概念之一
种类
含义
位置透明
用户不知道资源位于何处
迁移透明
资源可以不改名地随意移动
复制透明
用户不知道有多少个拷贝存在
并发透明
多个用户可以自动的共享资源
并行透明
系统活动可以在用户没有感觉的情况下并行发生
分布式系统的优点:
1.性能价格比高
2.速度
3.内在的分布性
4.可扩充性
5.可靠性
6.适用于多种环境
分布式系统的不足:
1.管理复杂
2.性能和可靠性依赖于网络
3.保密性差
4.应用软件少
项目
描述
软件
目前为分布式系统开发的软件还很少
网络
网络可能饱和和引起其它的问题
安全
容易造成对保密数据的访问
分布式系统的资源管理方式:
1.全集中管理方式
一个资源由一个管理机制管理。
2.分担管理方式
一个资源虽由几个管理机制管理,但各分担一种管理职能。
3.轮流管理方式
一个资源可由几个管理机制管理,但轮流执行管理职责。
4.全分散管理方式
一个资源由多个管理机制在协商—致的原则下共同管理。
性能比较:
-基本开销:
连接系统中的各个站点要多少花费?
-通信开销:
从站点A发送信息到站点B需要多少时间?
-可靠性:
分布式系统的拓扑结构:
1.全互连结构
优点:
各场点间消息传递快,可靠性较高。
缺点:
开销高。
2.部分互连结构
其开销比全互连结构低,但通信速度较全互连结构慢。
可靠性也相对较低。
3.层次结构
通常情况下,其中的任何中间节点故障都可能将这种结构分割成若干不相交的子树。
因此,可靠性较低。
4.星形结构
这种结构的基本开销与场点个数成正比,这种通信速度却是没有保障的,因为中央场点可能变成瓶颈。
5.环形结构
基本开销较低,但通信代价可能较高。
6.总线结构
这类结构的开销同场点成正比,通信代价也很低。
7立方体结构
计算机支持的协同工作系统(CSCW,ComputerSupportedCooperativeWork),也是一种分布式系统。
-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.可扩展性
分布式操作系统主要特点:
-进程通信不能借助于公共存储器,常采用信息传递方式;
-系统中的资源分布于多个站点,进程调度、资源分配、系统管理必须满足分布式处理要求,采用一致性、强健性的分布式算法;
-适时地协调各站点的负载;
-故障检测、恢复、系统重构;
-分布式系统,首先必须有一个单一的、全局的进程间的通信机制,从而使任何进程都可以和其它进程进行通信。
-不同机器上,进程管理也相同。
进程建立、撤消、启动、停止都相同。
-文件系统也必须看起来是相同的。
同时,每个文件应该是在所有地方都是可见的,当然,这必须遵守保护和安全性约束的限制。
需要一个全局的文件系统。
-在系统的所有地方都使用相同的系统调用接口。
基于总线的多处理机:
在CPU和总线之间增加一个高速缓冲存储器(cachememory),如图1-5所示。
缓冲存储器保留着最近刚存取过的字。
所有的内存访问请求都要经过它。
如果请求的字在缓冲存储器中,缓冲存储器就会直接响应CPU,而不产生总线请求。
如果缓冲存储器足够大的话,那么成功的可能性,称为命中率,将是很高的。
而且每个CPU的总线通信量也会急剧下降,系统中也就能够容纳更多的CPU。
通常,缓冲存储器的大小从64K到1M,命中率经常可以达到90%或更高。
Bus
图1-5基于总线的多处理机
Cache的一致性问题:
第二章分布式通信
单处理机系统中:
共享存储器
分布式系统实现进程间通信注意的问题:
1.无共享存储器,不能借助共享变量的方法;
2.机器间消息传递的可靠性低于机器内信息传递的可靠性;
3.系统内任意两台机器未必直接连接,往往需要中转;
4.系统内的各台机器型号可能不同;
5.通信的实现与系统结构、通信线路结构、通信介质的物理性能等有密切关系。
进程间通信:
进程间通信的实现方法:
可以是低级的,涉及系统调用,或者通过语言级的支持实现
进程间通信方法主要有:
1.消息传递
2.管道
3.sockets
4.RPC(RemoteProcedureCallProtocol远程过程调用协议)
5.共享内存
对象之间的通信手段:
CORBA(CommonObjectRequestBrokerArchitecture公共对象请求代理体系结构,通用对象请求代理体系结构)
DCOM(MicrosoftDistributedComponentObjectModel分布式组件对象模型)
选择进程间通信方法主要考虑的问题:
-程序员对所选方法的熟悉程度;
-进程间通信机制的透明性,程序员知道得细节越少,出错得机会也就越少;
-系统所支持的方法;
-考虑系统的扩充;
-支持进程的迁移,不同文件系统的进程间通信;
-通信机制的标准化问题;
-通信机制的有效性;
2.1消息传递
消息传递,物理上复制要共享的数据到另外一个进程的地址空间。
下列情况,一般不常用消息传递:
-两进程不共享内存空间;
-在不同的系统中;
-在同一系统中,每个进程有自己的内存;
消息通常是用消息包或帧的形式发送的,通过OS提供的基本通信原语。
异步型同步型
阻塞原语实现进程不再阻塞,一般有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组通信
用途:
-具有冗余结构的系统;
-在分布式系统中查找;
-多副本的更新;
-各种通知;
组通信的特性:
-原子性;
-定序;
组通信最简单的实现方式就是不可靠组播,即简单地向每个目标发送一条消息。
可靠组播:
一种实现方式是发送者向一个组中所有成员发送消息,然后等待每一个成员的回复。
2.3远程过程调用RPC
RPC使用过程调用实现远程通信,在传统的过程化程序设计语言环境中,它的语义类似于本地过程调用的语义,因此,它可向应用层用户提供良好的接口。
Client进程←→Client’sStub←→Server’sStub←→Server进程
程序员不知道调用的是一个远程过程,还是一个本地过程,这需要有相应的支持机制,将一台计算机上语言级调用自动转化为另一台计算机上相应的语言级调用,实现变量和结果的传送。
调用者阻塞,等待返回值,而不是仅仅一个确认值。
与各种程序设计语言一样,对参数的数目和数据类型有限制。
RPC与本地调用的区别:
1.数据表示问题:
如果RPC是在两种异构的机器上进行的,不同机器数据表示可能不同,包括机器的字长等。
2.指针:
在不具备共享地址空间的情况下,RPC不可能允许在网络范围内传递指针。
3.故障:
调用者和被调用者都可能在调用期间发生故障。
对于故障,由于调用者无法知道到底出现了那种情况,因此,系统需要提供一些基本的保护机制来确保RPC的正确效果。
不同RPC实现方案定义的这种效果或RPC语义是有差别的。
常用的RPC调用语义:
1.At-Most-Once(最多一次)
相同RPC的重复调用,服务器不处理。
2.At-least-Once(至少一次)
RPC将被执行至少一次,可能多次。
3.Last-of-Many-Call(最近调用)
每个调用包含一个标识,client接收最近调用者的返回值。
RPC系统的实现问题:
1.RPC协议族
(1)面向连接的&面向非连接的
(2)选择标准的通用协议,还是专门为RPC设计的协议
(3)信包和报文的长度
2.确认
-停等协议(stopandwaitprotocol)
-爆发协议(blastprotocol)
3.缓冲区缓冲池
4.计时管理
失败情况下的PRC语义,可能出现的问题及其解决方法:
1.Client无法定位Server
2.客户请求消息丢失
3.Server应答消息丢失
4.Server崩溃
5.Client崩溃
RPC存在的问题:
-服务器必须被正确定位;
-指针与复杂的数据结构难以传送;
-全局变量很难使用;
-很难有精确的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)Signal(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,以点到点方式若一个进程得到了它相邻进程传递来的令牌,但它并不想进入临界区,就将该令牌往下传递。
仅拥有令牌的进程才有权进入临界区。
4.算法比较
每次进出需要的消息进入前的延迟问题
集中式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)消息到达了始发者的手中,始发者接收者接收到包含它
自身进程号的消息后,将其转化为协调者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 操作系统 讲义