[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN112559136A - Method and device for interrupting delivery of computer - Google Patents

Method and device for interrupting delivery of computer Download PDF

Info

Publication number
CN112559136A
CN112559136A CN202011551987.8A CN202011551987A CN112559136A CN 112559136 A CN112559136 A CN 112559136A CN 202011551987 A CN202011551987 A CN 202011551987A CN 112559136 A CN112559136 A CN 112559136A
Authority
CN
China
Prior art keywords
interrupt
virtual
virtual machine
computer
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011551987.8A
Other languages
Chinese (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 CN202011551987.8A priority Critical patent/CN112559136A/en
Publication of CN112559136A publication Critical patent/CN112559136A/en
Pending legal-status Critical Current

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
    • 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
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances

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

The invention provides a method for delivering computer interrupt, when a computer micro-kernel receives interrupt, delivering virtual interrupt converted according to the interrupt to a corresponding target virtual machine, wherein the virtual interrupt is delivered to each virtual machine when a virtual clock is interrupted; when the virtual interrupt is a virtual external interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a configured static delivery table based on a virtual interrupt number; when the virtual interrupt is a virtual service interrupt, delivering the virtual interrupt to a virtual machine corresponding to a service target; and when the virtual interrupt is a virtual abnormal interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a set abnormal processing rule. The invention also correspondingly provides a device corresponding to the method. The computer interrupt delivery method and the device improve the interrupt processing efficiency of the computer and can adapt to the interrupt processing mechanism of different virtual machines running on the computer.

Description

Method and device for interrupting delivery of computer
Technical Field
The present application relates to the field of computer operating systems, and in particular, to a method and an apparatus for delivering a computer interrupt.
Background
The interruption means that when some conditions occur in the running process of the computer and the host computer needs to intervene immediately, the computer automatically stops the running program and transfers the program to the program for processing the new condition, and the original suspended program is returned to continue running after the processing is finished. The benefits of using interrupt systems with computers are many, such as handling requests from various monitoring and control devices to the processor randomly, handling inter-task communications, coordinating with slow peripherals, etc.
When the Linux system runs the virtual machine and is interrupted externally, the driver under the Linux needs to process the corresponding external interruption firstly and then transmit the corresponding content to the virtual machine, so that the data transmission time is long and the efficiency is low. On the other hand, the processing modes of external interrupts in each virtual machine of the computer are different, a driver under Linux needs to be adapted to different virtual machines, the generation and processing of the external interrupts are opaque to the virtual machines of each user state, cross-system migration cannot be achieved, and the program adaptation workload is large.
Disclosure of Invention
In view of the above, the present invention provides a method and an apparatus for delivering computer interrupts, wherein a hardware transparent transmission method is adopted, a microkernel system of a computer does not perform any peripheral operations, virtual interrupt delivery is performed according to delivery rules configured in advance by a user, and then a computer processor is handed to a corresponding virtual machine to perform corresponding interrupt response and processing, so as to reduce data transmission time after the driver under Linux processes external interrupts. The invention realizes the interrupt isolation among the virtual machines by the interrupt delivery of the computer microkernel, and the external interrupt is transparent to the virtual machines, thereby realizing the consistency of the processing interrupt of the user mode virtual machines under different platforms.
In a first aspect, a method for delivering computer interrupt is provided, which includes that when a computer microkernel receives an interrupt, a running task of a first virtual machine currently running on the same processor core is suspended, and the context of the task is saved; and the computer microkernel delivers the virtual interrupt converted according to the interrupt to a corresponding destination virtual machine.
Therefore, the computing microkernel does not process the interrupt and delivers the interrupt to the target virtual machine for processing. Based on the method, compared with the prior art that the Linux driver processes the interrupt, the data transmission time of the Linux driver after processing the external interrupt is reduced. Meanwhile, interrupt isolation among the virtual machines is realized through interrupt delivery of the computer microkernel, and external interrupts are transparent to the virtual machines, so that consistency of the user-mode virtual slots under different platforms is realized.
According to a first aspect, in a first possible implementation manner of the method for delivering computer interrupts, the delivering to the corresponding destination virtual machine includes one of the following, and the delivering to each virtual machine is performed when the virtual interrupt is a virtual clock interrupt; when the virtual interrupt is a virtual external interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a configured static delivery table based on a virtual interrupt number; when the virtual interrupt is a virtual service interrupt, delivering the virtual interrupt to a virtual machine corresponding to a service target; when the virtual interrupt is a virtual abnormal interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a set abnormal processing rule; wherein the static delivery table directs each virtual external interrupt to a corresponding destination virtual machine based on a number of each virtual external interrupt.
Therefore, the virtual interrupt is delivered to the corresponding target virtual machine based on the method, so that the interrupt is generated transparently to the target virtual machine, and the interrupt processing program of the target virtual machine can be adapted to different platforms. The virtual external interrupt is delivered to the corresponding target virtual machine based on the static delivery table, so that the time for transmitting the processing data to the target virtual machine after the microkernel processing of the computer is interrupted is reduced, and the interrupt processing efficiency is improved.
According to the first aspect, in a second possible implementation manner of the computer interrupt delivery method, when the virtual interrupt is not delivered to the corresponding destination virtual machine, the running of the task of the first virtual machine is resumed based on the context of the task of the first virtual machine.
Thus, failure to deliver to the corresponding destination virtual machine is an interrupt that is prohibited by the computer and does not require a delivery.
According to the first aspect or any one of the first to the second possible implementation manners of the first aspect, in a third possible implementation manner of the method for delivering computer interrupts, the preprocessing of the received virtual interrupts by the computer microkernel includes that the computer microkernel adds a system clock beat to the virtual clock interrupts, the computing microkernel performs state judgment on other virtual interrupts which are pre-configured to be preprocessed by the computing microkernel, and if the virtual interrupts with abnormal states are judged, the delivery is stopped.
Based on the method, the real-time added by the virtual clock interrupt is convenient for the subsequent target virtual machine to process each virtual clock interrupt according to the time sequence; for the stop processing of the state exception interrupt, other systems of the computer can perform more effective processing.
According to the first aspect, in a fourth possible implementation manner of the method for delivering computer interrupts, the method further includes that when the target virtual machine checks that there is a delivered virtual interrupt at the runtime, the target virtual machine suspends a task executed by the target virtual machine, and saves the context of the task; and after the target virtual machine interrupts the delivered virtual, restoring the running of the task of the target virtual machine based on the context of the task stored by the target virtual machine.
Therefore, the interrupt is processed based on the interrupt virtual program of the target processor, and compared with the prior art that the Linux driver processes the interrupt, the data transmission time of the Linux driver after processing the external interrupt is reduced. Meanwhile, interrupt isolation among the virtual machines is realized through interrupt delivery of the computer microkernel, and external interrupts are transparent to the virtual machines, so that consistency of the user-mode virtual slots under different platforms is realized. And the target virtual machine completes the task context saving which should be completed by the computer microkernel and restores the running of the task on the target virtual machine through the system call, thereby ensuring the safety of the computer microkernel.
According to the first aspect, in a fifth possible implementation manner of the method for delivering computer interrupts, the checking is performed when one of a virtual external interrupt is returned to the virtual machine, a system call is returned to the virtual machine, a virtual abnormal interrupt is returned to the virtual machine, and an interrupt delivery is actively performed by the virtual machine based on a user operation.
Therefore, the delivered virtual interrupt is timely found based on the time, and meanwhile, the influence on the running of the second task of the second virtual machine is reduced.
According to the first possible implementation manner of the first aspect, in a sixth possible implementation manner of the method for delivering computer interrupts, when the first virtual machine and the delivered destination virtual machine run in different processor cores, the suspended task of the first virtual machine enters a virtual machine scheduling queue of the computer, and the running is resumed based on virtual machine scheduling; when the first virtual machine and the delivered target virtual machine run in the same processor core, after the target virtual machine finishes processing the delivered virtual interrupt, the computer microkernel resumes the running of the task of the first virtual machine based on the suspended context of the first virtual machine.
Therefore, the suspended task of the first virtual machine is timely recovered, and the task of the first virtual machine is smoothly executed.
The second aspect provides a device for delivering computer interrupt, which comprises an interrupt receiving module, a task processing module and a delivering module, wherein the interrupt receiving module is used for suspending a task operated by a first virtual machine currently operated on the same processor core after a computer micro-kernel receives a virtual interrupt, and storing the context of the task; and the interrupt delivery module is used for delivering the virtual interrupt converted according to the interrupt to the corresponding target virtual machine by the computer microkernel.
Therefore, the computing microkernel does not process the interrupt and delivers the interrupt to the target virtual machine for processing. Based on the device, compared with the prior art that the Linux driver processes the interrupt, the data transmission time of the Linux driver after processing the external interrupt is reduced. Meanwhile, interrupt isolation among the virtual machines is realized through interrupt delivery of the computer microkernel, and external interrupts are transparent to the virtual machines, so that consistency of the user-mode virtual slots under different platforms is realized.
In a first possible implementation manner of the apparatus for delivering computer interrupts, the interrupt delivery module includes a delivery module, configured to deliver the virtual interrupt to each virtual machine when the virtual interrupt is a virtual clock interrupt; when the virtual interrupt is a virtual external interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a configured static delivery table based on a virtual interrupt number; when the virtual interrupt is a virtual service interrupt, delivering the virtual interrupt to a virtual machine corresponding to a service target; when the virtual interrupt is a virtual abnormal interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a set abnormal processing rule; wherein the static delivery table is used for directing each virtual external interrupt to a corresponding destination virtual machine based on the number of each virtual external interrupt.
Therefore, based on the device, the virtual interrupt is delivered to the corresponding target virtual machine, so that the interrupt is generated transparently to the target virtual machine, and the interrupt processing program of the target virtual machine can be adapted to different platforms. The virtual external interrupt is delivered to the corresponding virtual machine based on the static delivery table, so that the time for transmitting the processing data to the target virtual machine after the microkernel processing of the computer is interrupted is reduced, and the interrupt processing efficiency is improved.
According to a first possible implementation manner of the second aspect, in a second possible implementation manner of the apparatus for delivering computer interrupts, the delivery module is further configured to resume running of the task of the first virtual machine based on the context of the task of the first virtual machine when the virtual interrupt fails to be delivered to the corresponding destination virtual machine.
Thus, failure to deliver to the corresponding destination virtual machine is an interrupt that is prohibited by the computer and does not require a delivery.
According to the second aspect, in a fourth possible implementation manner of the apparatus for delivering computer interrupts, the apparatus further includes an interrupt resuming module, configured to, when a processor of the computer is multicore, place, by a computer microkernel, a suspended task of a first virtual machine in a virtual machine scheduling queue of the computer, and resume running based on virtual machine scheduling; and when the processor of the computer is a single core, the micro-kernel of the computer resumes the running of the task of the first virtual machine based on the suspended context of the first virtual machine after the destination virtual machine has processed the delivered virtual interrupt.
Therefore, the suspended task of the first virtual machine is timely recovered, and the task of the first virtual machine is smoothly executed.
In a third possible implementation manner of the apparatus for delivering a computer interrupt according to the second aspect or any one of the first to the second possible implementation manners of the second aspect, the apparatus further includes an interrupt preprocessing module, configured to preprocess the virtual interrupt by the computer microkernel before the virtual interrupt is delivered, where the preprocessing module adds a system clock beat to the clock interrupt by the computer microkernel and preprocesses other virtual interrupts which are configured to be preprocessed by the computer microkernel in advance.
Therefore, the preprocessing of the virtual clock interrupt is to increase the real-time, and based on the method, the real-time added by the virtual clock interrupt is convenient for the subsequent target virtual machine to process each virtual clock interrupt in time sequence, and for the stop processing of the abnormal state interrupt, other systems of the computer can perform more effective processing.
According to the second aspect, in a fourth possible implementation manner of the apparatus for delivering a computer interrupt, the apparatus further includes an interrupt checking module, configured to pause a task executed by the destination virtual machine when the destination virtual machine checks that there is a delivered virtual interrupt at a runtime time, and save a context of the task; and the interrupt return module is used for restoring the running of the task of the target virtual machine based on the context of the task stored by the target virtual machine after the target virtual machine interrupts the delivered virtual interrupt.
Therefore, the interrupt is processed based on the interrupt virtual program of the target processor, and compared with the prior art that the Linux driver processes the interrupt, the data transmission time of the Linux driver after processing the external interrupt is reduced. Meanwhile, interrupt isolation among the virtual machines is realized through interrupt delivery of the computer microkernel, and external interrupts are transparent to the virtual machines, so that consistency of the user-mode virtual slots under different platforms is realized. And the target virtual machine completes the task context saving which should be completed by the computer microkernel and restores the running of the task on the target virtual machine through the system call, thereby ensuring the safety of the computer microkernel.
According to the second aspect, in a fifth possible implementation manner of the method for delivering computer interrupts, the interrupt checking module executes one of when a virtual external interrupt returns to the virtual machine, when a system call returns to the virtual machine, when a virtual abnormal interrupt returns to the virtual machine, and when the virtual machine actively performs interrupt delivery based on user operation.
Therefore, the delivered virtual interrupt is timely found based on the interrupt delivery time, and meanwhile, the influence on the task running of the target virtual machine is reduced.
According to the second aspect, in a sixth possible implementation manner of the apparatus for delivering computer interrupts, the apparatus further includes an interrupt resuming module, configured to, when the first virtual machine and the delivered destination virtual machine run in different processor cores, place, by the computer microkernel, the suspended task of the first virtual machine into a virtual machine scheduling queue of the computer, and resume running based on virtual machine scheduling; and when the first virtual machine and the delivered target virtual machine run in the same processor core, after the target virtual machine finishes processing the delivered virtual interrupt, the computer microkernel resumes the running of the task of the first virtual machine based on the suspended context of the first virtual machine.
Therefore, the suspended task of the first virtual machine is timely recovered, and the task of the first virtual machine is smoothly executed.
In a third aspect, a computing device is provided, comprising,
a bus;
a communication interface connected to the bus;
at least one processor coupled to the bus; and
at least one memory coupled to the bus and storing program instructions that, when executed by the at least one processor, cause the at least one processor to perform any of the embodiments of the first or second aspects of the present application.
In a fourth aspect, a computer-readable storage medium is provided, on which program instructions are stored, wherein the program instructions, when executed by a computer, cause the computer to perform the embodiments of any of the first or second aspects.
Drawings
FIG. 1A is a schematic diagram of a system architecture of various embodiments of the present application;
FIG. 1B is a schematic diagram of a system architecture embodying various embodiments of the present application;
FIG. 2A is a schematic flow chart diagram illustrating a first embodiment of a method for computer interrupt delivery according to the present application;
FIG. 2B is a schematic flow chart diagram illustrating a second embodiment of a method for computer interrupt delivery according to the present application;
FIG. 3 is a schematic diagram of a first embodiment of a computer interrupt delivery apparatus according to the present application;
FIG. 4 is a schematic diagram of a first embodiment of a computer interrupt delivery apparatus according to the present application;
fig. 5 is a schematic structural diagram of a computing device according to the present application.
Detailed Description
In the following description, reference is made to "some embodiments" which describe a subset of all possible embodiments, but it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments, and may be combined with each other without conflict.
In the following description, references to the terms "first \ second \ third, etc." or module a, module B, module C, etc. are used solely to distinguish between similar objects or different embodiments and are not intended to imply a particular ordering with respect to the objects, it being understood that where permissible any particular ordering or sequence may be interchanged to enable embodiments of the invention described herein to be practiced otherwise than as shown or described herein.
In the following description, reference to reference numerals indicating steps, such as S110, S120 … …, etc., does not necessarily indicate that the steps are performed in this order, and the order of the preceding and following steps may be interchanged or performed simultaneously, where permissible.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The terminology used herein is for the purpose of describing embodiments of the invention only and is not intended to be limiting of the invention.
FIG. 1A shows a system architecture diagram for computer interrupt delivery. As shown, the computer processor operating states are divided into user states and kernel states. The following details are set forth:
the user state runs various virtual machines, the virtual machines are partitions based on time division, and each virtual machine occupies a processor of the computer in a time-sharing mode, namely, one virtual machine is in a running state at the current moment, and the other virtual machine is in a running state at the next moment. Each virtual machine may run its own operating system. Multiple tasks may be run on each virtual machine, and each virtual machine is illustrated as an example in fig. 1A with only one task. Each virtual machine includes an interrupt handler registered by the virtual machine.
The kernel mode runs the operating system of the micro-kernel of the computer, and the micro-kernel of the computer manages various virtual machines of the computer, including the acquisition of interrupts, the virtualization of the interrupts, the delivery of virtual interrupts, the preprocessing of the virtual interrupts, and the like.
The computer also comprises some external hardware devices, the external hardware devices can generate external interrupts, and the external interrupts are recorded as virtual external interrupts after being virtualized by the micro-kernel of the computer; a clock of the computer generates clock interrupt, and the clock interrupt is recorded as virtual clock interrupt after the computer micro-kernel is virtualized; service interruption can be generated when a plurality of virtual machines of a user mode of the computer run, and the service interruption is recorded as virtual service interruption after the virtualization of a micro-kernel of the computer; each virtual machine of the computer generates an exception, and the exception is recorded as a virtual exception interrupt after the computer micro-kernel is virtualized. The subsequent handler entry of the virtual interrupt is not registered on the physical device of the computer, but points to the entry of the interrupt handler registered in each virtual machine through the microkernel of the computer.
The way the external interrupts, clock interrupts, service interrupts and exceptions reach the computer microkernel is different, and how to reach them is not a matter of concern for the present invention and is prior art and will not be described in detail here.
The processors of the computer can be single-core or multi-core, and the operating system of the microkernel of the computer runs on the single-core or multi-core.
FIG. 1B is a possible implementation of FIG. 1A, wherein the computer microkernel can include at least one of:
a Board level support Package (KBSP) of the computer microkernel, which is used for realizing the functions of interrupt collection, virtualization, delivery and the like;
a Secure Virtual Machine Kernel (SVMK) of the microkernel, configured to preprocess the virtual clock interrupt, such as adding a system beat to the virtual clock interrupt;
a System Status Manager (SSM) of the microkernel, which is used to pre-process the partial virtual interrupt based on a status analysis.
An embodiment of a method for computer interrupt delivery of the present application is described below with reference to fig. 1A-2B.
First embodiment of method for interrupting delivery of computer
FIG. 2A is a flowchart of an embodiment of a method for delivering computer interrupts, in which a virtual machine in each user mode occupies a processor core of a computer in a time-sharing manner, a first virtual machine is one of the user modes, and the method for delivering computer interrupts is described by taking as an example that the first virtual machine and a computer microkernel occupy the same processor core at the current time to run a first task, including the following steps,
step 110, at the current moment, when the first task of the first virtual machine runs, the computer microkernel receives an interrupt, suspends the first task of the first virtual machine, and saves the first task context.
Wherein the saved first task context facilitates continued execution of the first task upon resumption of the interrupt. Specifically, in the system shown in fig. 1B, this step may be exemplified by that when the first task of the first virtual machine runs, the KBSP of the microkernel of the computer receives an interrupt, the first task of the first virtual machine is suspended, and the context of the first task is saved.
The interrupt may be from an exception generated by a first task of the first virtual machine, or an external interrupt generated by external hardware, or a clock interrupt generated by a computer clock, or a service interrupt generated by communication between virtual machines.
Therefore, the KBSP of the computer microkernel uniformly receives the interrupts, and the interrupts are not directly directed to the drivers of different microkernels as in the background art, so that the uniform reception and the transparent reception of the interrupts which are irrelevant to hardware are realized based on the method.
Step 120, the computer micro-kernel virtualizes the received interrupt into a virtual interrupt, and pre-processes the virtual interrupt, where the pre-processing may include step 120A or step 120B.
Specifically, the received external interrupt, abnormal interrupt and service interrupt are in a bit mode, one bit represents one interrupt, the virtual devices in the computer memory continue to be stored according to the bit, the timed interrupt adopts a value mode, and the virtual devices in the computer memory adopt the value mode for storage, so that the time continuity of the timed interrupt in each virtual machine can be ensured. The above process is implemented in KBSP because each interrupt appears to be generated by a virtual device of the memory after the above save process, which is called virtualization of the interrupt. The KBSP also numbers and prioritizes the virtual interrupts, the virtual interrupts of different types are respectively numbered, and the priority order among the virtual interrupts is virtual abnormal interrupt, virtual clock interrupt, virtual external interrupt and virtual service interrupt. The virtual abnormal interrupt, the virtual external interrupt and the virtual service interrupt are respectively divided into a plurality of levels, the priority level sequence of the virtual abnormal interrupt, the virtual external interrupt and the virtual service interrupt corresponds to the interrupt number sequence, wherein 0 is the highest priority, and the higher the number is, the lower the priority is.
In step 120A, when the interrupt in step 110 is a clock interrupt, the preprocessing may be: the SVMK of the computer microkernel preprocesses the virtual clock interrupt. In the system shown in fig. 1B, this step may be exemplified by KBSP sending the converted virtual clock interrupt to SVMK, SVMK adding the beat of the computer system to the virtual clock interrupt, and then SVMK returning the virtual clock interrupt to KBSP.
Therefore, the numerical value numbering based on absolute time conversion is realized through the increased beat of the SVMK for the virtual clock interrupt, and the virtual clock interrupt is conveniently subjected to priority ranking.
In step 120B, when the interrupt in step 110 is another interrupt, the preprocessing may be: the computer microkernel analyzes the state of the virtual interrupt configured in advance, judges whether the virtual interrupt is abnormal or not, and suspends delivery if the virtual interrupt is abnormal, so as to perform other more effective processing.
In the system shown in fig. 1B, this step may be, for example, the KBSP sends the converted virtual interrupt to the SSM to perform state judgment, for example, the SSM performs statistics on the virtual interrupt, and if the number of occurrences exceeds a set threshold within a set time, it is judged that the interrupt state is abnormal, delivery is suspended, and other more effective processing is performed. The specific implementation is not the focus of the present invention and is prior art, and will not be described in detail here.
Step 130, the computer microkernel dispatches the virtual interrupt to a corresponding virtual machine for processing based on the set rule, the dispatch can be executed by the KBSP of the computer microkernel, if the virtual interrupt is not delivered, which indicates that the virtual interrupt is forbidden, the first virtual task operation is resumed.
Wherein, the setting rule can include the following four kinds:
1) when the virtual interrupt is a virtual clock interrupt, the virtual clock interrupt is delivered directly to all other virtual machines, and as described in step 120A, the virtual clock interrupt carries its number based on absolute time order;
2) when the virtual interrupt is the virtual external interrupt, delivering the virtual external interrupt to a corresponding virtual machine according to a set static delivery table based on the serial number of the virtual external interrupt;
wherein the static delivery table directs each virtual external interrupt to a corresponding virtual machine based on a number of each virtual external interrupt.
3) When the virtual interrupt is the virtual service interrupt, directly sending the virtual service interrupt to a virtual machine corresponding to a service target;
4) when the virtual interrupt is a virtual abnormal interrupt, delivering the abnormal interrupt according to a predefined abnormal processing rule, wherein the abnormal processing rule is predefined, and the specific content defined is not the content concerned by the application and is not described in detail.
By adopting the method, the external interrupt is delivered through the micro-kernel system of the computer, the interrupt processing is transparent to the virtual machine and is isolated by the virtual machine, the method is suitable for the differential processing of the external interrupt by each virtual machine, and the micro-kernel system of the computer is suitable for the interrupt processing mechanism of various virtual machines.
In summary, the virtual interrupt can be delivered to the target virtual machine based on the set delivery rule, the virtual interrupt generation and delivery are transparent to the target virtual machine, the virtual interrupt delivery method is suitable for different virtual machines to process virtual interrupts, particularly differential virtual external interrupts, and the computer microkernel system is suitable for interrupt delivery of various virtual machines.
Second embodiment of a method for interrupting delivery in a computer
A second embodiment of a method for computer interrupt delivery is enhanced over the first embodiment of the method with all the advantages of the first embodiment of the method. Fig. 2B shows a flow chart of a second embodiment of the method, comprising the steps of:
and step 210, receiving the interrupt by the computer microkernel, carrying out virtualization numbering on the interrupt, and delivering the interrupt to a corresponding target virtual machine, namely a second virtual machine.
The steps of the method include those of the first embodiment, and are not described in detail here.
In this embodiment, the destination virtual machine is referred to as a second virtual machine, and the second virtual machine may be in the same processing core or a different processing core from the first virtual machine.
Step 220, the second virtual machine checks whether there is a virtual interrupt delivered at the virtual interrupt checking time. If there is a virtual interrupt posted, proceed to step 240; if there is no virtual interrupt posted, step 230 is entered.
And each second virtual machine can set the checking time of the virtual interrupt, including when the virtual external interrupt returns to the virtual machine, when the system call returns to the virtual machine, when the virtual abnormal interrupt returns to the virtual machine, or when the virtual machine is operated by a user to automatically perform interrupt delivery.
Illustratively, this step is accomplished on the exemplary interrupt handler of the second virtual machine of FIG. 1B when the second virtual machine shares a processor core with the first virtual machine.
Therefore, each second virtual machine sets a special virtual interrupt checking time for checking whether the delivered virtual interrupt exists or not, and based on the method, the delivered virtual interrupt can be timely processed.
Step 230, each second virtual machine continues to execute its task when the virtual interrupt is not posted.
Specifically, the second virtual machine which is not delivered with the virtual interrupt continues to execute the current second task, and returns to step 220 at the checking time of the next virtual interrupt.
And step 240, when the second virtual machine is delivered with the virtual interrupt, the second virtual machine stores the current second task context and the current virtual interrupt information in an interrupt exit mode, suspends the second task, and processes the virtual interrupt. And the second virtual machine jumps to the interrupt processing program at the interrupt processing program inlet registered on the second virtual machine based on the delivered virtual interrupt, and runs the interrupt processing program to process the virtual interrupt.
Wherein, a program entry for processing each virtual interrupt is required to be registered on each virtual machine, and the virtual interrupt processing program is irrelevant to the kernel of the computer.
And the second virtual machine saves the current second task context instead of the current second task context saved by the computer microkernel in an interrupt exit mode.
If the virtual machine is delivered with a plurality of virtual interrupts, sequentially executing virtual abnormal interrupts, virtual timing interrupts, virtual external interrupts and virtual service interrupts according to the priority of each virtual interrupt from high to low; if there are multiple virtual abnormal interrupts or multiple virtual external interrupts or multiple virtual service interrupts, the execution is performed according to the internal priority order of the virtual interrupts of the type, and the virtual abnormal interrupts or the virtual external interrupts or the virtual service interrupts are classified into 32 levels in this embodiment; if there are multiple virtual interrupts, then the execution is in chronological order of their generation based on the number of the interrupts.
Therefore, the external interrupt processing of the traditional mechanism runs on the interrupt program of the microkernel of the computer operating system, and after running, related data needs to be copied to the second virtual machine, so that the whole data transmission time is long. The invention processes the virtual external interrupt on the delivered virtual machine, without the data transmission time of the traditional mechanism, and the processing efficiency is higher than that of the traditional mechanism. And the microkernel of the computer operating system does not interrupt the virtual interrupt, the generation of the virtual interrupt is transparent to the interrupt processing of the second virtual machine, and the virtual interrupt processing of the second virtual machine is isolated from the generation of the virtual interrupt. Meanwhile, the second virtual machine stores the current second task context in an interrupt exit mode instead of the current second task context stored in the core stack of the computer microkernel, so that the safety of the computer microkernel is ensured.
And step 250, after the second virtual machine finishes the virtual interrupt processing, returning to the suspended task by adopting a system calling mode.
The second virtual machine returns the suspended task in a system calling mode instead of being completed by the micro-kernel of the computer.
For the virtual abnormal interrupt, when the virtual machine completes the virtual interrupt processing, a response interface is required to be called to respond to the abnormal interrupt, so that secondary abnormal is avoided.
In this way, the second virtual machine returns the suspended task in a system calling mode instead of being completed by the computer microkernel, so that the safety of the computer microkernel is ensured.
Step 260, the computer microkernel restores the first task of the first virtual machine based on the saved first task context.
Illustratively, in the system shown in fig. 1B, the above steps are to copy the saved context of the first task to the core stack corresponding to the first virtual machine by the computer microkernel system KBSP, and resume the running of the first task.
This step uses the case where the first virtual machine and the computer microkernel run on the same processor core. For the case that the first virtual machine and the second virtual machine run in different processor cores, after step 210, the first task in which the first virtual machine is suspended enters the whole virtual machine scheduling queue of the computer, and the operation is resumed based on the virtual machine scheduling, which is the prior art and will not be described in detail herein.
In summary, the embodiment of the method delivers the virtual interrupt to the virtual machine based on the set delivery rule, and directly performs the virtual interrupt processing on the corresponding virtual machine, the processing of the virtual interrupt is transparent to the virtual machine and is isolated from the virtual machine, so that the method is suitable for the differentiated processing of the virtual interrupt, particularly the virtual external interrupt, by each virtual machine, and the computer microkernel system is suitable for the interrupt processing mechanisms of various virtual machines. And the virtual external interrupt program runs on the delivered virtual machine, so that batch data transmission time is avoided, and the processing efficiency is higher than that of the traditional interrupt processing mechanism.
Embodiments of a computer interrupt delivery apparatus according to the present application are described below with reference to fig. 3 and 4.
First embodiment of device for interrupting delivery of computer
Fig. 3 shows a schematic structural diagram of a first embodiment of a computer interrupt delivery apparatus, which comprises,
the interrupt receiving module 310 is configured to receive a virtual interrupt when the first task of the first virtual machine runs, suspend the first task of the first virtual machine, and save a first task context by the computer microkernel. The module operating principle and advantages are the same as step 110 in the method embodiment of computer interrupt delivery, which is not described in detail here.
An interrupt pre-processing module 320 for pre-processing virtual interrupts by a computer microkernel, comprising,
the clock interrupt preprocessing module 320A is configured to preprocess a clock interrupt by a security virtual machine kernel of a computer microkernel. The module operating principle and advantages are the same as step 120A in the method embodiment of computer interrupt delivery, which is not described in detail here.
And the state management preprocessing module 320B is used for preprocessing the preconfigured virtual interrupt by a system state manager of the computer microkernel. The module operating principle and advantages are the same as step 120B in the computer interrupt delivery method embodiment, which is not described in detail herein.
An interrupt delivery module 330 for the computer microkernel to dispatch the virtual interrupt to a corresponding second virtual machine for processing and to resume operation of the first virtual task if the virtual interrupt is not delivered, comprising,
a delivery rule configuration module 3310 for configuring delivery rules, including,
the clock interrupt is directly delivered to all the second virtual machines, the external interrupt delivers the corresponding second virtual machines according to the set static delivery table based on the virtual number, the service interrupt is directly sent to the second virtual machines corresponding to the service target, and the abnormal interrupt is delivered according to the predefined abnormal processing rule;
a static delivery table configuration module 3320 to direct each virtual external interrupt to a corresponding second virtual machine based on the number of each virtual external interrupt.
And the delivery module 3330 is used for delivering the virtual interrupt to the corresponding second virtual machine by the computer microkernel according to the delivery rule to perform virtual interrupt processing, and recovering the first task running of the first virtual machine based on the context of the stored first task for the undelivered virtual interrupt.
The operation principle and advantages of the above-mentioned modules are not described in detail in step 130 of the same computer interrupt delivery method embodiment.
In summary, the first embodiment of a computer interrupt delivery apparatus delivers a virtual interrupt to a virtual machine based on a set delivery rule, and directly performs virtual interrupt processing on the corresponding virtual machine, where the processing of the virtual interrupt is transparent to the virtual machine and is isolated from the virtual machine, so that the apparatus is suitable for differentiated processing of virtual external interrupts when each virtual machine is special for the virtual interrupt, and a computer microkernel system is suitable for interrupt processing mechanisms of various virtual machines. The virtual external interrupt program runs on the second virtual machine which is delivered, batch data transmission time is avoided, and the processing efficiency is higher than that of a traditional interrupt processing mechanism.
Second embodiment of a device for interrupting delivery in a computer
Fig. 4 shows a schematic structural diagram of a second embodiment of a computer interrupt delivery apparatus, which comprises,
and an interrupt receiving and delivering module 410, configured to receive an interrupt by the computer microkernel, perform a virtualization numbering on the interrupt, and deliver the interrupt to a corresponding destination virtual machine, that is, a second virtual machine. The module operating principle and advantages are the same as step 210 in the method embodiment of computer interrupt delivery, which is not described in detail here.
An interrupt checking module 420 for checking whether the second virtual machine checks for a posted virtual interrupt. The module operating principle and advantages are the step 220 and the step 230 in the same computer interrupt delivery method embodiment, which are not described in detail here.
And the interrupt processing module 430 is used for the second virtual machine of the computer to perform interrupt processing on the delivered virtual interrupt. The method comprises the steps that the second virtual machine saves the context of the second task in an interrupt exit mode, the second task is suspended, and the virtual interrupt processing is carried out. The module operating principle and advantages are the same as step 240 in the method embodiment of computer interrupt delivery, which is not described in detail here.
And in the interrupt return module 440, after the second processor completes the virtual interrupt processing, the second processor returns the second task by adopting a system call mode. The module operating principle and advantages are the same as step 250 in the method embodiment of computer interrupt delivery, which is not described in detail here.
The interrupt recovery module 450 is configured to recover the first task of the first virtual machine based on the stored first task context after the second virtual machine processes the virtual interrupt. The module operating principle and advantages are the same as step 260 in the method embodiment of computer interrupt delivery, which is not described in detail here. This module is limited to the case where the first virtual machine runs on the same processor core as the computer microkernel. For the case that the first virtual machine and the second virtual machine run in different processor cores, the first task of the first virtual machine being suspended enters the scheduling queue of the overall virtual machine of the computer, and the operation is resumed based on the scheduling of the virtual machine, which is the prior art and will not be described in detail herein.
In summary, the second embodiment of the device for delivering computer interrupts delivers virtual interrupts to virtual machines based on the set delivery rules, and performs virtual interrupt processing directly on the corresponding virtual machines, where the processing of the virtual interrupts is transparent to the virtual machines and is isolated from the virtual machines, so that the device is suitable for differentiated processing of virtual external interrupts when each virtual machine is special for the virtual interrupts, and the micro-kernel system of the computer is suitable for interrupt processing mechanisms of various virtual machines. The virtual external interrupt program runs on the second virtual machine which is delivered, batch data transmission time is avoided, and the processing efficiency is higher than that of a traditional interrupt processing mechanism.
[ calculating device ]
The invention also provides a computing device, which is described in detail in the following fig. 5.
The computing device 500 includes a processor 510, a memory 520, a communication interface 530, and a bus 540.
It is to be appreciated that communication interface 530 in computing device 500 shown in this figure may be used to communicate with other devices.
The processor 510 may be coupled to the memory 520, among other things. The memory 520 may be used to store the program codes and data. Therefore, the memory 520 may be a storage unit inside the processor 510, may be an external storage unit independent of the processor 510, or may be a component including a storage unit inside the processor 510 and an external storage unit independent of the processor 510.
Optionally, computing device 500 may also include a bus 540. The memory 520 and the communication interface 530 may be connected to the processor 510 via a bus 540. The bus 540 may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus 540 may be divided into an address bus, a data bus, a control bus, and the like. For ease of illustration, only one line is shown, but this does not represent only one bus or one type of bus.
It should be understood that, in the embodiment of the present invention, the processor 510 may adopt a Central Processing Unit (CPU). The processor may also be other general purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. Or the processor 510 may employ one or more integrated circuits for executing related programs to implement the technical solutions provided by the embodiments of the present invention.
The memory 520 may include both read-only memory and random access memory, and provides instructions and data to the processor 510. A portion of processor 510 may also include non-volatile random access memory. For example, processor 510 may also store information of the device type.
When the computing device 500 is running, the processor 510 executes the computer-executable instructions in the memory 520 to perform the operational steps of method embodiment one or method embodiment two.
It should be understood that the computing device 500 according to the embodiment of the present invention may correspond to a corresponding main body for executing the method according to the embodiments of the present invention, and the above and other operations and/or functions of each module in the computing device 500 are respectively for implementing corresponding flows of each method of the embodiment, and are not described herein again for brevity.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the embodiments provided in the present invention, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. The storage medium includes various media capable of storing program codes, such as a usb disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
[ computational Medium ]
Embodiments of the present invention further provide a computer-readable storage medium, on which a computer program is stored, which, when executed by a processor, is configured to perform the operational steps of the first method embodiment or the operational steps of the second method embodiment.
Computer storage media for embodiments of the invention may employ any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
It is to be noted that the foregoing is only illustrative of the preferred embodiments of the present invention and the technical principles employed. It will be understood by those skilled in the art that the present invention is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the invention. Therefore, although the present invention has been described in more detail by the above embodiments, the present invention is not limited to the above embodiments, and may include other equivalent embodiments without departing from the spirit of the present invention.

Claims (10)

1. A method for computer interrupt delivery, comprising,
when the computer micro-kernel receives the interrupt, suspending the running task of the first virtual machine currently running on the same processor core, and storing the context of the task;
and the computer microkernel delivers the virtual interrupt converted according to the interrupt to a corresponding destination virtual machine.
2. The method of claim 1, wherein the delivering to the corresponding destination virtual machine comprises one of,
when the virtual interrupt is the virtual clock interrupt, delivering the virtual interrupt to each virtual machine;
when the virtual interrupt is a virtual external interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a configured static delivery table based on a virtual interrupt number; the static delivery table is used for pointing each virtual external interrupt to a corresponding virtual machine based on the number of each virtual external interrupt;
when the virtual interrupt is a virtual service interrupt, delivering the virtual interrupt to a virtual machine corresponding to a service target;
and when the virtual interrupt is a virtual abnormal interrupt, delivering the virtual interrupt to a corresponding virtual machine according to a set abnormal processing rule.
3. The method of claim 2, wherein when the virtual interrupt fails to be delivered to the corresponding destination virtual machine, the running of the task of the first virtual machine is resumed based on the context of the task of the first virtual machine.
4. The method of any of claims 1 to 3, further comprising pre-processing the virtual interrupt by a computer microkernel before the virtual interrupt is posted, the pre-processing comprising one of:
the micro-kernel of the computer increases the system clock beat to the virtual clock interrupt;
and the computer microkernel performs state judgment on the virtual interrupt configured as the computer microkernel preprocessing, and stops delivering if the virtual interrupt with abnormal state is judged.
5. The method of claim 1, further comprising,
when the target virtual machine checks that the delivered virtual interrupt exists at the running time, the running task of the target virtual machine is suspended, and the context of the task is stored;
and after the target virtual machine interrupts the delivered virtual machine, restoring the running of the task by calling the context of the task stored by the target virtual machine based on the system.
6. The method of claim 5, wherein the checking is performed at one of,
when the virtual external interrupt returns to the virtual machine, when the system call returns to the virtual machine, when the virtual abnormal interrupt returns to the virtual machine, and when the virtual machine actively carries out interrupt delivery based on user operation.
7. The method of claim 1, further comprising,
when the first virtual machine and the delivered target virtual machine run in different processor cores, the suspended task of the first virtual machine enters a virtual machine scheduling queue of the computer, and the running is resumed based on the virtual machine scheduling;
when the first virtual machine and the delivered target virtual machine run in the same processor core, after the target virtual machine finishes processing the delivered virtual interrupt, the computer microkernel resumes the running of the task of the first virtual machine based on the suspended context of the first virtual machine.
8. A computer interrupt delivery apparatus, comprising,
the interrupt receiving module is used for suspending a task operated by a first virtual machine currently operated on the same processor core after the computer microkernel receives the virtual interrupt and storing the context of the task;
and the interrupt delivery module is used for delivering the virtual interrupt converted according to the interrupt to the corresponding target virtual machine by the computer microkernel.
9. A computing device, comprising,
a bus;
a communication interface connected to the bus;
at least one processor coupled to the bus; and
at least one memory coupled to the bus and storing program instructions that, when executed by the at least one processor, cause the at least one processor to perform the method of any of claims 1 to 7.
10. A computer-readable storage medium having stored thereon program instructions, which, when executed by a computer, cause the computer to perform the method of any of claims 1 to 7.
CN202011551987.8A 2020-12-24 2020-12-24 Method and device for interrupting delivery of computer Pending CN112559136A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011551987.8A CN112559136A (en) 2020-12-24 2020-12-24 Method and device for interrupting delivery of computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011551987.8A CN112559136A (en) 2020-12-24 2020-12-24 Method and device for interrupting delivery of computer

Publications (1)

Publication Number Publication Date
CN112559136A true CN112559136A (en) 2021-03-26

Family

ID=75033601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011551987.8A Pending CN112559136A (en) 2020-12-24 2020-12-24 Method and device for interrupting delivery of computer

Country Status (1)

Country Link
CN (1) CN112559136A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145688A (en) * 2022-06-29 2022-10-04 科东(广州)软件科技有限公司 User state virtual machine virtual core suspension method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078891A1 (en) * 2003-09-30 2007-04-05 Eric Lescouet Operating systems
US20080155299A1 (en) * 2006-12-20 2008-06-26 Marc Vertes Method and system for providing a deterministic virtual clock
CN101299193A (en) * 2008-04-07 2008-11-05 谢维信 Method for enhancing computer inner core timer control precision
CN103049318A (en) * 2011-10-11 2013-04-17 北京科银京成技术有限公司 Virtual suspension algorithm of subregion operation system
CN108196946A (en) * 2017-12-28 2018-06-22 北京翼辉信息技术有限公司 A kind of subregion multinuclear method of Mach

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078891A1 (en) * 2003-09-30 2007-04-05 Eric Lescouet Operating systems
US20080155299A1 (en) * 2006-12-20 2008-06-26 Marc Vertes Method and system for providing a deterministic virtual clock
CN101299193A (en) * 2008-04-07 2008-11-05 谢维信 Method for enhancing computer inner core timer control precision
CN103049318A (en) * 2011-10-11 2013-04-17 北京科银京成技术有限公司 Virtual suspension algorithm of subregion operation system
CN108196946A (en) * 2017-12-28 2018-06-22 北京翼辉信息技术有限公司 A kind of subregion multinuclear method of Mach

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙笑,: "嵌入式操作系统DeltaSVM在ARM架构上的设计与实现", 《中国优秀硕士学位论文全文数据库》 *
张勇,等;: "客户操作系统中断虚拟化的研究与实现", 《航空计算技术》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145688A (en) * 2022-06-29 2022-10-04 科东(广州)软件科技有限公司 User state virtual machine virtual core suspension method and device

Similar Documents

Publication Publication Date Title
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US9092356B2 (en) Executing a kernel device driver as a user space process
EP3161628B1 (en) Intelligent gpu scheduling in a virtualization environment
EP1899810B1 (en) System and method to optimize os context switching by instruction group trapping
US11157302B2 (en) Idle processor management in virtualized systems via paravirtualization
US6324684B1 (en) Processor having real-time execution control for debug functions without a debug monitor
US9201823B2 (en) Pessimistic interrupt affinity for devices
CN103473135B (en) The processing method of spin lock LHP phenomenon under virtualized environment
CN102567090B (en) The method and system of execution thread is created in computer processor
CN102207886A (en) Virtual machine fast emulation assist
US11106481B2 (en) Safe hyper-threading for virtual machines
US20190286479A1 (en) Intelligent gpu scheduling in a virtualization environment
US20220156103A1 (en) Securing virtual machines in computer systems
CN102822802A (en) Multi-core processor sytem, control program, and control method
CN111414246B (en) Cross-secure-world real-time function calling method and device on computing platform with TEE extension
US7565659B2 (en) Light weight context switching
CN112559136A (en) Method and device for interrupting delivery of computer
CN113821257B (en) Method and device for inquiring information of processor kernel call stack
CN113535341B (en) Method and device for realizing interrupt communication between CPU cores under Linux
US6990669B1 (en) Real-time scheduler
CN116360941A (en) Multi-core DSP-oriented parallel computing resource organization scheduling method and system
CN117407054A (en) Interrupt processing method, electronic device, and storage medium
CN118519707B (en) System calling method based on exchangeable attribute
CN113918272B (en) Separated virtual machine, virtual machine architecture, construction method and optimization method thereof

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210326