《资源管理策略》PPT课件.ppt
1,第四章 资源管理策略,2,本章内容,1.资源2.可重用资源管理算法3.消耗性资源管理算法,3,4.1 资源,资源的划分:CPU资源;内存资源;系统资源;私有资源共享资源,4,CPU资源,CPU资源实际上指的是CPU使用率,软件运行时都要通过CPU进行数据运算,占用一定的CPU执行时间,CPU使用率是衡量软硬件设计的重要指标。某些设计不完善或陷入死循环的程序,往往会让系统处于无反应状态,原因就是它们的CPU使用率很高。,5,4.1.2 内存资源,内存资源,实际上就是指该程序运行时须要占用多少内存空间,依据软件设计的优化程度、功能强弱等因素,有的只需几百KB,有的却需要几十MB甚至数百MB,通常比系统资源要大得多。,6,4.1.3系统资源,当应用程序运行时,内存需要一块空间来追踪、保留正在执行的程序的状态,比如按钮、光标、菜单位置和位图、窗口状态等,存储这些信息的空间有个专有名词来形容,那就是我们熟悉的“系统资源”,而存储这些信息的空间是一种称为“堆”的内存块,你可以把“堆”理解成采用特殊机制管理的内存空间。,7,4.1.4私有资源,私有资源:指封装在Agent中为Agent所独立占用的资源,这类资源由Agent内部管理,对外界透明。对这类资源的使用限于使用占有此资源的Agent所提供的服务。,8,4.1.5共享资源,共享资源是指环境中为所有Agent所共享的资源。根据资源的可用性,我们又可分为可重用资源与消耗性资源。可重用资源是可多次使用的资源。消耗性资源指一经某Agent使用后就被消耗掉的资源。,9,4.2可重用资源管理的协商算法,1.问题:在Agent执行过程中,Agent可能试图使用其他Agent已在使用或将要使用的资源。我们将这种情况定义为冲突。解决冲突的方法一般有两种:(1)只要没有冲突发生,Agent就继续执行其计划。当冲突发生时,Agent通过某种协调、协商算法决定是继续执行还是取消它的执行计划。(2)在执行计划前,Agent找出它们计划中可能发生冲突的地方,并相互协调以预防冲突的发生。,10,4.2可重用资源管理的协商算法,1.问题:在Agent执行过程中,Agent可能试图使用其他Agent已在使用或将要使用的资源。我们将这种情况定义为冲突。解决冲突的方法一般有两种:(1)只要没有冲突发生,Agent就继续执行其计划。当冲突发生时,Agent通过某种协调、协商算法决定是继续执行还是取消它的执行计划。(2)在执行计划前,Agent找出它们计划中可能发生冲突的地方,并相互协调以预防冲突的发生。,11,4.2可重用资源管理的协商算法,1.问题:在Agent执行过程中,Agent可能试图使用其他Agent已在使用或将要使用的资源。我们将这种情况定义为冲突。解决冲突的方法一般有两种:(1)只要没有冲突发生,Agent就继续执行其计划。当冲突发生时,Agent通过某种协调、协商算法决定是继续执行还是取消它的执行计划。(2)在执行计划前,Agent找出它们计划中可能发生冲突的地方,并相互协调以预防冲突的发生。,12,4.2可重用资源管理的协商算法,1.问题:在Agent执行过程中,Agent可能试图使用其他Agent已在使用或将要使用的资源。我们将这种情况定义为冲突。解决冲突的方法一般有两种:(1)只要没有冲突发生,Agent就继续执行其计划。当冲突发生时,Agent通过某种协调、协商算法决定是继续执行还是取消它的执行计划。(2)在执行计划前,Agent找出它们计划中可能发生冲突的地方,并相互协调以预防冲突的发生。,13,4.2可重用资源管理的协商算法,在数据库系统中,一般都采取第一种方法,通过事务的概念来解决冲突。通过提交或回滚来实现事务处理。这种事务处理机制是假设在冲突发生时,所有已执行的操作都可撤回的。但在现实中,并不是所有的操作都可被撤回。例如:两架飞机碰撞。所以在Agent分布式环境中,宜采用第二种方法,Agent为避免冲突,在执行前,相互合作地调整其计划。,14,4.2可重用资源管理的协商算法,2.算法假设:(1)每个Agent有不同的目标;(2)Agent能动态地制定其计划;(3)所有的Agent知道它们计划中所用的操作;(4)每个Agent通过使用可重用资源或可消耗性资源来实现其目标;(5)Agent不知道其他Agent的目标;(6)Agent不一定有相同的知识。,15,4.2可重用资源管理的协商算法,3.算法符号:(1)定义Behavior(A,n)为Agent A的一个行为;(2)定义Acti 为某个计划中的一个操作;(3)定义S(A,n)为Agent A的内部状态;(4)定义PlanSet(A)为计划集;(5)Send_Plan(PlanSet):向另一个Agent发送其计划集;(6)Sent_Value(PlanSet,EvaluateValue):另一个Agent发送其计划集及评估值;,16,4.2可重用资源管理的协商算法,(7)accept(PlanSet):向另一个Agent发送可接受的计划集;(8)reject(PlanSet):向另一个Agent表示计划集不可接受,并发送自己的计划集给它;(9)query_information(state(resource):询问是否存在如此状态的资源;(10)inform(Resource):当Agent收到一个query_information消息时,如果存在如此状态的资源,则返回资源名,否则返回NIL。,17,4.2可重用资源管理的协商算法,4.算法基本思想:Agent通过交换和评估它们的计划,Agent之间将达成协议,制定出互不干扰且具有最高效率的计划。在协调过程中,如果没有冲突,所有Agent各自执行它原来的计划。如果存在两个Agent的计划需要同时使用某个资源,冲突就发生了。这时,Agent将相互就其计划中与冲突相关的部分进行协调,从而求得冲突解决。,18,4.2可重用资源管理的协商算法,5.算法描述(A与B为Agent):(1)A向B发送一个Send_Plan(PlanSet(A)消息,将其计划集提供给B。(2)当B收到上述消息后,在PlanSet(A)中寻找与它的计划相吻合的操作。为此,定义一个匹配函数match(Behavior(A,i),Behavior(B,j),此函数比较两个操作序列,找出其中等价的部分。B选择在Behavior中具有最多操作的元素,并,19,4.2可重用资源管理的协商算法,向A发送accept,表示接受包含此操作序列的计划,A则采用此计划,与B达成协议,算法结束,如果Behavior为空,则B对PlanSet(A)中的所有计划进行评估。(3)将执行其他Agent计划后Agent所处的状态称为后状态(PostState)。Agent在收到另一个Agnet的计划后制定一个从后状态到其目标的新计划,并比较这个新计划与其计划所包含的操作数,从而对新计划进行评估。,20,4.2可重用资源管理的协商算法,若评估值小于或等0,Agent接受此计划,算法结束。否则继续执行下(4)步。(4)如果算法执行到此处,则A的所有计划都不能为B所接受,B向A发送一个reject(PlanSet(B)消息,通知A没有可接受的计划。A在接收到此消息后,也同样用本算法第(2)、(3)步选择B的计划集中可接受的计划。(5)如果存在可接受的计划,A向B发送一个accept(Behavior)消息,算法结束。否则A选择其中评估值最小的计划,并通过Sent_Value()将,21,4.2可重用资源管理的协商算法,此计划及其评估值发送给B,B在收到此消息后将接收到的值与其在算法第(3)步中得到最小值进行比较、并接受与较小的值相关的计划,算法结束。,22,4.3 消耗性资源管理算法,(1)如果有另一个可用的替代资源,则A重新制定一个使用此替代资源的计划,算法结束。否则执行第(2)步。(2)A向B发送一个query_information(state(resource)消息,询问是否存在可用的替代资源。(3)如果存在这样的替代资源,B向A发送一个Inform(Resource)消息告知替,23,4.3 消耗性资源管理算法,代资源名,否则B向A发送一个query_information消息,询问是否有符合B的要求的替代资源。(4)如果A收到的是B发来的inform消息,则A制定一个使用该替代资源的新计划,否则A搜寻满足B要求的资源。如果存在,则A向B发送一个inform(resource)消息,通知存在其所需的资源;否则向B发送一个inform(NIL)消息。(5)如果B收到了替代资源名,则制定一个使用该替代资源的新计划,否则随机决定谁使用冲突的资源。,