CN115145687B - 一种用户态虚拟机任务的调度方法及装置 - Google Patents

一种用户态虚拟机任务的调度方法及装置 Download PDF

Info

Publication number
CN115145687B
CN115145687B CN202210763956.1A CN202210763956A CN115145687B CN 115145687 B CN115145687 B CN 115145687B CN 202210763956 A CN202210763956 A CN 202210763956A CN 115145687 B CN115145687 B CN 115145687B
Authority
CN
China
Prior art keywords
task
signal
virtual core
specified
virtual
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
CN202210763956.1A
Other languages
English (en)
Other versions
CN115145687A (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 CN202210763956.1A priority Critical patent/CN115145687B/zh
Publication of CN115145687A publication Critical patent/CN115145687A/zh
Application granted granted Critical
Publication of CN115145687B publication Critical patent/CN115145687B/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/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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种用户态虚拟机任务的调度方法及装置,其技术方案包括:当第一虚拟核向指定任务发送第一信号时,把第一信号和其处理函数添加到指定任务的信号挂起队列中;当所述指定任务是第二虚拟核当前的运行任务且第一虚拟核与第二虚拟核不同时,第一虚拟核通过服务中断通知第二虚拟核处理所述指定任务的信号;第二虚拟核在响应该服务中断时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。本发明的技术方案提高了操作系统在处理信号时的可用性和实时性,降低操作系统的复杂性。

Description

一种用户态虚拟机任务的调度方法及装置
技术领域
本发明涉及操作系统领域,尤其涉及一种用户态虚拟机任务的调度方法及装置。
背景技术
信号相当于是任务的软中断,当任务运行时,应该尽可能快的处理信号。当前嵌入式操作系统系统如果支持信号的批量处理,是在任务切换时检查任务是否存在需要处理的信号。
由于任务切换在系统中是非常频繁的操作,这样会增加系统的开销,降低系统的整体性能。
有些嵌入式操作系统系统为了简化信号处理,通过任务上下文切换的方式执行单个信号的处理函数,不支持信号的批量处理,降低了操作系统的可用性以及适用范围。
对于支持多核的嵌入式操作系统,向非当前运行任务发送信号时,需要停止任务后才能发送信号,信号发送完成后,需要启动任务,信号处理操作比较复杂,增加系统的复杂性和不确定性。
发明内容
有鉴于此,本发明实施例提供了一种用户态虚拟机任务的调度方法及装置,其技术方案包括:当第一虚拟核向指定任务发送第一信号时,把第一信号和其处理函数添加到指定任务的信号挂起队列中;当所述指定任务是第二虚拟核当前的运行任务且第一虚拟核与第二虚拟核不同时,第一虚拟核通过服务中断通知第二虚拟核处理所述指定任务的信号,第二虚拟核在响应该服务中断时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号;当所述指定任务不是任一虚拟核当前的运行任务时,保存指定任务的CPU上下文中PC值和机器状态值,且指定任务被切入时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号,之后通过保存的CPU上下文中PC值和机器状态值恢复指定任务的CPU上下文以继续运行指定任务。本发明的技术方案提高了操作系统在处理信号时的可用性和实时性,降低操作系统的复杂性。
第一方面,本发明实施例提供了一种用户态虚拟机任务的调度方法,包括:当第一虚拟核向指定任务发送第一信号时,把第一信号和其处理函数添加到指定任务的信号挂起队列中,所述第一虚拟核为正在运行其当前任务的虚拟核,所述指定任务为任一虚拟核中待调度信号的任务,所述第一信号为所述指定任务的待调度信号;当所述指定任务是第二虚拟核当前的运行任务且第一虚拟核与第二虚拟核不同时,第一虚拟核通过服务中断通知第二虚拟核处理所述指定任务的信号;以及第二虚拟核在响应该服务中断时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
由上,第一虚拟核通过服务中断通知第二虚拟核处理指定任务的信号,第二虚拟核在响应该服务中断时执行指定任务(第二虚拟核的当前运行任务)的信号批处理函数来处理指定任务的信号挂起队列中所有信号,提高了操作系统在处理信号时的可用性和实时性。
在第一方面的一种可能实施方式中,一种用户态虚拟机任务的调度方法还包括:所述指定任务是第一虚拟核当前的运行任务且第一虚拟核正在进行中断处理时,第一虚拟核通过服务中断通知自己处理所述指定任务的信号;以及第一虚拟核响应该服务中断时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
由上,第一虚拟核通过服务中断通知自己处理指定任务(第一虚拟核的当前运行任务)的信号,第一虚拟核响应该服务中断时执行指定任务的信号批处理函数来处理信号挂起队列中所有信号,进一步提高了操作系统在处理信号时的实时性。
在第一方面的一种可能实施方式中,一种用户态虚拟机任务的调度方法还包括:所述指定任务是第一虚拟核当前的运行任务且第一虚拟核不在进行中断处理时,第一虚拟核执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
由上,不在进行中断处理的第一虚拟核直接执行指定任务(第一虚拟核的当前运行任务)的信号批处理函数来处理信号挂起队列中所有信号,进一步提高了操作系统在处理信号时的实时性。
在第一方面的一种可能实施方式中,一种用户态虚拟机任务的调度方法还包括:当所述指定任务不是当前的运行任务时,第一虚拟核向所述指定任务发送第一信号时,保存所述指定任务的任务控制块中CPU上下文的PC值和机器状态值;将所述指定任务的任务控制块中CPU上下文的PC值和机器状态值设置为所述指定任务的任务信号批处理函数和禁止中断,一个任务的所述任务信号批处理函数运行该任务的信号批处理函数;所述指定任务被切入时通过运行其所述任务信号批处理函数,以处理所述指定任务的信号挂起队列中所有信号。
由上,向非当前的运行任务发送信号时只保存的原始的PC值和原始的机器状态值,以及在指定任务被切入时通过运行其任务信号批处理函数,以处理其信号挂起队列中所有信号,且通过保存的原始的PC值和原始的机器状态值恢复指定任务被切走使的CPU上下文,不仅进一步提高了操作系统在处理信号时的可用性和实时性,还降低了操作系统的复杂性。
在第一方面的一种可能实施方式中,所述指定任务通过运行其所述任务信号批处理函数,包括:保存所述指定任务的任务控制块的CPU上下文至临时CPU上下文;执行所述指定任务的信号批处理函数,以处理所述指定任务的信号挂起队列中所有信号;将保存的原始的PC值和原始的机器状态值恢复到临时CPU上下文的对应字段;用临时CPU上下文替代所述指定任务的任务控制块的CPU上下文。
由上,通过设置临时CPU上下文来恢复指定任务的上次被切走时的CPU上下文,进一步降低了操作系统的复杂性。
在第一方面的一种可能实施方式中,在一个任务的任务控制块中包括:该任务的所述信号挂起队列、该任务的所述信号批处理函数和该任务的信号批处理标记;一个任务的所述信号批处理标记用于标记该任务是否正在进行信号批处理。
由上,通过在一个任务的任务控制块中包括该任务的信号挂起队列、信号批处理函数和信号批处理标记,进一步提高了操作系统的可用性,进一步降低了操作系统的复杂性。
在第一方面的一种可能实施方式中,当第一虚拟核R次向所述指定任务发送第一信号时,把第一信号和其处理函数R次添加到所述指定任务的信号挂起队列中,以使第一信号被处理R次。
由上,当一个信号被多次发送到一个任务上时,通过信号挂起队列记载相同次数的该信号,从而使相同信号的多次发送不会丢失。
第二方面,本发明实施例提供了一种用户态虚拟机任务的调度装置,包括:信号添加模块,用于当第一虚拟核向指定任务发送第一信号时,把第一信号和其处理函数添加到指定任务的信号挂起队列中,所述第一虚拟核为正在运行其当前任务的虚拟核,所述指定任务为任一虚拟核中待调度信号的任务,所述第一信号为所述指定任务的待调度信号;信号发送模块,用于当所述指定任务是第二虚拟核当前的运行任务且第一虚拟核与第二虚拟核不同时,第一虚拟核通过服务中断通知第二虚拟核处理所述指定任务的信号;以及信号处理模块,第二虚拟核在响应该服务中断时运行该模块,以执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
由上,第一虚拟核通过服务中断通知第二虚拟核处理指定任务的信号,第二虚拟核在响应该服务中断时执行指定任务(第二虚拟核的当前运行任务)的信号批处理函数来处理指定任务的信号挂起队列中所有信号,提高了操作系统在处理信号时的可用性和实时性。
在第二方面的一种可能实施方式中,所述指定任务是第一虚拟核当前的运行任务且第一虚拟核正在进行中断处理时,信号发送模块还用于第一虚拟核通过服务中断通知自己处理所述指定任务的信号;,信号处理模块还用于第一虚拟核响应该服务中断时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
由上,第一虚拟核通过服务中断通知自己处理指定任务(第一虚拟核的当前运行任务)的信号,第一虚拟核响应该服务中断时执行指定任务的信号批处理函数来处理信号挂起队列中所有信号,进一步提高了操作系统在处理信号时的实时性。
在第二方面的一种可能实施方式中,所述指定任务是第一虚拟核当前的运行任务且第一虚拟核不在进行中断处理时,信号处理模块还用于第一虚拟核执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
由上,不在进行中断处理的第一虚拟核直接执行指定任务(第一虚拟核的当前运行任务)的信号批处理函数来处理信号挂起队列中所有信号,进一步提高了操作系统在处理信号时的实时性。
在第二方面的一种可能实施方式中,当所述指定任务不是当前的运行任务时,信号发送模块还用于第一虚拟核向所述指定任务发送第一信号时,保存所述指定任务的任务控制块中CPU上下文的PC值和机器状态值;将所述指定任务的任务控制块中CPU上下文的PC值和机器状态值设置为所述指定任务的任务信号批处理函数和禁止中断,一个任务的所述任务信号批处理函数运行该任务的信号批处理函数;,信号处理模块还用于所述指定任务被切入时通过运行其所述任务信号批处理函数,以处理所述指定任务的信号挂起队列中所有信号。
由上,向非当前的运行任务发送信号时只保存原始的PC值和原始的机器状态值,以及在指定任务被切入时通过运行其任务信号批处理函数,以处理其信号挂起队列中所有信号,且通过保存的原始的PC值和原始的机器状态值恢复指定任务被切走使的CPU上下文,不仅进一步提高了操作系统在处理信号时的可用性和实时性,还降低了操作系统的复杂性。
在第二方面的一种可能实施方式中,信号处理模块通过运行所述指定任务的所述任务信号批处理函数时,具体用于,包括:保存所述指定任务的任务控制块的CPU上下文至临时CPU上下文;执行所述指定任务的信号批处理函数,以处理所述指定任务的信号挂起队列中所有信号;将保存的原始的PC值和原始的机器状态值恢复到临时CPU上下文的对应字段;用临时CPU上下文替代所述指定任务的任务控制块的CPU上下文。
由上,通过设置临时CPU上下文来恢复指定任务的上次被切走时的CPU上下文,进一步降低了操作系统的复杂性。
在第二方面的一种可能实施方式中,在一个任务的任务控制块中包括:该任务的所述信号挂起队列、该任务的所述信号批处理函数和该任务的信号批处理标记;一个任务的所述信号批处理标记用于标记该任务是否正在进行信号批处理。
由上,通过在一个任务的任务控制块中包括该任务的信号挂起队列、信号批处理函数和信号批处理标记,进一步提高了操作系统的可用性,进一步降低了操作系统的复杂性。
在第二方面的一种可能实施方式中,当第一虚拟核R次向所述指定任务发送第一信号时,信号添加模块用于把第一信号和其处理函数R次添加到所述指定任务的信号挂起队列中,以使第一信号被处理R次。
由上,当一个信号被多次发送到一个任务上时,通过信号挂起队列记载相同次数的该信号,从而使相同信号的多次发送不会丢失。
第三方面,本发明实施例提供了一种操作系统,执行第一方面任一实施方式所述方法。
第四方面,本发明实施例提供了一种计算设备,包括,
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行申请第一方面任一所述实施方式。
附图说明
图1为本发明的各实施例应用场景的结构示意图;
图2为本发明的一种用户态虚拟机任务的调度方法实施例的流程示意图;
图3为本发明的一种用户态虚拟机的当前运行任务的信号调度方法实施例的流程示意图;
图4为本发明的一种用户态虚拟机的非当前运行任务的信号调度方法实施例的流程示意图;
图5为本发明的一种用户态虚拟机的非当前运行任务的信号调度方法实施例的任务信号批处理函数的流程示意图;
图6为本发明的一种用户态虚拟机任务的调度装置实施例的结构示意图;
图7为本发明的一种用户态虚拟机的当前运行任务的信号调度装置实施例的结构示意图;
图8为本发明的一种用户态虚拟机的非当前运行任务的信号调度装置实施例的结构示意图;
图9为本发明各实施例的一种计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明实施例提供了一种用户态虚拟机任务的调度方法及装置,其技术方案包括:当第一虚拟核向指定任务发送第一信号时,把第一信号和其处理函数添加到指定任务的信号挂起队列中;当所述指定任务是第二虚拟核当前的运行任务且第一虚拟核与第二虚拟核不同时,第一虚拟核通过服务中断通知第二虚拟核处理所述指定任务的信号,第二虚拟核在响应该服务中断时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号;当所述指定任务不是任一虚拟核当前的运行任务时,保存指定任务的CPU上下文中PC值和机器状态值,且指定任务被切入时执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号,之后通过保存的CPU上下文中PC值和机器状态值恢复指定任务的CPU上下文以继续运行指定任务。本发明的技术方案提高了操作系统在处理信号时的可用性和实时性,降低操作系统的复杂性。
下面首先介绍本发明各实施例的应用场景的结构,本场景为一种虚拟机系统,其包括用户态和核心态。
其中,用户态包括多个用户态虚拟机,每个用户态虚拟机运行多个虚拟核上,通过多虚拟核信号调度单元调度多个任务的信号。
示例地,图1示出了用户态虚拟机1、用户态虚拟机2和用户态虚拟机3,以用户态虚拟机1为示例说明每个用户态虚拟机,用户态虚拟机1运行在虚拟核11、虚拟核12和虚拟核13上,通过多虚拟核任务调度单元调度任务101、任务102和任务103,每个任务上可挂多个信号。实际系统可以需要配置任意数目的用户态虚拟机,每个用户态虚拟机根据实际需求运行任意数目的虚拟核上,每个用户态虚拟机根据实际需求通过多虚拟核任务调度单元调度任意数目的任务。
其中,核心态包括多虚拟机多核调度单元和各物理核,各个物理核通过多虚拟机多核调度单元映射成各用户态虚拟机的虚拟核。
下面再介绍本发明实施例中的任务控制块,在本发明各实施例中,一个任务的任务控制块包括:
各信号的信号处理函数,用于处理相应的信号;
信号挂起队列,用于存储该任务的未处理的所有信号和这些信号的处理函数名;
信号批处理函数,用于处理该任务的信号挂起队列中所有信号;
信号批处理标记,用于标记该任务是否正在信号处理。当该任务正在信号批处理时,该信号批处理标记为该任务的信号批处理函数名,当该任务不在进行信号批处理时,该信号批处理标记为空。
为了叙述方面,一个任务的任务控制块中的信号处理函数、信号挂起队列、信号批处理函数、信号批处理标记也可以分别描述为一个任务的信号处理函数、信号挂起队列、信号批处理函数、信号批处理标记。
下面根据图2至图5介绍本发明的各方法实施例。本发明的各方法实施例包括:一种用户态虚拟机任务的调度方法实施例、一种用户态虚拟机的当前运行任务信号调度方法实施例和一种用户态虚拟机的非当前运行任务的信号调度方法实施例。
首先根据图2介绍本发明的一种用户态虚拟机任务的调度方法实施例。
一种用户态虚拟机任务的调度方法实施例在图1的各用户态虚拟机中运行,通过在任务控制块中增加信号挂起队列,记录相关任务的未处理的所有信号和这些信号的处理函数名,且可以记录同一信号的多次发送,从而使相同信号的多次发送不会丢失;并在任务控制块中增加信号批处理函数,从而在该任务运行时通过其信号批处理函数以处理其信号挂起队列中信号。一种用户态虚拟机任务的调度方法实施例提高操作系统在处理信号时的可用性和实时性,降低操作系统的复杂性。
图2示出了本发明的一种用户态虚拟机任务的调度方法实施例的流程,其包括步骤S110至S170。
S110:安装每个虚拟核信号处理的服务中断对应的中断处理函数。
其中,每个虚拟核安装一个服务中断对应的中断处理函数,表示为sigdeliver_vint(),在sigdeliver_vint()中依次执行如下操作:
1)执行虚拟核当前运行任务的信号批处理函数,以处理该当前运行任务的信号挂起队列上的所有信号,信号批处理函数表示为sig_deliver()。
2)设置该当前运行任务的信号批处理标记为空,信号批处理标记表示为sigdeliver。
S120:安装各任务的信号处理函数。
其中,对于每个任务,在其任务控制块包括其每个信号的信号处理函数。
其中,当该任务运行时,其信号批处理函数sig_deliver()会调用其信号挂起队列上的所有信号的信号处理函数,以处理其信号挂起队列上的所有信号。
S130:当第一虚拟核检测到指定任务有第一信号待调度时,第一虚拟核向指定任务发送第一信号,把第一信号和其处理函数添加到指定任务的信号挂起队列中。
为了叙述方便,本实施例以第一虚拟核发现指定任务有第一信号待调度为例,第一虚拟核为正在进行当前任务处理的虚拟核,指定任务为任一虚拟核中待调度信号的任务,第一信号为指定任务的待调度信号。
其中,第一虚拟核R次向所述指定任务发送第一信号时,把第一信号和其处理函数R次添加到所述指定任务的信号挂起队列中,以使第一信号被处理R次。
S140:第一虚拟核判断指定任务的信号批处理标记是否为空。
其中,如果信号批处理标记sigdeliver为空,则指定任务不在进行信号批处理,执行步骤S150,否则指定任务正在进行信号批处理,结束信号调度。
S150:第一虚拟核判断指定任务是否是任一虚拟核的当前运行任务。
其中,如果指定任务是一个虚拟核的当前运行任务,则执行步骤S160,否则执行步骤S170。
S160:第一虚拟核通知指定任务的运行虚拟核运行第一信号,指定任务的运行虚拟核在相应的时间运行其信号批处理函数以处理其信号挂起队列中信号。
其中,所述相应的时间根据指定任务与第一虚拟核的关系、与第一虚拟核指定任务的运行虚拟核的关系等确定。在本步骤中指定任务为当前运行任务,本步骤的具体实施方法和优点请参照一种用户态虚拟机的当前运行任务的信号调度方法实施例。
S170:第一虚拟核保存指定任务的CPU上下文的PC值和机器状态值,当指定任务被切入时,通过指定任务的任务信号批处理函数处理第一信号。
其中,在本步骤中指定任务不是当前运行任务。本步骤的具体实施方法和优点请参照一种用户态虚拟机的非当前运行任务的信号调度方法实施例。
综上,一种用户态虚拟机任务的调度方法实施例通过在任务控制块中增加信号挂起队列,记录相关任务的未处理的所有信号和这些信号的处理函数名,且可以记录同一信号的多次发送,从而使相同信号的多次发送不会丢失;并在任务控制块中增加信号批处理函数,从而在该任务运行时通过其信号批处理函数以处理其信号挂起队列中信号。一种用户态虚拟机任务的调度方法实施例提高操作系统的可用性和实时性,降低操作系统的复杂性。
下面介绍一种用户态虚拟机的当前运行任务的信号调度方法实施例。该实施例中当一个虚拟核向一个其他虚拟核当前运行任务发送信号时,该虚拟核通过服务中断通知该其他虚拟核处理信号,从而提高其他虚拟核上运行任务响应信号的实时性;一个虚拟核在处理中断且向自己当前运行任务发送信号时,通过服务中断通知自己处理信号,从而既不影响当前中断处理,也提高了信号处理的实时性。
图3示出了一种用户态虚拟机的当前运行任务的信号调度方法实施例的流程,包括步骤S1610至S1670。
为了叙述方便,本实施例以第一虚拟核发现第二虚拟核上的指定任务有第一信号待调度为例,第一虚拟核为正在进行当前任务处理的虚拟核,第二虚拟核可以与第一虚拟核相同,也可以不同,第一信号为指定任务的待调度信号。
S1610:判断指定任务是否是第一虚拟核的当前运行任务。
其中,如果指定任务是第一虚拟核的当前运行任务,则运行步骤S1620至S1650,否则运行S1660至S1670。
S1620:判断第一虚拟核是否在处理中断。
其中,如果第一虚拟核不在处理中断,则运行步骤S1630;如果第一虚拟核在处理中断,则运行步骤S1640至S1650。
S1630:第一虚拟核执行当前任务即指定任务的信号批处理函数,一次性批量处理完当前运行任务的信号挂起队列上的信号。
其中,第一虚拟核不在处理中断时利用信号批处理函数sig_deliver(),在当前运行任务的CPU上下文环境里及时处理其信号挂起队列上的信号,以提高信号处理的时效性。
S1640:第一虚拟核把其当前运行任务的信号批处理标记设置为当前运行任务的信号批处理函数,并向自己发信号处理的服务中断。
其中,其当前运行任务的信号批处理标记sigdeliver设置为当前运行任务的信号批处理函数sig_deliver(),使其他虚拟核向第一虚拟核的当前运行任务发送信号时,判断第一虚拟核已经准备进入信号处理,无需再发送信号处理的服务中断,减少对第一虚拟核任务当前运行任务的影响。
S1650:第一虚拟核在当前中断退出时响应信号处理的服务中断,以执行当前任务即指定任务的信号批处理函数,一次性批量处理完当前运行任务信号挂起队列上的信号。
其中,第一虚拟核在当前中断退出时响应信号处理的服务中断,以提高信号处理的时效性。
S1660:第一虚拟核把指定任务的信号批处理标记设置为指定任务的信号批处理函数,第一虚拟核向第二虚拟核发送信号处理的服务中断。
其中,第一虚拟核把指定任务的信号批处理标记sigdeliver设置为指定任务的信号批处理函数sig_deliver(),使其他虚拟核向第二虚拟核的指定任务发送信号时,判断第二虚拟核已经准备进入信号处理,无需再发送信号处理的服务中断,减少对指定任务当前运行任务的影响。
其中,第一虚拟核向第二虚拟核发送信号处理的服务中断,提高信号处理的时效性。
S1670:第二虚拟核响应信号处理的服务中断时,执行其当前运行任务即指定任务的信号批处理函数,一次性批量处理完当前运行任务信号挂起队列上的信号。
其中,第二虚拟核响应信号处理的服务中断执行其当前运行任务即指定任务的信号批处理函数sig_deliver(),提高信号处理的时效性。
综上,在一种用户态虚拟机的当前运行任务的信号调度方法实施例中,当一个虚拟核向一个其他虚拟核当前运行任务发送信号时,该虚拟核通过服务中断通知该其他虚拟核处理信号,从而提高其他虚拟核上运行任务响应信号的实时性;一个虚拟核在处理中断时有待调度的信号,通过服务中断通知自己处理信号,从而既不影响当前中断处理,也提高了信号处理的实时性。
下面介绍一种用户态虚拟机的非当前运行任务的信号调度方法实施例。该实施例中当一个虚拟核向非运行任务发送信号时,只需保留该非当前运行任务的CPU上下文中的PC值和机器状态值,然后在该非运行任务运行时通过其信号批处理函数以处理其信号挂起队列中信号之后,利用保留的PC值和机器状态值恢复该非运行任务被切走时的CPU上下文,本实施例在响应信号时保持了操作系统的简洁性。
图4示出了一种用户态虚拟机的非当前运行任务的信号调度方法实施例的流程,其包括步骤S1710至S1740。
为了叙述方便,本实施例继续以第一虚拟核发现第二虚拟核上的指定任务有第一信号待调度为例,第一虚拟核为正在进行当前任务处理的虚拟核,第二虚拟核可以与第一虚拟核相同,也可以不同,第一信号为指定任务的待调度信号。
S1710:第一虚拟核设置指定任务的信号批处理标记为指定任务的信号批处理函数。
其中,第一虚拟核设置指定任务的信号批处理标记sigdeliver为指定任务的信号批处理函数sig_deliver(),使其他任务向指定任务发送信号时,无需再进行保留其他操作。
S1720:第一虚拟核将指定任务的任务控制块中CPU上下文的原始PC和机器状态值保存到任务控制块中与CPU上下文并列的位置。
其中,把原始PC和机器状态值保存到任务控制块中的其他位置,从而在运行信号批处理函数sigdeliver()时不会被改变,可以用来恢复指定任务的上次被切走时的CPU上下文。
S1730:第一虚拟核将指定任务控制块中CPU上下文的PC设置为任务信号批处理函数,机器状态值设置为禁止中断。
其中,一个任务的任务信号批处理函数表示为sigdeliver_task(),sigdeliver_task()在该任务被切入时调用该任务的信号批处理函数sig_deliver(),一次性批量处理完该任务信号挂起队列上的信号。
其中,通过将指定任务控制块中CPU上下文的PC设置为sigdeliver_task(),使指定任务被切入时,执行sigdeliver_task()。
S1740:当指定任务被调度到第二虚拟核上时,第二虚拟核通过任务信号批处理函数一次性批量处理完当前运行任务信号挂起队列上的信号。
其中,第二虚拟核为指定任务切入的任何虚拟核。本步骤的流程请参考任务信号批处理函数的流程。
图5示出了任务信号批处理函数的流程,其包括步骤S1810至S1850。
S1810:第二虚拟核定义一个临时CPU上下文switchContext,将当前指定任务的任务控制块中的CPU上下文拷贝到switchContext。
S1820:第二虚拟核执行指定任务的批处理函数来处理指定任务的信号挂起队列上的所有信号。
其中,一个任务的任务信号批处理函数sigdeliver_task()在该任务运行时调用该任务的信号批处理函数sig_deliver(),一次性批量处理完该任务信号挂起队列上的信号。
S1830:第二虚拟核将指定任务的任务控制块中非CPU上下文位置保存的原始PC和机器状态值设置到switchContex中的PC和机器状态值。
其中,本步骤后switchContex为上次指定任务被切走时的CPU上下文。
S1840:第二虚拟核设置指定任务的任务控制块中信号批处理标记为空。
S1850:第二虚拟核使用switchContext通过任务CPU上下文恢复函数恢复指定任务的CPU上下文,即把指定任务的CPU上下文返回到当指定任务最近一次被切走的点,以继续执行指定任务。
综上,在一种用户态虚拟机的非当前运行任务的信号调度方法实施例中,当指定任务为非当前运行任务且一个虚拟核向指定任务发送信号时,只需保留该指定任务的CPU上下文中的PC值和机器状态值,然后在该指定任务运行时通过其信号批处理函数以处理其信号挂起队列中信号之后,利用保留的PC值和机器状态值恢复该指定任务被切走时的CPU上下文,本实施例在响应信号时保持了操作系统的简洁性。
下面基于图6至图8介绍本发明的各装置实施例。
图6示出了本发明的一种用户态虚拟机任务的调度装置实施例的结构,其包括:中断处理安装模块610、信号处理安装模块620、信号添加模块630、过程判断模块640、任务判断模块650、当前任务信号调度模块660和非当前任务信号调度模块670。
为了叙述方便,本实施例以第一虚拟核发现指定任务有第一信号待调度为例,第一虚拟核为正在进行当前任务处理的虚拟核,指定任务为任一虚拟核中待调度信号的任务,第一信号为指定任务的待调度信号。
中断处理安装模块610用于安装每个虚拟核信号处理的服务中断对应的中断处理函数,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S110。
信号处理安装模块620用于安装各任务的信号处理函数,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S120。
信号添加模块630用于当第一虚拟核检测到指定任务有第一信号待调度时,第一虚拟核向指定任务发送第一信号,把第一信号和其处理函数添加到指定任务的信号挂起队列中,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S130。
过程判断模块640用于第一虚拟核判断指定任务的信号批处理标记是否为空,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S140。
任务判断模块650用于第一虚拟核判断指定任务是否是任一虚拟核的当前运行任务,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S150。
当前任务信号调度模块660用于第一虚拟核通知指定任务的运行虚拟核运行第一信号,指定任务的运行虚拟核在相应的时间运行其信号批处理函数以处理其信号挂起队列中信号,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S160。
非当前任务信号调度模块670用于第一虚拟核保存指定任务的CPU上下文的PC值和机器状态值,当指定任务被切入时,通过指定任务的任务信号批处理函数处理第一信号,其原理和优点请参照一种用户态虚拟机任务的调度方法实施例的步骤S170。
图7示出了本发明的一种用户态虚拟机的当前运行任务的信号调度装置实施例的结构,其包括:虚拟核判断模块710、中断判断模块720、信号发送模块730、信号处理模块740。
虚拟核判断模块710用于判断指定任务是否是第一虚拟核的当前运行任务,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1610。
中断判断模块720,判断第一虚拟核是否在处理中断,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1620。
信号处理模块740用于第一虚拟核执行当前任务即指定任务的信号批处理函数,一次性批量处理完当前运行任务信号挂起队列上的信号,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1630。
信号发送模块730用于第一虚拟核把其当前运行任务的信号批处理标记设置为当前运行任务的信号批处理函数,并向自己发信号处理的服务中断,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1640。
信号处理模块740还用于第一虚拟核在当前中断退出时响应信号处理的服务中断,以执行当前任务即指定任务的信号批处理函数,一次性批量处理完当前运行任务信号挂起队列上的信号,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1650。
信号发送模块730还用于第一虚拟核把指定任务的信号批处理标记设置为指定任务的信号批处理函数,第一虚拟核向第二虚拟核发送信号处理的服务中断,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1660。
信号处理模块740还用于第二虚拟核响应信号处理的服务中断时,执行其当前运行任务即指定任务的信号批处理函数,一次性批量处理完当前运行任务信号挂起队列上的信号,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1670。
图8示出了本发明的一种用户态虚拟机的非当前运行任务的信号调度装置实施例的结构,其包括:信号发送模块810、信号处理模块820。
信号发送模块810:第一虚拟核设置指定任务的信号批处理标记为指定任务的信号批处理函数,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1710。
信号发送模块810还用于第一虚拟核将指定任务的任务控制块中CPU上下文的原始PC和机器状态值保存到任务控制块中与CPU上下文并列的位置,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1720。
信号发送模块810还用于第一虚拟核将指定任务控制块中CPU上下文的PC设置为任务信号批处理函数,机器状态值设置为禁止中断,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1730。
信号处理模块820用故意当指定任务被调度到第二虚拟核上时,第二虚拟核通过任务信号批处理函数以一次性批量处理完当前运行任务信号挂起队列上的信号,其原理和优点请参照一种用户态虚拟机的当前运行任务的信号方法实施例的步骤S1740。
本发明实施例还提供一种操作系统,执行一种用户态虚拟机的虚拟核间信号调度方法实施例所述方法、一种用户态虚拟机的当前运行任务的信号调度方法实施例所述方法和一种用户态虚拟机的非当前运行任务的信号调度方法实施例所述方法。
本发明实施例还提供一种计算设备,下面结合图9详细介绍。
该计算设备900包括,处理器910、存储器920、通信接口930、总线940。
应理解,该图所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线940。其中,存储器920、通信接口930可以通过总线940与处理器910连接。总线940可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线940可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器910可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行各方法实施例的操作步骤。
应理解,根据本发明实施例的计算设备900可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机器或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括,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.根据权利要求1所述方法,其特征在于,还包括:
所述指定任务是第一虚拟核当前的运行任务且第一虚拟核不在进行中断处理时,第一虚拟核执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
4.根据权利要求1所述方法,其特征在于,还包括:
当所述指定任务不是当前的运行任务时,第一虚拟核向所述指定任务发送第一信号时,保存所述指定任务的任务控制块中CPU上下文的PC值和机器状态值;
将所述指定任务的任务控制块中CPU上下文的PC值和机器状态值设置为所述指定任务的任务信号批处理函数和禁止中断,一个任务的所述任务信号批处理函数运行该任务的信号批处理函数;
所述指定任务被切入时通过运行其所述任务信号批处理函数,以处理所述指定任务的信号挂起队列中所有信号。
5.根据权利要求4所述方法,其特征在于,所述指定任务通过运行其所述任务信号批处理函数,包括:
保存所述指定任务的任务控制块的CPU上下文至临时CPU上下文;
执行所述指定任务的信号批处理函数,以处理所述指定任务的信号挂起队列中所有信号;
将保存的原始的PC值和原始的机器状态值恢复到临时CPU上下文的对应字段;用临时CPU上下文替代所述指定任务的任务控制块的CPU上下文。
6.根据权利要求1至5任一所述方法,其特征在于,在一个任务的任务控制块中包括:该任务的所述信号挂起队列、该任务的所述信号批处理函数和该任务的信号批处理标记;
一个任务的所述信号批处理标记用于标记该任务是否正在进行信号批处理。
7.根据权利要求1至5任一所述方法,其特征在于,当第一虚拟核R次向所述指定任务发送第一信号时,把第一信号和其处理函数R次添加到所述指定任务的信号挂起队列中,以使第一信号被处理R次。
8.一种用户态虚拟机任务的调度装置,其特征在于,包括:
信号添加模块,用于当第一虚拟核向指定任务发送第一信号时,把第一信号和其处理函数添加到指定任务的信号挂起队列中,所述第一虚拟核为正在运行其当前任务的虚拟核,所述指定任务为任一虚拟核中待调度信号的任务,所述第一信号为所述指定任务的待调度信号;
信号发送模块,用于当所述指定任务是第二虚拟核当前的运行任务且第一虚拟核与第二虚拟核不同时,第一虚拟核通过服务中断通知第二虚拟核处理所述指定任务的信号;以及
信号处理模块,第二虚拟核在响应该服务中断时运行该模块,以执行所述指定任务的信号批处理函数来处理所述信号挂起队列中所有信号。
9.一种操作系统,其特征在于,执行权利要求1至7任一所述方法。
10.一种计算设备,其特征在于,包括,
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1至7任一所述方法。
CN202210763956.1A 2022-06-29 2022-06-29 一种用户态虚拟机任务的调度方法及装置 Active CN115145687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210763956.1A CN115145687B (zh) 2022-06-29 2022-06-29 一种用户态虚拟机任务的调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210763956.1A CN115145687B (zh) 2022-06-29 2022-06-29 一种用户态虚拟机任务的调度方法及装置

Publications (2)

Publication Number Publication Date
CN115145687A CN115145687A (zh) 2022-10-04
CN115145687B true CN115145687B (zh) 2023-03-31

Family

ID=83410220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210763956.1A Active CN115145687B (zh) 2022-06-29 2022-06-29 一种用户态虚拟机任务的调度方法及装置

Country Status (1)

Country Link
CN (1) CN115145687B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797512B1 (en) * 2007-07-23 2010-09-14 Oracle America, Inc. Virtual core management
CN102695998A (zh) * 2009-12-16 2012-09-26 高通股份有限公司 用于在虚拟化系统中控制中央处理单元功率的系统和方法
CN108196946A (zh) * 2017-12-28 2018-06-22 北京翼辉信息技术有限公司 一种微内核操作系统的分区多核方法
CN114168271A (zh) * 2021-12-29 2022-03-11 科东(广州)软件科技有限公司 一种任务调度方法、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797512B1 (en) * 2007-07-23 2010-09-14 Oracle America, Inc. Virtual core management
CN102695998A (zh) * 2009-12-16 2012-09-26 高通股份有限公司 用于在虚拟化系统中控制中央处理单元功率的系统和方法
CN108196946A (zh) * 2017-12-28 2018-06-22 北京翼辉信息技术有限公司 一种微内核操作系统的分区多核方法
CN114168271A (zh) * 2021-12-29 2022-03-11 科东(广州)软件科技有限公司 一种任务调度方法、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种Linux用户态实时多任务调度框架;张旭等;《中国科学技术大学学报》;20170815(第08期);全文 *

Also Published As

Publication number Publication date
CN115145687A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
US5812868A (en) Method and apparatus for selecting a register file in a data processing system
EP1062578B1 (en) Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
US6044430A (en) Real time interrupt handling for superscalar processors
US7979861B2 (en) Multi-processor system and program for causing computer to execute controlling method of multi-processor system
US6230259B1 (en) Transparent extended state save
US7424563B2 (en) Two-level interrupt service routine
EP0464615A2 (en) Microcomputer equipped with DMA controller
EP2972852B1 (en) System management interrupt handling for multi-core processors
JP2010529533A (ja) 複数のプロセッサを備えるシステム、ならびにその動作方法
CN113010275B (zh) 一种中断处理方法和装置
US6154832A (en) Processor employing multiple register sets to eliminate interrupts
JPH01197866A (ja) インターフエース装置と方法
EP3598310B1 (en) Network interface device and host processing device
US20120227056A1 (en) Method and system for enabling access to functionality provided by resources outside of an operating system environment
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US20130145202A1 (en) Handling Virtual-to-Physical Address Translation Failures
CN113946445A (zh) 一种基于asic的多线程模块及多线程控制方法
CN115145687B (zh) 一种用户态虚拟机任务的调度方法及装置
EP3798826A1 (en) Methods of hardware and software coordinated opt-in to advanced features on hetero isa platforms
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
JP2008015720A (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
US20140189182A1 (en) Method to accelerate message signaled interrupt processing
CN115576734A (zh) 一种多核异构日志存储方法和系统
US20130160019A1 (en) Method for Resuming an APD Wavefront in Which a Subset of Elements Have Faulted
US20140136818A1 (en) Fetch less instruction processing (flip) computer architecture for central processing units (cpu)

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