CN112631744A - 进程处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
进程处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112631744A CN112631744A CN201910907661.5A CN201910907661A CN112631744A CN 112631744 A CN112631744 A CN 112631744A CN 201910907661 A CN201910907661 A CN 201910907661A CN 112631744 A CN112631744 A CN 112631744A
- Authority
- CN
- China
- Prior art keywords
- virtual processor
- preset
- machine monitor
- running
- virtual machine
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 562
- 230000008569 process Effects 0.000 title claims abstract description 508
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 196
- 238000012545 processing Methods 0.000 claims abstract description 185
- 230000000903 blocking effect Effects 0.000 claims abstract description 106
- 230000001960 triggered effect Effects 0.000 claims abstract description 78
- 238000001514 detection method Methods 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 7
- 230000002618 waking effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
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)
Abstract
本发明实施例公开了一种进程处理方法、装置、电子设备及计算机可读存储介质,所述方法包括:响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
Description
技术领域
本发明实施例涉及进程处理技术领域,具体涉及一种进程处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着数据技术的发展,为了提高数据的使用效率和安全性,虚拟机 (VirtualMachine,VM)的概念应运而生,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在KVM(Kernel-based Virtual Machine,基于内核的虚拟机)架构下,虚拟处理器(vcpu)作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争夺,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
发明内容
本发明实施例提供一种进程处理方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例中提供了一种进程处理方法。
具体的,所述进程处理方法,包括:
响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
结合上述实现方式,所述响应于硬中断事件处理结束,检测内核进程的阻塞时间之前,还包括:
响应于检测到中断事件被触发,处理中断队列中的当前中断事件。
结合上述实现方式,所述响应于检测到中断事件被触发,处理中断队列中的当前中断事件之前,还包括:
获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
结合上述实现方式,所述获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令之前,还包括:
对于内核进程进行初始化。
结合上述实现方式,所述对于内核进程进行初始化,包括:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
结合上述实现方式,还包括:
响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,其中,所述中间唤醒请求携带有所述预设运行请求信息;
响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
结合上述实现方式,还包括:
响应于所述预设时间段结束,处理所述中断队列中的下一中断事件。
第二方面,本发明实施例中提供了一种进程处理方法。
具体的,所述进程处理方法,包括:
对于虚拟处理器进行初始化;
响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
响应于所述预设时间段结束,停止所述中间运行。
结合上述实现方式,所述对于虚拟处理器进行初始化,包括:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
结合上述实现方式,还包括:
响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,其中,所述中间唤醒请求携带有所述预设运行请求信息;
运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态。
第三方面,本发明实施例中提供了一种进程处理方法。
具体的,所述进程处理方法,包括:
对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
响应于所述预设时间段结束,所述虚拟机监视器处理中断队列中的下一中断事件。
结合上述实现方式,所述对于虚拟机监视器的内核进程进行初始化,被实施为:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
结合上述实现方式,所述对于虚拟处理器进行初始化,被实施为:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
结合上述实现方式,所述当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,包括:
响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间;
当所述内核进程的阻塞时间超过预设时间阈值时,所述虚拟机监视器触发虚拟处理器软中断事件;
响应于所述虚拟处理器软中断事件被触发,所述虚拟机监视器向所述虚拟处理器发送中间启动指令;
响应于接收到所述虚拟机监视器发送的中间启动指令,所述虚拟处理器启动中间运行,其中,所述中间运行的运行时长为预设时间段;
响应于所述预设时间段结束,所述虚拟处理器停止所述中间运行。
结合上述实现方式,所述响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间之前,还包括:
响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件。
结合上述实现方式,所述响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件之前,还包括:
所述虚拟机监视器获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
结合上述实现方式,还包括:
响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒。
结合上述实现方式,所述响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒,包括:
响应于接收到预设运行请求,所述虚拟机监视器向所述虚拟处理器发送中间唤醒请求,其中,所述中间唤醒请求携带有所述预设运行请求信息;
响应于接收到所述虚拟机监视器发送的中间唤醒请求,所述虚拟处理器由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;
所述虚拟机监视器在接收到所述虚拟处理器发送的唤醒成功消息后进行睡眠状态;
所述虚拟处理器运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;
响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,所述虚拟机监视器进入运行状态。
第四方面,本发明实施例中提供了一种进程处理装置。
具体的,所述进程处理装置,包括:
检测模块,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
结合上述实现方式,所述检测模块之前,还包括:
第一处理模块,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件。
结合上述实现方式,所述第一处理模块之前,还包括:
第一运行模块,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
结合上述实现方式,所述第一运行模块之前,还包括:
第一初始化模块,被配置为对于内核进程进行初始化。
结合上述实现方式,所述第一初始化模块包括:
创建子模块,被配置为创建内核进程;
挂载子模块,被配置为响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
第一启动子模块,被配置为响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
结合上述实现方式,还包括:
第二发送模块,被配置为响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第二运行模块,被配置为响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
结合上述实现方式,还包括:
第二处理模块,被配置为响应于所述预设时间段结束,处理所述中断队列中的下一中断事件。
第五方面,本发明实施例中提供了一种进程处理装置。
具体的,所述进程处理装置,包括:
第二初始化模块,被配置为对于虚拟处理器进行初始化;
第一启动模块,被配置为响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止模块,被配置为响应于所述预设时间段结束,停止所述中间运行。
结合上述实现方式,所述第二初始化模块包括:
生成子模块,被配置为生成一个或多个预设运行单元;
第一发送子模块,被配置为向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
第二发送子模块,被配置为响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
结合上述实现方式,还包括:
第三发送模块,被配置为响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第三运行模块,被配置为运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态。
第六方面,本发明实施例中提供了一种进程处理装置。
具体的,所述进程处理装置,包括:
第三初始化模块,被配置为对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
第二启动模块,被配置为当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
第三处理模块,被配置为响应于所述预设时间段结束,处理中断队列中的下一中断事件。
结合上述实现方式,所述第三初始化模块中对于虚拟机监视器的内核进程进行初始化的部分被配置为:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
结合上述实现方式,所述第三初始化模块中对于虚拟处理器进行初始化的部分被配置为:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
结合上述实现方式,所述第二启动模块包括:
检测子模块,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发子模块,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第三发送子模块,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令;
第二启动子模块,被配置为响应于接收到所述虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止子模块,被配置为响应于所述预设时间段结束,停止所述中间运行。
结合上述实现方式,所述检测子模块之前,还包括:
处理子模块,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件。
结合上述实现方式,所述处理子模块之前,还包括:
第一运行子模块,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
结合上述实现方式,还包括:
唤醒模块,被配置为响应于接收到预设运行请求,对于所述虚拟处理器进行中间唤醒。
结合上述实现方式,所述唤醒模块包括:
第四发送子模块,被配置为响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第五发送子模块,被配置为响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;
第一状态改变子模块,被配置为在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态;
第二运行子模块,被配置为运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;
第二状态改变子模块,被配置为响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
第七方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持进程处理装置执行上述进程处理方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述进程处理装置还可以包括通信接口,用于进程处理装置与其他设备或通信网络通信。
第八方面,本发明实施例提供了一种计算机可读存储介质,用于存储进程处理装置所用的计算机指令,其包含用于执行上述进程处理方法为进程处理装置所涉及的计算机指令。
本发明实施例提供的技术方案可包括以下有益效果:
上述技术方案通过在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本发明一实施方式的进程处理方法的流程图;
图2-图4示出根据本发明不同实施方式的进程处理方法的流程图;
图5示出根据图4所示实施方式的进程处理方法的步骤S401的流程图;
图6-图8示出根据本发明不同实施方式的进程处理方法的流程图;
图9示出根据图8所示实施方式的进程处理方法的步骤S801的流程图;
图10-图11示出根据本发明不同实施方式的进程处理方法的流程图;
图12示出根据图11所示实施方式的进程处理方法的步骤S1102的流程图;
图13示出根据图11所示另一实施方式的进程处理方法的步骤S1102 的流程图;
图14示出根据图11所示再一实施方式的进程处理方法的步骤S1102 的流程图;
图15示出根据本发明再一实施方式的进程处理方法的流程图;
图16示出根据图15所示实施方式的进程处理方法的步骤S1504的流程图;
图17示出根据本发明一实施方式的进程处理装置的结构框图;
图18-图20示出根据本发明不同实施方式的进程处理装置的结构框图;
图21示出根据图20所示实施方式的第一初始化模块2001的结构框图;
图22-图24示出根据本发明不同实施方式的进程处理装置的结构框图;
图25示出根据图24所示实施方式的第二初始化模块2401的结构框图;
图26-图27示出根据本发明不同实施方式的进程处理装置的结构框图;
图28示出根据图27所示实施方式的第二启动模块2702的结构框图;
图29示出根据图27所示另一实施方式的第二启动模块2702的结构框图;
图30示出根据图27所示再一实施方式的第二启动模块2702的结构框图;
图31示出根据本发明再一实施方式的进程处理装置的结构框图;
图32示出根据图31所示实施方式的唤醒模块3104的结构框图;
图33示出根据本发明一实施方式的应用场景示意图;
图34示出根据本发明一实施方式的电子设备的结构框图;
图35是适于用来实现根据本发明一实施方式的进程处理方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
本发明实施例提供的技术方案通过在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
图1示出根据本发明一实施方式的进程处理方法的流程图,适用于虚拟机监视器,如图1所示,所述进程处理方法包括以下步骤S101-S103:
在步骤S101中,响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
在步骤S102中,当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
在步骤S103中,响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
上文提及,随着数据技术的发展,为了提高数据的使用效率和安全性,虚拟机的概念应运而生,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在KVM架构下,虚拟处理器作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争抢,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
考虑到上述问题,在该实施方式中,提出一种进程处理方法,该方法通过在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
在本发明一实施方式中,所述中断队列指的是虚拟机监视器获取的中断事件组成的队列,处于所述中断队列中的中断事件通常被按照在队列中的顺序顺次执行。
为了避免虚拟处理器出现长时间阻塞和单次长时间抖动现象,在本发明一实施方式中,每当中断队列中的某一中断事件处理结束,就检测一下内核进程的阻塞时间,若所述内核进程的阻塞时间超过预设时间阈值,则认为虚拟处理器有可能出现长时间阻塞现象,需要对于虚拟处理器执行补偿运行操作,则触发虚拟处理器软中断事件,之后向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行,其中,所述预设时间段指的是虚拟处理器执行补偿运行的时长,其值可根据实际应用的需要进行设置,本公开对其不作具体限定,比如可以将所述预设时间段设置为0.1-0.5ms等等,例如,若所述预设时间段设置为0.1ms,则意味着所述虚拟处理器补偿运行0.1ms。
其中,所述预设时间阈值用于判断所述内核进程的阻塞时间长短,其值可根据实际应用的需要进行设置,本公开对其不作具体限定。
在本发明一实施方式中,所述步骤S101,即响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间的步骤之前,还包括响应于检测到中断事件被触发,处理中断队列中的当前中断事件的步骤,即如图2 所示,所述进程处理方法包括以下步骤S201-S204:
在步骤S201中,响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
在步骤S202中,响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
在步骤S203中,当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
在步骤S204中,响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
上文提及,所述中断队列中有可能存在一个或多个中断事件,因此,在该实施方式中,在检测到中断事件被触发后,按照当前时间以及中断队列中中断事件的排列顺序来处理所述中断队列中的当前中断事件,并在所述当前中断事件处理结束之后,再检测内核进程由于中断事件的处理而产生的阻塞时间。
在本发明一实施方式中,所述步骤S201,即响应于检测到中断事件被触发,处理中断队列中的当前中断事件的步骤之前,还包括获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令的步骤,即如图3所示,所述进程处理方法包括以下步骤S301-S305:
在步骤S301中,获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元;
在步骤S302中,响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
在步骤S303中,响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
在步骤S304中,当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
在步骤S305中,响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
为了虚拟处理器数据处理的完整性,在该实施方式中,在运行虚拟处理器数据时,以所述虚拟处理器的预设运行单元为单位运行,即首先获取、确定与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令停止所述虚拟处理器的运行。其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。在本发明一实施方式中,所述虚拟处理器预设运行单元可以由所述虚拟处理器运行的最小循环封装而成。
在本发明一实施方式中,所述虚拟机监视器中可设置一个内核进程也可以设置多个内核进程,其中,所述内核进程的数量可由物理处理器的数量来决定,比如,存在几个物理处理器就设置几个内核进程。其中,每个内核进程负责维护一个运行队列。
在本发明一实施方式中,所述步骤S301,即获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令的步骤之前,还包括对于内核进程进行初始化的步骤,即如图4所示,所述进程处理方法包括以下步骤S401-S406:
在步骤S401中,对于内核进程进行初始化;
在步骤S402中,获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元;
在步骤S403中,响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
在步骤S404中,响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
在步骤S405中,当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
在步骤S406中,响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
为了保证内核进程的正常工作,在该实施方式中,在内核进程开始工作之前,还需对其执行初始化操作。
在本发明一实施方式中,如图5所示,所述步骤S401,即对于内核进程进行初始化的步骤,包括以下步骤S501-S503:
在步骤S501中,创建内核进程;
在步骤S502中,响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
在步骤S503中,响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
在该实施方式中,在对于内核进程进行初始化时,首先创建一个或多个内核进程,对于每个内核进程来说,在接收到所述虚拟处理器发送的挂载请求后,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,并向所述虚拟处理器发送挂载成功消息,其中,所述挂载请求可包括内核进程标识信息和请求本体信息,以使所述虚拟机监视器根据所述内核进程标识信息将所述虚拟处理器的一个或多个预设运行单元放置于与所述内核进程标识信息对应的内核进程的运行队列中,当然,所述挂载请求也可仅包括请求本体信息,此时,所述虚拟机监视器随机选择一个内核进程来放置所述虚拟处理器的一个或多个预设运行单元;之后在接收到所述虚拟处理器发送的内核进程唤醒请求后,启动所述内核进程运行。
在本发明一实施方式中,所述方法还包括与所述虚拟处理器交互以执行预设运行请求的步骤,即如图6所示,所述进程处理方法包括以下步骤 S601-S605:
在步骤S601中,响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
在步骤S602中,当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
在步骤S603中,响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行;
在步骤S604中,响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,其中,所述中间唤醒请求携带有所述预设运行请求信息;
在步骤S605中,响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
若所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求,比如基于用户态的运行请求等,则需向所述虚拟处理器发送携带有所述预设运行请求信息的中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,转由所述虚拟处理器来完成所述预设运行请求,并在接收到所述虚拟处理器发送的预设运行请求处理结束消息后,再次进入运行状态。
在本发明一实施方式中,所述方法还包括响应于所述预设时间段结束,处理所述中断队列中的下一中断事件的步骤,即如图7所示,所述进程处理方法包括以下步骤S701-S704:
在步骤S701中,响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
在步骤S702中,当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
在步骤S703中,响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行;
在步骤S704中,响应于所述预设时间段结束,处理所述中断队列中的下一中断事件。
在该实施方式中,在所述虚拟处理器执行中间启动预设时间段,即中间启动结束后,所述虚拟机监视器继续处理所述中断队列中的下一中断事件,并在处理完下一中断事件之后,检测内核进程的阻塞时间。若所述中断队列中不存在下一中断事件,则所述虚拟机监视器继续处理其他进程。
图8示出根据本发明另一实施方式的进程处理方法的流程图,适用于虚拟处理器,如图8所示,所述进程处理方法包括以下步骤S801-S803:
在步骤S801中,对于虚拟处理器进行初始化;
在步骤S802中,响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
在步骤S803中,响应于所述预设时间段结束,停止所述中间运行。
上文提及,在KVM架构下,虚拟处理器作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争抢,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
考虑到上述问题,在该实施方式中,提出一种进程处理方法,该方法通过虚拟机监视器在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
为了避免虚拟处理器出现长时间阻塞和单次长时间抖动现象,在该实施方式中,在对于虚拟处理器进行初始化,挂载在所述虚拟机监视器上之后,若接收到虚拟机监视器发送的中间启动指令,则启动中间运行,其中,所述虚拟处理器中间运行的运行时长为预设时间段;并在所述预设时间段结束后,停止所述中间运行。
其中,所述预设时间段指的是虚拟处理器执行补偿运行的时长,其值可根据实际应用的需要进行设置,本公开对其不作具体限定,比如可以将所述预设时间段设置为0.1-0.5ms等等,例如,若所述预设时间段设置为 0.1ms,则意味着所述虚拟处理器补偿运行0.1ms。
在本发明一实施方式中,如图9所示,所述步骤S801,即对于虚拟处理器进行初始化的步骤,包括以下步骤S901-S903:
在步骤S901中,生成一个或多个预设运行单元;
在步骤S902中,向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
在步骤S903中,响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
在该实施方式中,在对于虚拟处理器进行初始化时,首先根据所述虚拟处理器运行的最小循环封装生成一个或多个预设运行单元;然后向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中由内核进程执行运行操作;在接收到所述虚拟机监视器发送的挂载成功消息后,向所述虚拟机监视器发送内核进程唤醒请求以唤醒所述内核进程,所述虚拟处理器进而进入睡眠状态。
在本发明一实施方式中,所述方法还包括与所述虚拟机监视器交互以执行预设运行请求的步骤,即如图10所示,所述进程处理方法包括以下步骤S1001-S1005:
在步骤S1001中,对于虚拟处理器进行初始化;
在步骤S1002中,响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
在步骤S1003中,响应于所述预设时间段结束,停止所述中间运行;
在步骤S1004中,响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,其中,所述中间唤醒请求携带有所述预设运行请求信息;
在步骤S1005中,运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态。
若所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求,比如基于用户态的运行请求等,则需向所述虚拟处理器发送携带有所述预设运行请求信息的中间唤醒请求以唤醒所述虚拟处理器,此时,所述虚拟处理器接收到所述虚拟机监视器发送的中间唤醒请求后,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,然后所述虚拟处理器运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息以重新唤醒所述虚拟机监视器,而所述虚拟处理器则再次进入睡眠状态。
图11示出根据本发明再一实施方式的进程处理方法的流程图,适用于进程处理系统,其中,所述进程处理系统包括虚拟机监视器和虚拟处理器,如图11所示,所述进程处理方法包括以下步骤S1101-S1103:
在步骤S1101中,对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
在步骤S1102中,当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
在步骤S1103中,响应于所述预设时间段结束,所述虚拟机监视器处理中断队列中的下一中断事件。
上文提及,在KVM架构下,虚拟处理器作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争抢,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
考虑到上述问题,在该实施方式中,提出一种进程处理方法,该方法通过虚拟机监视器在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
在该实施方式中,首先对于虚拟机监视器的内核进程和虚拟处理器进行初始化;当所述虚拟机监视器的内核进程中断事件被触发且满足预设条件时,认为需要对于所述虚拟处理器进行补偿启动,但为了不致对于内核进程中产生不利影响,所述虚拟处理器的补偿启动只持续预设时间段;在所述预设时间段结束后,所述虚拟机监视器转而处理中断队列中的下一中断事件。
在本发明一实施方式中,所述步骤S1101中对于虚拟机监视器的内核进程进行初始化的部分,可被实施为:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
为了保证内核进程的正常工作,在该实施方式中,在内核进程开始工作之前,还需对其执行初始化操作。具体地,首先创建一个或多个内核进程,对于每个内核进程来说,在接收到所述虚拟处理器发送的挂载请求后,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,并向所述虚拟处理器发送挂载成功消息,其中,所述挂载请求可包括内核进程标识信息和请求本体信息,以使所述虚拟机监视器根据所述内核进程标识信息将所述虚拟处理器的一个或多个预设运行单元放置于与所述内核进程标识信息对应的内核进程的运行队列中,当然,所述挂载请求也可仅包括请求本体信息,此时,所述虚拟机监视器随机选择一个内核进程来放置所述虚拟处理器的一个或多个预设运行单元;之后在接收到所述虚拟处理器发送的内核进程唤醒请求后,启动所述内核进程运行。
在本发明一实施方式中,所述步骤S1101中对于虚拟处理器进行初始化的部分,可被实施为:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
为了保证虚拟处理器的正常工作,在该实施方式中,在虚拟处理器开始工作之前,还需对其执行初始化操作。具体地,在对于虚拟处理器进行初始化时,首先根据所述虚拟处理器运行的最小循环封装生成一个或多个预设运行单元;然后向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中由内核进程执行运行操作;在接收到所述虚拟机监视器发送的挂载成功消息后,向所述虚拟机监视器发送内核进程唤醒请求以唤醒所述内核进程,所述虚拟处理器进而进入睡眠状态。
在本发明一实施方式中,如图12所示,所述步骤S1102,即当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动的步骤,包括以下步骤S1201-S1205:
在步骤S1201中,响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间;
在步骤S1202中,当所述内核进程的阻塞时间超过预设时间阈值时,所述虚拟机监视器触发虚拟处理器软中断事件;
在步骤S1203中,响应于所述虚拟处理器软中断事件被触发,所述虚拟机监视器向所述虚拟处理器发送中间启动指令;
在步骤S1204中,响应于接收到所述虚拟机监视器发送的中间启动指令,所述虚拟处理器启动中间运行,其中,所述中间运行的运行时长为预设时间段;
在步骤S1205中,响应于所述预设时间段结束,所述虚拟处理器停止所述中间运行。
为了避免虚拟处理器出现长时间阻塞和单次长时间抖动现象,在本发明一实施方式中,每当中断队列中的某一中断事件处理结束,虚拟机监视器就检测一下内核进程的阻塞时间,若所述内核进程的阻塞时间超过预设时间阈值,则认为虚拟处理器有可能出现长时间阻塞现象,需要对于虚拟处理器执行补偿运行操作,则触发虚拟处理器软中断事件,之后向所述虚拟处理器发送中间启动指令,虚拟处理器接收到虚拟机监视器发送的中间启动指令后,启动中间运行,其中,所述虚拟处理器中间运行的运行时长为预设时间段;并在所述预设时间段结束后,所述虚拟处理器停止其中间运行。
在本发明一实施方式中,所述步骤S1201,即响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间之前,还包括响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件的步骤,即如图13所示,所述步骤S1102,即当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动的步骤,包括以下步骤S1301-S1306:
在步骤S1301中,响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件;
在步骤S1302中,响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间;
在步骤S1303中,当所述内核进程的阻塞时间超过预设时间阈值时,所述虚拟机监视器触发虚拟处理器软中断事件;
在步骤S1304中,响应于所述虚拟处理器软中断事件被触发,所述虚拟机监视器向所述虚拟处理器发送中间启动指令;
在步骤S1305中,响应于接收到所述虚拟机监视器发送的中间启动指令,所述虚拟处理器启动中间运行,其中,所述中间运行的运行时长为预设时间段;
在步骤S1306中,响应于所述预设时间段结束,所述虚拟处理器停止所述中间运行。
上文提及,所述中断队列中有可能存在一个或多个中断事件,因此,在该实施方式中,在检测到中断事件被触发后,所述虚拟机监视器按照当前时间以及中断队列中中断事件的排列顺序来处理所述中断队列中的当前中断事件,并在所述当前中断事件处理结束之后,再检测内核进程由于中断事件的处理而产生的阻塞时间。
在本发明一实施方式中,所述步骤S1301,即响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件之前,还包括所述虚拟机监视器获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令的步骤,即如图14所示,所述步骤S1102,即当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动的步骤,包括以下步骤S1401-S1407:
在步骤S1401中,所述虚拟机监视器获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元;
在步骤S1402中,响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件;
在步骤S1403中,响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间;
在步骤S1404中,当所述内核进程的阻塞时间超过预设时间阈值时,所述虚拟机监视器触发虚拟处理器软中断事件;
在步骤S1405中,响应于所述虚拟处理器软中断事件被触发,所述虚拟机监视器向所述虚拟处理器发送中间启动指令;
在步骤S1406中,响应于接收到所述虚拟机监视器发送的中间启动指令,所述虚拟处理器启动中间运行,其中,所述中间运行的运行时长为预设时间段;
在步骤S1407中,响应于所述预设时间段结束,所述虚拟处理器停止所述中间运行。
为了虚拟处理器数据处理的完整性,在该实施方式中,在所述虚拟机监视器运行虚拟处理器数据时,以所述虚拟处理器的预设运行单元为单位运行,即所述虚拟机监视器首先获取、确定与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令停止所述虚拟处理器的运行。其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。在本发明一实施方式中,所述虚拟处理器预设运行单元可以由所述虚拟处理器运行的最小循环封装而成。
在本发明一实施方式中,所述方法还包括响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒的步骤,即如图15 所示,所述进程处理方法包括以下步骤S1501-S1504:
在步骤S1501中,对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
在步骤S1502中,当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
在步骤S1503中,响应于所述预设时间段结束,所述虚拟机监视器处理中断队列中的下一中断事件;
在步骤S1504中,响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒。
在该实施方式中,若所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求,比如基于用户态的运行请求等,则需唤醒所述虚拟处理器进入运行状态以处理所述预设运行请求。
在本发明一实施方式中,如图16所示,所述步骤S1504,即响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒的步骤,包括以下步骤S1601-S1605:
在步骤S1601中,响应于接收到预设运行请求,所述虚拟机监视器向所述虚拟处理器发送中间唤醒请求,其中,所述中间唤醒请求携带有所述预设运行请求信息;
在步骤S1602中,响应于接收到所述虚拟机监视器发送的中间唤醒请求,所述虚拟处理器由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;
在步骤S1603中,所述虚拟机监视器在接收到所述虚拟处理器发送的唤醒成功消息后进行睡眠状态;
在步骤S1604中,所述虚拟处理器运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;
在步骤S1605中,响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,所述虚拟机监视器进入运行状态。
当所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求时,需向所述虚拟处理器发送携带有所述预设运行请求信息的中间唤醒请求;所述虚拟处理器在接收到所述虚拟机监视器发送的中间唤醒请求后,其由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;所述虚拟机监视器在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,转由所述虚拟处理器来完成所述预设运行请求;所述虚拟处理器运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;所述虚拟机监视器在接收到所述虚拟处理器发送的预设运行请求处理结束消息后,恢复进入运行状态。
下述为本发明装置实施例,可以用于执行本发明方法实施例。
图17示出根据本发明一实施方式的进程处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部,比如可实现为虚拟机监视器。如图17所示,所述进程处理装置包括:
检测模块1701,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块1702,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块1703,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
上文提及,随着数据技术的发展,为了提高数据的使用效率和安全性,虚拟机的概念应运而生,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在KVM架构下,虚拟处理器作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争抢,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
考虑到上述问题,在该实施方式中,提出一种进程处理装置,该装置通过在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
在本发明一实施方式中,所述中断队列指的是虚拟机监视器获取的中断事件组成的队列,处于所述中断队列中的中断事件通常被按照在队列中的顺序顺次执行。
为了避免虚拟处理器出现长时间阻塞和单次长时间抖动现象,在本发明一实施方式中,每当中断队列中的某一中断事件处理结束,检测模块 1701就检测一下内核进程的阻塞时间,若所述内核进程的阻塞时间超过预设时间阈值,则认为虚拟处理器有可能出现长时间阻塞现象,需要对于虚拟处理器执行补偿运行操作,则触发模块1702触发虚拟处理器软中断事件,之后第一发送模块1703向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行,其中,所述预设时间段指的是虚拟处理器执行补偿运行的时长,其值可根据实际应用的需要进行设置,本公开对其不作具体限定,比如可以将所述预设时间段设置为0.1-0.5ms等等,例如,若所述预设时间段设置为0.1ms,则意味着所述虚拟处理器补偿运行0.1ms。
其中,所述预设时间阈值用于判断所述内核进程的阻塞时间长短,其值可根据实际应用的需要进行设置,本公开对其不作具体限定。
在本发明一实施方式中,所述检测模块1701之前,还包括响应于检测到中断事件被触发,处理中断队列中的当前中断事件的部分,即如图18 所示,所述进程处理装置包括:
第一处理模块1801,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
检测模块1802,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块1803,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块1804,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
上文提及,所述中断队列中有可能存在一个或多个中断事件,因此,在该实施方式中,在检测到中断事件被触发后,第一处理模块1801按照当前时间以及中断队列中中断事件的排列顺序来处理所述中断队列中的当前中断事件,并在所述当前中断事件处理结束之后,检测模块1802再检测内核进程由于中断事件的处理而产生的阻塞时间。
在本发明一实施方式中,所述第一处理模块1801之前,还包括获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令的部分,即如图19所示,所述进程处理装置包括:
第一运行模块1901,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元;
第一处理模块1902,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
检测模块1903,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块1904,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块1905,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
为了虚拟处理器数据处理的完整性,在该实施方式中,第一运行模块 1901在运行虚拟处理器数据时,以所述虚拟处理器的预设运行单元为单位运行,即首先获取、确定与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令停止所述虚拟处理器的运行。其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。在本发明一实施方式中,所述虚拟处理器预设运行单元可以由所述虚拟处理器运行的最小循环封装而成。
在本发明一实施方式中,所述虚拟机监视器中可设置一个内核进程也可以设置多个内核进程,其中,所述内核进程的数量可由物理处理器的数量来决定,比如,存在几个物理处理器就设置几个内核进程。其中,每个内核进程负责维护一个运行队列。
在本发明一实施方式中,所述第一运行模块1901之前,还包括对于内核进程进行初始化的部分,即如图20所示,所述进程处理装置包括:
第一初始化模块2001,被配置为对于内核进程进行初始化;
第一运行模块2002,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元;
第一处理模块2003,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
检测模块2004,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块2005,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块2006,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
为了保证内核进程的正常工作,在该实施方式中,在内核进程开始工作之前,还需设置第一初始化模块2001对其执行初始化操作。
在本发明一实施方式中,如图21所示,所述第一初始化模块2001包括:
创建子模块2101,被配置为创建内核进程;
挂载子模块2102,被配置为响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
第一启动子模块2103,被配置为响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
在该实施方式中,在对于内核进程进行初始化时,创建子模块2101 首先创建一个或多个内核进程,对于每个内核进程来说,在接收到所述虚拟处理器发送的挂载请求后,挂载子模块2102将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,并向所述虚拟处理器发送挂载成功消息,其中,所述挂载请求可包括内核进程标识信息和请求本体信息,以使所述虚拟机监视器根据所述内核进程标识信息将所述虚拟处理器的一个或多个预设运行单元放置于与所述内核进程标识信息对应的内核进程的运行队列中,当然,所述挂载请求也可仅包括请求本体信息,此时,所述虚拟机监视器随机选择一个内核进程来放置所述虚拟处理器的一个或多个预设运行单元;之后第一启动子模块2103在接收到所述虚拟处理器发送的内核进程唤醒请求后,启动所述内核进程运行。
在本发明一实施方式中,所述装置还包括与所述虚拟处理器交互以执行预设运行请求的部分,即如图22所示,所述进程处理装置包括:
检测模块2201,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块2202,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块2203,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行;
第二发送模块2204,被配置为响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第二运行模块2205,被配置为响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
若所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求,比如基于用户态的运行请求等,则需设置第二发送模块2204 向所述虚拟处理器发送携带有所述预设运行请求信息的中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,转由所述虚拟处理器来完成所述预设运行请求,并在接收到所述虚拟处理器发送的预设运行请求处理结束消息后,借助第二运行模块2205再次进入运行状态。
在本发明一实施方式中,所述装置还包括响应于所述预设时间段结束,处理所述中断队列中的下一中断事件的部分,即如图23所示,所述进程处理装置包括:
检测模块2301,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块2302,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块2303,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行;
第二处理模块2304,被配置为响应于所述预设时间段结束,处理所述中断队列中的下一中断事件。
在该实施方式中,第二处理模块2304在所述虚拟处理器执行中间启动预设时间段,即中间启动结束后,所述虚拟机监视器继续处理所述中断队列中的下一中断事件,并在处理完下一中断事件之后,检测内核进程的阻塞时间。若所述中断队列中不存在下一中断事件,则所述虚拟机监视器继续处理其他进程。
图24示出根据本发明一实施方式的进程处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部,比如可实现为虚拟处理器。如图24所示,所述进程处理装置包括:
第二初始化模块2401,被配置为对于虚拟处理器进行初始化;
第一启动模块2402,被配置为响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止模块2403,被配置为响应于所述预设时间段结束,停止所述中间运行。
上文提及,在KVM架构下,虚拟处理器作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争抢,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
考虑到上述问题,在该实施方式中,提出一种进程处理装置,该装置通过虚拟机监视器在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
为了避免虚拟处理器出现长时间阻塞和单次长时间抖动现象,在该实施方式中,在第二初始化模块2401对于虚拟处理器进行初始化,挂载在所述虚拟机监视器上之后,若第一启动模块2402接收到虚拟机监视器发送的中间启动指令,则启动中间运行,其中,所述虚拟处理器中间运行的运行时长为预设时间段;停止模块2403在所述预设时间段结束后,停止所述中间运行。
其中,所述预设时间段指的是虚拟处理器执行补偿运行的时长,其值可根据实际应用的需要进行设置,本公开对其不作具体限定,比如可以将所述预设时间段设置为0.1-0.5ms等等,例如,若所述预设时间段设置为 0.1ms,则意味着所述虚拟处理器补偿运行0.1ms。
在本发明一实施方式中,如图25所示,所述第二初始化模块2401包括:
生成子模块2501,被配置为生成一个或多个预设运行单元;
第一发送子模块2502,被配置为向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
第二发送子模块2503,被配置为响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
在该实施方式中,在对于虚拟处理器进行初始化时,生成子模块2501 首先根据所述虚拟处理器运行的最小循环封装生成一个或多个预设运行单元;第一发送子模块2502然后向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中由内核进程执行运行操作;第二发送子模块2503在接收到所述虚拟机监视器发送的挂载成功消息后,向所述虚拟机监视器发送内核进程唤醒请求以唤醒所述内核进程,所述虚拟处理器进而进入睡眠状态。
在本发明一实施方式中,所述装置还包括与所述虚拟机监视器交互以执行预设运行请求的部分,即如图26所示,所述进程处理装置包括:
第二初始化模块2601,被配置为对于虚拟处理器进行初始化;
第一启动模块2602,被配置为响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止模块2603,被配置为响应于所述预设时间段结束,停止所述中间运行;
第三发送模块2604,被配置为响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第三运行模块2605,被配置为运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态。
若所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求,比如基于用户态的运行请求等,则需设置第三发送模块2604 向所述虚拟处理器发送携带有所述预设运行请求信息的中间唤醒请求以唤醒所述虚拟处理器,此时,所述虚拟处理器接收到所述虚拟机监视器发送的中间唤醒请求后,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,然后所述虚拟处理器的第三运行模块2605运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息以重新唤醒所述虚拟机监视器,而所述虚拟处理器则再次进入睡眠状态。
图27示出根据本发明一实施方式的进程处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部,比如可实现为进程处理系统。如图27所示,所述进程处理装置包括:
第三初始化模块2701,被配置为对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
第二启动模块2702,被配置为当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
第三处理模块2703,被配置为响应于所述预设时间段结束,处理中断队列中的下一中断事件。
上文提及,在KVM架构下,虚拟处理器作为普通进程运行,当然宿主机上也会存在一些系统和运维程序。在虚拟处理器运行的同时,如果系统和运维程序也同时运行,将会对虚拟处理器资源造成争抢,并且如果系统和运维程序运行于内核态,不主动出让资源,则会导致出现虚拟处理器单次长时间抖动现象。现有技术通常使用开启内核抢占来解决资源争夺的问题,但内核抢占只是提供了更多的抢占时间点,并不能实现任意时刻的资源抢占,另外,内核抢占的实施还会带来整个内核的改动,进而引入更多的稳定性和安全性挑战。
考虑到上述问题,在该实施方式中,提出一种进程处理装置,该装置通过虚拟机监视器在处理中断事件时检测内核进程的阻塞时间,来判断是否需要对于虚拟处理器进行中间启动,并在满足预设条件时,对于虚拟处理器进行中间启动。该技术方案能够实现在软中断上下文中对于虚拟处理器进行补偿运行,从而在保证数据和资源的稳定性和安全性的前提下,避免了虚拟处理器出现长时间阻塞和单次长时间抖动现象。
在该实施方式中,首先第三初始化模块2701对于虚拟机监视器的内核进程和虚拟处理器进行初始化;当所述虚拟机监视器的内核进程中断事件被触发且满足预设条件时,认为需要对于所述虚拟处理器进行补偿启动,但为了不致对于内核进程中产生不利影响,所述虚拟处理器的补偿启动只持续预设时间段;在所述预设时间段结束后,所述虚拟机监视器的第三处理模块2703转而处理中断队列中的下一中断事件。
在本发明一实施方式中,所述第三初始化模块2701中对于虚拟机监视器的内核进程进行初始化的部分,可被配置为:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
为了保证内核进程的正常工作,在该实施方式中,在内核进程开始工作之前,还需对其执行初始化操作。具体地,首先创建一个或多个内核进程,对于每个内核进程来说,在接收到所述虚拟处理器发送的挂载请求后,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,并向所述虚拟处理器发送挂载成功消息,其中,所述挂载请求可包括内核进程标识信息和请求本体信息,以使所述虚拟机监视器根据所述内核进程标识信息将所述虚拟处理器的一个或多个预设运行单元放置于与所述内核进程标识信息对应的内核进程的运行队列中,当然,所述挂载请求也可仅包括请求本体信息,此时,所述虚拟机监视器随机选择一个内核进程来放置所述虚拟处理器的一个或多个预设运行单元;之后在接收到所述虚拟处理器发送的内核进程唤醒请求后,启动所述内核进程运行。
在本发明一实施方式中,所述第三初始化模块2701中对于虚拟处理器进行初始化的部分,可被配置为:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
为了保证虚拟处理器的正常工作,在该实施方式中,在虚拟处理器开始工作之前,还需对其执行初始化操作。具体地,在对于虚拟处理器进行初始化时,首先根据所述虚拟处理器运行的最小循环封装生成一个或多个预设运行单元;然后向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中由内核进程执行运行操作;在接收到所述虚拟机监视器发送的挂载成功消息后,向所述虚拟机监视器发送内核进程唤醒请求以唤醒所述内核进程,所述虚拟处理器进而进入睡眠状态。
在本发明一实施方式中,如图28所示,所述第二启动模块2702包括:
检测子模块2801,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发子模块2802,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第三发送子模块2803,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令;
第二启动子模块2804,被配置为响应于接收到所述虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止子模块2805,被配置为响应于所述预设时间段结束,停止所述中间运行。
为了避免虚拟处理器出现长时间阻塞和单次长时间抖动现象,在本发明一实施方式中,每当中断队列中的某一中断事件处理结束,虚拟机监视器的检测子模块2801就检测一下内核进程的阻塞时间,若所述内核进程的阻塞时间超过预设时间阈值,则认为虚拟处理器有可能出现长时间阻塞现象,需要对于虚拟处理器执行补偿运行操作,则触发子模块2802触发虚拟处理器软中断事件,之后第三发送子模块2803向所述虚拟处理器发送中间启动指令,虚拟处理器的第二启动子模块2804接收到虚拟机监视器发送的中间启动指令后,启动中间运行,其中,所述虚拟处理器中间运行的运行时长为预设时间段;并在所述预设时间段结束后,所述虚拟处理器的停止子模块2805停止其中间运行。
在本发明一实施方式中,所述检测子模块2801之前,还包括响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件的部分,即如图29所示,所述第二启动模块2702包括:
处理子模块2901,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
检测子模块2902,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发子模块2903,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第三发送子模块2904,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令;
第二启动子模块2905,被配置为响应于接收到所述虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止子模块2906,被配置为响应于所述预设时间段结束,停止所述中间运行。
上文提及,所述中断队列中有可能存在一个或多个中断事件,因此,在该实施方式中,在检测到中断事件被触发后,所述虚拟机监视器的处理子模块2901按照当前时间以及中断队列中中断事件的排列顺序来处理所述中断队列中的当前中断事件,并在所述当前中断事件处理结束之后,再由检测子模块2902检测内核进程由于中断事件的处理而产生的阻塞时间。
在本发明一实施方式中,所述处理子模块2901之前,还包括所述虚拟机监视器获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令的部分,即如图30所示,所述第二启动模块2702包括:
第一运行子模块3001,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元;
处理子模块3002,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件;
检测子模块3003,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发子模块3004,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第三发送子模块3005,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令;
第二启动子模块3006,被配置为响应于接收到所述虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止子模块3007,被配置为响应于所述预设时间段结束,停止所述中间运行。
为了虚拟处理器数据处理的完整性,在该实施方式中,在所述虚拟机监视器运行虚拟处理器数据时,所述虚拟机监视器的第一运行子模块3001 以所述虚拟处理器的预设运行单元为单位运行,即所述虚拟机监视器的第一运行子模块3001首先获取、确定与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令停止所述虚拟处理器的运行。其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。在本发明一实施方式中,所述虚拟处理器预设运行单元可以由所述虚拟处理器运行的最小循环封装而成。
在本发明一实施方式中,所述装置还包括响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒的部分,即如图31 所示,所述进程处理装置包括:
第三初始化模块3101,被配置为对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
第二启动模块3102,被配置为当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
第三处理模块3103,被配置为响应于所述预设时间段结束,处理中断队列中的下一中断事件;
唤醒模块3104,被配置为响应于接收到预设运行请求,对于所述虚拟处理器进行中间唤醒。
在该实施方式中,若所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求,比如基于用户态的运行请求等,则需设置唤醒模块3104唤醒所述虚拟处理器进入运行状态以处理所述预设运行请求。
在本发明一实施方式中,如图32所示,所述唤醒模块3104包括:
第四发送子模块3201,被配置为响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第五发送子模块3202,被配置为响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;
第一状态改变子模块3203,被配置为在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态;
第二运行子模块3204,被配置为运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;
第二状态改变子模块3205,被配置为响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
当所述虚拟机监视器接收到其无法完成、只能由虚拟处理器来完成的运行请求时,第四发送子模块3201需向所述虚拟处理器发送携带有所述预设运行请求信息的中间唤醒请求;所述虚拟处理器的第五发送子模块 3202在接收到所述虚拟机监视器发送的中间唤醒请求后,其由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;所述虚拟机监视器的第一状态改变子模块3203在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,转由所述虚拟处理器的第二运行子模块3204 来完成所述预设运行请求;所述虚拟处理器的第二运行子模块3204运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;所述虚拟机监视器的第二状态改变子模块3205在接收到所述虚拟处理器发送的预设运行请求处理结束消息后,恢复进入运行状态。
接下来以一应用场景为例对于本发明技术方案进行进一步的说明,如图33所示,在该应用场景中,若确定中断队列中当前中断事件处理结束,检测内核进程的阻塞时间是否超过预设时间阈值,当超过时,触发虚拟处理器软中断事件,使所述虚拟处理器运行0.1ms,之后继续原进程,若未超过时,不触发虚拟处理器软中断事件继续原进程。
本发明实施例还公开了一种电子设备,图34示出根据本发明一实施方式的电子设备的结构框图,如图34所示,所述电子设备3400包括存储器3401和处理器3402;其中,
所述存储器3401用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器3402执行以实现上述任一方法步骤。
图35适于用来实现根据本发明实施方式的进程处理方法的计算机系统的结构示意图。
如图35所示,计算机系统3500包括处理单元3501,其可以根据存储在只读存储器(ROM)3502中的程序或者从存储部分3508加载到随机访问存储器(RAM)3503中的程序而执行上述实施方式中的各种处理。在 RAM3503中,还存储有系统3500操作所需的各种程序和数据。处理单元3501、ROM3502以及RAM3503通过总线3504彼此相连。输入/输出(I/O) 接口3505也连接至总线3504。
以下部件连接至I/O接口3505:包括键盘、鼠标等的输入部分3506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分3507;包括硬盘等的存储部分3508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分3509。通信部分3509经由诸如因特网的网络执行通信处理。驱动器3510也根据需要连接至I/O接口3505。可拆卸介质3511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器3510上,以便于从其上读出的计算机程序根据需要被安装入存储部分3508。其中,所述处理单元3501可实现为CPU、GPU、FPGA、 NPU、AI芯片等处理单元。
特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述进程处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分3509从网络上被下载和安装,和/或从可拆卸介质3511 被安装。
附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (38)
1.一种进程处理方法,其特征在于,包括:
响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
2.根据权利要求1所述的进程处理方法,其特征在于,所述响应于硬中断事件处理结束,检测内核进程的阻塞时间之前,还包括:
响应于检测到中断事件被触发,处理中断队列中的当前中断事件。
3.根据权利要求2所述的进程处理方法,其特征在于,所述响应于检测到中断事件被触发,处理中断队列中的当前中断事件之前,还包括:
获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
4.根据权利要求3所述的进程处理方法,其特征在于,所述获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令之前,还包括:
对于内核进程进行初始化。
5.根据权利要求4所述的进程处理方法,其特征在于,所述对于内核进程进行初始化,包括:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
6.根据权利要求1-5任一所述的进程处理方法,其特征在于,还包括:
响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,其中,所述中间唤醒请求携带有所述预设运行请求信息;
响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
7.根据权利要求1-5任一所述的进程处理方法,其特征在于,还包括:
响应于所述预设时间段结束,处理所述中断队列中的下一中断事件。
8.一种进程处理方法,其特征在于,包括:
对于虚拟处理器进行初始化;
响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
响应于所述预设时间段结束,停止所述中间运行。
9.根据权利要求8所述的进程处理方法,其特征在于,所述对于虚拟处理器进行初始化,包括:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
10.根据权利要求8或9所述的进程处理方法,其特征在于,还包括:
响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,其中,所述中间唤醒请求携带有所述预设运行请求信息;
运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态。
11.一种进程处理方法,其特征在于,包括:
对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
响应于所述预设时间段结束,所述虚拟机监视器处理中断队列中的下一中断事件。
12.根据权利要求11所述的进程处理方法,其特征在于,所述对于虚拟机监视器的内核进程进行初始化,被实施为:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
13.根据权利要求11或12所述的进程处理方法,其特征在于,所述对于虚拟处理器进行初始化,被实施为:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
14.根据权利要求11或12所述的进程处理方法,其特征在于,所述当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,包括:
响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间;
当所述内核进程的阻塞时间超过预设时间阈值时,所述虚拟机监视器触发虚拟处理器软中断事件;
响应于所述虚拟处理器软中断事件被触发,所述虚拟机监视器向所述虚拟处理器发送中间启动指令;
响应于接收到所述虚拟机监视器发送的中间启动指令,所述虚拟处理器启动中间运行,其中,所述中间运行的运行时长为预设时间段;
响应于所述预设时间段结束,所述虚拟处理器停止所述中间运行。
15.根据权利要求14所述的进程处理方法,其特征在于,所述响应于中断队列中当前中断事件处理结束,所述虚拟机监视器检测内核进程的阻塞时间之前,还包括:
响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件。
16.根据权利要求15所述的进程处理方法,其特征在于,所述响应于检测到中断事件被触发,所述虚拟机监视器处理中断队列中的当前中断事件之前,还包括:
所述虚拟机监视器获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
17.根据权利要求11或12所述的进程处理方法,其特征在于,还包括:
响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒。
18.根据权利要求17所述的进程处理方法,其特征在于,所述响应于接收到预设运行请求,所述虚拟机监视器对于所述虚拟处理器进行中间唤醒,包括:
响应于接收到预设运行请求,所述虚拟机监视器向所述虚拟处理器发送中间唤醒请求,其中,所述中间唤醒请求携带有所述预设运行请求信息;
响应于接收到所述虚拟机监视器发送的中间唤醒请求,所述虚拟处理器由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;
所述虚拟机监视器在接收到所述虚拟处理器发送的唤醒成功消息后进行睡眠状态;
所述虚拟处理器运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;
响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,所述虚拟机监视器进入运行状态。
19.一种进程处理装置,其特征在于,包括:
检测模块,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发模块,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第一发送模块,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令,以使所述虚拟处理器在预设时间段内运行。
20.根据权利要求19所述的进程处理装置,其特征在于,所述检测模块之前,还包括:
第一处理模块,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件。
21.根据权利要求20所述的进程处理装置,其特征在于,所述第一处理模块之前,还包括:
第一运行模块,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
22.根据权利要求21所述的进程处理装置,其特征在于,所述第一运行模块之前,还包括:
第一初始化模块,被配置为对于内核进程进行初始化。
23.根据权利要求22所述的进程处理装置,其特征在于,所述第一初始化模块包括:
创建子模块,被配置为创建内核进程;
挂载子模块,被配置为响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
第一启动子模块,被配置为响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
24.根据权利要求19-23任一所述的进程处理装置,其特征在于,还包括:
第二发送模块,被配置为响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,并在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第二运行模块,被配置为响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
25.根据权利要求19-23任一所述的进程处理装置,其特征在于,还包括:
第二处理模块,被配置为响应于所述预设时间段结束,处理所述中断队列中的下一中断事件。
26.一种进程处理装置,其特征在于,包括:
第二初始化模块,被配置为对于虚拟处理器进行初始化;
第一启动模块,被配置为响应于接收到虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止模块,被配置为响应于所述预设时间段结束,停止所述中间运行。
27.根据权利要求26所述的进程处理装置,其特征在于,所述第二初始化模块包括:
生成子模块,被配置为生成一个或多个预设运行单元;
第一发送子模块,被配置为向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
第二发送子模块,被配置为响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
28.根据权利要求26或27所述的进程处理装置,其特征在于,还包括:
第三发送模块,被配置为响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第三运行模块,被配置为运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态。
29.一种进程处理装置,其特征在于,包括:
第三初始化模块,被配置为对于虚拟机监视器的内核进程和虚拟处理器进行初始化;
第二启动模块,被配置为当所述内核进程中断事件被触发且满足预设条件时,对于所述虚拟处理器进行中间启动,以使所述虚拟处理器在预设时间段内运行;
第三处理模块,被配置为响应于所述预设时间段结束,处理中断队列中的下一中断事件。
30.根据权利要求29所述的进程处理装置,其特征在于,所述第三初始化模块中对于虚拟机监视器的内核进程进行初始化的部分被配置为:
创建内核进程;
响应于接收到所述虚拟处理器发送的挂载请求,将所述虚拟处理器的一个或多个预设运行单元放置于所述内核进程对应的运行队列中,向所述虚拟处理器发送挂载成功消息;
响应于接收到所述虚拟处理器发送的内核进程唤醒请求,启动所述内核进程。
31.根据权利要求29或30所述的进程处理装置,其特征在于,所述第三初始化模块中对于虚拟处理器进行初始化的部分被配置为:
生成一个或多个预设运行单元;
向所述虚拟机监视器发送挂载请求,以将所述一个或多个预设运行单元放置于所述虚拟机监视器内核进程对应的运行队列中;
响应于接收到所述虚拟机监视器发送的挂载成功消息,向所述虚拟机监视器发送内核进程唤醒请求并进入睡眠状态,以使所述虚拟机监视器启动所述内核进程。
32.根据权利要求29或30所述的进程处理装置,其特征在于,所述第二启动模块包括:
检测子模块,被配置为响应于中断队列中当前中断事件处理结束,检测内核进程的阻塞时间;
触发子模块,被配置为当所述内核进程的阻塞时间超过预设时间阈值时,触发虚拟处理器软中断事件;
第三发送子模块,被配置为响应于所述虚拟处理器软中断事件被触发,向所述虚拟处理器发送中间启动指令;
第二启动子模块,被配置为响应于接收到所述虚拟机监视器发送的中间启动指令,启动中间运行,其中,所述中间运行的运行时长为预设时间段;
停止子模块,被配置为响应于所述预设时间段结束,停止所述中间运行。
33.根据权利要求32所述的进程处理装置,其特征在于,所述检测子模块之前,还包括:
处理子模块,被配置为响应于检测到中断事件被触发,处理中断队列中的当前中断事件。
34.根据权利要求33所述的进程处理装置,其特征在于,所述处理子模块之前,还包括:
第一运行子模块,被配置为获取与所述内核进程对应的运行队列,并按照队列内预设运行单元排列顺序以所述虚拟处理器的预设运行单元为单位运行,直至接收到进程调度命令,其中,所述运行队列中放置有一个或多个虚拟处理器预设运行单元。
35.根据权利要求29或30所述的进程处理装置,其特征在于,还包括:
唤醒模块,被配置为响应于接收到预设运行请求,对于所述虚拟处理器进行中间唤醒。
36.根据权利要求35所述的进程处理装置,其特征在于,所述唤醒模块包括:
第四发送子模块,被配置为响应于接收到预设运行请求,向所述虚拟处理器发送中间唤醒请求,其中,所述中间唤醒请求携带有所述预设运行请求信息;
第五发送子模块,被配置为响应于接收到所述虚拟机监视器发送的中间唤醒请求,由睡眠状态进入中间运行状态,并向所述虚拟机监视器发送唤醒成功消息;
第一状态改变子模块,被配置为在接收到所述虚拟处理器发送的唤醒成功消息后进入睡眠状态;
第二运行子模块,被配置为运行所述预设运行请求,并在所述预设运行请求处理结束后,向所述虚拟机监视器发送预设运行请求处理结束消息,进入睡眠状态;
第二状态改变子模块,被配置为响应于接收到所述虚拟处理器发送的预设运行请求处理结束消息,进入运行状态。
37.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-18任一项所述的方法步骤。
38.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-18任一项所述的方法步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910907661.5A CN112631744A (zh) | 2019-09-24 | 2019-09-24 | 进程处理方法、装置、电子设备及计算机可读存储介质 |
EP20867146.1A EP4036723A4 (en) | 2019-09-24 | 2020-09-21 | PROCESSING METHOD AND APPARATUS, ELECTRONIC DEVICE AND COMPUTER-READABLE STORAGE MEDIUM |
PCT/CN2020/116405 WO2021057640A1 (zh) | 2019-09-24 | 2020-09-21 | 进程处理方法、装置、电子设备及计算机可读存储介质 |
US17/655,881 US20220214906A1 (en) | 2019-09-24 | 2022-03-22 | Method, apparatus, and computer-readable storage medium for process handling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910907661.5A CN112631744A (zh) | 2019-09-24 | 2019-09-24 | 进程处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631744A true CN112631744A (zh) | 2021-04-09 |
Family
ID=75166767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910907661.5A Pending CN112631744A (zh) | 2019-09-24 | 2019-09-24 | 进程处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220214906A1 (zh) |
EP (1) | EP4036723A4 (zh) |
CN (1) | CN112631744A (zh) |
WO (1) | WO2021057640A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342554A (zh) * | 2021-08-02 | 2021-09-03 | 阿里云计算有限公司 | Io多路复用方法、介质、设备和操作系统 |
CN114003363A (zh) * | 2021-11-01 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 线程间中断信号发送方法及装置 |
CN114253694A (zh) * | 2022-02-25 | 2022-03-29 | 杭州雄迈集成电路技术股份有限公司 | 一种基于神经网络加速器的异步处理方法与装置 |
CN115061896A (zh) * | 2022-06-30 | 2022-09-16 | 南方电网科学研究院有限责任公司 | 一种电磁暂态仿真操作系统的抖动时间计算方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104296A1 (en) * | 2006-10-26 | 2008-05-01 | International Business Machines Corporation | Interrupt handling using simultaneous multi-threading |
CN101539864A (zh) * | 2009-02-10 | 2009-09-23 | 北京交通大学 | 自适应的保障可信客户虚拟域正常启动的方法 |
US20180046479A1 (en) * | 2007-03-01 | 2018-02-15 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
CN107967177A (zh) * | 2017-11-30 | 2018-04-27 | 努比亚技术有限公司 | 基于核心进程的内存优化方法、移动终端及可读存储介质 |
US20180285135A1 (en) * | 2017-03-31 | 2018-10-04 | Microsoft Technology Licensing, Llc | Cooperative virtual processor scheduling |
CN109240802A (zh) * | 2018-09-21 | 2019-01-18 | 北京百度网讯科技有限公司 | 请求处理方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064529A1 (en) * | 2004-09-23 | 2006-03-23 | International Business Machines Corporation | Method and system for controlling peripheral adapter interrupt frequency by transferring processor load information to the peripheral adapter |
CN101414277B (zh) * | 2008-11-06 | 2010-06-09 | 清华大学 | 一种基于虚拟机的按需增量恢复容灾系统及方法 |
US8949498B2 (en) * | 2011-08-11 | 2015-02-03 | Mellanox Technologies Ltd. | Interrupt handling in a virtual machine environment |
US9703589B2 (en) * | 2013-08-26 | 2017-07-11 | Vmware, Inc. | Networking stack of virtualization software configured to support latency sensitive virtual machines |
US9910699B2 (en) * | 2014-10-28 | 2018-03-06 | Intel Corporation | Virtual processor direct interrupt delivery mechanism |
US9858101B2 (en) * | 2014-11-13 | 2018-01-02 | Red Hat Israel, Ltd. | Virtual machine input/output thread management |
CN105868004B (zh) * | 2015-01-23 | 2020-10-16 | 南京中兴新软件有限责任公司 | 一种基于云计算的业务系统的调度方法及调度装置 |
US10169137B2 (en) * | 2015-11-18 | 2019-01-01 | International Business Machines Corporation | Dynamically detecting and interrupting excessive execution time |
CN105700826A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 虚拟化方法和装置 |
US10180855B1 (en) * | 2017-06-13 | 2019-01-15 | Parallels International Gmbh | System and method for controlling idle state of operating system |
-
2019
- 2019-09-24 CN CN201910907661.5A patent/CN112631744A/zh active Pending
-
2020
- 2020-09-21 EP EP20867146.1A patent/EP4036723A4/en active Pending
- 2020-09-21 WO PCT/CN2020/116405 patent/WO2021057640A1/zh unknown
-
2022
- 2022-03-22 US US17/655,881 patent/US20220214906A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104296A1 (en) * | 2006-10-26 | 2008-05-01 | International Business Machines Corporation | Interrupt handling using simultaneous multi-threading |
US20180046479A1 (en) * | 2007-03-01 | 2018-02-15 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
CN101539864A (zh) * | 2009-02-10 | 2009-09-23 | 北京交通大学 | 自适应的保障可信客户虚拟域正常启动的方法 |
US20180285135A1 (en) * | 2017-03-31 | 2018-10-04 | Microsoft Technology Licensing, Llc | Cooperative virtual processor scheduling |
CN107967177A (zh) * | 2017-11-30 | 2018-04-27 | 努比亚技术有限公司 | 基于核心进程的内存优化方法、移动终端及可读存储介质 |
CN109240802A (zh) * | 2018-09-21 | 2019-01-18 | 北京百度网讯科技有限公司 | 请求处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
THOMAS FRIEBEL ET AL.: "How to Deal with Lock Holder Preemption", GI OS WORKSHOP, 31 October 2008 (2008-10-31), pages 1 - 3 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342554A (zh) * | 2021-08-02 | 2021-09-03 | 阿里云计算有限公司 | Io多路复用方法、介质、设备和操作系统 |
CN113342554B (zh) * | 2021-08-02 | 2022-01-04 | 阿里云计算有限公司 | Io多路复用方法、介质、设备和操作系统 |
WO2023011249A1 (zh) * | 2021-08-02 | 2023-02-09 | 阿里云计算有限公司 | Io多路复用方法、介质、设备和操作系统 |
CN114003363A (zh) * | 2021-11-01 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 线程间中断信号发送方法及装置 |
CN114253694A (zh) * | 2022-02-25 | 2022-03-29 | 杭州雄迈集成电路技术股份有限公司 | 一种基于神经网络加速器的异步处理方法与装置 |
CN115061896A (zh) * | 2022-06-30 | 2022-09-16 | 南方电网科学研究院有限责任公司 | 一种电磁暂态仿真操作系统的抖动时间计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4036723A4 (en) | 2023-11-29 |
WO2021057640A1 (zh) | 2021-04-01 |
US20220214906A1 (en) | 2022-07-07 |
EP4036723A1 (en) | 2022-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631744A (zh) | 进程处理方法、装置、电子设备及计算机可读存储介质 | |
EP3274831B1 (en) | Application container for live migration of mobile applications | |
EP3754490B1 (en) | User interface rendering method and apparatus, and terminal | |
CN108369604B (zh) | 一种多操作系统共享文件系统的方法、装置和电子设备 | |
CN106127036B (zh) | 持续性和弹性的工作者进程 | |
US10846124B2 (en) | Communication method, apparatus and system for virtual machine and host machine | |
US20200174823A1 (en) | State management method and apparatus for virtual machine, and smart terminal thereof | |
US9830181B2 (en) | Method and system for gracefully shutdown virtual system | |
CN103765387A (zh) | 便携式计算装置中的分布式资源管理 | |
CN110609749B (zh) | 一种分布式任务运行方法、系统及设备 | |
CN110162397B (zh) | 资源分配方法、装置及系统 | |
CN115344226B (zh) | 一种虚拟化管理下的投屏方法、装置、设备及介质 | |
CN105308553A (zh) | 动态提供存储 | |
CN116149818A (zh) | Gpu应用的迁移方法、设备、系统及存储介质 | |
CN111124430A (zh) | 一种混合架构的微服务部署方法和装置 | |
CN112130960A (zh) | 一种轻量化移动边缘计算节点及构建方法 | |
JP6859463B2 (ja) | 仮想マシンを起動させるための方法、装置、デバイス及び媒体 | |
US20210141657A1 (en) | Pausing deployment of a virtual machine prior to a machine name dependency | |
US20140304706A1 (en) | Method and device for setting status of application | |
CN112311605A (zh) | 提供机器学习服务的云平台及方法 | |
CN109032767B (zh) | 异步多进程的业务处理系统、方法、装置及存储介质 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
US10503518B2 (en) | Initializing hardware components using parallel driver loading and serial access granting | |
WO2015184902A1 (zh) | 一种智能分屏的并发处理方法及相应的智能终端 | |
CN113504979B (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 |