一种自适应的系统管理方法转让专利

申请号 : CN200410004120.5

文献号 : CN1652616B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶媲书叶沣

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种自适应的系统管理方法,该方法为:从系统提供的同类的多个管理程序中选择第一管理程序并运行;记录运行第一管理程序时系统各模块的运行情况;根据记录的系统各模块的运行情况,从所述多个管理程序中为各模块选择适合运行环境的第二管理程序;运行所述第二管理程序进行系统管理。

权利要求 :

1.一种自适应的系统管理方法,其特征在于包括步骤:

A、从系统提供的多个内存管理程序中选择第一内存管理程序并运行;

B、记录运行第一内存管理程序时系统使用内存的各模块每次申请内存的大小和释放情况;

C、根据记录的系统各模块的内存申请和释放运行情况,从所述多个内存管理程序中为使用内存的各模块选择适合运行环境的第二内存管理程序;

D、运行所述第二内存管理程序进行内存管理。

2.如权利要求1所述的方法,其特征在于,所述第一内存管理程序为系统提供的通用内存管理程序。

3.如权利要求1所述的方法,其特征在于,所述第一内存管理程序从多个内存管理程序中随机选择。

4.如权利要求1所述的方法,其特征在于,系统各模块运行第二内存管理程序时不再记录运行情况。

5.如权利要求1所述的方法,其特征在于,开始运行第二内存管理程序时停止记录系统的运行情况,并在运行一定周期后将第二内存管理程序作为第一内存管理程序,重新继续步骤B。

6.如权利要求1所述的方法,其特征在于,在系统提供的内存申请接口中设置分别指向记录函数和第一内存管理程序的指针,在系统提供的内存释放接口中设置分别指向记录函数和第一内存管理程序的指针,当内存申请接口和内存释放接口中指向记录函数的指针被调用,由该记录函数记录各模块的运行中内存申请和内存释放的情况。

7.如权利要求6所述的方法,其特征在于,在运行第二内存管理程序时,将内存申请接口和内存释放接口中指向记录函数的指针置空,将指向第一内存管理程序的指针设置为指向第二内存管理程序。

说明书 :

技术领域

本发明涉及通信系统中的管理方法,特别涉及一种自适应的系统管理方法。

背景技术

电信软件系统中,要求系统运行要可控、实时,这就需要对系统进行管理,比如对内存管理(申请和释放)的时间一定要可控,保证在最差情况下也不会变得无法接受一不可控。
为了保证整个系统的可控,一般是对系统管理算法进行改进,使用最合适算法来保证效率或者利用率。但由于系统的复杂,系统的运行情况千差万别,通常没有一种算法可以保证系统在各个运行场合中就一定处于最佳状态。
为了解决上述问题,一种方法是根据估计提供一个在各个环境下都比较通用的算法,让系统各模块在各个运行时刻统一使用。虽然这种方法简单,但是系统运行复杂多变,难于找出对各个模块各运行时候都适宜的算法,也很难估计出系统实际的运行情况,因而导致在某些情况下系统的最差情况变得不可接受,甚至导致系统崩溃。
另外一种权衡方法是在系统中提供多种管理算法,事先规定系统使用某种管理算法。但由于算法的提供者和使用者通常都是分离的,造成使用者不清楚算法的适应场合,有可能误用造成效果更差,更有可能是因为算法使用者自身也不清楚系统在实际运行情况是符合哪种算法模型的而无法有效的作出选择,导致该方案实际上也难于使用。同时,不管是沟通、培训或者是对程序修改,都会带来很大的工作量和增加成本。

发明内容

本发明的目的在于提供一种自适应的系统管理方法,以解决现有技术中选择的系统管理方法不能适应系统实际运行情况的问题。
本发明提供下述技术方案:
一种自适应的系统管理方法,该方法包括步骤:
A、从系统提供的多个内存管理程序中选择第一内存管理程序并运行;
B、记录运行第一内存管理程序时系统使用内存的各模块每次申请内存的大小和释放情况;
C、根据记录的系统各模块的内存申请和释放运行情况,从所述多种内存管理程序中为使用内存的各模块选择适合运行环境的第二内存管理程序;
D、运行所述第二内存管理程序进行内存管理。
根据上述方法:
所述第一内存管理程序为系统提供的通用内存管理程序。
所述第一内存管理程序从多个内存管理程序中随机选择。
系统各模块运行第二内存管理程序时不再记录运行情况。
开始运行第二内存管理程序时停止记录系统的运行情况,并在运行一定周期后将第二内存管理程序作为第一内存管理程序,重新继续步骤B。
在系统提供的内存申请接口中设置分别指向记录函数和第一内存管理程序的指针,在系统提供的内存释放接口中设置分别指向记录函数和第一内存管理程序的指针,当内存申请接口和内存释放接口中指向记录函数的指针被调用,由该记录函数记录各模块的运行中内存申请和内存释放的情况。
在运行第二内存管理程序时,将内存申请接口和内存释放接口中指向记录函数的指针置空,将指向第一内存管理程序的指针设置为指向第二内存管理程序。
在系统提供的内存申请接口和内存释放接口中分别设置指向记录函数的指针,当调用内存申请接口和内存释放接口运行第一内存管理程序时,该记录函数先被调用,并由该记录函数调用第一内存管理程序;当运行第二内存管理程序时,将所述指针直接指向该第二内存管理程序。
本发明通过自动记录运行情况,并根据运行情况选择合适的系统管理程序,使管理程序制定者可以集中精力考虑自己的业务,而不必考虑如何选择管理程序,从而可以提工作效率,同时也能保证系统运行更为科学合理。

附图说明

图1为交换机系统内存管理示意图;
图2为本发明实施例的流程图。

具体实施方式

在本发明中,为系统提供多个同类的管理程序,首先从多个管理程序中选择第一管理程序进行运行,并调用记录程序记录运行第一管理程序时系统的运行情况;在第一管理程序运行一定周期后,根据记录的运行情况,从所述多种管理程序中选择适合系统运行环境的第二管理程序运行,通过运行第二管理程序管理系统。
为了保证在调用第一管理程序时能及时调用记录程序,可通过下面两种方式实现:
1、在系统提供的管理程序调用接口中设置分别指向记录程序和第一管理程序的指针,当调用管理程序调用接口运行第一管理程序时使记录程序被调用,由该记录程序记录各模块的运行情况。当运行第二管理程序时,将指向第一管理程序的指针设置为指向该第二管理程序;如果此时不需要记录各模块的运行情况,则将指向记录程序的指针置空即可。
2、在系统提供的管理程序调用接口中只设置指向记录程序的指针,当调用管理程序调用接口运行第一管理程序时,该记录程序先被调用,并由该记录程序调用第一管理程序;当运行第二管理程序时,将所述指针直接指向该第二管理程序。
下面以管理程序为内存管理程序为例对本发明进行详细说明:
参阅图1所示,在交换机系统中,整个系统分为很多模块,比如通讯模块,监控模块等。每个模块都需要使用内存,每个模块对内存使用情况也都不相同,而各个模块的内存申请和释放效率对整个系统效率取了决定性的作用。内存的分配和释放等由内存管理程序模块完成。
对不同内存使用情况,应该要使用不同算法来进行内存管理才能保证内存管理的高效率和高利用率。为了保证各个模块合理使用内存,提高整个交换机系统的效率和系统对内存的合理使用。交换机的内存管理提供多种算法,如静态内存算法,块内存算法,DOS内存算法,每一种算法即为一个内存管理程序。各种算法都有自己的合适应用场合,比如块内存适合每次申请长度固定的动态申请,效率比较高,但如果申请长度在很大范围内随机出现,则会造成严重的内存浪费。
参阅图2所示的流程图,系统按下述步骤选择适合实际运行情况的内存管理程序:
步骤10:从系统提供的多个内存管理程序中选择第一内存管理程序运行;
第一内存管理程序可以是一个通用的内存管理程序,也可以是任意选择的一个内存管理程序。
步骤20:由记录函数记录系统运行时各模块每次申请内存大小,释放情况。
由系统提供内存申请接口和内存释放接口,在内存申请和释放接口中分别有两个函数指针A、B。申请接口中的指针A用来指向记录函数,指针B用来指向实际的内存申请算法程序;释放接口中的指针A也用来指向记录函数,指针B用来指向内存释放算法程序。申请接口中包含要申请长度和申请模块的信息,不需选择算法;释放接口中还包含要释放的内存地址指针。
初始时使申请接口和释放接口中的指针A均指向记录函数,使申请接口和释放接口中的指针B分别指向第一内存管理程序的内存申请和内存释放算法程序。
当有内存申请和内存释放接口被调用时,指针A被调用,也就是记录函数被调用,由记录函数记录运行中内存申请和内存释放的情况;同时,指针B也被调用,完成实际的内存申请或内存释放操作。
步骤30:经过一段时间的运行,根据记录下来的各模块的内存申请和释放运行情况,判断各模块在本运行环境下应该使用的最佳算法,即第二内存管理程序。
通过调用系统提供的判断函数,根据记录函数记录的内存申请、内存释放情况和当前内存使用情况与各种算法的使用范围相比较,判断记录到的各个情况分别适合使用哪种算法。
步骤40:运行第二内存管理程序进行内存管理。
在确定第二内存程序后,把申请、释放接口中的指针B动态指向各模块合理的管理算法程序,同时把申请和释放接口中的A指针置空,在以后申请释放时不再记录。
在步骤20中,提供的接口也可以只使用一个函数指针,该指针一开始指向记录函数,并由记录函数调用第一内存管理算法程序。当判断出各模块应该使用的合理的第二内存管理程序时,就把该指针直接指向该程序。另外,接口中也可以不包含模块信息,即接口只包含需要申请长度信息。在接口中实现中,通过取任务号(或者线程号)等程序运行环境信息,自动判断模块信息。
如果运行情况不是简单周期变化而是复杂动态变化,可以在运行第二内存管理程序一段时间后,把指针A重新指向记录函数继续记录运行情况,将第二内存管理程序作为第一内存管理程序,根据记录的运行情况,按上述步骤重新选择各模块使用的合适算法,即第二内存管理程序。
以上以内存管理程序为例对本发明进行说明,但并不仅限于此,对系统的其他资源管理,如路由分配算法、根据网络情况动态修正路由算法等均适用,其原理相同,即在系统实际运行中记录运行情况,并根据实际运行情况动态进行软件流程适配。