CN109426563A - 一种进程管理方法及装置 - Google Patents
一种进程管理方法及装置 Download PDFInfo
- Publication number
- CN109426563A CN109426563A CN201710773895.6A CN201710773895A CN109426563A CN 109426563 A CN109426563 A CN 109426563A CN 201710773895 A CN201710773895 A CN 201710773895A CN 109426563 A CN109426563 A CN 109426563A
- Authority
- CN
- China
- Prior art keywords
- target
- target process
- waiting list
- plug
- kernel
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
一种进程管理方法及装置,用以解决现有技术中存在D进程难以清理的问题。该方法应用于安装操作系统的计算设备中,用于对该计算设备的等待队列中的进程进行管理,该等待队列中的进程保存在该计算设备的内存中,该方法包括:选择目标进程,该目标进程为D进程,该D进程为睡眠状态不可中断的内核态进程,该目标进程位于该等待队列中;调用该操作系统向应用程序提供的内核接口执行插件进程,将该目标进程从该等待队列中移除,该内核接口用于启动该插件进程,该插件进程保存于该计算设备的内存中,该插件进程的类型为内核态进程。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种进程管理方法及装置。
背景技术
在Linux操作系统中,等待处理的就绪进程被放置在运行队列中,通过状态标志位TASK_RUNNING表示就绪进程的状态。运行队列中的就绪进程需要等待某个特定的事件发生时,从运行队列移出,加入到等待队列中,在等待队列中的进程处于睡眠状态。其中,特定的事件例如有设备初始化完成、输入/输出(input/output,I/O)操作完成或定时器到时等。在Linux操作系统的等待队列中,处于睡眠状态的进程有两种,第一种进程是处于可中断的睡眠(interruptable sleep)状态的进程,当满足进程执行条件时,睡眠状态为可中断的进程会被唤醒以开始执行进程。第二种进程是处于不可中断的睡眠(uninterruptable sleep)状态的进程,处于不可中断的睡眠(uninterruptable sleep)状态的进程也被称作D进程。D进程通常因得不到I/O资源或其他资源而形成。当满足进程执行条件时,若I/O资源或其他资源始终无法恢复,则D进程不能被唤醒,将始终占据等待队列,占用内核态的资源。因此,D进程的累积可能导致系统异常。
为解决D进程占用内核态的资源问题,现有解决方法主要有打印D进程的属性信息以便于对D进程进行调试,或者被动等待D进程所需的I/O资源或其他资源进行恢复,或者重启Linux操作系统以删除D进程,现有的解决方法导致Linux操作系统的可用性较差,D线程长时间占据等待队列,导致等待队列中积累更多的D线程,增大系统异常的风险。
发明内容
本申请提供一种进程管理方法及装置,用以解决现有技术中存在D进程难以清理的问题。
第一方面,本申请提供一种进程管理方法,该方法应用于安装操作系统的计算设备中,用于对所述计算设备的等待队列中的进程进行管理。所述等待队列中的进程保存在所述计算设备的内存中,可以用于存放睡眠状态不可中断的进程,该睡眠状态不可中断的进程又可称为D进程。该方法包括:选择目标进程,所述目标进程为D进程,所述目标进程位于所述等待队列中。选择目标进程的方式可以为根据保存的选择标准确定目标进程,该选择标准可以规定作为目标进程的D进程的特征,计算设备可以将符合选择标准规定的特征的D进程作为目标进程。选择目标进程的方式也可以为接收外部指令,根据外部指令确定目标进程,该外部指令可以由用户通过输入设备输入。选择目标进程后,所述计算设备调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中移除,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
上述技术方案中,计算设备可以选择D进程作为目标进程,调用内核接口执行插件进程,将选择的目标进程从等待队列中移除,实现对D进程的移除,避免D进程占用内核资源,提高系统的可用性。
结合第一方面,在第一方面的第一种可选的实现方式中,所述选择目标进程,可以包括:选择全部D进程为所述目标进程;或者,选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程;或者,选择进程标识为指定标识的D进程为目标进程;或者,将满足上述任意两项或任意三项的D进程作为目标进程;或者,将满足上述四项的D进程作为目标进程。上述方案可以灵活地选择目标进程,能够满足在不同场景下移除D进程的需求。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可选的实现方式中,计算设备定期选择符合D进程特征的至少一个目标进程。本实现方式可以周期性地清理D进程,使得系统始终处于可用性较佳的状态。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可选的实现方式中,计算设备调用所述操作系统向应用程序提供的内核接口执行插件进程,将定期选择的所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中移除。本实现方式可以减少一次删除的进程的数量,避免因执行插件进程一次删除过多D进程导致用户的其它进程阻塞,提高系统的可用性。
结合第一方面或第一方面的第一至第二种可能的实现方式中任一项,在第一方面的第四种可选的实现方式中,计算设备定期调用所述操作系统向应用程序提供的内核接口执行插件进程,将小于或等于预设个数的所述目标进程从所述等待队列中移除。本实现方式可以减少一次删除的进程的数量,避免因执行插件进程一次删除过多D进程导致用户的其它进程阻塞,提高系统的可用性。
第二方面,本申请提供一种进程管理方法,用于对安装操作系统的计算设备的等待队里中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中。所述方法包括:计算设备选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中。选择目标进程后,计算设备调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒。所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。本实现方式可以使得目标进程能够尽快被处理器执行,减少该进程执行时的等待时间,提高计算设备的处理效率。
结合第二方面,在第二方面的第一种可选的实现方式中,计算设备在选择出目标进程之后,可以查询所述计算设备是否满足所述目标进程的执行条件,所述执行条件可以指目标进程执行所需的资源,也可以指目标进程唤醒的触发条件。在所述计算设备满足所述目标进程的执行条件后,保存所述目标进程至运行队列中。所述运行队列保存在所述计算设备的内存中,所述运行队列用于向所述计算设备提供待运行的进程。保存所述目标进程至运行队列中后,将所述目标进程从所述等待队列中删除。本实现方式中,在满足所述目标进程的执行条件时,唤醒目标进程,不仅使目标进程能够被及时执行,而且能够定义目标进程的被唤醒的时间,以满足不同应用场景下对唤醒D进程的时机的不同需求。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可选的实现方式中,所述选择目标进程,可以包括:选择全部D进程为所述目标进程;或者,选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程;或者,选择进程标识为指定标识的D进程为目标进程;或者,将满足上述任意两项或任意三项的D进程作为目标进程;或者,将满足上述四项的D进程作为目标进程。上述方案可以灵活地选择目标进程,能够满足在不同场景下唤醒D进程的需求。
结合第二方面或第二方面的第一至第二种可能的实现方式中的任一项,在第一方面的第三种可选的实现方式中,计算设备定期选择符合D进程特征的至少一个目标进程。本实现方式可以周期性地唤醒D进程,使得系统始终处于可用性较佳的状态。
结合第二方面的第三种可能的实现方式,在第一方面的第四种可选的实现方式中,计算设备调用所述操作系统向应用程序提供的内核接口执行插件进程,将定期选择的所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中唤醒。本实现方式可以减少一次唤醒的进程的数量,避免因执行插件进程一次唤醒过多D进程导致运行队列中进程过多,提高系统的可用性。
结合第二方面或第二方面的第一至第三种可能的实现方式中任一项,在第一方面的第五种可选的实现方式中,计算设备定期调用所述操作系统向应用程序提供的内核接口执行插件进程,将小于或等于预设个数的所述目标进程从所述等待队列中唤醒。本实现方式可以减少一次唤醒的进程的数量,避免因执行插件进程一次唤醒过多D进程导致运行队列中进程过多,提高计算设备的可用性。
第三方面,本申请提供一种进程管理装置,该进程管理装置用于执行上述第一方面或第一方面的任意可能的实现中的方法。具体的,该进程管理装置包括用于执行上述第一方面或第一方面的任意可能的实现中的方法的模块。
第四方面,本申请提供一种进程管理装置,该进程管理装置用于执行上述第二方面或第二方面的任意可能的实现中的方法。具体的,该进程管理装置包括用于执行上述第二方面或第二方面的任意可能的实现中的方法的模块。
第五方面,本申请提供一种计算设备,该计算设备用于执行上述第一方面或第一方面的任意可能的实现中的方法。具体的,该计算设备包括:处理器以及存储器,所述处理器与所述存储器通过总线连接;其中,所述存储器存储有计算机指令;所述处理器用于:执行所述计算机指令,以执行上述第一方面或第一方面的任意可能的实现中的方法的模块。
第六方面,本申请提供一种计算设备,该计算设备用于执行上述第二方面或第二方面的任意可能的实现中的方法。具体的,该计算设备包括:处理器以及存储器,所述处理器与所述存储器通过总线连接;其中,所述存储器存储有计算机指令;所述处理器用于:执行所述计算机指令,以执行上述第二方面或第二方面的任意可能的实现中的方法的模块。
第七方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,所述计算机指令在计算机上运行时,使得计算机执行第一方面至第二方面及其任意可能的实现中的方法。
第八方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面至第二方面及其任意可能的实现中的方法。
第九方面,提供一种芯片,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,该计算机程序用于实现上述第一方面至第二方面及其任意可能的实现方式中的方法。
本申请在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
附图说明
图1为本发明实施例中计算设备的示意图;
图2、图3a-3b为本发明实施例中进程管理方法的流程示意图;
图4a-图4b为本发明实施例中内核接口的示意图;
图5-图7为本发明实施例中进程管理装置的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。
本申请提供一种进程管理方法及装置,用以解决现有技术中存在D进程难以清理的问题。其中,进程管理方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本申请中所涉及的多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素:
内核空间与用户空间:操作系统作为计算设备的内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不直接操作内核,保证内核的安全,操作系统将寻址空间(该寻址空间可以是计算设备的内存中的一部分空间,也可以是虚拟存储空间)划分为两部分:一部分为内核空间,该内核空间是受保护的内存空间,用于存放内核的代码和数据;另一部分为用户空间,用于存放应用程序的代码和数据。例如,在一些Linux操作系统中,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)划分为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF)划分为用户空间。每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。
内核态与用户态:当进程执行用户程序的代码时,称进程处于用户态。对应的,当进程执行系统调用而陷入内核代码中执行时,称进程处于内核态。用户态进程运行于用户空间中,内核态进程运行于内核空间中。
就绪进程:等待中央处理器(central processing unit,CPU)执行的进程。
运行队列:用于放置就绪进程的队列。
睡眠状态的进程:运行队列中的就绪进程需要等待某个特定的事件发生时,从运行队列移出,该从运行队列被移出的进程称为睡眠状态的进程。
睡眠状态可中断的进程,又可称为可中断的睡眠(interruptable sleep)状态的进程:当满足进程执行条件时,睡眠状态可中断的进程会被唤醒以开始执行进程。
睡眠状态不可中断的进程,又可称为不可中断的睡眠(uninterruptable sleep)状态的进程:也被称作D进程,通常因I/O资源得不到满足而形成,例如公有云场景下由于服务后端设备故障到上报告警有一定的时间延迟,这段时间访问此后端设备的进程可能会被阻塞住,成为D进程。本申请之前的现有技术中,D进程无法通过用户态命令将其移除。
等待队列,用于存放睡眠状态的进程,保存在计算设备的内存中。在本发明的一些实施例中,可中断的睡眠状态的进程与不可中断的睡眠状态的进程可以被放置在同一等待队列中;在本发明的另一些实施例中,可中断的睡眠状态的进程与不可中断的睡眠状态的进程可以被分别放置在不同的等待队列中。
图1为本发明实施例提供的计算设备的示意图,该计算设备可以有多种实现方式,如服务器、笔记本电脑、智能手机等。该计算设备包括:通过总线13通信连接的处理器11与存储器12,该存储器12用于存储计算机指令,该处理器11通过执行存储器12中的计算机指令,实现计算设备的功能。其中,该处理器11可以是CPU或数字处理模块。存储器12可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-accessmemory,RAM)。存储器12是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算设备存取的任何其他介质,但不限于此。本发明实施例中,存储器12保存有等待队列,该等待队列中存放有D进程,等待队列保存于存储器12的内存中。存储器12还存储有用于管理进程的进程管理指令,处理器11在执行该进程管理指令时,执行进程管理方法的步骤,实现进程管理。
图2为本发明实施例提供的进程管理方法的流程示意图,该方法应用于安装操作系统的计算设备中,用于对所述计算设备的等待队列中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中。该进程管理方法可以由图1所示的计算设备或具体由图1所示的计算设备的处理器11执行,所述计算设备的结构可以参照图1。该进程管理方法包括:
步骤201、选择目标进程,该目标进程属于D进程。
选择目标进程可以有多种实现方式,包括:
其一,接收外部指令,该外部指令可以由用户通过输入设备输入,例如,用户可以通过进程状态(process status,PS)命令查询当前所有的D进程,从中选择需要删除的D进程。例如,通过输入输出设备(例如键盘)选中需要删除的D进程,该输入输出设备向处理器11发送选择该被选中的D进程的命令,处理器11根据该命令将该被选中的D进程作为目标进程。
其二,处理器11根据保存的选择标准确定目标进程。该选择标准可以包含在操作系统之中,也可以由用户创建或者从外部设备处接收。该选择标准可以规定作为目标进程的D进程的特征,处理器11可以将符合选择标准规定的特征的D进程作为目标进程。
具体的,根据保存的选择标准选择目标进程,可以包括如下实现方式:
第一种实现方式为,确认睡眠状态不可中断的内核态进程为所述目标进程,换言之,选择全部D进程作为目标进程。
第二种实现方式为,选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程。
第三种实现方式为,选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
第四种实现方式为,确认进程标识为指定标识的D进程为目标进程,例如,确定所有D进程中进程标识为“user1”的进程为目标进程。
第五种实现方式为,上述第二至第四种实现方式中任意两项的结合,例如,上述第二、第三种实现方式相结合的方式中,选择标准规定的特征包括:处于睡眠状态的时间达到预设时长、在不同时刻保存至所述等待队列成为D进程的次数达到预设次数,处理器11将同时符合上述两个特征的D进程选择为目标进程。又例如,上述第二、第四种实现方式相结合的方式中,选择标准规定的特征包括:处于睡眠状态的时间达到预设时长、进程标识为指定标识,处理器11将同时符合上述两个特征的D进程选择为目标进程。再例如,上述第三、第四种实现方式相结合的方式中,选择标准规定的特征包括:在不同时刻保存至所述等待队列成为D进程的次数达到预设次数、进程标识为指定标识,处理器11可以将同时符合上述两个特征的D进程选择为目标进程。
另外,上述第二至第四种实现方式三者也可以结合,三者结合时,选择标准规定的特征包括:处于睡眠状态的时间达到预设时长、在不同时刻保存至所述等待队列成为D进程的次数达到预设次数、进程标识为指定标识,处理器11将同时符合上述三个特征的D进程选择为目标进程。在另一些实施例中,D进程符合上述第二至第四种实现方式中任一实现方式的要求,即可确定其为目标进程。
步骤202、调用内核接口执行插件进程,将所述目标进程从所述等待队列中移除。该插件进程的类型为内核态进程,可以由内核中用于对内核态进程进行移除的操作集函数实现。
参照图3a-3b,所述调用内核接口执行插件进程,将所述目标进程从所述等待队列中移除,具体包括:步骤2021:调用内核接口执行插件进程,将所述目标进程从所述等待队列中删除,以避免该目标进程长期占用等待队列,降低系统的可用性。或者,包括步骤2022:调用内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒。
步骤2022:调用内核接口执行移除进程,将所述目标进程从所述等待队列中唤醒,具体包括:查询满足所述目标进程的执行条件后,将所述目标进程从所述等待队列中删除,并将所述目标进程保存至运行队列中,使得该目标进程能够尽快被处理器执行,减少该进程所在的应用的等待时间,提高系统的效率。
可选的,上述步骤2022中,查询满足所述目标进程的执行条件,可以为查询目标进程执行所需的资源是否满足,若满足,则确定满足所述目标进程的执行条件。其中,目标程序执行所需的资源可以通过查询日记中关于目标进程的记录确定。计算设备可以查询当前可以使用的资源,进而确定目标进程执行所需的资源是否满足。在另一些实施例中,该目标进程的执行条件可以为预设的触发条件,例如,在预设时刻唤醒该目标进程,又例如,在处理器的利用率低于阈值时唤醒该目标进程,再例如,在运行队列中的进程数不大于设定值时唤醒该目标进程。上述技术方案中,在满足所述目标进程的执行条件时,唤醒目标进程,不仅使目标进程能够被及时执行,而且能够定义目标进程的被唤醒的时间,以满足不同应用场景下对唤醒D进程的时机的不同需求。
可选的,上述步骤201中,根据保存的选择标准选择目标进程可以是定期查询获得的,定期查询获得的目标进程的个数可以是一个也可以是多个,例如定期查询符合所述选择标准规定的至少一个目标进程。
可选的,上述步骤202中,所述调用内核接口执行插件进程,将所述目标进程从所述等待队列中移除时,可以对符合所述规定的至少一个目标进程中的一个目标进程或多个目标进程进行移除。对一个目标进程或多个目标进程进行移除具体的实现方式为:调用内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中移除。例如,步骤201中被选择出的目标进程可以形成一待移除进程池,计算设备定期从该进程池中确定小于或等于预设个数的目标进程,调用内核接口执行插件进程对这些进程进行移除。其中,定期从该进程池中确定小于或等于预设个数的目标进程可以有多种实现方式,例如,定期随机从该进程池挑选小于或等于预设个数的进程;又例如,定期挑选进入进程池时间最久的小于或等于预设个数的进程。
上述技术方案中,计算设备可以选择D进程作为目标进程,调用内核接口执行插件进程,将选择的目标进程从等待队列中移除,实现对D进程的移除,避免D进程占用内核资源,提高系统的可用性。
需要说明的是,上述定期选择至少一个目标进程以及定期调用内核接口执行插件进程的方案,可以适用于将目标进程从等待队列中删除的方案,也可以适用于将目标进程唤醒的方案,即将目标进程从等待队列中删除,并将目标进程保存至运行队列。
可选的,参照图4a所示,上述内核接口的实现方式可以为:对proc文件系统(procfilesystem)进行改进,在proc文件系统中添加接口插件,该接口插件提供调用插件进程的内核接口。proc文件系统是一种用来向进程(process)发送信息的机制,可以获取内核空间中内核态进程的有用信息,在运行中改变设置等。本申请实施例中,可以通过改进的proc文件系统向用户空间暴露调用所述插件进程的内核接口,实现容易,成本较低。
可选的,参照图4b,上述内核接口可以包括删除接口以及唤醒接口,调用删除接口可以执行插件进程中删除功能的操作集函数,对目标进程进行删除操作,而调用唤醒接口可以执行插件进程中的唤醒功能的操作集函数,对目标进程进行唤醒操作。上述技术方案中,由于分别提供删除接口以及唤醒接口,可以在通过调用删除接口执行插件进程对一目标进程进行删除时,通过调用唤醒接口执行插件进程对另一目标进程进行唤醒,进而提高对进程进行管理的效率。
图5为本发明实施例提供的一种进程管理装置的示意图,该进程管理装置位于安装有操作系统的计算设备,可以用于执行步骤201至步骤202的进程管理方法,以对所述计算设备的等待队列中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中。该装置包括:
选择模块301,用于选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中;
移除模块302,用于调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中移除,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
可选的,所述选择模块301,具体可用于:
选择全部D进程为所述目标进程;或者,
选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,
选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
可选的,所述选择模块301,具体可用于:定期选择符合D进程特征的至少一个目标进程;
所述移除模块302,具体可用于:调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中移除。
可选的,参见图6,移除模块302包括:调用模块3021、接口模块3022以及执行模块3023。
其中,接口模块3022用于向用户空间暴露内核接口,该调用该内核接口可以执行插件进程。
调用模块3021用于调用接口模块3022提供的内核接口,请求执行模块将所述目标进程从所述等待队列中移除。
执行模块3023,用于来自响应接口模块3022的执行,可以将目标进程从等待队列中移除。上述调用模块3021运行于用户空间,接口模块3022以及执行模块3023运行于内核空间中。
可选的,接口模块3022可以划分为功能注册模块、功能实施模块以及适配模块,其中,功能注册模块用于向proc文件系统框架注册调用执行模块3023的内核接口;功能实施模块用于实现接口模块3022的基础功能,包括搜集进程信息、调用适配模块进行进程控制;适配模块负责将调用内存、内核进程处理模块等的请求与对应的接口匹配。接口模块3022的初始化过程可以为:功能注册模块初始化调用插件进程执行模块3023的各功能的接口,适配模块注册每一接口所调用的功能的操作集函数,适配模块还可以初始化与内存适配的功能,然后,功能实施模块初始化,向适配模块注册调用插件进程的能力。
上述装置的各模块的实现方式可以参照步骤201至步骤202所述方法的各种可能的实现方式。另外,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。其中,集成的模块既可以采用硬件的形式实现时,例如,上述选择模块301、移除模块302可以由计算设备的处理器实现,该处理器的实现方式可以参照前述处理器11。
图7为本发明实施例提供的一种进程管理装置的示意图,该进程管理装置位于安装有操作系统的计算设备中,可以用于执行步骤201至步骤202的进程管理方法,以对所述计算设备的等待队列中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中。该装置包括:
选择模块401,用于选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中;
唤醒模块402,用于调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
可选的,装置还包括:
查询模块403,用于查询所述计算设备是否满足所述目标进程的执行条件;
唤醒模块402具体用于:在所述查询模块403查询出所述计算设备满足所述目标进程的执行条件后,保存所述目标进程至运行队列中,所述运行队列保存在所述计算设备的内存中,所述运行队列用于向所述计算设备提供待运行的进程;将所述目标进程从所述等待队列中删除。
可选的,所述选择模块401,具体可用于:
选择全部D进程为所述目标进程;或者,
选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,
选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
可选的,所述选择模块401,具体可用于:
定期选择符合D进程特征的至少一个目标进程;
唤醒模块402,具体可用于:调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中唤醒。
上述装置的各模块的实现方式可以参照步骤201至步骤2022所述方法的各种可能的实现方式。另外,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。其中,集成的模块既可以采用硬件的形式实现时,例如,上述选择模块401、唤醒模块402以及查询模块403可以由计算设备的处理器实现,该处理器的实现方式可以参照前述处理器11。
本发明实施例还提供一种计算设备可读存储介质,所述可读存储介质中存储有计算机指令,所述指令在计算设备上运行时,使得计算设备执行前述进程管理方法。
本发明实施例还提供一种包含指令的计算设备程序产品,当所述计算设备程序产品在计算设备上运行时,使得计算设备执行前述进程管理方法。
本发明实施例还提供一种芯片,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,该计算机程序用于实现上述进程管理方法。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种进程管理方法,其特征在于,应用于安装操作系统的计算设备中,用于对所述计算设备的等待队列中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中,所述方法包括:
选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中;
调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中移除,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
2.如权利要求1所述的方法,其特征在于,所述选择目标进程,包括:
选择全部D进程为所述目标进程;或者,
选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,
选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
3.如权利要求1或2所述的方法,其特征在于,所述选择目标进程,包括:
定期选择符合D进程特征的至少一个目标进程;
所述调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中移除,包括:
调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中移除。
4.一种进程管理方法,其特征在于,用于对安装操作系统的计算设备的等待队里中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中,所述方法包括:
选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中;
调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
5.如权利要求4所述的方法,其特征在于,所述调用所述操作系统向应用程序提供的内核接口执行插件进程之前,还包括:
查询所述计算设备是否满足所述目标进程的执行条件;
若所述计算设备满足所述目标进程的执行条件,所述调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒,包括:
保存所述目标进程至运行队列中,所述运行队列保存在所述计算设备的内存中,所述运行队列用于向所述计算设备提供待运行的进程;
将所述目标进程从所述等待队列中删除。
6.如权利要求4或5所述的方法,其特征在于,所述选择目标进程,包括:
选择全部D进程为所述目标进程;或者,
选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,
选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
7.如权利要求4至6任一项所述的方法,其特征在于,所述选择目标进程,包括:
定期选择符合D进程特征的至少一个目标进程;
所述调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒,包括:
调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中唤醒。
8.一种进程管理装置,其特征在于,所述装置位于安装操作系统的计算设备中,用于对所述计算设备的等待队列中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中,所述装置包括:
选择模块,用于选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中;
移除模块,用于调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中移除,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
9.如权利要求8所述的装置,其特征在于,所述选择模块,具体用于:
选择全部D进程为所述目标进程;或者,
选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,
选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
10.如权利要求8或9所述的装置,其特征在于,所述选择目标进程,包括:
定期选择符合D进程特征的至少一个目标进程;
所述调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中移除,包括:
调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中移除。
11.一种进程管理装置,其特征在于,所述装置位于对安装操作系统的计算设备中,用于对所述计算设备的等待队列中的进程进行管理,所述等待队列中的进程保存在所述计算设备的内存中,所述装置包括:
选择模块,用于选择目标进程,所述目标进程为D进程,所述D进程为睡眠状态不可中断的内核态进程,所述目标进程位于所述等待队列中;
唤醒模块,用于调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述目标进程从所述等待队列中唤醒,所述内核接口用于启动所述插件进程,所述插件进程保存于所述计算设备的内存中,所述插件进程的类型为内核态进程。
12.如权利要求11所述的装置,其特征在于,还包括:
查询模块,用于在所述唤醒模块调用所述操作系统向应用程序提供的内核接口执行插件进程之前,查询所述计算设备是否满足所述目标进程的执行条件;
所述唤醒模块,具体用于:在所述查询模块查询出所述计算设备满足所述目标进程的执行条件后,保存所述目标进程至运行队列中,所述运行队列保存在所述计算设备的内存中,所述运行队列用于向所述计算设备提供待运行的进程;并将所述目标进程从所述等待队列中删除。
13.如权利要求11或12所述的装置,其特征在于,所述选择模块,具体用于:
选择全部D进程为所述目标进程;或者,
选择处于睡眠状态的时间达到预设时长的D进程为所述目标进程;或者,
选择同一内核态进程在不同时刻保存至所述等待队列成为D进程的次数达到预设次数的内核态进程为所述目标进程。
14.如权利要求11至13任一项所述的装置,其特征在于,所述选择模块,具体用于:
定期选择符合D进程特征的至少一个目标进程;
所述唤醒模块,具体用于:调用所述操作系统向应用程序提供的内核接口执行插件进程,将所述至少一个目标进程中小于或等于预设个数的所述目标进程从所述等待队列中唤醒。
15.一种计算设备,其特征在于,包括:处理器以及存储器,所述处理器与所述存储器通过总线连接;
其中,所述存储器存储有计算机指令;
所述处理器用于:执行所述计算机指令,以执行如权利要求1至7任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710773895.6A CN109426563B (zh) | 2017-08-31 | 2017-08-31 | 一种进程管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710773895.6A CN109426563B (zh) | 2017-08-31 | 2017-08-31 | 一种进程管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426563A true CN109426563A (zh) | 2019-03-05 |
CN109426563B CN109426563B (zh) | 2021-07-20 |
Family
ID=65512687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710773895.6A Active CN109426563B (zh) | 2017-08-31 | 2017-08-31 | 一种进程管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426563B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918141A (zh) * | 2019-03-15 | 2019-06-21 | Oppo广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
CN113407368A (zh) * | 2020-03-16 | 2021-09-17 | 广东龙芯中科电子科技有限公司 | 进程管理方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801096A (zh) * | 2005-01-05 | 2006-07-12 | 国际商业机器公司 | 在计算机系统中用于对进程进行休眠的方法和系统 |
US20080263545A1 (en) * | 2007-04-23 | 2008-10-23 | Hewlett-Packard Development Company, L.P. | Signal delivery to a process in a process group |
CN102779072A (zh) * | 2012-06-18 | 2012-11-14 | 中国科学院上海微系统与信息技术研究所 | 一种嵌入式系统及其应用进程的休眠与唤醒方法 |
CN105159776A (zh) * | 2015-08-03 | 2015-12-16 | 中科创达软件股份有限公司 | 进程处理方法及装置 |
CN105204936A (zh) * | 2015-09-30 | 2015-12-30 | 山东乾云启创信息科技有限公司 | 常驻进程管理通用平台及方法 |
CN105630560A (zh) * | 2015-12-29 | 2016-06-01 | 北京金山安全软件有限公司 | 一种进程处理方法及装置 |
CN106020962A (zh) * | 2016-05-31 | 2016-10-12 | 广东欧珀移动通信有限公司 | 一种进程控制方法及终端设备 |
-
2017
- 2017-08-31 CN CN201710773895.6A patent/CN109426563B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801096A (zh) * | 2005-01-05 | 2006-07-12 | 国际商业机器公司 | 在计算机系统中用于对进程进行休眠的方法和系统 |
US20080263545A1 (en) * | 2007-04-23 | 2008-10-23 | Hewlett-Packard Development Company, L.P. | Signal delivery to a process in a process group |
CN102779072A (zh) * | 2012-06-18 | 2012-11-14 | 中国科学院上海微系统与信息技术研究所 | 一种嵌入式系统及其应用进程的休眠与唤醒方法 |
CN105159776A (zh) * | 2015-08-03 | 2015-12-16 | 中科创达软件股份有限公司 | 进程处理方法及装置 |
CN105204936A (zh) * | 2015-09-30 | 2015-12-30 | 山东乾云启创信息科技有限公司 | 常驻进程管理通用平台及方法 |
CN105630560A (zh) * | 2015-12-29 | 2016-06-01 | 北京金山安全软件有限公司 | 一种进程处理方法及装置 |
CN106020962A (zh) * | 2016-05-31 | 2016-10-12 | 广东欧珀移动通信有限公司 | 一种进程控制方法及终端设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918141A (zh) * | 2019-03-15 | 2019-06-21 | Oppo广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
CN109918141B (zh) * | 2019-03-15 | 2020-11-27 | Oppo广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
CN113407368A (zh) * | 2020-03-16 | 2021-09-17 | 广东龙芯中科电子科技有限公司 | 进程管理方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109426563B (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3796150B1 (en) | Storage volume creation method and apparatus, server, and storage medium | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN102314377B (zh) | 加速器及其实现支持虚拟机迁移的方法 | |
US10884667B2 (en) | Storage controller and IO request processing method | |
CN110083399B (zh) | 小程序运行方法、计算机设备及存储介质 | |
KR20200122364A (ko) | 자원 스케줄링 방법 및 단말 장치 | |
EP3869324A2 (en) | Voice data processing method, apparatus, storage medium and computer program product | |
WO2019061647A1 (zh) | 队列消息处理方法、装置、终端设备及介质 | |
WO2019028682A1 (zh) | 一种多系统共享内存的管理方法及装置 | |
CN110018883A (zh) | 一种虚拟机删除方法、装置、设备及存储介质 | |
WO2024119823A1 (zh) | Gpu计算资源的管理方法、装置、电子设备及可读存储介质 | |
CN109426563A (zh) | 一种进程管理方法及装置 | |
CN110795323A (zh) | 负载统计方法、装置、存储介质及电子设备 | |
CN107577962B (zh) | 一种密码卡多算法并列执行的方法、系统及相关装置 | |
WO2024119930A1 (zh) | 调度方法、装置、计算机设备和存储介质 | |
US11061730B2 (en) | Efficient scheduling for hyper-threaded CPUs using memory monitoring | |
US10061676B2 (en) | Remotely located timing method and device for a processing unit in an information processing system | |
US7797473B2 (en) | System for executing system management interrupts and methods thereof | |
CN114090196A (zh) | 一种协程切换的方法、装置及设备 | |
US9088569B2 (en) | Managing access to a shared resource using client access credentials | |
US20140245050A1 (en) | Power management for host with devices assigned to virtual machines | |
US11360702B2 (en) | Controller event queues | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN113076189B (zh) | 具有多数据通路的数据处理系统及用多数据通路构建虚拟电子设备 | |
CN113076180B (zh) | 上行数据通路的构建方法及数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |