高级操作系统课件-第三章分布式进程管理.ppt
《高级操作系统课件-第三章分布式进程管理.ppt》由会员分享,可在线阅读,更多相关《高级操作系统课件-第三章分布式进程管理.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 分布式进程管理分布式进程管理线程线程 代码迁移代码迁移处理器任务分配处理器任务分配软件代理软件代理进进 程程定义定义:执行中的程序:执行中的程序进程控制块(进程控制块(PCB)进程的状态进程的状态线线 程程未引入线程前的进程:资源分配单位(存储器、文件)未引入线程前的进程:资源分配单位(存储器、文件)和和CPU调度(分配)单位。调度(分配)单位。线程:成为线程:成为CPU调度单位,而进程只作为其他资源分配单位。调度单位,而进程只作为其他资源分配单位。线程只拥有必不可少的资源,如:线程状态、寄存器上下文和栈线程只拥有必不可少的资源,如:线程状态、寄存器上下文和栈同样具有就绪、阻塞和
2、执行三种基本状态同样具有就绪、阻塞和执行三种基本状态所有线程必须同时挂起,进程的终止导致它包含的所有线程的终止所有线程必须同时挂起,进程的终止导致它包含的所有线程的终止线程的优点:减小并发执行的时间和空间开销(线程的创建、线程的优点:减小并发执行的时间和空间开销(线程的创建、退出和调度),因此容许在系统中建立更多的线程来提高并退出和调度),因此容许在系统中建立更多的线程来提高并发程度。发程度。线程的创建时间比进程短;线程的创建时间比进程短;线程的终止时间比进程短;线程的终止时间比进程短;同进程内的线程切换时间比进程短;同进程内的线程切换时间比进程短;由于同进程内线程间共享内存和文件资源,可直接
3、进行不通过内核的由于同进程内线程间共享内存和文件资源,可直接进行不通过内核的通信通信;进程与线程的关系进程与线程的关系one processone threadmultiple processesone thread per processone processmultiple threadsmultiple processesmultiple threads per process进程和线程的比较进程和线程的比较地址空间和其他资源(如打开文件):进程间相互独地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享该进程地址空间和其他立,同一进程的各线程间共享该进程地址空间和其
4、他资源某进程内的线程在其他进程不可见资源某进程内的线程在其他进程不可见通信:进程间通信通过通信:进程间通信通过IPC,线程间可以直接读写进线程间可以直接读写进程数据段(如全局变量)来进行通信程数据段(如全局变量)来进行通信需要进程同需要进程同步和互斥手段的辅助,以保证数据的一致性步和互斥手段的辅助,以保证数据的一致性调度:线程上下文切换比进程上下文切换要快得多;调度:线程上下文切换比进程上下文切换要快得多;结论:结论:多线程能提高性能多线程能提高性能线程不像进程那样彼此隔离,并受到系统自动提供的保护,线程不像进程那样彼此隔离,并受到系统自动提供的保护,因此多线程应用程序开发需要付出更多努力因此
5、多线程应用程序开发需要付出更多努力非分布式系统中线程的使用非分布式系统中线程的使用使用多线程的优点:使用多线程的优点:在某线程阻塞时,其他线程可以继续工作在某线程阻塞时,其他线程可以继续工作利用多处理器,并行工作利用多处理器,并行工作缩短缩短IPC通信的时间通信的时间出于软件工程的考虑出于软件工程的考虑:字处理程序字处理程序(用户输入、用户输入、拼写检查、语法检查、文档布局拼写检查、语法检查、文档布局)非分布式系统中线程的使用非分布式系统中线程的使用IPC导致的进程上下文切换导致的进程上下文切换线程实现线程实现用户级线程用户级线程内核级线程内核级线程组合的方法组合的方法用户级线程用户级线程有关
6、线程管理的所有工作由应用程序通过有关线程管理的所有工作由应用程序通过线程库线程库完成,内核不知道线程的存在完成,内核不知道线程的存在应用程序和它的线程被分配给内核管理下应用程序和它的线程被分配给内核管理下的进程的进程优点:优点:创建和销毁线程的开销很小创建和销毁线程的开销很小线程切换不需要内核模式特权,节省切换开销线程切换不需要内核模式特权,节省切换开销调度策略可以是应用程序特定的调度策略可以是应用程序特定的用户级线程可以在任何操作系统中运行,不需要用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程对底层内核进行修改以支持用户级线程缺点:缺点:一个线程被阻塞时,进程中
7、所有线程都被阻塞一个线程被阻塞时,进程中所有线程都被阻塞一个多线程应用程序不能利用多处理技术,内核一个多线程应用程序不能利用多处理技术,内核一次只把一个进程分配给一个处理机一次只把一个进程分配给一个处理机内核级线程内核级线程W2K,Linux,OS/2采用采用有关线程管理的所有工作由内核完成有关线程管理的所有工作由内核完成优点:优点:同一进程内线程可被分配到不同处理器上同一进程内线程可被分配到不同处理器上一线程被阻塞,可切换到另一线程一线程被阻塞,可切换到另一线程缺点:缺点:系统开销大系统开销大组合的方法组合的方法Solaris(最成功、应用最广泛的商业最成功、应用最广泛的商业UNIX版本)版
8、本)操作系统采用操作系统采用结合前两种线程优点,同时减少其缺点结合前两种线程优点,同时减少其缺点线程创建完全在用户空间完成,线程调度和同步在线程创建完全在用户空间完成,线程调度和同步在应用程序内进行应用程序内进行n个用户级线程被映射到一些(少于个用户级线程被映射到一些(少于n个)内核级线个)内核级线程上,程序员可为应用程序和机器调整内核级线程程上,程序员可为应用程序和机器调整内核级线程数目,以达到最佳效果数目,以达到最佳效果组合的方法组合的方法分布式系统中线程的使用分布式系统中线程的使用多线程客户:多线程客户:Web浏览器浏览器多线程服务器多线程服务器多线程服务器多线程服务器以分发器以分发器/
9、工作者组织的多线程服务器工作者组织的多线程服务器代码迁移代码迁移定义:将程序(或执行中的程序)传递到其它计算机定义:将程序(或执行中的程序)传递到其它计算机迁移动机:迁移动机:实现负载均衡实现负载均衡将进程从负载重的系统迁移到负载轻的系统,从而改善整将进程从负载重的系统迁移到负载轻的系统,从而改善整体性能体性能改善通信性能改善通信性能交互密集的进程可迁移到同一个节点执行以减少通信开销交互密集的进程可迁移到同一个节点执行以减少通信开销当进程要处理的数据量较大时,最好将进程迁移到数据所当进程要处理的数据量较大时,最好将进程迁移到数据所在的节点在的节点可用性可用性需长期运行的进程可能因为当前运行机器
10、要关需长期运行的进程可能因为当前运行机器要关闭而需要迁移闭而需要迁移使用特殊功能使用特殊功能可以充分利用特定节点上独有的硬件或软件功可以充分利用特定节点上独有的硬件或软件功能能代码迁移代码迁移客户首先获取必需的软件,然后调用服务器客户首先获取必需的软件,然后调用服务器代码迁移代码迁移-灵活性灵活性代码迁移模型代码迁移模型代码迁移的不同方法代码迁移的不同方法进程组成:进程组成:代码段代码段:正在运行的程序的所有指令:正在运行的程序的所有指令资源段资源段:包含进程需要的外部资源的指针:包含进程需要的外部资源的指针执行段执行段:存储进程的当前执行状态量:私有数据、堆栈和程序计数器:存储进程的当前执行
11、状态量:私有数据、堆栈和程序计数器弱可移动性与强可移动性弱可移动性与强可移动性弱可移动性:只能传输弱可移动性:只能传输代码段代码段以及某些初始化数据,程序以初始状态重新执行,简单以及某些初始化数据,程序以初始状态重新执行,简单强可移动性:还可以传输强可移动性:还可以传输执行段执行段,较难实现,较难实现发送者启动与接收者启动发送者启动与接收者启动发送者启动:计算服务器,客户需要访问服务器资源,客户端需要注册验证发送者启动:计算服务器,客户需要访问服务器资源,客户端需要注册验证接收者启动:可以是匿名的,接收者启动:可以是匿名的,Java applet,提高客户端性能,提高客户端性能迁移与本地资源迁
12、移与本地资源MV:移动资源:移动资源GR:建立全局系统范围内引用:建立全局系统范围内引用CP:复制资源的值:复制资源的值RB:将进程重新绑定到本地同类型资源:将进程重新绑定到本地同类型资源未连接未连接附着连接附着连接紧固连接紧固连接按标志符按标志符按值按值按类型按类型MV(or GR)CP(or MV,GR)RB(or MV,CP)GR(or MV)GR(or CP)RB(or GR,CP)GRGRRB(or GR)资源对机器绑定资源对机器绑定进程对进程对资源绑定资源绑定进程对资源绑定进程对资源绑定:按标志符(按标志符(URL)、按值和按类型)、按值和按类型资源对机器绑定:未连接(数据文件)、
13、附着连接(数据库)和资源对机器绑定:未连接(数据文件)、附着连接(数据库)和紧固连接(本地设备)紧固连接(本地设备)迁移代码时,根据引用本地资源方式不同所采取的不同做法迁移代码时,根据引用本地资源方式不同所采取的不同做法处理器任务分配处理器任务分配分配算法的设计原则分配算法的设计原则分配算法的实现问题分配算法的实现问题分配算法实例分配算法实例分配算法的设计原则分配算法的设计原则分配算法的设计原则:分配算法的设计原则:确定性算法和确定性算法和启发性启发性算法算法集中式算法和集中式算法和分布式分布式算法算法最优化算法和最优化算法和次优化次优化算法算法局部性算法和全局性算法局部性算法和全局性算法发送
14、者启动算法和接收者启动算法发送者启动算法和接收者启动算法局部性算法和全局性算法局部性算法和全局性算法第四个设计问题与迁移策略有关。第四个设计问题与迁移策略有关。当一个新进程被创建时,系统需要决定它是否在创建它的机器当一个新进程被创建时,系统需要决定它是否在创建它的机器上运行。若该机器繁忙,那这个新进程就必须迁移到其它机器上运行。若该机器繁忙,那这个新进程就必须迁移到其它机器上去运行。上去运行。对于是根据本机局部信息还是全局信息来决定新进程是否迁移,对于是根据本机局部信息还是全局信息来决定新进程是否迁移,目前存在着两种学派。目前存在着两种学派。1)一种学派主张简单的局部算法:若机器的负载低于某个
15、)一种学派主张简单的局部算法:若机器的负载低于某个阀值,那么新进程就在本地机器上运行;否则,就不允许该阀值,那么新进程就在本地机器上运行;否则,就不允许该进程在本地上运行。进程在本地上运行。2)另一种学派认为局部算法太武断了。最好在决定新进程)另一种学派认为局部算法太武断了。最好在决定新进程是否在本地机器上执行之前,先收集其它一些机器上的负载是否在本地机器上执行之前,先收集其它一些机器上的负载信息。信息。比较:比较:局部算法简单,但远远达不到最优;局部算法简单,但远远达不到最优;而全局算法需要可能付出巨大的代价来换取一个性能稍微好一而全局算法需要可能付出巨大的代价来换取一个性能稍微好一点的结果
16、。点的结果。发送者启动算法和接收者启动算法发送者启动算法和接收者启动算法最后一个设计问题与定位策略有关。最后一个设计问题与定位策略有关。一旦决定不允许一个进程在本地机器上运行,那一旦决定不允许一个进程在本地机器上运行,那么,迁移算法就必须决定将该进程应该迁移到哪么,迁移算法就必须决定将该进程应该迁移到哪台目的机器上。台目的机器上。显然,迁移算法不能是本地的。它需要通过获得显然,迁移算法不能是本地的。它需要通过获得其它机器上的负载信息来决定迁移的目的机器。其它机器上的负载信息来决定迁移的目的机器。这些负载信息可以通过两种途径来获得。这些负载信息可以通过两种途径来获得。一种是过载者启动的一种是过载
17、者启动的另一种是欠载者启动的另一种是欠载者启动的 过载者启动:由过载者来寻找迁移的目的机器过载者启动:由过载者来寻找迁移的目的机器如图:一个机器超载时,它向其它机器发送求助请求,如图:一个机器超载时,它向其它机器发送求助请求,希望将自己的一些新进程迁移到其它机器上运行。希望将自己的一些新进程迁移到其它机器上运行。欠载者启动:欠载者启动:当一个机器处于空闲状态即欠载状态时,由这台欠载机当一个机器处于空闲状态即欠载状态时,由这台欠载机器来宣布自己可以接收外来的工作。其目的就是寻找一器来宣布自己可以接收外来的工作。其目的就是寻找一台可以给自己增加一些额外工作的机器台可以给自己增加一些额外工作的机器
18、分配算法的实现问题分配算法的实现问题负载的度量负载的度量额外消耗额外消耗复杂性复杂性稳定性稳定性实现问题实现问题1:负载的度量负载的度量基本上,所有的算法都假定每一台机器都知基本上,所有的算法都假定每一台机器都知道它自己的负载,也就是说,它可以判断自道它自己的负载,也就是说,它可以判断自己是超载还是欠载,并且能够告诉其它机器己是超载还是欠载,并且能够告诉其它机器自己的负载。自己的负载。然而,度量一台机器是否超载并不象它看上然而,度量一台机器是否超载并不象它看上去那样简单。去那样简单。负载的度量:方法负载的度量:方法1度量方法度量方法1:以机器上的进程数量作为机器的:以机器上的进程数量作为机器的
19、负载负载优点:简单优点:简单原因:只需要计算机器上的进程数量原因:只需要计算机器上的进程数量缺点:用进程数量的多少来表示机器的负载是不缺点:用进程数量的多少来表示机器的负载是不确切的。确切的。原因:即使在一台空闲机器上,仍然会有一些后原因:即使在一台空闲机器上,仍然会有一些后台监视进程在运行,例如,邮件、新闻、守护进台监视进程在运行,例如,邮件、新闻、守护进程、窗口管理程序以及其它一些进程。程、窗口管理程序以及其它一些进程。负载的度量:方法负载的度量:方法2对度量方法对度量方法1进行如下改进:进行如下改进:只计算正在运行或已经就绪进程的数量。只计算正在运行或已经就绪进程的数量。原因:原因:每一
20、个正在运行或处于就绪状态的进程都会给系统每一个正在运行或处于就绪状态的进程都会给系统增加一定的负载,即便它是一个后台进程。增加一定的负载,即便它是一个后台进程。存在的问题:存在的问题:许多后台守护进程只是定时被唤醒,检查所感兴趣许多后台守护进程只是定时被唤醒,检查所感兴趣的事件是否发生,如果没有,则重新进入睡眠状态。的事件是否发生,如果没有,则重新进入睡眠状态。因此,这类进程只给系统带来很小的负载。因此,这类进程只给系统带来很小的负载。负载的度量:方法负载的度量:方法3直接使用处理机利用率:直接使用处理机利用率:就是处理机繁忙时间在全部时间中(繁忙时间就是处理机繁忙时间在全部时间中(繁忙时间+
21、空闲空闲时间)所占的比例。时间)所占的比例。一个利用率为一个利用率为20%的处理机负载要比利用率为的处理机负载要比利用率为10%的处理的处理机大机大优点:比较合理优点:比较合理原因:兼顾了用户进程和守护进程原因:兼顾了用户进程和守护进程实现问题实现问题2:额外开销:额外开销许多理论上的处理机分配算法都忽略了收集负载许多理论上的处理机分配算法都忽略了收集负载信息以及传送进程的额外开销。信息以及传送进程的额外开销。若一个算法将一个新创建的进程传送到远程机器若一个算法将一个新创建的进程传送到远程机器上运行仅使系统性能提高上运行仅使系统性能提高10%左右,那它最好不左右,那它最好不要这样做,原因是传送
22、进程的开销足以抵消所提要这样做,原因是传送进程的开销足以抵消所提高的性能。高的性能。一个好的算法应该考虑算法本身所消耗的处理机一个好的算法应该考虑算法本身所消耗的处理机时间、内存使用、以及网络带宽等。但很少有算时间、内存使用、以及网络带宽等。但很少有算法能做到这一点,因为它太难了。法能做到这一点,因为它太难了。实现问题实现问题3:复杂性:复杂性在处理机分配算法实现中还必须考虑复杂性。在处理机分配算法实现中还必须考虑复杂性。事实上,所有的研究者只分析、模拟或计算处事实上,所有的研究者只分析、模拟或计算处理机的利用率、网络的使用情况以及响应时间,理机的利用率、网络的使用情况以及响应时间,以此来衡量
23、他们所提出算法的好坏。以此来衡量他们所提出算法的好坏。很少有人考虑软件的复杂性对系统的性能、正很少有人考虑软件的复杂性对系统的性能、正确性和健壮性所产生的影响。算法性能有可能确性和健壮性所产生的影响。算法性能有可能只是比现有的算法稍好一点,却在实现上却复只是比现有的算法稍好一点,却在实现上却复杂得多。杂得多。处理机分配算法的实现问题处理机分配算法的实现问题然而,然而,Eager 等人在等人在1986年所做的研究使追求复年所做的研究使追求复杂和最优算法的人们看到了希望。杂和最优算法的人们看到了希望。他们研究了三个算法,在这三个算法中,所有的他们研究了三个算法,在这三个算法中,所有的机器都测量自己
24、的负载以判断它是否超载。机器都测量自己的负载以判断它是否超载。当一个新进程创建时,创建该进程的机器就会检当一个新进程创建时,创建该进程的机器就会检查自己是否超载,如果是,则它就寻找一台欠载查自己是否超载,如果是,则它就寻找一台欠载的远程机器去运行该进程。这三个算法的不同之的远程机器去运行该进程。这三个算法的不同之处在于寻找远程机器的方法。处在于寻找远程机器的方法。处理机分配算法的实现问题处理机分配算法的实现问题算法算法1随机地选择一台机器,并把新创建的随机地选择一台机器,并把新创建的进程进程传送到该机器上。传送到该机器上。如果该接收机器本身也超载,它也同样随如果该接收机器本身也超载,它也同样随
25、机地选择一台机器并把该进程传送过去。机地选择一台机器并把该进程传送过去。这个过程一直持续到有一台欠载的机器接这个过程一直持续到有一台欠载的机器接收它为止,或者指定计数器溢出停止该进收它为止,或者指定计数器溢出停止该进程的传送程的传送 处理机分配算法的实现问题处理机分配算法的实现问题算法算法2随机地选择一台机器,然后发送一个随机地选择一台机器,然后发送一个信息信息给该机器给该机器询问该机器是超载还是欠载。询问该机器是超载还是欠载。如果该机器欠载,它就接收新创建的进程;否则,如果该机器欠载,它就接收新创建的进程;否则,新进程的创建机器继续随机地选择一台机器并向其新进程的创建机器继续随机地选择一台机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 操作系统 课件 第三 分布式 进程 管理
限制150内