前台程序的调配系统及实现方法
技术领域
本发明涉及一种计算机资源调配系统及方法,特别是涉及一种前台程序的调配系统及实现方法。
背景技术
随着软件的爆发式增长,现在程序常驻在用户的内存中。由于递增的进程数使用有限的计算机资源,所以必然使得用户使用体验上感觉机器越来越“慢”(或者越来越“卡”)。
由于Windows操作系统本身的线程调度策略是相对公平的一种调度策略。同等优先级下,每个进程能获得的计算机资源相对平均,但是一些前台程序却需要比较高的响应,一旦系统无法满足一些前台程序的响应,马上就会出现“程序没有响应”的提示。
发明内容
本发明要解决的技术问题是提供一种前台程序的调配系统及实现方法。通过干预Windows操作系统资源调度的方式【包括CPU(Central ProcessingUnit,中央处理器)资源、内存资源、网络资源等】,使得前台程序获得更多的计算机资源,从而达到前台程序顺畅运行的目的,提升了计算机内部性能的技术效果。
为解决上述技术问题,本发明的前台程序的调配系统,包括:
信息收集模块,用于完成进程信息的收集,并将收集到的进程信息存贮到进程信息库;
基础功能模块,用于提供资源调配模块限制系统资源时使用的基本功能,如提供包括限制CPU使用率,限制网络使用率和内存使用量的基础功能;
资源调配模块,用于读取进程信息库中的进程信息,生成相应策略,并使用基础功能模块提供的功能完成前台程序的调配,达到资源平衡。其中,相应策略中,是根据进程信息的类别不同,进行不同的资源处理策略,包括:
对于占用CPU资源超过用户预设定阀值的进程,采用夺取该进程的时间片的方式;
对于占用网络资源超过用户预设定阀值的进程,采用限制其网络使用的策略;
对于占用内存资源超过用户预设定阀值的进程,采用将要保护起来的前台程序的内存锁定到物理内存上。
利用上述的前台程序的调配系统,其实现方法包括步骤:
(1)利用信息收集模块,启动收集进程信息,并将信息分类排序,存贮到进程信息库;
(2)利用资源调配模块,读取进程信息库中的进程信息,生成相应策略,并使用基础功能模块提供的功能完成前台程序的调配,达到资源平衡。
所述步骤(1)中的进程信息的类别包括:占用CPU、网络和内存资源的进程信息;所述信息分类排序是按照进程信息对资源占用率的高低进行分类排序。所述步骤(2)中的使用基础功能模块提供的功能,包括:
在占用CPU资源的处理策略中,基础功能模块会启动一个线程,不停的让占用CPU资源超过用户预设定阀值的进程进入睡眠(Sleep)状态,从而让出时间片;
在占用网络资源的处理策略中,使用基础功能模块提供的限制某个进程网络吞吐流量,从而实现让出带宽;
在占用内存资源的处理策略中,使用基础功能模块提供的锁定前台程序的功能。
本发明的原理:通过收集当前环境的进程信息,根据当前进程的使用情况分别针对CPU、内存和网络的使用情况进行排序,将以上资源占用率较高的进程作为目标程序传递给处理模块进行处理,采取限制其资源占用的策略。本发明通过对计算机资源进行再次调度,从而平衡当前计算机资源,使得前台程序能获得较多的资源,避免前台程序无法响应。可以简单的理解成,在系统资源调度与应用程序之间做了一个中间层(如图1所示),使得系统资源在分配到具体每个进程之前,再进行一次分配,此次分配则更侧重于前台程序。当然,进行再分配的手段不仅仅是在系统与程序之间做一个中间层,也会使用抢占或者限制等方式去夺取或者使资源占用率高的进程被动的让出资源。
本发明通过收集当前系统信息,根据收集到的信息做出适当策略,然后启动功能模块,按照策略对资源进行重新调配。因此,本发明可以达到以下有益效果:
1、通过影响Windows操作系统的资源调度,使得前台程序快速的得到响应,避免出现“程序没有响应”的情况;
2、本发明没有终止和关闭任何进程,只是暂停或者减少进程的运行时间或者内存使用率等。因此,相对于现有的利用第三方的应用程序以杀死进程、进行内存整理和关闭一些系统服务的方式获得更多计算机资源的方案,本发明更加友好。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是本发明的原理示意图;
图2是本发明的系统实现方法流程图。
具体实施方式
本发明的前台程序的调配系统,是根据程序预设置的,是以通过干预Windows操作系统资源调度的方式进行,该系统包括:
信息收集模块,用于完成进程信息的收集,并将收集到的进程信息存贮到进程信息库;其中,该进程信息包括:占用CPU、网络和内存资源的进程信息;进程信息库设置于该信息收集模块中;
基础功能模块,用于提供资源调配模块限制系统资源时使用的基本的功能,由资源调配模块直接调用;基础功能模块提供具体限制CPU使用率,限制网络使用率和内存使用量的基础功能,但是具体如何限制是由资源调配模块根据信息收集模块收集到的信息,制定相关的策略,最后调用基础模式执行策略;
资源调配模块,用于读取进程信息库中的进程信息,生成相关策略,并能使用基础功能模块提供的功能完成前台程序的调配,达到资源平衡。
利用上述前台程序的调配系统,其实现方法,如图2所示,包括步骤:
(1)利用信息收集模块,启动收集占用CPU、网络和内存资源的进程信息,并将这些信息按照所属类别和对资源占用率的高低进行分类排序后,存贮到进程信息库。
所述占用率是根据用户预先设置的,通常情况下,有一个资源的默认阀值,可以根据机器的情况大致计算出这个阀值。例如CPU、内存和网络的占用率超过50%时,进行资源平衡。但是用户可以通过前台程序自定义该阀值。
(2)利用资源调配模块,读取进程信息库中的占用CPU、网络和内存资源的进程信息,生成相应策略,并使用基础功能模块提供的功能完成前台程序的调配,达到资源平衡。
其中,对于占用CPU资源的进程信息的资源处理策略为:主要是抢夺占用CPU资源超过预设定阀值(高CPU占用率)的进程的CPU时间的方式。通过基础功能库提供的限制高CPU进程的方法,即基础功能模块会启动一个线程,不停的让高CPU占用率的进程进入睡眠(Sleep)状态,使得高CPU占用率的进程被动的释放出时间片,减少高CPU占用率进程的运行机会,从而减少其资源占用率。
对于占用网络资源的进程信息的资源处理策略为:发现进程网络资源超过预设定阀值时,通过基础功能库的提供的限制某个进程网络吞吐流量,从而实现让出带宽,降低其网络使用率。
对于占用内存资源的进程信息的资源处理策略为:由于WINDOWS内存管理机制相对比较复杂,通过基础功能模块提供的锁定前台程序的功能,以内存使用的锁定前台程序的方式,使得前台程序的内存长期的驻留在物理内存页上,减少其内存与磁盘之间分页切换带来的磁盘1O(Input/Output,输入/输出)消耗,从而提高内存命中率,使得前台程序可以快速响应。
但需要注意的是,以上的处理策略并不是完全独立的,它们具有高度的协调性,协作完成资源的重新分配。
关于解决方案的协调性说明如下:
平衡各个进程资源时,因为资源有一定的关联性,例如:高网络使用率的情况下必然进程有一定的内存消耗——因为接受大量网络数据包需要内存作缓冲。然后处理这些网络包需要消耗CPU时间片。所以,当在处理网络进程的时候,可能还会根据其想限制的网络使用率的情况,适当的降低该进程的CPU资源和内存资源,使得其和网络使用率匹配,因此,既可满足网络包接受和运算的需要,又不会过多的浪费资源。
本发明的调配系统是通过读取用户预设置的参数配置信息,根据用户设置,执行适当的策略,从而使得资源得到重分配。具体方法是通过收集当前环境的进程信息,根据当前进程的使用情况分别针对CPU、内存和网络的使用情况进行排序,将以上资源占用率较高的进程作为目标程序传递给处理模块进行处理,并采取限制其资源占用的策略,使得前台程序获得更多的计算机资源,从而达到前台程序顺畅运行的目的,提升了计算机内部性能的技术效果。