CN114791854B - 用户态虚拟机任务的调度方法、装置、设备及存储介质 - Google Patents

用户态虚拟机任务的调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114791854B
CN114791854B CN202210514064.8A CN202210514064A CN114791854B CN 114791854 B CN114791854 B CN 114791854B CN 202210514064 A CN202210514064 A CN 202210514064A CN 114791854 B CN114791854 B CN 114791854B
Authority
CN
China
Prior art keywords
task
virtual machine
user
data structure
group data
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.)
Active
Application number
CN202210514064.8A
Other languages
English (en)
Other versions
CN114791854A (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.)
Kedong Guangzhou Software Technology Co Ltd
Original Assignee
Kedong Guangzhou Software Technology 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 Kedong Guangzhou Software Technology Co Ltd filed Critical Kedong Guangzhou Software Technology Co Ltd
Priority to CN202210514064.8A priority Critical patent/CN114791854B/zh
Publication of CN114791854A publication Critical patent/CN114791854A/zh
Application granted granted Critical
Publication of CN114791854B publication Critical patent/CN114791854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种用户态虚拟机任务的调度方法、装置、设备及存储介质,其技术方案包括:每个用户态虚拟机支持多个进程,各进程具有互相独立的专属资源,每个任务属于一个进程;配置第一进程的所述专属资源,并启动第一进程;启动第一任务,第一任务为第一进程当前被调度的任一任务;根据第一任务的任务控制块获得第一进程的专属资源;利用第一进程的专属资源运行第一任务。本发明实施例的技术方案在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。

Description

用户态虚拟机任务的调度方法、装置、设备及存储介质
技术领域
本发明涉及操作系统领域,尤其涉及一种用户态虚拟机任务的调度方法、装置、设备及存储介质。
背景技术
当前用户态虚拟机不支持进程管理,无法同时运行多个进程,更无法实现多个实时进程之间配合,对于嵌入式操作系统,降低了用户态虚拟机的实时性。
现有技术利用一个用户态虚拟机的各任务之间共享所有资源,这种共享资源的方式,实时性同样差且开销大,降低了用户态虚拟机操作系统的可用性以及适用范围。
发明内容
有鉴于此,本发明实施例提供了一种用户态虚拟机任务的调度方法、装置、设备及存储介质,其技术方案包括:每个用户态虚拟机支持多个进程,各进程具有互相独立的专属资源,每个任务属于一个进程;配置第一进程的所述专属资源,并启动第一进程;启动第一任务,第一任务为第一进程当前被调度的任一任务;根据第一任务的任务控制块获得第一进程的专属资源;利用第一进程的专属资源运行第一任务。本发明的技术方案在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。
第一方面,本发明实施例提供了一种用户态虚拟机任务的调度方法,每个任务属于一个进程,各进程具有互相独立的专属资源,所述专属资源至少包括下列资源中的一种:环境变量、文件资源和网络资源,每个任务属于一个进程,所述方法包括:配置第一进程的所述专属资源,并启动第一进程,第一进程为所述用户态虚拟机的任一进程;启动第一任务,第一任务为第一进程当前被调度的任一任务;根据第一任务的任务控制块获得第一进程的专属资源;利用第一进程的专属资源运行第一任务。
由上,在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。
在第一方面的一种可能实施方式中,所述根据第一任务的任务控制块获得第一进程的专属资源,包括:根据第一任务的任务控制块获得第一任务所属于的第一进程的任务组数据结构,每个进程的所述任务组数据结构包括该进程的专属资源;根据第一进程的任务组数据结构获得第一进程的专属资源。
由上,通过第一任务的任务控制块获得第一任务所属于的第一进程的任务组数据结构,使第一任务获得第一进程的任务组数据结构中的专属资源,实现共享第一进程的专属资源。
在第一方面的一种可能实施方式中,每个任务的任务控制块包括所属进程指针;启动一个任务时,把该任务的所属进程指针指向该任务所属进程的任务组数据结构。
由上,通过在每个任务的任务控制块中增加所属进程指针来指向所属进程的任务组数据结构,使第一任务更加方便获得和访问第一进程的专属资源。
在第一方面的一种可能实施方式中,一个进程的所述任务组数据结构还包括属于该进程的运行任务成员名;启动一个任务时,在该任务所属进程的所述任务组数据结构的运行任务成员名中增加该任务。
由上,通过在进程的任务组数据结构包括运行任务成员名来方便管理进程的运行任务。
在第一方面的一种可能实施方式中,一个进程的所述任务组数据结构还包括运行任务成员数;启动一个任务时,递增该任务所属进程的所述运行任务成员数。
由上,通过在进程的任务组数据结构包括运行任务成员数来方便管理进程的任务数目,从而根据该数目的变化管理进程生命周期。
在第一方面的一种可能实施方式中,一种用户态虚拟机任务的调度方法还包括:当一个进程的所述任务组数据结构的运行任务成员数为0时,删除该进程。
由上,通过当一个进程的运行任务成员数为0时删除该进程,以节约系统资源。
第二方面,本发明实施例提供了一种用户态虚拟机任务的调度装置,每个用户态虚拟机支持多个进程,各进程具有互相独立的专属资源,所述专属资源至少包括下列资源中的一种:环境变量、文件资源和网络资源,每个任务属于一个进程,所述装置包括:进程创建模块,用于配置第一进程的所述专属资源,并启动第一进程,第一进程为所述用户态虚拟机的任一进程;任务启动模块,用于启动第一任务,第一任务为第一进程当前被调度的任一任务;资源获得模块,用于根据第一任务的任务控制块获得第一进程的专属资源;任务运行模块,用于利用第一进程的专属资源运行第一任务。
由上,在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。
在第二方面的一种可能实施方式中,所述资源获得模块具体用于根据第一任务的任务控制块获得第一任务所属于的第一进程的任务组数据结构,每个进程的所述任务组数据结构包括该进程的专属资源;根据第一进程的任务组数据结构获得第一进程的专属资源。
由上,通过第一任务的任务控制块获得第一任务所属于的第一进程的任务组数据结构,使第一任务获得第一进程的任务组数据结构中的专属资源,实现共享第一进程的专属资源。
在第二方面的一种可能实施方式中,每个任务的任务控制块包括所属进程指针;所述任务启动模块在启动一个任务时,把该任务的所属进程指针指向该任务所属进程的任务组数据结构。
由上,通过在每个任务的任务控制块中增加所属进程指针来指向所属进程的任务组数据结构,使第一任务更加方便获得和访问第一进程的专属资源。
在第二方面的一种可能实施方式中,一个进程的所述任务组数据结构还包括属于该进程的运行任务成员名;所述任务启动模块启动一个任务时,在该任务所属进程的所述任务组数据结构的运行任务成员名中增加该任务。
由上,通过在进程的任务组数据结构包括运行任务成员名来方便管理进程的运行任务。
在第二方面的一种可能实施方式中,一个进程的所述任务组数据结构还包括运行任务成员数;所述任务启动模块启动一个任务时,递增该任务所属进程的所述运行任务成员数。
由上,通过在进程的任务组数据结构包括运行任务成员数来方便管理进程的任务数目,从而根据该数目的变化管理进程生命周期。
在第二方面的一种可能实施方式中,一种用户态虚拟机任务的调度装置还包括:进程删除模块,用于当一个进程的所述任务组数据结构的运行任务成员数为0时,删除该进程。
由上,通过当一个进程的运行任务成员数为0时删除该进程,以节约系统资源。
第三方面,本发明实施例提供了一种操作系统,执行本发明第一方面任一所述实施方式。
第四方面,本发明实施例提供了一种计算设备,包括,
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行申请第一方面任一所述实施方式。
附图说明
图1为本发明的各实施例应用场景的结构示意图;
图2为本发明的一种用户态虚拟机任务的调度方法实施例的流程示意图;
图3为本发明的一种用户态虚拟机进程的创建方法实施例的流程示意图;
图4为本发明的一种用户态虚拟机任务的启动方法实施例的流程示意图;
图5为本发明的一种用户态虚拟机任务的删除方法实施例的流程示意图;
图6为本发明的一种用户态虚拟机进程的删除方法实施例的流程示意图;
图7为本发明的一种用户态虚拟机任务的调度装置实施例的结构示意图;
图8为本发明各实施例的一种计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明各实施例提供了一种用户态虚拟机任务的调度方法、装置、设备及存储介质,其技术方案包括:每个用户态虚拟机支持多个进程,每个进程具有独立的专属资源,每个进程支持多个任务,每个任务共享其所属进程的专属资源。本发明的技术方案在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。
下面首先介绍本发明各实施例的应用场景的结构,本场景为一个包括一种虚拟机系统,其包括用户态和核心态。
其中,用户态包括多个用户态虚拟机,每个用户态虚拟机支持多个进程,每个进程支持多个任务,一个进程的多个任务共享该进程的专属资源,该专属资源至少包括环境变量、文件系统和网络资源。
示例地,图1示出了用户态虚拟机1、用户态虚拟机2和用户态虚拟机3,以用户态虚拟机1为示例说明每个用户态虚拟机、进程和任务间关系,用户态虚拟机1支持进程11和进程12,进程11支持任务111、任务112和任务113,进程12支持任务121、任务122和任务123。实际系统可以需要配置任意数目的用户态虚拟机,每个用户态虚拟机根据实际需求支持任意数目的进程,每个进程支持根据实际需求支持任意数目的任务。
其中,核心态包括核心态虚拟机调度模块和硬件,硬件包括CPU、内存、外设,外设包括磁盘和网络资源,磁盘中存有文件系统。
下面根据图2至图6介绍本发明的各方法实施例。本发明的方法实施例包括:一种用户态虚拟机任务的调度方法实施例、一种用户态虚拟机进程的创建方法实施例、一种用户态虚拟机任务的启动方法实施例、一种用户态虚拟机任务的删除方法实施例和一种用户态虚拟机进程的删除方法实施例
在本发明的各方法实施例中,为每个进程定义了一个进程的任务组数据结构表示为TaskGroup,用于管理该进程的运行任务和专属资源,其至少包括该进程的运行任务成员名TaskGroup.members、运行任务成员数TaskGroup.Nmembers和专属资源,该专属资源至少包括环境变量、文件资源和网络资源。
在本发明的各方法实施例中,在一个任务的任务控制块增加该任务所属进程指针,该指针指向该任务所属进程的任务组数据结构。
为了叙述方便,在本发明的各方法实施例中以第一用户态虚拟机的第一进程的第一任务被调度为例,第一用户态虚拟机为图1中任一用户态虚拟机,第一进程为第一用户态虚拟机的任一进程,第一任务为第一虚拟机的第一进程任一被调度的任务。
首先根据图2介绍本发明的一种用户态虚拟机任务的调度方法实施例。
一种用户态虚拟机任务的调度方法实施例在图1的各用户态虚拟机中运行,包括:每个用户态虚拟机支持多个进程,每个进程具有独立的专属资源,每个进程支持多个任务,每个任务共享其所属进程的专属资源;用户态虚拟机创建第一进程,并启动第一任务,第一任务为第一进程当前待调度的任务;第一任务根据其任务控制块获得第一进程的专属资源,利用第一进程的专属资源运行第一任务。本方法实施例在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。
图2示出了本发明的一种用户态虚拟机任务的调度方法实施例的流程,其包括步骤S110至S140。
为了叙述方便以第一用户态虚拟机的第一进程的第一任务被调度为例,第一用户态虚拟机为图1中任一用户态虚拟机,第一进程为第一用户态虚拟机的任一进程,第一任务为第一虚拟机的第一进程任一被调度的任务。
S110:第一用户态虚拟机创建第一进程,各进程具有互相独立的专属资源。
其中,一个用户态虚拟机可以创建多个进程,在进程创建时,其专属资源也被配置,并保存于任务组数据结构TaskGroup中。每个进程的专属资源至少包括下列资源中的一种:环境变量、文件资源和网络资源,但不包括与内存相关的空间资源。
其中,本步骤的详细实现方法和优点请参照一种用户态虚拟机进程的创建方法实施例。
S120:第一用户态虚拟机启动第一进程的第一任务。
其中,每个进程中可以启动多个任务,一个进程的各任务共享该进程的专属资源。
其中,启动第一任务时,把第一任务的任务控制块的所属进程指针指向第一进程的任务组数据结构。
其中,启动第一任务时,还在第一进程的任务组数据结构TaskGroup的运行任务成员名TaskGroup.members中增加第一任务,并递增第一进程的任务组数据结构TaskGroup的运行任务成员数TaskGroup.Nmembers。
其中,本步骤的详细实现方法和优点请参照一种用户态虚拟机任务的启动方法实施例。
S130:第一用户态虚拟机根据第一任务的任务控制块获得第一进程的专属资源。
其中,在一个任务的任务控制块增加该任务所属进程指针,该指针指向该任务所属进程的任务组数据结构TaskGroup。每个进程的任务组数据结构TaskGroup包括该进程的专属资源。专属资源至少包括:环境变量、文件资源和网络资源。因此根据第一任务的任务控制块可以获得第一进程的任务组数据结构TaskGroup,根据该任务组数据结构TaskGroup获得第一进程的专属资源。
S140:第一用户态虚拟机利用第一进程的专属资源运行第一任务。
其中,在第一任务的运行过程中,第一任务共享第一进程的专属资源至少包括:读写第一进程的环境变量,打开、读、写和关闭第一进程的文件资源,打开、发送、接受和关闭第一进程的网络资源。
一种用户态虚拟机的进程被加载时,创建该进程的任务组数据结构和初始化任务,并通过初始化任务启动该进程。
图3示出了一种用户态虚拟机进程的创建方法实施例的流程,包括步骤S210至S250。
S210:第一用户态虚拟机将第一进程的执行文件加载到该进程的目标内存。
其中,第一用户态虚拟机根据业务需求把第一进程加载到该进程的目标内存,该目标内存为第一进程的运行内存。
S220:第一用户态虚拟机分配及初始化第一进程的任务组数据结构。
其中,第一用户态虚拟机为第一进程分配专属资源,各进程之间的专属资源独立,该专属资源至少包括环境变量、文件资源和网络资源中的一种,并把专属资源保存于第一进程的任务组数据结构TaskGroup。
由上,通过一个进程的任务组数据结构TaskGroup,该进程的各运行任务可以获取该进程的专属资源,并访问该专属资源。
S230:第一用户态虚拟机创建第一进程的初始化任务,把初始化任务控制块中的所属进程指针指向第一进程的任务组数据结构。
其中,在一个任务的任务控制块中增加所属进程指针,表示为group,其指向该任务所属进程的任务组数据结构TaskGroup。
由上,通过一个任务的任务控制块中的所属进程指针,记录该任务的所属进程,同时使该任务共享其所属进程的专属资源。
S240:第一用户态虚拟机在第一进程的任务组数据结构中记录第一进程的初始化任务。
其中,在第一进程的任务组数据结构TaskGroup的运行任务成员名TaskGroup.members中增加初始化任务,递增第一进程的任务组数据结构TaskGroup的运行任务成员数TaskGroup.nmembers。
其中,在创建初始化任务前,第一进程的任务组数据结构TaskGroup的运行任务成员数TaskGroup.Nmembers为0,在创建初始化任务后,该运行任务成员数TaskGroup.Nmembers为1.
S250:第一用户态虚拟机启动初始化任务来执行第一进程的执行文件。
其中,该初始化任务的入口即为第一进程的执行文件的入口。启动后第一进程后,可以按照后文所述任务创建方法实施例的方法创建属于第一进程的各任务。
当第一用户态虚拟机的第一任务启动时,在第一进程中添加第一任务,并创建该任务。
图4示出了一种用户态虚拟机任务的启动方法实施例的流程,包括步骤S310至S320。
S310:第一用户态虚拟机分配及初始化第一任务控制块,把第一任务控制块的所属进程指针指向第一进程的任务组数据结构。
其中,通过把第一任务控制块的所属进程指针group指向第一进程的任务组数据结构TaskGroup,使第一任务共享第一进程的专属资源。
S320:第一用户态虚拟机在第一进程的任务组数据结构中记录第一任务。
其中,在第一进程的任务组数据结构TaskGroup的运行任务成员名TaskGroup.members中增加第一任务,递增第一进程的任务组数据结构TaskGroup的运行任务成员数TaskGroup.nmembers。
一种用户态虚拟机的任务完成其所有业务后,该任务被删除。
图5示出了一种用户态虚拟机任务的删除方法实施例的流程,包括步骤S410至S430。
S410:第一用户态虚拟机在第一进程的任务组数据结构中删除第一任务。
其中,在第一进程的任务组数据结构TaskGroup的运行任务成员名TaskGroup.members中删除第一任务,递减第一进程的任务组数据结构TaskGroup的运行任务成员数TaskGroup.nmembers。
S420:第一用户态虚拟机释放第一任务的任务控制块。
其中,当一个任务的任务控制块被释放,则该任务被删除。
S430:当第一进程的任务组的运行任务成员数为0时,第一用户态虚拟机删除第一进程。
其中,当一个进程的任务组的运行任务成员数TaskGroup.Nmembers为0时,则该进程的所有任务都已经释放,为了节省资源,通过删除第一进程,释放专属资源。
其中,删除第一进程的方法参照一种用户态虚拟机进程的删除方法实施例的流程。
当一个进程的任务组的运行任务成员数为0或进程运行出错时,则删除第一进程。
图6示出了一种用户态虚拟机进程的删除方法实施例的流程,包括步骤S510至S530。
为了叙述方便,以第一用户态虚拟机、第一进程说明本实施例。第一用户态虚拟机为图1中的一个用户态虚拟机、第一进程为第一用户态虚拟机的一个进程。
S510:第一用户态虚拟机删除第一进程的任务组数据结构中所有运行任务。
其中,删除第一进程的任务组数据结构TaskGroup的运行任务成员名TaskGroup.members中记录的所有任务。
S520:第一用户态虚拟机释放第一进程的任务组数据结构中的专属资源。
其中,把第一进程的任务组数据结构TaskGroup中配置的第一进程的专属资源释放。
S530:第一用户态虚拟机释放第一进程的任务组数据结构。
其中,释放第一进程的任务组数据结构TaskGroup,以节省系统资源。
综上,在一种用户态虚拟机任务的调度方法实施例中,每个用户态虚拟机支持多个进程,每个进程具有独立的专属资源,每个进程支持多个任务,每个任务共享其所属进程的专属资源;用户态虚拟机创建第一进程,并启动第一任务,第一任务为第一进程当前待调度的任务;第一任务根据其任务控制块获得第一进程的专属资源,利用第一、、进程的专属资源运行第一任务。本方法实施例在用户态虚拟机环境下实现了多进程多任务实时调度,更好的管理虚拟机内多任务对资源的使用和共享,提高操作系统的可用性和适用范围。同时在第一任务完成时删除第一任务,且当第一进程的任务数为0时删除第一进程,实现一个用户态虚拟机中多进程多任务调度中全流程管理。
下面基于图7介绍本发明的一种用户态虚拟机任务的调度装置实施例。
图7示出了本发明的一种用户态虚拟机任务的调度装置实施例的结构,其包括:进程创建模块710、任务启动模块720、资源获得模块730和任务运行模块740,任务删除模块750、进程删除模块760。
进程创建模块710用于用户态虚拟机创建其多个进程,各进程具有互相独立的专属资源,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S110。
任务启动模块720用于用户态虚拟机启动各进程的任务,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S120。
资源获得模块730用于一个用户态虚拟机根据被调度的任务获得其所属进程的专属资源,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S130。
任务运行模块740用于用户态虚拟机利用被调度的任务所属进程的专属资源运行被调度的任务,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S140。
任务删除模块750用于执行一种用户态虚拟机任务的删除方法实施例的所有步骤,其原理和优点请参照一种用户态虚拟机任务的删除方法实施例。
进程删除模块760用于一种用户态虚拟机进程的删除方法实施例的所有步骤,其原理和优点请参照一种用户态虚拟机进程的删除方法实施例。
本发明实施例还提供了一种操作系统,执行本发明各方法实施例所述方法。
本发明实施例还提供了一种计算设备,下面结合图8详细介绍。
该计算设备800包括,处理器810、存储器820、通信接口830、总线840。
应理解,该图所示的计算设备800中的通信接口830可以用于与其他设备之间进行通信。
其中,该处理器810可以与存储器820连接。该存储器820可以用于存储该程序代码和数据。因此,该存储器820可以是处理器810内部的存储单元,也可以是与处理器810独立的外部存储单元,还可以是包括处理器810内部的存储单元和与处理器810独立的外部存储单元的部件。
可选的,计算设备800还可以包括总线840。其中,存储器820、通信接口830可以通过总线840与处理器810连接。总线840可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线840可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器810可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器810采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器820可以包括只读存储器和随机存取存储器,并向处理器810提供指令和数据。处理器810的一部分还可以包括非易失性随机存取存储器。例如,处理器810还可以存储设备类型的信息。
在计算设备800运行时,所述处理器810执行所述存储器820中的计算机执行指令执行各方法实施例的操作步骤。
应理解,根据本发明实施例的计算设备800可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备800中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行各方法实施例的操作步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。

Claims (10)

1.一种用户态虚拟机任务的调度方法,其特征在于,每个用户态虚拟机支持多个进程,各进程具有互相独立的专属资源,所述专属资源至少包括下列资源中的一种:环境变量、文件资源和网络资源,每个任务属于一个进程,每个进程内的任务共享该进程的专属资源,每个进程对应一个任务组数据结构,其包括:该进程的运行任务成员名和专属资源,所述方法包括:
第一用户态虚拟机初始化第一进程的任务组数据结构和配置第一进程的所述专属资源,并启动第一进程,第一进程为所述用户态虚拟机的任一进程;
启动第一任务,第一任务为第一进程当前被调度的任一任务;
根据第一任务的任务控制块获得第一进程的专属资源;
利用第一进程的专属资源运行第一任务。
2.根据权利要求1所述方法,其特征在于,所述根据第一任务的任务控制块获得第一进程的专属资源,包括:
根据第一任务的任务控制块获得第一任务所属于的第一进程的任务组数据结构,每个进程的所述任务组数据结构包括该进程的专属资源;
根据第一进程的任务组数据结构获得第一进程的专属资源。
3.根据权利要求2所述方法,其特征在于,每个任务的任务控制块包括所属进程指针;
启动一个任务时,把该任务的所属进程指针指向该任务所属进程的任务组数据结构。
4.根据权利要求2所述方法,其特征在于,启动一个任务时,在该任务所属进程的所述任务组数据结构的运行任务成员名中增加该任务。
5.根据权利要求2所述方法,其特征在于,一个进程的所述任务组数据结构还包括运行任务成员数;
启动一个任务时,递增该任务所属进程的所述运行任务成员数。
6.根据权利要求5所述方法,其特征在于,还包括
当一个进程的所述任务组数据结构的运行任务成员数为0时,删除该进程。
7.一种用户态虚拟机任务的调度装置,其特征在于,每个用户态虚拟机支持多个进程,各进程具有互相独立的专属资源,所述专属资源至少包括下列资源中的一种:环境变量、文件资源和网络资源,每个任务属于一个进程,每个进程内的任务共享该进程的专属资源,每个进程对应一个提前配置的任务组数据结构,其包括:该进程的运行任务成员名和专属资源,所述装置包括:
进程创建模块,用于第一用户态虚拟机分配及初始化第一进程的任务组数据结构,并启动第一进程,第一进程为所述用户态虚拟机的任一进程;
任务启动模块,用于启动第一任务,第一任务为第一进程当前被调度的任一任务;
资源获得模块,用于根据第一任务的任务控制块获得第一进程的专属资源;
任务运行模块,用于利用第一进程的专属资源运行第一任务。
8.一种操作系统,其特征在于,执行权利要求1至6任一所述方法。
9.一种计算设备,其特征在于,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1至6任一所述方法。
10.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1至6任一所述方法。
CN202210514064.8A 2022-05-11 2022-05-11 用户态虚拟机任务的调度方法、装置、设备及存储介质 Active CN114791854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210514064.8A CN114791854B (zh) 2022-05-11 2022-05-11 用户态虚拟机任务的调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210514064.8A CN114791854B (zh) 2022-05-11 2022-05-11 用户态虚拟机任务的调度方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114791854A CN114791854A (zh) 2022-07-26
CN114791854B true CN114791854B (zh) 2023-03-24

Family

ID=82463275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210514064.8A Active CN114791854B (zh) 2022-05-11 2022-05-11 用户态虚拟机任务的调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114791854B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826731B (zh) * 2022-10-19 2023-07-11 科东(广州)软件科技有限公司 休眠控制方法及装置、存储介质和计算设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874468A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 应用程序安全保护方法以及相关设备
CN114398172A (zh) * 2021-12-15 2022-04-26 元心信息科技集团有限公司 资源配置方法、装置、电子设备及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158972B2 (en) * 2001-12-11 2007-01-02 Sun Microsystems, Inc. Methods and apparatus for managing multiple user systems
US7490191B2 (en) * 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
CN101968746B (zh) * 2010-09-02 2016-03-02 北京航空航天大学 一种内核虚拟机组织架构模式的实现方法
CN106970821B (zh) * 2016-01-12 2021-02-02 阿里巴巴集团控股有限公司 一种kvm虚拟化下处理i/o请求的方法和装置
CN114168271B (zh) * 2021-12-29 2022-11-11 科东(广州)软件科技有限公司 一种任务调度方法、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874468A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 应用程序安全保护方法以及相关设备
CN114398172A (zh) * 2021-12-15 2022-04-26 元心信息科技集团有限公司 资源配置方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN114791854A (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
CN108139946B (zh) 用于在冲突存在时进行有效任务调度的方法
CN109298901B (zh) 无人车中对象处理方法、装置、设备、存储介质和车辆
CN103970520A (zh) MapReduce架构中的资源管理方法、装置和架构系统
US11360884B2 (en) Reserved memory in memory management system
CN111078323A (zh) 基于协程的数据处理方法、装置、计算机设备及存储介质
CN114327944B (zh) 一种多系统共享内存的方法、装置、设备及存储介质
US20220229701A1 (en) Dynamic allocation of computing resources
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
CN114791854B (zh) 用户态虚拟机任务的调度方法、装置、设备及存储介质
US20140325177A1 (en) Heap management using dynamic memory allocation
US20220261489A1 (en) Capability management method and computer device
CN114253904A (zh) 一种异构系统的构建方法及装置
US20220019453A1 (en) Pool management for in-vehicle device application startup
US9250977B2 (en) Tiered locking of resources
US10976934B2 (en) Prioritizing pages to transfer for memory sharing
CN115421871A (zh) 一种对系统的硬件资源动态分配的方法、装置及计算设备
CN115658295A (zh) 资源调度方法、装置、电子设备和存储介质
CN109815116A (zh) 一种软件测试方法和设备平台及计算机可读存储介质
CN112506592B (zh) 页面加载时长的确定方法、装置、设备和存储介质
US9251101B2 (en) Bitmap locking using a nodal lock
US9753670B2 (en) Prioritizing memory pages to copy for memory migration
CN105653377B (zh) 一种异构多核系统核间通讯方法及控制器
CN114880075B (zh) 一种用户态虚拟机虚拟核间任务的调度方法及装置
CN109741026A (zh) 基于活动对的流程引擎处理方法及装置
CN115878272B (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