CN106502767A - 一种进程管理方法及其装置 - Google Patents

一种进程管理方法及其装置 Download PDF

Info

Publication number
CN106502767A
CN106502767A CN201510567805.9A CN201510567805A CN106502767A CN 106502767 A CN106502767 A CN 106502767A CN 201510567805 A CN201510567805 A CN 201510567805A CN 106502767 A CN106502767 A CN 106502767A
Authority
CN
China
Prior art keywords
shared resource
group
read
pending
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510567805.9A
Other languages
English (en)
Other versions
CN106502767B (zh
Inventor
邵方
薛林
刘春�
邹小龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN201510567805.9A priority Critical patent/CN106502767B/zh
Publication of CN106502767A publication Critical patent/CN106502767A/zh
Application granted granted Critical
Publication of CN106502767B publication Critical patent/CN106502767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种进程管理方法及其装置。本发明中,一方面,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,分组后形成的进程组具有同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突的特点;另一方面,确定每个进程组的执行时间,并根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程,这样可以有效解决现有技术多个线程并行处理时的共享资源冲突问题,避免了死锁状态或者待执行进程处于长时间等待状态,从而提高了进程的处理效率。

Description

一种进程管理方法及其装置
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种进程管理方法及其装置。
背景技术
CORBA(公共对象请求代理体系结构,Common Object Request BrokerArchitecture)是对象管理组织为解决分布式处理环境中硬件和软件系统的互连而提出的一种解决方案,具有模型完整、先进、独立于系统平台和开发语言、被广泛支持的特点。CORBA技术将各种对象的操作和属性封装在不同的接口之中,通过对象请求代理来调用接口中的操作,完成指定的功能,这种体系结构为开发大型的分布式异构应用软件系统提供了与硬件平台、编程语言、操作系统和网络协议无关的平台。另外,它还提供了许多通用服务如命名服务、通知服务、时间服务等。由于这些优势,CORBA作为主流的北向接口已广泛应用于电信网络管理中,并且无线接口的第三代技术规范中也将CORBA作为一种主要的解决方案提出。
由于运营商规范中只规定了CORBA接口协议的格式和相互需要交互的内容和消息,并未规定具体实现的细节,不同厂商会根据自家厂商设备实现方法选择使用单线程或者多线程方式实现CORBA接口,绝大多数厂商出于提高处理效率的角度都按照多线程方法来实现。
但是由于多个线程并行处理存在共享资源冲突,即同时调用相同的共享资源的情形,进而造成死锁状态或者待执行进程处于长时间等待状态。
发明内容
本发明实施例提供一种进程管理方法及其装置,用于解决现有技术中多个线程并行处理时的资源冲突的问题。
本发明实施例提供的进程管理方法,包括:
获取待执行进程;
根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间;其中,同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突;
根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程;其中,一个进程组内的进程被并行执行。
本发明实施例提供的进程管理装置,包括:
获取单元,用于获取待执行进程;
分组单元,用于根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间;其中,同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突;
执行单元,用于根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程;其中,一个进程组内的进程被并行执行。
本发明实施例中,一方面获取待执行进程,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,分组后形成的进程组具有同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突的特点,另一方面确定每个进程组的执行时间,并根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程,这样可以有效解决现有技术多个线程并行处理时的共享资源冲突问题,避免了死锁状态或者待执行进程处于长时间等待状态,从而进一步提高了进程的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的NMA系统架构示意图;
图2为本发明实施例提供的进程管理流程示意图;
图3为本发明实施例提供的进程管理装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性地示出了NMA(Network management application,网络管理应用)系统架构,该NMA系统架构中包括共享资源管理模块、配置管理模块、告警模块、性能管理模块等。CORBA技术提供了不同的接口,将对各种对象的操作和属性封装在不同的接口中,共享资源管理模块通过调用相关接口完成与配置管理、告警管理和性能管理各模块之间的交互,以实现性能文件和配置文件的上传以及告警信息向上层网管的上报。
CORBA技术提供的不同的接口实现方法有两种:多线程实现的CORBA接口和单线程实现的CORBA接口。其中,单线程实现的CORBA接口具有如下特点:共享资源管理模块会按照FIFO(First in first out,先进先出的)原则对各个模块进行运算、调度和传递;多线程实现的CORBA接口具有如下特点:共享资源管理模块同时对各个模块进行运算、调度和传递。每个模块运算自己的数据,到了固定的时间去上传。如果网络中有某个网元运行不正常、闪断或者其他异常情况,告警模块长期占用性能文件需要的共享资源,或者性能文件突发了大业务,导致配置文件修改的参数迟迟无法入库,都会导致进程死锁,无法正常生成或者向上级网管传递对应的数据,所述共享资源包括公共内存和公共变量等。
基于单线程实现的CORBA接口并发处理不足的缺点和多线程实现的CORBA接口存在进程锁死的危险,本发明实施例提供一种进程管理方案,通过对进程进行分组,从而有效解决现有技术多个线程并行处理时共享资源冲突问题,既提高了并发处理的能力,又避免了死锁状态或者待执行进程处于长时间等待状态,从而进一步提高了进程的处理效率。
参见图2所示,为本发明实施例提供的进程管理流程示意图,该流程可包括:
步骤S101、获取待执行进程。
步骤S102、根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间;其中,同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突。
步骤S103、根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程;其中,一个进程组内的进程被并行执行。
狭义上来说,进程(英文为Process)是正在运行的程序的实例(英文为instance)。广义上来说,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它可以申请和拥有系统资源,它是操作系统动态执行的基本单元,是系统进行资源分配和调度的基本单位。也就是说,进程既是资源的基本分配单元,也是程序的基本执行单元。
为进程分配的资源可包括内存资源和变量。其中,对于一个进程来说,内存资源可包括该进程私有的内存资源以及与其他进程共享的公共内存资源,变量也可包括该进程的私有变量以及与其他进程共享的公共变量。本发明实施例中所述的“进程所使用的共享资源”是指多个进程所共享的公共资源,比如可包括公共内存资源和/或公共变量。
步骤S101中所获取到的进程通常包括定时或周期执行的任务所对应的进程。在NMA系统中,这些周期执行的任务可包括以下中的一种或任意组合:
-性能文件上报任务,所述性能文件上报任务为周期执行的任务;
-配置文件上报任务,所述配置文件上报任务为周期执行的任务;
-测试文件上报任务,所述测试文件上报任务为周期执行的任务。
步骤S101中所获取到的进程也可以包括突发进程,也可以在上述定时或周期执行的任务所对应的进程的基础上,进一步包括突发进程。所述突发进程是指由事件触发的进程,通常无法通过设置定时任务的方式预先进行设置,比如,所述突发进程可包括告警任务所对应的进程。
步骤S102中,对进程进行分组的依据可包括进程的执行时间和所使用的共享资源。其中,若多个进程的执行时间在同一时间段内,且这些进程中有部分或全部进程之间均存在共享资源冲突,则根据这些进程中存在资源冲突的进程的优先级,将存在资源冲突的进程划分到不同的进程组,且包含高优先级进程的进程组的执行时间在包含低优先级进程的进程组之前。其中,“共享资源冲突”是指多个进程所使用的共享资源相同,比如所使用的公共内存资源相同,或者使用的公共变量相同。
这样,同一进程组内的进程不会存在共享资源冲突,可以并行执行,并且存在共享资源冲突的进程中,优先级高的进程比优先级低的进程优先执行,使得进程执行顺序更加合理,进而提高了进程的处理效率。
进一步地,若执行时间在同一时间段内的多个进程中,发生资源冲突的进程的优先级相同,则将存在资源冲突的进程划分到不同的进程组,并根据进程使用共享资源的时间长度确定进程组的执行顺序,其中,执行时间在前的进程组使用共享资源的时间长度小于执行时间在后的进程组。
这样,可以避免某些进程组长时间占用共享资源,导致其他进程组都处于排队等候的情况,有效地的解决进程积压卡死的问题。
本发明实施例中,进程的优先级可以是默认设置的;也可以是根据接收到的优先级设置命令设置的,比如,管理员通过管理界面提交优先级设置命令,从而可根据该优先级设置命令为指定的进程设置优先级;进程的优先级还可以是根据进程所对应的任务的类型或级别设置的,比如,配置文件上传任务为:在凌晨3:00进行前一天所有配置文件的上传,性能文件上传的任务为:在凌晨3:00进行前一天所有性能文件的上传,由于配置文件上传任务比性能文件上传任务更为重要,此时将配置文件任务所对应的进程设置为最高优先级;又比如,告警分为普通告警和严重告警等不同级别,当发生严重告警时,设置严重告警任务对应的进程为高优先级。
下面以具体场景为例,对本发明实施例提供的进程分组方法进行描述。
场景一
在该场景中包括4个进程:进程1、进程2、进程3、进程4。该4个进程的执行时间相同,且均使用相同的共享资源,进程1的优先级最高,进程4的优先级最低,进程2的优先级高于进程3的优先级。
进程分组时,由于该4个进程均使用相同的共享资源,因此分为4个进程组,该4个进程组分别是进程组A、进程组B、进程组C、进程组D,其中,进程组A包括进程1,进程组B包括进程2,进程组C包括进程3,进程组D包括进程4。由于该4个进程的优先级从高到低排列为:进程1、进程2、进程3、进程4,因此各进程组的执行顺序按照时间从前到后排列为进程组A、进程组B、进程组C、进程组D。
场景二
在该场景中包括4个进程:进程1、进程2、进程3、进程4,该4个进程的执行时间相同,进程1与进程3发生共享资源冲突,进程1的优先级最高,进行4的优先级最低,进程2的优先级高于进程3的优先级。
进程分组时,由于进程1和进程3不能分为一组,进程2和进程4不能分为一组,则一种分组结果是将4个进程划分为2个进程组,该2个进程组分别是进程组A和进程组B、其中,进程组A包括进程1、进程2,进程组B中包含进程3、进程4。由于该4个进程的优先级从高到低排列为:进程1、进程2、进程3、进程4,因此各进程组的执行顺序按照时间从前到后排列为进程组A、进程组B。
场景三
在该场景中包括4个进程:进程1、进程2、进程3、进程4。该4个进程的执行时间相同,进程1与进程3发生共享资源冲突,进程3较为复杂,使用共享资源的时间长度比其余进程要长,进程1、进程2、进程3、进程4的优先级相同。
进程分组时,由于进程1和进程3不能分为一组,因此可将4个进程划分为2个进程组,该2个进程组分别是进程组A和进程组B、其中,进程组A包括进程1、进程2,进程组B中包含进程3、进程4。又由于进程3使用共享资源的时间较长,因此各进程组的顺序按照时间从前到后排列为进程组A、进程组B。
本发明实施例中,对进程进行分组的依据除了包括进程的执行时间和所使用的共享资源外还可以包括进程的读写属性。若多个进程的执行时间在同一时间段内且使用相同的共享资源,但有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则可以将所述多个进程划分到同一进程组。
进一步地,将上述进程分到同一个进程组之后,在执行该进程组内的进程时,可按照以下执行方法进行执行:
一个进程组内,对于使用相同共享资源但读写属性不同的进程,在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,禁止对该共享资源的使用方式为只读的进程对该公共变量进行读取,在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取;或者,在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取,并在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,将该公共变量更新后的值通知该对该共享资源的使用方式为只读的进程,这样,可以有效利用共享资源,降低了共享资源中的公共变量被同时读写的风险。
下面以具体场景为例,针对一个进程组内包含使用相同共享资源但读写属性不同的进程,描述进程执行过程。
在该场景中包括4个进程:进程1、进程2、进程3、进程4,该4个进程的执行时间相同,进程1、进程2、进程3、进程4的优先级相同,且均使用相同的共享资源,进程1的读写方式为读写,其余进程的读写方式为只读,则可以将该4个进程分到同一个进程组中。
该进程组在执行时,可以有两种执行的方式:
第一种方式是:进程1对该共享资源中的公共变量进行读写时,禁止进程2、进程3和进程4对该公共变量进行读取,进程1对该公共变量读写完成后,才允许进程2、进程3和进程4对该公共变量进行读取。
比如,进程1对该共享资源中的公共变量进行读写时,对进程2、进程3和进程4进行加锁,待进程1对该公共变量读写完成后,对进程2、进程3和进程4进行解锁,从而允许进程2、进程3和进程4对该公共变量进行读取。
再比如,进程1对该共享资源中的公共变量进行读写时,将正在运行的进程2、进程3和进程4收回处理器,然后再使进程1来占用处理器,待进程1对该公共变量读写完成后,再允许进程2、进程3和进程4使用处理器。
第二种方式是:进程1对该共享资源中的公共变量进行读写时,可以允许进程2、进程3和进程4对该公共变量进行读取,并在进程1对该公共变量读写完成后,将该公共变量更新后的值通知进程2、进程3和进程4。可见这样相当于增加对以上分组方法的容错处理,4个使用相同的共享资源的进程即使被分到一个进程组,也可以实现并行执行,同样提高了进程的处理效率。
考虑到待执行进程是突发进程时,则无法对这些待执行进程进行预先采集和分组,这时采取的进程管理方法是:如果接收到突发进程,则根据该突发进程使用的共享资源,将该突发进程加入到进程组中,或者为该突发进程创建进程组并为创建的进程组确定执行时间。
将该突发进程加入到进程组中的方式是:若所述突发进程所使用的共享资源与正在执行或即将执行的进程组内的进程不存在共享资源冲突,则将所述突发进程划分到正在执行或即将执行的进程组中;若所述突发进程使用的共享资源与正在执行的进程组内的进程存在共享资源冲突,且所述突发进程的优先级高于正在执行的进程组内的进程的优先级,则停止执行正在执行的进程组,执行所述突发进程。这样做充分考虑到了突发进程的特点,对突发进程采取区别于周期发生的进程地处理方式,使得本发明实施例中的进程分组执行方法更加合理。
下面以具体场景为例,描述接收到突发进程时的处理过程。
在该场景中包括4个进程:进程1、进程2、进程3、进程4,该4个进程的执行时间相同,进程1、进程2、进程3、进程4的优先级相同,且均使用不相同的共享资源,将4个进程划分到一个进程组A中。
在进程组A执行过程中发生告警,该告警对应的进程为进程5,进程5的优先级高于进程1、进程2、进程3和进程4。
-若进程5与其它4个进程使用的共享资源均不相同,则将进程5划分到进程组A中;此种情况下,进程5可以被立即执行,且与其它4个进程并行执行;
-若进程5与其它进程使用的共享资源相同,则将进程5单独划分到一个进程组B中,停止进组A的执行,执行进程组B,当进程组B执行完成后再继续进程组A的执行。
本发明实施例中,采用进程分组方式执行进程,可以不依赖于接口状态,也可以在接口处于繁忙状态时才采用上述进程分组方式。
具体来说,在执行步骤S102之前,可根据待执行进程的执行时间和执行周期,以及待执行进程对应的任务所传输的文件的大小和类型中的一种或多种,判断待执行进程所调用的北向接口是否处于繁忙状态;若判断为是,则将待执行进程进行分组;若判断为否,则将待执行进程按照多进程方式传送。其中,所述“北向接口”是指上行接口,比如在NMA系统中,是指采用CORBA技术的接口,可以用来向上级网管系统传输性能文件、配置文件等。
例如,配置文件上传任务被预设为凌晨3:00进行前一天配置文件的上传,考虑到配置文件的数据量较大,进而可以推断凌晨3:00北向接口处于繁忙状态,基于这种判断结果,则将配置文件上传认为对应的进程在当晚22:00进行预先分组。当北向接口执行完配置文件上传认为对应的进程恢复到空闲状态时,则可按照现有技术中的多进程方式传送其它进程。
可以看出,预先判断北向接口的状态是为了更加合理的选择进程的传送方法,因为当北向接口处于空闲状态时,北向接口没有进程传送的压力,采用现有的多线程方式传送进程可以有效提高共享资源的利用率,而当北向接口处于繁忙状态时,共享资源存在被频繁调用的压力,此时需要采用本发明实施例的分组方法进行缓解,以避免出现共享资源调用冲突的情形。
综上所述,本发明实施例中,一方面获取待执行进程,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,分组后形成的进程组具有同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突的特点,另一方面确定每个进程组的执行时间,并根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程,这样可以有效解决现有技术多个线程并行处理时的共享资源冲突问题,避免了死锁状态或者待执行进程处于长时间等待状态,从而进一步提高了进程的处理效率。
基于相同的技术构思,本发明实施例还提供了进程管理装置,该装置可实施上述实施例描述的进程管理流程。
如图3所示,该装置可包括:获取单元201,分组单元202,执行单元203,其中:
获取单元201,用于获取待执行进程;
分组单元202,用于根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间;其中,同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突;
执行单元203,用于根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程;其中,一个进程组内的进程被并行执行;
所述待执行进程对应的任务,与进程管理流程介绍的一致,也是包括周期执行的任务和突发任务两种类型的任务对应的进程或任意组合,在此不再赘述。
在分组单元202执行之前一般先要执行判断单元204,所述判断单元204,用于根据待执行进程的执行时间和执行周期,以及待执行进程对应的任务所传输的文件的大小和类型中的一种或多种,判断待执行进程所调用的北向接口是否处于繁忙状态;若判断为是,则指示所述分组单元将待执行进程进行分组。
这样做充分考虑到了北向接口的执行压力,当压力小时采用多线程方式传送,提高了共享资源的利用率,当压力大时,增加了分组的处理,有效解决共享资源调用冲突的问题。
其中,所述分组单元202具体用于:若多个进程的执行时间在同一时间段内,且所述多个进程中有部分或全部进程之间均存在共享资源冲突,则根据所述多个进程中存在资源冲突的进程的优先级,将存在资源冲突的进程划分到不同的进程组,且包含高优先级进程的进程组的执行时间在包含低优先级进程的进程组之前。
这样,同一进程组内的进程不会存在共享资源冲突,可以并行执行,并且存在共享资源冲突的进程中,优先级高的进程比优先级低的进程优先执行,使得进程执行顺序更加合理,进而提高了进程的处理效率。
进一步地,进程的优先级可以是默认设置的;也可以是根据设置优先级单元205接收到的优先级设置命令设置的,所述设置优先级单元205还用于根据进程所对应的任务的类型或级别,为待执行进程设置优先级,具体优先级设置方法与进程管理流程相同,不再赘述。
进一步地,分组单元202还用于:若执行时间在同一时间段内的多个进程中,发生资源冲突的进程的优先级相同,则将存在资源冲突的进程划分到不同的进程组,并根据进程使用共享资源的时间长度确定进程组的执行顺序,其中,执行时间在前的进程组使用共享资源的时间长度小于执行时间在后的进程组。
这样做的效果是可以避免某些进程组长时间占用共享资源,导致其他进程组都处于排队等候的情况,有效地的解决进程积压卡死的问题。
具体地,所述分组单元202还具体用于:若多个进程的执行时间在同一时间段内且使用相同的共享资源,但有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则将所述多个进程划分到同一进程组。
进一步地,将上述进程分到同一个进程组之后,需要由执行单元203具行执行,所述执行单元203具体用于:若待执行的进程组中包含有使用相同的共享资源的进程,且有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则在执行该进程组内的进程时:
在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,禁止对该共享资源的使用方式为只读的进程对该公共变量进行读取,在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取;或者
在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取,并在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,将该公共变量更新后的值通知该对该共享资源的使用方式为只读的进程。这样,可以有效利用共享资源,降低了共享资源中的公共变量被同时读写的风险。
考虑到待执行进程是突发进程时,则无法对这些待执行进程进行预先采集和分组,这时进程管理装置中所述获取单元201还用于用于接收突发进程;所述分组单元202还用于,用于根据所述突发进程使用的共享资源,将所述突发进程加入到进程组中,或者为所述突发进程创建进程组并为创建的进程组确定执行时间。
进一步地,所述分组单元202具体用于:若所述突发进程所使用的共享资源与正在执行或即将执行的进程组内的进程不存在共享资源冲突,则将所述突发进程划分到正在执行或即将执行的进程组中。
进一步地,所述分组单元202还具体用于:若所述突发进程使用的共享资源与正在执行的进程组内的进程存在共享资源冲突,且所述突发进程的优先级高于正在执行的进程组内的进程的优先级,则停止执行正在执行的进程组,执行所述突发进程。这样做充分考虑到了突发进程的特点,对突发进程采取区别于周期发生的进程地处理方式,使得本发明实施例中的进程分组执行方法更加合理。
综上所述,本发明实施例一方面获取待执行进程,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,分组后形成的进程组具有同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突的特点,另一方面确定每个进程组的执行时间,并根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程,这样可以有效解决现有技术多个线程并行处理时同时调用相同的共享资源的情形,避免了死锁状态或者待执行进程处于长时间等待状态,从而进一步提高了进程处理效率。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (22)

1.一种进程管理方法,其特征在于,该方法包括:
获取待执行进程;
根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间;其中,同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突;
根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程;其中,一个进程组内的进程被并行执行。
2.如权利要求1所述的方法,其特征在于,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间,包括:
若多个进程的执行时间在同一时间段内,且所述多个进程中有部分或全部进程之间均存在共享资源冲突,则根据所述多个进程中存在资源冲突的进程的优先级,将存在资源冲突的进程划分到不同的进程组,且包含高优先级进程的进程组的执行时间在包含低优先级进程的进程组之前。
3.如权利要求2所述的方法,其特征在于,还包括:
若执行时间在同一时间段内的多个进程中,发生资源冲突的进程的优先级相同,则将存在资源冲突的进程划分到不同的进程组,并根据进程使用共享资源的时间长度确定进程组的执行顺序,其中,执行时间在前的进程组使用共享资源的时间长度小于执行时间在后的进程组。
4.如权利要求2所述的方法,其特征在于,根据所述多个进程中存在资源冲突的进程的优先级,将存在资源冲突的进程划分到不同的进程组之前,还包括:
根据进程所对应的任务的类型或级别,为待执行进程设置优先级;和/或,根据接收到的优先级设置命令,为待执行进程设置优先级。
5.如权利要求1所述的方法,其特征在于,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,包括:
若多个进程的执行时间在同一时间段内且使用相同的共享资源,但有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则将所述多个进程划分到同一进程组。
6.如权利要求5所述的方法,其特征在于,根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程,包括:
若待执行的进程组中包含有使用相同的共享资源的进程,且有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则在执行该进程组内的进程时:
在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,禁止对该共享资源的使用方式为只读的进程对该公共变量进行读取,在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取;或者
在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取,并在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,将该公共变量更新后的值通知该对该共享资源的使用方式为只读的进程。
7.如权利要求1所述的方法,其特征在于,还包括:
接收突发进程;
根据所述突发进程使用的共享资源,将所述突发进程加入到进程组中,或者为所述突发进程创建进程组并为创建的进程组确定执行时间。
8.如权利要求7所述的方法,其特征在于,根据所述突发进程的执行时间和使用的共享资源,将所述突发进程加入到进程组中,包括:
若所述突发进程所使用的共享资源与正在执行或即将执行的进程组内的进程不存在共享资源冲突,则将所述突发进程划分到正在执行或即将执行的进程组中。
9.如权利要求7所述的方法,其特征在于,还包括:
若所述突发进程使用的共享资源与正在执行的进程组内的进程存在共享资源冲突,且所述突发进程的优先级高于正在执行的进程组内的进程的优先级,则停止执行正在执行的进程组,执行所述突发进程。
10.如权利要求1至9中任一权项所述的方法,其特征在于,根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,包括:
根据待执行进程的执行时间和执行周期,以及待执行进程对应的任务所传输的文件的大小和类型中的一种或多种,判断待执行进程所调用的北向接口是否处于繁忙状态;
若判断为是,则将待执行进程进行分组。
11.如权利要求1至9中任一权项所述的方法,其特征在于,所述待执行进程对应的任务,包括以下中的一种或任意组合:
性能文件上报任务,所述性能文件上报任务为周期执行的任务;
配置文件上报任务,所述配置文件上报任务为周期执行的任务;
测试文件上报任务,所述测试文件上报任务为周期执行的任务;
告警任务。
12.一种进程管理装置,其特征在于,该装置包括:
获取单元,用于获取待执行进程;
分组单元,用于根据每个待执行进程的执行时间和所使用的共享资源,将待执行进程进行分组,并确定每个进程组的执行时间;其中,同一进程组内的进程的执行时间在同一时间段内,且同一进程组内的进程之间不存在共享资源冲突;
执行单元,用于根据每个进程组的执行时间以进程组为单位执行每个进程组内的待执行进程;其中,一个进程组内的进程被并行执行。
13.如权利要求12所述的装置,其特征在于,所述分组单元具体用于:
若多个进程的执行时间在同一时间段内,且所述多个进程中有部分或全部进程之间均存在共享资源冲突,则根据所述多个进程中存在资源冲突的进程的优先级,将存在资源冲突的进程划分到不同的进程组,且包含高优先级进程的进程组的执行时间在包含低优先级进程的进程组之前。
14.如权利要求13所述的装置,其特征在于,所述分组单元还用于:
若执行时间在同一时间段内的多个进程中,发生资源冲突的进程的优先级相同,则将存在资源冲突的进程划分到不同的进程组,并根据进程使用共享资源的时间长度确定进程组的执行顺序,其中,执行时间在前的进程组使用共享资源的时间长度小于执行时间在后的进程组。
15.如权利要求13所述的装置,其特征在于,还包括:
设置优先级单元,用于根据进程所对应的任务的类型或级别,为待执行进程设置优先级;和/或,
根据接收到的优先级设置命令,为待执行进程设置优先级。
16.如权利要求12所述的装置,其特征在于,所述分组单元还具体用于:
若多个进程的执行时间在同一时间段内且使用相同的共享资源,但有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则将所述多个进程划分到同一进程组。
17.如权利要求16所述的装置,其特征在于,所述执行单元具体用于:
若待执行的进程组中包含有使用相同的共享资源的进程,且有一个进程对该共享资源的使用方式为读写,其余进程对该共享资源的使用方式为只读,则在执行该进程组内的进程时:
在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,禁止对该共享资源的使用方式为只读的进程对该公共变量进行读取,在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取;或者
在对该共享资源的使用方式为读写的进程对该共享资源中的公共变量进行读写时,允许对该共享资源的使用方式为只读的进程对该公共变量进行读取,并在对该共享资源的使用方式为读写的进程对该公共变量读写完成后,将该公共变量更新后的值通知该对该共享资源的使用方式为只读的进程。
18.如权利要求12所述的装置,其特征在于,
所述获取单元还用于:用于接收突发进程;
所述分组单元还用于:根据所述突发进程使用的共享资源,将所述突发进程加入到进程组中,或者为所述突发进程创建进程组并为创建的进程组确定执行时间。
19.如权利要求18所述的装置,其特征在于,所述分组单元具体用于:
若所述突发进程所使用的共享资源与正在执行或即将执行的进程组内的进程不存在共享资源冲突,则将所述突发进程划分到正在执行或即将执行的进程组中。
20.如权利要求18所述的装置,其特征在于,所述分组单元还具体用于:
若所述突发进程使用的共享资源与正在执行的进程组内的进程存在共享资源冲突,且所述突发进程的优先级高于正在执行的进程组内的进程的优先级,则停止执行正在执行的进程组,执行所述突发进程。
21.如权利要求12至20中任一权项所述的装置,其特征在于,还包括:
判断单元,用于根据待执行进程的执行时间和执行周期,以及待执行进程对应的任务所传输的文件的大小和类型中的一种或多种,判断待执行进程所调用的北向接口是否处于繁忙状态;若判断为是,则指示所述分组单元将待执行进程进行分组。
22.如权利要求12至20中任一权项所述的装置,其特征在于,所述待执行进程对应的任务,包括以下中的一种或任意组合:
性能文件上报任务,所述性能文件上报任务为周期执行的任务;
配置文件上报任务,所述配置文件上报任务为周期执行的任务;
测试文件上报任务,所述测试文件上报任务为周期执行的任务;
告警任务。
CN201510567805.9A 2015-09-08 2015-09-08 一种进程管理方法及其装置 Active CN106502767B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510567805.9A CN106502767B (zh) 2015-09-08 2015-09-08 一种进程管理方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510567805.9A CN106502767B (zh) 2015-09-08 2015-09-08 一种进程管理方法及其装置

Publications (2)

Publication Number Publication Date
CN106502767A true CN106502767A (zh) 2017-03-15
CN106502767B CN106502767B (zh) 2019-11-19

Family

ID=58286872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510567805.9A Active CN106502767B (zh) 2015-09-08 2015-09-08 一种进程管理方法及其装置

Country Status (1)

Country Link
CN (1) CN106502767B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369088A (zh) * 2017-07-19 2017-11-21 中国银行股份有限公司 帐务交易的处理方法和装置
CN108021339A (zh) * 2017-11-03 2018-05-11 网宿科技股份有限公司 一种磁盘读写的方法、设备以及计算机可读存储介质
CN108337131A (zh) * 2018-01-25 2018-07-27 北京航天发射技术研究所 一种基于can网络拓扑结构的状态监测系统的实现方法
CN108388797A (zh) * 2018-01-23 2018-08-10 北京奇艺世纪科技有限公司 一种入侵检测方法、装置及电子设备
CN108459901A (zh) * 2018-01-24 2018-08-28 深圳市普威技术有限公司 一种进程锁的处理方法、装置及系统
CN108595502A (zh) * 2018-03-19 2018-09-28 网宿科技股份有限公司 评估数据库服务性能的方法、装置及计算机可读存储介质
CN110046809A (zh) * 2019-04-02 2019-07-23 中国工商银行股份有限公司 作业调度方法及装置
CN111857995A (zh) * 2020-06-30 2020-10-30 海尔优家智能科技(北京)有限公司 进程调度方法和装置、存储介质及电子装置
CN115269160A (zh) * 2022-09-29 2022-11-01 广州市保伦电子有限公司 一种定时任务执行方法、装置及系统
WO2024041191A1 (zh) * 2022-08-26 2024-02-29 华为技术有限公司 数据处理方法及装置
CN111857995B (zh) * 2020-06-30 2024-05-24 海尔优家智能科技(北京)有限公司 进程调度方法和装置、存储介质及电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030095557A1 (en) * 1999-09-17 2003-05-22 James B. Keller Response virtual channel for handling all responses
CN1818875A (zh) * 2006-03-16 2006-08-16 浙江大学 嵌入式操作系统分组硬实时任务调度的实现方法
CN101178646A (zh) * 2006-11-08 2008-05-14 松下电器产业株式会社 多线程处理器
CN103366386A (zh) * 2013-07-14 2013-10-23 西安电子科技大学 基于多进程和多线程的并行图像解压缩系统
CN103443770A (zh) * 2011-03-19 2013-12-11 富士通株式会社 终端装置、进程管理方法以及进程管理程序

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030095557A1 (en) * 1999-09-17 2003-05-22 James B. Keller Response virtual channel for handling all responses
CN1818875A (zh) * 2006-03-16 2006-08-16 浙江大学 嵌入式操作系统分组硬实时任务调度的实现方法
CN101178646A (zh) * 2006-11-08 2008-05-14 松下电器产业株式会社 多线程处理器
CN103443770A (zh) * 2011-03-19 2013-12-11 富士通株式会社 终端装置、进程管理方法以及进程管理程序
CN103366386A (zh) * 2013-07-14 2013-10-23 西安电子科技大学 基于多进程和多线程的并行图像解压缩系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369088A (zh) * 2017-07-19 2017-11-21 中国银行股份有限公司 帐务交易的处理方法和装置
CN107369088B (zh) * 2017-07-19 2021-05-07 中国银行股份有限公司 帐务交易的处理方法和装置
CN108021339A (zh) * 2017-11-03 2018-05-11 网宿科技股份有限公司 一种磁盘读写的方法、设备以及计算机可读存储介质
CN108388797A (zh) * 2018-01-23 2018-08-10 北京奇艺世纪科技有限公司 一种入侵检测方法、装置及电子设备
CN108459901A (zh) * 2018-01-24 2018-08-28 深圳市普威技术有限公司 一种进程锁的处理方法、装置及系统
CN108337131B (zh) * 2018-01-25 2020-06-19 北京航天发射技术研究所 一种基于can网络拓扑结构的状态监测系统的实现方法
CN108337131A (zh) * 2018-01-25 2018-07-27 北京航天发射技术研究所 一种基于can网络拓扑结构的状态监测系统的实现方法
CN108595502A (zh) * 2018-03-19 2018-09-28 网宿科技股份有限公司 评估数据库服务性能的方法、装置及计算机可读存储介质
CN110046809A (zh) * 2019-04-02 2019-07-23 中国工商银行股份有限公司 作业调度方法及装置
CN110046809B (zh) * 2019-04-02 2021-11-19 中国工商银行股份有限公司 作业调度方法及装置
CN111857995A (zh) * 2020-06-30 2020-10-30 海尔优家智能科技(北京)有限公司 进程调度方法和装置、存储介质及电子装置
CN111857995B (zh) * 2020-06-30 2024-05-24 海尔优家智能科技(北京)有限公司 进程调度方法和装置、存储介质及电子装置
WO2024041191A1 (zh) * 2022-08-26 2024-02-29 华为技术有限公司 数据处理方法及装置
CN115269160A (zh) * 2022-09-29 2022-11-01 广州市保伦电子有限公司 一种定时任务执行方法、装置及系统

Also Published As

Publication number Publication date
CN106502767B (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
CN106502767A (zh) 一种进程管理方法及其装置
CN106293950B (zh) 一种面向集群系统的资源优化管理方法
CN110704186B (zh) 基于混合分布架构的计算资源分配方法、装置和存储介质
CN113051075B (zh) 一种Kubernetes智能化扩缩容的方法及装置
CN110941481A (zh) 资源调度方法、装置及系统
CN104580396A (zh) 一种任务调度方法、节点及系统
CN110389843B (zh) 一种业务调度方法、装置、设备及可读存储介质
CN107491346A (zh) 一种应用的任务处理方法、装置及系统
WO2014173339A1 (zh) 一种任务调度服务系统及方法
CN105320570B (zh) 资源管理方法和系统
CN111078436B (zh) 数据处理的方法、装置、设备及存储介质
CN105320561A (zh) 任务管理方法和系统
CN111796908A (zh) 一种资源自动弹性伸缩的系统、方法及云平台
CN110187960A (zh) 一种分布式资源调度方法及装置
CN107203413A (zh) 一种资源数据调度系统及方法
CN109471872A (zh) 处理高并发查询请求的方法及装置
CN110012062A (zh) 一种多机房任务调度方法、装置及存储介质
CN106919442A (zh) 多gpu调度装置和分布式计算系统以及多gpu调度方法
CN104090826B (zh) 基于相关性的任务优化部署方法
EP4361808A1 (en) Resource scheduling method and device and computing node
CN109871273A (zh) 一种自适应任务迁移方法及装置
CN109992415B (zh) 一种容器调度方法及调度系统
CN109240826B (zh) 多区块链网络中节点共用计算设备时的计算资源分配方法
CN114816709A (zh) 任务调度方法、装置、服务器及可读存储介质
CN102573073B (zh) 一种终端物理层资源分配方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant