《分布式操作系统PPT课件》由会员分享,可在线阅读,更多相关《分布式操作系统PPT课件(86页珍藏版)》请在金锄头文库上搜索。
1、8.3 分布式操作系统8.3.1 分布式系统概述 8.3.2 分布式进程通信 8.3.3 分布式资源管理 8.3.4 分布式进程同步 8.3.5 分布式系统中的死锁 8.3.6 分布式文件系统 8.3.7 分布式进程迁移 8.3.1分布式操作系统分布式计算机系统是由一组松散的计算机系统,经互连网络连接而成的”单计算机系统映像”(Single Computer System Image)。 分布式系统与网络系统区别网络系统中,用户在通信或资源共享时必须知道计算机及资源的位置,通过远程登录或让计算机直接相连来传输信息或进行资源共享;分布式系统中,用户在通信或资源共享时并不知道有多台计算机存在,数据
2、通信和资源共享如在单计算机系统上一样,此外,互联的各计算机可互相协调工作,可把一个大型程序分布在多台计算机上并行运行。 分布式计算机系统满足条件系统中任意两台计算机可通过系统的安全通信机制来交换信息。系统中的资源为所有用户共享系统中的若干机器可互相协作完成同一个任务系统中的一个结点出错不影响其它结点运行,具有较好的容错性和健壮性。如何实现”单计算机系统映像”? 实现分布式系统的技术称透明性: 位置透明性 迁移透明性 复制透明性 并发透明性 并行透明性分布式操作系统基本功能1进程通信。2资源共享。3并行运算。4网络管理。分布式操作系统具有特征一是有单一全局性进程通信机制,任何一台机器上进程都采用
3、同一种方法与其它进程通信;二是有单一全局性进程管理和安全保护机制,进程的创建、执行和撤销以及保护方式不因机器不同而有所变化;三是有单一全局性的文件系统,用户存取文件和在单机上没有两样。8.3.2分布式进程通信 分布式系统中进程通信可分成三种: 一是消息传递机制message passing 二是远程过程调用RPC 三是套接字套接字socketsocket 这三种通信机制都需依赖于网络的数据传输功能。1、消息传递机制 (1) 通信原语的基本形式为 Send(P, message) Receive(Q, buffer) 最简单的分布式消息传递模型称客户机/服务器模型 消息传递机制 (2) (1)目
4、标进程寻址第一种方法:机器号和进程号寻址法机器号和进程号寻址法。 第二种方法:广播寻址法广播寻址法。 第三种方法:名字服务器寻址法名字服务器寻址法。(2)同步和异步通信原语同步发送同步发送异步发送异步发送 (3)缓冲和非缓冲原语缓冲原语非缓冲原语 (4)可靠和非可靠通信原语可靠通信原语可靠通信原语非可靠通信原语非可靠通信原语 2远程过程调用(1)客户机客户存根客户应用客户OS内核本地调用客户打包参数拆包参数返回结果OS内核服务器 本地调用服务存根服务应用服务过程打包参数拆包参数返回结果OS内核网络消息传送远程过程调用(2)RPC执行步骤总结(1) 1)客户进程以普通方式调用客户存根2)客户存根
5、组织RPC消息并执行Send,激活内核程序3)内核把消息通过网络发送到远地内核4)远地内核把消息送到服务器存根5)服务器存根取出消息中参数后调用服务器过程远程过程调用(3)RPC执行步骤总结(2) 6)服务器过程执行完后把结果返回至服务器存根7)服务器存根进程将它打包并激活内核程序8)服务器内核把消息通过网络发送至客户机内核9)客户内核把消息交给客户存根10)客户存根从消息中取出结果返回给客户进程11) 客户进程获得控制权并得到了过程调用的结果3套接字(1) socket通信的基本原理socket通信的工作过程每个套接字支持特定类型的网络,常见的有:可靠的面向连接的字节流、可靠的面向连接的包流
6、、不可靠的包传递等。 创建socket时,用参数指明所用协议,对可靠的字节流和包流,常用TCP/IP;对不可靠的包传递,则采用UDP。套接字(2) Socket的功能由系统调用体现主要有:创建socket()、指定本地地址bind()、建立socket连接connect()、愿意接收连接listen()和接收连接accept()、发送数据send()、sendto()、sendmsg()、write()、writev()和接收数据read()、 readv()、 recvfrom()、 recvmsg()。套接字(3) 服务器方客户方socket()建立数据报式套接字,返回套接字号socket
7、()建立数据报式套接字,返回套接字号bind()把套接字s与本地地址相连接bind()把套接字s与本地地址相连接recvfrom()/sendto()在s上读写数据,直至结束recvfrom()/sendto()在s上读写数据,直至结束closesocket()关闭套接字,服务结束closesocket()关闭套接字,结束对话无连接协议的套接字调用时序套接字(4) 面向连接的套接字调用时序socket()建立流式套接字,返回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接accept()接收连接,并得到第二个套接字nsrecev()/send
8、()在ns上读写数据,直到结束Closesocket()关闭套接字nsClosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconnect()把套接字s与远程主机相连Send()/recev()在ns上读写数据,直到结束Closesocket()关闭套接字s,结束TCP/IP对话服务器方客户方socket()建立流式套接字,返回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接closesocket()关闭套接字nsclosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconn
9、ect()把套接字s与远程主机相连send()/recev()在ns上读写数据,直到结束建立连接服务请求服务响应8.3.3 分布式资源管理(1) 单机操作系统采用一类资源由一个资源管理者来管的集中式管理方式。分布式操作系统采用一类资源多个管理者的方式,可以分成两种: 1 集中分布管理 2 完全分布管理 分布式资源管理(2)集中分布管理 一类资源有多个管理者,但每个具体资源仅有一个管理者负责,如尽管系统有多个文件管理,但每个文件只依属于一个文件管理者。 集中分布管理下,使用某个文件必须也仅须通过其相应的某个文件管理者。分布式资源管理(3)完全分布管理 假如一个文件有若干副本,分别受管于不同的文件
10、管理。为保证文件副本的一致性,当一份副本正被修改时,其他各副本应禁止使用。 当一个文件管理接收到使用文件的申请时,只有在和管理该文件其他副本的管理者协商后,才能决定是否让申请者使用文件。一个具有多副本的文件资源由多个文件管理者共同管理。分布式资源管理(4)分布式资源搜索算法(1) 集中分布管理应具有向其他资源管理者提交资源申请和接受其他资源管理者转来的申请的功能。分布式资源搜索算法:1、投标算法2、由近及远算法3、回声算法分布式资源管理(5)1 1投标算法投标算法(1)(1) 资源管理者欲向它机资源资源管理者欲向它机资源管理者申请资源时,先广播招标消管理者申请资源时,先广播招标消息,向网络中位
11、于其他结点的每个息,向网络中位于其他结点的每个资源管理者发招标消息。资源管理者发招标消息。 当一个资源管理者接到招标消息当一个资源管理者接到招标消息时,如果该结点上有所需资源,则时,如果该结点上有所需资源,则根据一定策略计算出根据一定策略计算出”标数标数”,发,发一个投标消息给申请者,否则回一一个投标消息给申请者,否则回一个拒绝消息。个拒绝消息。分布式资源管理(6)投标算法投标算法(2)(2) 申请者收到所有回答消息申请者收到所有回答消息后,根据一定策略选出一个投标者,后,根据一定策略选出一个投标者,并向它发一个申请消息。并向它发一个申请消息。接到申请消息后,将申请者接到申请消息后,将申请者的
12、名字登记入册,并在可以分配资的名字登记入册,并在可以分配资源时发消息通知申请者。源时发消息通知申请者。资源使用完毕后,向分配资资源使用完毕后,向分配资源的资源管理者归还资源。源的资源管理者归还资源。分布式资源管理(7)2 2由近及远算法由近及远算法(1) (1) 申请者向它的某个邻结点发一个搜索消息,信中附上对资源的需求及参数p,其值为申请者编号。接搜索消息后,将发来消息的结点编号和参数p登记下来,前者定义为它的上邻结点,后者定义为它的前结点。如果接搜索消息的结点具有消息中所要求的资源,它就向它的上邻结点发一个成功消息,并将自己的编号附上;分布式资源管理(8)由近及远算法由近及远算法(2) (
13、2) 否则它先发一个消息给它的前结点告知自己是它的后结点。然后,发消息给上邻结点,请继续搜索,消息中带上参数p,其值为自己的编号。接继续搜索消息后,如果还有未被搜索的下邻结点,那么,就发搜索消息给它,消息中附上的参数p是从继续搜索消息中取得的。如果所有下邻结点都已搜索过,但它有后结点,则把继续搜索消息转给它的后结点。分布式资源管理(9)由近及远算法由近及远算法(3) (3) 如果既没有未被搜索的下邻结点,又没有后结点,则说明全部结点己被搜索过,这时它将向上邻结点发一个失败消息。接成功消息或失败消息后,若接消息者非申请者,则将消息转发给它的上邻结点,否则搜索就此结束。申请者或获得最近能提供所要资
14、源的结点地址,或被告之系统中没有这样的资源。分布式资源管理(10)由近及远算法由近及远算法(4) (4) 如果一个己被搜索过的结点又收到搜索消息,则将原消息退回,发搜索消息的结点就认为该下邻结点不存在。分布式资源管理(11)3 3 回声算法回声算法(1)(1) 资源申请者向它的每一个邻结点发探查消资源申请者向它的每一个邻结点发探查消息,消息中附上对资源的需求。息,消息中附上对资源的需求。若接探查消息的结点是第一次接到这样的若接探查消息的结点是第一次接到这样的探查消息,就把传来探查消息的邻结点定探查消息,就把传来探查消息的邻结点定义为它的对该探查而言的上邻结点,而把义为它的对该探查而言的上邻结点
15、,而把其余的邻结点定义为它的下邻结点。若接其余的邻结点定义为它的下邻结点。若接探查消息的结点不是第一次接到这样的探探查消息的结点不是第一次接到这样的探查消息,就向传来探查消息的邻结点发一查消息,就向传来探查消息的邻结点发一回声消息,消息中参数值为回声消息,消息中参数值为0 0。 分布式资源管理(12)回声算法回声算法(2) (2) 接上邻结点传来的探查消息接上邻结点传来的探查消息后,若有下邻结点,则将探查消息后,若有下邻结点,则将探查消息复制后分发给各下邻结点,否则向复制后分发给各下邻结点,否则向上邻结点发一回声消息,消息中参上邻结点发一回声消息,消息中参数数S(S(称资源参数称资源参数) )
16、取下列值:取下列值:S=0 S=0 当结点不具备所需资当结点不具备所需资源时源时S=w*a+1 S=w*a+1 当有当有a a个申请者在等待资源个申请者在等待资源时式中时式中w w是一个常数。是一个常数。分布式资源管理(13)回声算法回声算法(3) (3) 当一个结点接到它的所有下邻结点当一个结点接到它的所有下邻结点发来的回声消息后,就向它的上邻结点发一发来的回声消息后,就向它的上邻结点发一回声消息,消息中附上参数回声消息,消息中附上参数S S及与之对应的结及与之对应的结点编号。参数点编号。参数S S取下列值:取下列值: S=0 S=0 若若Sr=0Sr=0且所有回声消息中所附参数且所有回声消
17、息中所附参数均为均为0 0 S=min(Sr1+1,Sre+1,Sr) S=min(Sr1+1,Sre+1,Sr) 否则否则 若若S S值被选为值被选为Sre+1Sre+1,回声消息中所附结点,回声消息中所附结点编号就是附有资源参数编号就是附有资源参数SreSre的回声中所附的结的回声中所附的结点编号。若点编号。若S S值被选为值被选为SrSr,回声消息中所附结,回声消息中所附结点编号就是本结点编号。点编号就是本结点编号。分布式资源管理(14)回声算法回声算法(4) (4) 申请者获得所有邻结点发来的回声消息后,将按上一条规则选定S的方法选中一个资源提供者,然后,向它发申请消息。当一个结点接到
18、申请消息后,就把申请消息登记下,并在可能时将资源分配给它。使用完毕后通知资源分配者去配。8.3.4分布式进程同步(1)分布式系统中各计算机没有共享内存储区,进程间无法通过传统公共变量进程分散在不同计算机上,只能根据本地可用信息做出决策,系统中没有公共的时钟和全局时间。采用完全分布式管理时,每个资源由位于不同结点上的资源管理共同来管,每个资源管理在决定分配它管理的资源以前,必须和其他资源管理者协商。必须设计一个算法,各资源管理者按此算法共同协商资源的分配。分布式进程同步(2)算法应满足:资源分配的互斥性、不产生饿死现象、且各资源管理者处于平等地位而无主控者。通常把这种资源分配算法称分布式同步算法
19、,由同步算法构成的机制称分布式同步机制。进程间通过网络通信联系会有延迟。必须要解决对不同计算机中发生的事件进行排序的问题,再设计出性能优越的分布式同步算法。1事件排序(1)进程同步的实质是对多个进程在执行顺序上的规定,为此,应对系统中所发生的事件进行排序。 定义一个关系称作“先发生”,表达为“ab”读作“a在b之前发生”,意思是指系统中所有进程认为事件a先于事件b发生。事件排序(2)三种情况会产生先发生关系 情况(1):如果a和b是同一进程中的两个事件,且a发生在b之前,则ab为真; 情况(2):如果a是一个进程发送消息事件,b为另一个进程接收该消息事件,则ab为真; 情况(3):存在某个事件
20、c,若有ac并且cb,则ab为真。事件排序(3) 定义事件的“先发生”关系后,同一进程中两个事件的先后关系可以被明确确定,不同进程中发生的事件间的先后关系,有一部分可以被确定,而另一部分则不能确定。事件排序(5) 例如,三个进程P1、P2和P3,分别发生以下事件:事件a :P1 发送消息给P2 ;事件b :P2 接收来自P1 的消息;事件c :P2 接收到P1 的消息后发消息给P3;事件d :P3 接收来自P2 的消息;事件排序(6) 显然有: abcd; 然而,如果P2在事件b之前发生过某事件f,例如,打印输出,尽管可以确定: fb,fc,fd 但a和f间的先后关系无法确定。事件排序(7)
21、如果两个事件x和y发生在不同进程中,且这两个进程也不交换信息,那么xy和yx都不成立,这两个事件就称为并发事件,无法确定这两个事件谁先谁后。事件排序(8) 定义逻辑时钟(时间戳)定义逻辑时钟的实质是把一个系统中的事件映射到一个正整数集合上的一个函数C,并满足:若事件a先发生于事件b,则C(a)小于C(b)。系统中的每个进程都拥有自己的逻辑时钟。逻辑时钟的定义指出,如果事件a先发生于事件b,则a的逻辑时钟小于b的逻辑时钟。反之不然,因为,两个并发事件的逻辑时钟的大小没有定义,所以,逻辑时小的事件不见得先发生事件排序(9)逻辑时钟函数的构造(1)定义在某系统集合上的逻辑时钟函数C如下: (1)对任
22、一进程P中的非接收消息事件ej,若ej 是P的第1个事件,则 C(ej)=1 若ej是P的第j个事件,而第j-1个事件是ej-1 ,则 C(ej)=C(ej-1)+1事件排序(10)逻辑时钟函数的构造(2) (2)对任一进程P中的接收消息事件er ,若er 是P的笫1个事件,则 C(er)=1+C(es ) 此处,es 是进程P发送这个消息的事件。若er是P的笫r个事件,而第r-1个事件是er-1,则 C(er)=1+maxc(er-1),C(es)事件排序(11)由n个进程组成的网络系统,逻辑时钟可用于对由消息传输所组成的事件进行排序。事件排序规则:对来自站点i的消息x和来自站点j的消息y,
23、说事件x先发生于事件y,如果: (1)Ti Tj 或 (2)如果Ti = Tj 并且 i j 事件排序(12)Lamport算法校正时钟 06121824303642485460081624324048566472800102030405060708090100DABCP0P1P2(a)06121824303642487076081624324048616977850102030405060708090100DABCP0P1P2(b) (a)三个进程,各有自己的时钟(b)Lamport算法校正时钟事件排序(13) 时间戳算法的操作例子 P1时间P2P30145236016704256(a, 1
24、, 1)(b, 5, 1)(j, 5, 3)(x,3,2)事件排序(14) 时间戳算法的操作另一个例子 P1时间P2P3011220023(a, 1, 1)(q, 1, 4)3P402分布式同步算法(1) (1)Lamport算法(1)分布式系统由N个结点组成,每个结点建立数据结构(一个数组,也叫队列),用来记录该结点最近收到的消息和该结点自己产生的消息。假定每个结点只有一个进程和仅负责控制一种临界资源,并处理那些同时到达的请求。数组的下标也就是结点编号(1N),该数组被初始化为: applicationstack =(release,0,i) 分布式同步算法(2) Lamport算法(2)
25、算法用到三种类型消息:( request,Ti ,i) 进程Pi发出的访问资源的请求消息( reply,Tj ,j) 进程Pj同意请求进程访问其控制的资源的回答消息( release,Tk ,k) 占有资源的进程Pk释放资源时给各进程的释放消息 消息内容包括:消息类型、时间戳、结点号。分布式同步算法(3) Lamport算法(3) (1)当进程Pi要求访问临界资源时,它向其他各进程分别提交带有本地时间戳的申请消息(reguest,Ti,i),同时也把此申请消息放入自己的请求队列中的applicationstacki位置。分布式同步算法(4) Lamport算法(4) (2)当其他结点进程Pj接
26、收到申请消息(reguest,Ti,i)时,它把这条消息放入自己队列的applicationstacki位 置 。 若 进 程 Pj 在 收 到(reguest,Ti,i)时,发生了申请事件且还未发完申请消息,那么,要在接收进程Pj 发完所有申请消息后才发回答消息,否则立即发回答消息。分布式同步算法(5) Lamport算法(5) (3)若满足以下条件,则允许进程Pi 进入临界区访问资源: 1)Pi 申 请 请 求 访 问 资 源 的 消 息 、 即applicationstack中的request是队列中最早的申请请求消息,因为,消息在所有结点一致排序,故在任意时刻只有一个进程访问资源。 2
27、)进程Pi已收到所有其他进程的回答消息reply,都同意其访问资源,且响应消息上的时间戳晚于(Ti,i)。此条件表明其他进程要么不访问资源,要么要求访问但其时间戳较晚。分布式同步算法(6) Lamport算法(6) (4)为了释放该资源,Pi 从自己的请求队列applicationstack i位置消去(reguest,Ti,i),同时再发送一条打上时间戳的(release, Ti,i)给所有其他进程。 (5)当进程Pj 收到进程Pi的释放消息release后 , 从 自 己 的 队 列applicationstacki中消去Pi 的请求消息(reguest,Ti,i)。分布式同步算法(7)
28、Lamport算法(7) 为确保互斥,该算法共需要传送(N-1)条request消息(N-1)条reply消息(N-1)条release消息分布式同步算法(8) (2)G.Ricart算法 (1) (1)当进程Pi要求访问临界资源时,它发送一个打上时间戳的广播消息(reguest,Ti,i)给所有结点的进程。分布式同步算法(9) G.Ricart算法 (2) (2)当 其 他 结 点 进 程 Pj接 收 到 消 息(reguest,Ti,i)时,执行以下操作: 1)如果进程Pj 既不是资源的申请者,又不是资源的占有者,立即返回一个回答消息(reply,Tj ,j)给进程Pi 。 2)如果进程P
29、j 是资源申请者,并满足条件: Ti Tj 或 Ti =Tj i j 条件时返回一个回答消息(reply,Tj ,j)给进程Pi ;否则推迟发送reply响应。分布式同步算法(10) G.Ricart算法 (3) (3)当进程Pi已收到了所有其他进程的回答消息reply时,便可以访问该临界资源; (4)占有资源的进程Pi 在释放资源时,对那些曾经接到过它们的申请消息,但未予回答的进程补送回答reply响应。分布式同步算法(11) G.Ricart算法 (4)算法作了改进,试图通过消除release消息,使进程访问资源时,仅需发送2(N-1)个消息。分布式同步算法(12) G.Ricart算法
30、(5) 分布式同步算法(13) (3) 令牌环算法 (1)令牌实现进程互斥的过程:令牌在初始化后,被逻辑环中任意一个进程获得,这样令牌开始绕环移动,它从进程K传递给它的下家进程K+1,可按点到点方式进行传递。分布式同步算法(14) 令牌环算法 (2)当进程从上家手中得到令牌时,它就检查它欲进入的临界区,如果临界区是开放的,则该进程进入临界区,访问共享资源。当该进程退出临界区时,便把令牌传送给它的下家,不允许使用同一张令牌进入第二个临界区。 分布式同步算法(15) 令牌环算法 (3)当一个进程得到了上家传递来的令牌,又不想进入临界区,就把令牌往下传。这样一来,如果没有进程想进入临界区时,令牌就会
31、在逻辑环中高速循环运行。8.3.5分布系统中的死锁 死锁类型 资源死锁 通信死锁 分布式死锁检测与预防(1)集中式死锁检测每台计算机都有一张进程资源图,一台中心计算机上拥有一张整个系统的进程资源图,检测进程检测到环路时,就中止一个进程以解决死锁。分布式死锁检测与预防(2)集中式死锁检测检测进程适时地获得从各个结点发送的更新信息: 一是每当资源图中加入或删除一条弧时,相应的变动消息就发送给检测进程; 二是每个进程可周期性把自己从上次更新后新添加或删除弧的信息发送给检测进程; 三是在需要的时候检测进程主动去请求更新信息。分布式死锁检测与预防(3)假死锁问题(1) 考虑进程A和B运行在结点1上,C运
32、行在结点2上;共有三种资源R,S和T;A拥有S请求R,但R被B占用;B使用R;C使用T请分布式死锁检测与预防(4) 假死锁问题(2)ASRB结点1 (a)SCT结点2 (b)ASRBCT检测程序 (c)ASRBCT检测程序 (d)为进程为资源进 程占 用资源进 程申 请资源分布式死锁检测与预防(5)分布式死锁检测(1) 具体实现方法如下:(1)在每个结点中都设置一个死锁检测进程;(2)必须对请求和释放资源的消息进行排队,每个消息上附加逻辑时钟;分布式死锁检测与预防(6)分布式死锁检测(2) (3)当进程欲存取某资源时,它应先向所有其它进程发送请求信息,在获得这些进程的响应信息后,才把请求资源的
33、消息发给管理该资源的进程;(4)每个进程应将资源的已分配情况通知所有进程。分布式死锁检测与预防(7)分布式死锁检测(3) 防止网络中出现死锁,可以采取破坏产生死锁的四个必要条件之一的方法来实现。第一种方法可以采用静态分配方法 第二种方法是按序分配第三种方法主要解决报之组装、存储和转发造成缓冲区溢出而产生的死锁 8.3.6分布式文件系统(1) 分布式文件系统具有以下特点:网络透明性 客户访问远程文件服务器上的文件的操作如同访问本机文件的操作一样;位置透明性 客户通过文件名访问文件,但不能知道该文件在网络中的位置;同理文件的物理位置变了,但文件的名字不变。分布式文件系统(2) 文件服务器是运行在网
34、络中某台机器上的一个实现文件服务的进程,系统可以有一个或多个文件服务器,但客户并不知道有多个文件服务器及它们的位置和功能。客户所知道的只是当调用文件服务中某个具体过程时,所要求的工作以某种方式执行,并返回所要求的结果。 分布式文件系统的组成(1)网络文件系统协议 远程过程调用协议 扩展数据表达(XDR) 网络文件系统服务器代码网络文件系统客户机代码安装协议分布式文件系统的组成(2)服务器监听进程 服务器安装进程 客户机I/O进程 网络锁定管理器和状态监视器 分布式文件体系结构 分布式文件系统的体系结构多数采 用C/S模式,需要解决命名透明性, 机器名+路径名来访问文件; 将远程文件系统安装到本
35、机文件目录上 让所有机器上看起来有相同的单一名字空间 网络文件系统NFS(1)客户客户调用层虚拟文件系统层本地操作系统NFS客户发往服务器的消息本地本地磁盘磁盘服务器虚拟文件系统层本地操作系统NFS服务器客户端发来的消息本地本地磁盘磁盘网络 NFS层次结构网络文件系统NFS(2) NFS的结构 NFS基本思想是让任意组合的客户机和服务器共享一个公共的文件系统。 NFS服务器输出目录,而客户机安装目录。 网络文件系统NFS(3) NFS的协议 NFS的第一个协议是处理安装问题。 NFS的第二个协议用于文件和目录的访问。 网络文件系统NFS(5) NFS的实现 NFS实现分成三层, 顶层是系统调用
36、层,处理open、read、close等调用 第二层虚拟文件系统(VFS) 第三层本地操作系统 网络文件系统NFS(6) NFS的使用 (1)(1)安装(安装(MountMount) (2) (2)打开(打开(OpenOpen) (3) (3)读读/ /写(写(Read/WriteRead/Write) 8.3.7进程迁移(1)1 数据迁移2计算迁移3进程迁移进程迁移(2) 下列原因需要引入进程迁移: (1)负载均衡。 (2)通信性能。 (3)加速计算。 (4)特殊功能和资源的使用进程迁移机制(1) 主要负责解决:(1)由谁来发动进程迁移?(2)如何进行进程迁移? (3) 如何处理未完成的信号
37、和消息等问题。进程迁移的过程并不复杂,但需要化费一定的通信开销,困难在于进程地址空间和己经打开的文件。进程迁移机制(2) 操作系统均采用虚拟存储技术,对于进程地址空间可使用两种办法: 一是传送整个地址空间二是仅传送内存中的那部分地址空间三是预先复制 进程迁移机制(3) 如果被迁移的进程还打开了系统中的某些文件,可用两种方法处理:一种是将已打开的文件随进程一起迁移;第二种是暂时不迁移文件,仅当迁移后的进程又提出对该文件的访问要求时,再进行迁进程迁移机制(4)进程由源系统向目标系统迁移期间,可能会有进程继续向源系统中已迁移进程发来消息或信号,这时应如何处理?一种可行的方法是在源系统中提供暂时保存这类信息的机构,还需保存被迁移进程所在目标系统的新地址,当被迁移进程已在目标系统中被建成新进程后,源系统便可将已收到的相关信息转发至目标系统。进程迁移机制(5) IBM的AIX进程迁移步骤: (1)当进程决定迁移自身时,它先选择一个目标机,发一个远程消息,该消息带有进程的部分映象及打开文件信息;(2)在接收端,内核服务进程生成一个子进程,将这些信息交给它;(3)这个新进程收集完成其操作所需的环境、数据、变量和栈信息。(4)迁移完成时通知源进程,源进程就发一个最后完成消息给新进程,然后破坏自己。