[go: up one dir, main page]

CN101183315A - A Parallel Multiprocessor Virtual Machine System - Google Patents

A Parallel Multiprocessor Virtual Machine System Download PDF

Info

Publication number
CN101183315A
CN101183315A CNA2007101687209A CN200710168720A CN101183315A CN 101183315 A CN101183315 A CN 101183315A CN A2007101687209 A CNA2007101687209 A CN A2007101687209A CN 200710168720 A CN200710168720 A CN 200710168720A CN 101183315 A CN101183315 A CN 101183315A
Authority
CN
China
Prior art keywords
module
virtual
virtual machine
simulation module
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101687209A
Other languages
Chinese (zh)
Other versions
CN100573456C (en
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CNB2007101687209A priority Critical patent/CN100573456C/en
Publication of CN101183315A publication Critical patent/CN101183315A/en
Application granted granted Critical
Publication of CN100573456C publication Critical patent/CN100573456C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种支持CPU同时执行的并行多处理器虚拟机系统,包括一个虚拟机和运行在虚拟机之上的操作系统。该虚拟机系统能够模拟至少一个虚拟处理器,它包括一个处理器并行模拟模块,一个内存管理模块,一个中断控制模拟模块以及外设模拟模块;操作系统的机器指令通过虚拟机的内存管理模块传递给处理器模拟模块,处理器模拟模块能够模拟多个虚拟处理器用于执行指令翻译模块翻译过来的操作系统指令,并且使之并行执行,同时出本发明提出了并行执行过程中的同步和访问控制算法;中断控制模拟模块负责协调外设模拟模块和处理器模拟模块。本发明特别适合于在一台SMP服务器或多核服务器上虚拟一个完整模拟硬件的并行化执行环境。

The invention discloses a parallel multi-processor virtual machine system supporting simultaneous CPU execution, which includes a virtual machine and an operating system running on the virtual machine. The virtual machine system can simulate at least one virtual processor, which includes a processor parallel simulation module, a memory management module, an interrupt control simulation module and a peripheral simulation module; the machine instructions of the operating system are transmitted through the memory management module of the virtual machine For the processor simulation module, the processor simulation module can simulate multiple virtual processors to execute the operating system instructions translated by the instruction translation module, and make them execute in parallel. At the same time, the present invention proposes synchronization and access control in the process of parallel execution Algorithm; the interrupt control analog module is responsible for coordinating the peripheral analog module and the processor analog module. The invention is particularly suitable for virtualizing a parallel execution environment of a complete simulated hardware on an SMP server or a multi-core server.

Description

一种并行多处理器虚拟机系统 A Parallel Multiprocessor Virtual Machine System

技术领域technical field

本发明涉及计算机系统结构,具体涉及一种并行多处理器虚拟机系统,使虚拟的多个处理器能够并行运行于现代多处理器服务器平台上。The invention relates to a computer system structure, in particular to a parallel multi-processor virtual machine system, which enables multiple virtual processors to run in parallel on a modern multi-processor server platform.

背景技术Background technique

操作系统在当今的个人电脑和服务器中起到了一个十分特殊的作用,它像一座桥梁,衔接了用户应用程序和硬件平台之间的鸿沟。在过去的很长一段时间内,在一台计算机上,只有一个操作系统能够在一段给定的时间内运行。因此,为了能够使多个操作系统,或不同操作系统的应用程序同时运行于同一台计算机上,科学家们发明出了许多的方法与技术。The operating system plays a very special role in today's personal computers and servers. It is like a bridge that bridges the gap between user applications and hardware platforms. For a long time in the past, only one operating system could run on a computer at any given time. Therefore, in order to enable multiple operating systems, or application programs of different operating systems to run simultaneously on the same computer, scientists have invented many methods and technologies.

虚拟机作为一种功能强大而且方便的技术得到了广泛的应用。Virtual machines are widely used as a powerful and convenient technology.

系统级虚拟机以较高的精度来模拟一个计算机系统的所有组成部分。这样操作系统和其上的应用程序可以正确的在这个虚拟机上运行。系统级虚拟机是作为一个应用程序运行在操作系统上。系统级虚拟机可以利用操作系统提供的服务,同时又受到操作系统的限制,例如:如果操作系统对内存的访问提供保护,不允许应用程序直接访问内存物理地址,那么虚拟机运行的时候,在内存管理上就会有极大的开销。这一类虚拟机具有代表性的有:Bochs,QEMU等。系统级虚拟机一般应用于系统结构的科研领域,用来帮助研究人员衡量多处理器或存储系统的性能,或者用于操作系统的开发领域。System-level virtual machines simulate all components of a computer system with high precision. In this way, the operating system and its applications can run correctly on this virtual machine. A system-level virtual machine runs on an operating system as an application. The system-level virtual machine can use the services provided by the operating system, but is also limited by the operating system. For example, if the operating system provides protection for memory access and does not allow applications to directly access the physical address of the memory, then when the virtual machine is running, the There will be a huge overhead in memory management. Representatives of this type of virtual machine are: Bochs, QEMU, etc. System-level virtual machines are generally used in the scientific research field of system structure to help researchers measure the performance of multi-processor or storage systems, or in the field of operating system development.

随着硬件日新月异的发展,特别是SMP(对称多处理器)服务器的广泛应用以及多核技术的进步,目前的一些虚拟机技术要么不能够充分利用多处理器资源,要么虚拟出的CPU个数受到实际物理处理器个数的限制。以上所提到的各种虚拟机也都存在着这样或那样的不足。传统虚拟机(如:Bochs IA-32 Emulator:http://bochs.sourceforge.net/)在构造具有多处理资源的用户执行环境时,为了实现执行单元的同步,实际上是把多个处理单元的执行内容放在一个循环中,进行串行执行,其效率是非常低的。为了在多处理器环境下,构造通用而虚拟的执行环境,就必须首先实现执行环境本身的并行化,同时,由于多核硬件所拥有的核的数量不断的提高,该执行环境本身必须具有可扩展性,即系统能够不加修改地运行在具有任意多个核的处理器机器上,并能够充分利用底层主机的处理性能。而本发明并行多处理器虚拟机系统就有效的解决了这个问题。With the rapid development of hardware, especially the wide application of SMP (symmetrical multiprocessor) servers and the advancement of multi-core technology, some current virtual machine technologies either cannot make full use of multi-processor resources, or the number of virtual CPUs is limited. The actual number of physical processors is limited. The various virtual machines mentioned above also have one or another deficiency. When a traditional virtual machine (such as: Bochs IA-32 Emulator: http://bochs.sourceforge.net/ ) constructs a user execution environment with multi-processing resources, in order to realize the synchronization of execution units, multiple processing units are actually The execution content is placed in a loop for serial execution, and its efficiency is very low. In order to construct a general-purpose and virtual execution environment in a multi-processor environment, it is necessary to realize the parallelization of the execution environment itself. At the same time, due to the continuous increase in the number of cores owned by multi-core hardware, the execution environment itself must be scalable. Reliability, that is, the system can run without modification on a processor machine with any number of cores, and can fully utilize the processing performance of the underlying host. And the parallel multiprocessor virtual machine system of the present invention has just solved this problem effectively.

发明内容Contents of the invention

本发明的目的是提供一种并行多处理器虚拟机系统,该系统能够模拟一个完整的计算机系统,能够模拟多个CPU,并且使虚拟CPU在同一时间内并行执行。The purpose of the present invention is to provide a parallel multi-processor virtual machine system, which can simulate a complete computer system, can simulate multiple CPUs, and make the virtual CPUs execute in parallel at the same time.

本发明提供的并行多处理器虚拟机系统,其特征在于:该系统包括虚拟机和虚拟机内操作系统;The parallel multiprocessor virtual machine system provided by the present invention is characterized in that: the system includes a virtual machine and an operating system in the virtual machine;

虚拟机内操作系统采用支持对称多处理器的操作系统,在虚拟机上运行;The operating system in the virtual machine uses an operating system that supports symmetric multiprocessors and runs on the virtual machine;

虚拟机为用户提供虚拟平台,它包括处理器并行模拟模块、内存管理模块、中断控制模拟模块和外设模拟模块;The virtual machine provides users with a virtual platform, which includes a processor parallel simulation module, a memory management module, an interrupt control simulation module and a peripheral simulation module;

处理器并行模拟模块用于接收虚拟机内操作系统提交的指令,翻译后予以执行;如果指令涉及内存读写,读写操作信号将传递给内存管理模块;如果处理器并行模拟模块要处理中断,则将中断信号发送给中断控制模块;The processor parallel simulation module is used to receive the instructions submitted by the operating system in the virtual machine, and execute them after translation; if the instructions involve memory reading and writing, the read and write operation signals will be passed to the memory management module; if the processor parallel simulation module needs to handle interrupts, then send the interrupt signal to the interrupt control module;

内存管理模块负责所有内存的读写操作管理,内存管理模块将接收的外设端口地址传送给外设模拟模块,并将内存读写操作的结果反馈给处理器并行模拟模块;The memory management module is responsible for the management of all memory read and write operations. The memory management module transmits the received peripheral port address to the peripheral simulation module, and feeds back the results of memory read and write operations to the processor parallel simulation module;

外设模拟模块负责模拟所有的外设动作和响应端口访问消息,如果要引发中断,则将中断信号发送给中断控制模拟模块处理;The peripheral analog module is responsible for simulating all peripheral actions and responding to port access messages. If an interrupt is to be triggered, the interrupt signal is sent to the interrupt control analog module for processing;

中断控制模块负责虚拟机中的中断信号的控制和管理;它一方面接收从外设模拟模块传来的外部中断信号,另一方面和处理器并行模拟模块协同执行中断操作。The interrupt control module is responsible for the control and management of the interrupt signal in the virtual machine; on the one hand, it receives the external interrupt signal from the peripheral simulation module, and on the other hand, it cooperates with the processor parallel simulation module to execute the interrupt operation.

本发明可以既完整的提供一个计算机系统视图,又可以充分利用实际硬件的各种处理资源。与已有的技术相比,本发明具有以下特点:The present invention can not only completely provide a computer system view, but also make full use of various processing resources of actual hardware. Compared with existing technology, the present invention has following characteristics:

a.能够模拟一个完整的计算机系统。有很多传统的虚拟机由于性能上的考虑或者实现方法的限制,不能够提供一个完整的计算机系统视图。它们往往只是提供一个软件的执行环境。正因为如此,只有一些专门为这些传统的虚拟机编写的软件才能在这些虚拟机制上运行。这样的限制使得很多其它广泛使用的软件必须经过改写才可以应用于虚拟机上,如此势必会无形中增加许多工作量。本发明由于提供对于完整的计算机系统的模拟,使得当今的各种主流操作系统都可以不作任何修改直接运行。这样,所有的应用软件都可以依赖于操作系统而无需做任何修改而直接使用。a. Be able to simulate a complete computer system. Many traditional virtual machines cannot provide a complete view of the computer system due to performance considerations or limitations of implementation methods. They often just provide a software execution environment. Because of this, only some software written specifically for these traditional virtual machines can run on these virtual machines. Such restrictions make many other widely used software must be rewritten before they can be applied to virtual machines, which will inevitably increase a lot of workload virtually. Since the present invention provides a simulation of a complete computer system, various mainstream operating systems can be directly run without any modification. In this way, all application software can be directly used without any modification depending on the operating system.

b.可以随时调整虚拟CPU的个数和配置各项硬件参数。由于本发明把每个虚拟的CPU都用线程封装实现,虚拟的CPU的个数完全不受实际物理CPU个数的限制。另外,由于本发明的所有外设都是由外设模拟模块来模拟和管理,外设将不受实际真实设备的限制。使用者可以随意模拟各种类型的外设,只需提供统一的读写接口就可以很方便的加入到虚拟机系统之中。b. You can adjust the number of virtual CPUs and configure various hardware parameters at any time. Because the present invention implements each virtual CPU with thread encapsulation, the number of virtual CPUs is completely not limited by the number of actual physical CPUs. In addition, since all the peripherals of the present invention are simulated and managed by the peripheral simulation module, the peripherals will not be limited by actual real devices. Users can simulate various types of peripherals at will, and they can be easily added to the virtual machine system only by providing a unified read and write interface.

c.能用并行执行的方法高效利用实际服务器的多处理器计算资源。本发明使用完全并行的方式来模拟一个计算机系统。如果本发明的虚拟机运行在一个多处理器的硬件环境中,它将充分利用实际的计算资源。即使底层的物理计算环境发生了改变,对于运行于本发明虚拟机内部的操作系统及其应用软件都是透明的。c. The multi-processor computing resource of the actual server can be efficiently utilized by means of parallel execution. The present invention simulates a computer system in a completely parallel manner. If the virtual machine of the present invention runs in a multi-processor hardware environment, it will make full use of actual computing resources. Even if the underlying physical computing environment changes, it is transparent to the operating system and its application software running inside the virtual machine of the present invention.

d.本发明在并行化模拟多处理器时,利用虚拟CPU线程的同步方法和对临界资源的访问控制保证了虚拟机在执行时的逻辑正确性。d. When parallelizing and simulating multi-processors, the present invention utilizes a synchronization method of virtual CPU threads and access control to critical resources to ensure the logical correctness of virtual machines during execution.

附图说明Description of drawings

图1为本发明提供的并行多处理器虚拟机系统的层次结构示意图;Fig. 1 is a schematic diagram of the hierarchical structure of the parallel multiprocessor virtual machine system provided by the present invention;

图2为图1中处理器并行模拟模块的结构示意图;Fig. 2 is the structural representation of the processor parallel simulation module in Fig. 1;

图3为图1中内存管理模块的结构示意图;Fig. 3 is a schematic structural diagram of the memory management module in Fig. 1;

图4为本发明提供的并行多处理器虚拟机系统当虚拟的CPU个数小于实际处理器个数时线程分配示意图;Fig. 4 is a schematic diagram of thread allocation when the number of virtual CPUs is less than the number of actual processors in the parallel multiprocessor virtual machine system provided by the present invention;

图5为本发明提供的并行多处理器虚拟机系统当虚拟的CPU个数大于实际处理器个数时线程分配示意图;Fig. 5 is a schematic diagram of thread allocation when the number of virtual CPUs is greater than the number of actual processors in the parallel multiprocessor virtual machine system provided by the present invention;

图6为本发明提供的并行多处理器虚拟机系统中并行虚拟CPU线程的同步方法示意图;6 is a schematic diagram of a method for synchronizing parallel virtual CPU threads in a parallel multiprocessor virtual machine system provided by the present invention;

图7为本发明提供的并行多处理器虚拟机系统的服务流程图。FIG. 7 is a service flowchart of the parallel multiprocessor virtual machine system provided by the present invention.

具体实施方式Detailed ways

下面结合附图和实例对本发明做进一步详细的说明。Below in conjunction with accompanying drawing and example the present invention is described in further detail.

如图1所示,从体系结构的层次上来看,本发明所应用的计算机系统从上至下包括并行多处理器虚拟机系统3、本地操作系统层4和本地服务器5。As shown in FIG. 1 , from the perspective of the architecture level, the computer system applied by the present invention includes a parallel multiprocessor virtual machine system 3 , a local operating system layer 4 and a local server 5 from top to bottom.

本地操作系统4可以使用任何当今的主流支持SMP的操作系统(如Windows,Linux)。本地服务器5是本发明的物理基础,它包括p个处理器51、52、……、5p,其中2≤p≤16。The local operating system 4 can use any current mainstream operating system supporting SMP (such as Windows, Linux). The local server 5 is the physical basis of the present invention, and it includes p processors 51, 52, . . . , 5p, where 2≤p≤16.

并行多处理器虚拟机系统3包括虚拟机1和虚拟机内操作系统2,虚拟机内操作系统2运行在虚拟机1之上。虚拟机内操作系统2为支持SMP(对称多处理器)的操作系统,它具备支持并行处理的能力。如果使用Windows,则Windows能够直接支持SMP。如果使用Linux,则需要重新编译Linux的内核,添加其对SMP的支持选项。The parallel multiprocessor virtual machine system 3 includes a virtual machine 1 and an operating system 2 in the virtual machine, and the operating system 2 in the virtual machine runs on the virtual machine 1 . The operating system 2 in the virtual machine is an operating system supporting SMP (symmetrical multiprocessor), and it has the capability of supporting parallel processing. If you use Windows, Windows can directly support SMP. If you use Linux, you need to recompile the Linux kernel to add its support option for SMP.

虚拟机1为用户提供虚拟平台,它包括处理器并行模拟模块11、内存管理模块12、中断控制模拟模块13和外设模拟模块14。The virtual machine 1 provides a virtual platform for users, and it includes a processor parallel simulation module 11 , a memory management module 12 , an interrupt control simulation module 13 and a peripheral hardware simulation module 14 .

处理器并行模拟模块11用于接收虚拟机内操作系统2提交的指令,翻译后予以执行。如果指令涉及内存读写,读写操作信号将传递给内存管理模块12。如果处理器并行模拟模块11要处理中断,则将中断信号发送给中断控制模块13。The processor parallel simulation module 11 is used for receiving instructions submitted by the operating system 2 in the virtual machine, and executing them after translation. If the instruction involves memory reading and writing, the reading and writing operation signal will be transmitted to the memory management module 12 . If the processor parallel simulation module 11 is to process an interrupt, it sends the interrupt signal to the interrupt control module 13 .

内存管理模块12负责所有内存的读写操作管理。内存管理模块主要将接收的外设端口地址传送给外设模拟模块14,将对内存读写操作的结果反馈给处理器并行模拟模块11。The memory management module 12 is responsible for the management of all memory read and write operations. The memory management module mainly transmits the received peripheral port address to the peripheral simulation module 14 , and feeds back the result of the memory read and write operation to the processor parallel simulation module 11 .

中断控制模块13负责虚拟机1中的中断信号的控制和管理;它一方面接收从外设模拟模块14传来的外部中断信号,另一方面和处理器并行模拟模块11协同执行中断操作。The interrupt control module 13 is responsible for the control and management of the interrupt signal in the virtual machine 1; on the one hand, it receives the external interrupt signal from the peripheral simulation module 14, and on the other hand, it cooperates with the processor parallel simulation module 11 to execute the interrupt operation.

外设模拟模块14负责模拟所有的外设动作和响应端口访问消息,如果要引发中断,则将中断信号发送给中断控制模拟模块13处理。The peripheral hardware simulation module 14 is responsible for simulating all peripheral hardware actions and responding to port access messages. If an interrupt is to be triggered, the interrupt signal is sent to the interrupt control simulation module 13 for processing.

下面举例说明处理器并行模拟模块11和内存管理模块12的具体结构,本领域一般技术人员可以根据本发明公开的内容,以其它多种具体实现方法实施本发明的技术方案,本发明的保护范围并不局限于下述实例的内容。The specific structures of the processor parallel simulation module 11 and the memory management module 12 are illustrated below with examples. Those skilled in the art can implement the technical solutions of the present invention with other various specific implementation methods according to the content disclosed by the present invention, and the protection scope of the present invention It is not limited to the contents of the following examples.

如图2所示,处理器并行模拟模块11包括指令功能函数表111,同步控制模块112和虚拟CPU线程模块113。As shown in FIG. 2 , the processor parallel simulation module 11 includes an instruction function function table 111 , a synchronization control module 112 and a virtual CPU thread module 113 .

虚拟CPU线程模块113动态构建n个虚拟CPU线程T1、T2、……、Tn(3≤n≤17),每个虚拟CPU线程对应一个物理CPU。虚拟CPU线程T1、T2、……、Tn(以下简称虚拟CPU线程)都负责模拟一个虚拟CPU的行为,主要功能为指令的翻译和指令功能的执行。The virtual CPU thread module 113 dynamically constructs n virtual CPU threads T 1 , T 2 , . . . , T n (3≤n≤17), and each virtual CPU thread corresponds to a physical CPU. The virtual CPU threads T 1 , T 2 , . . . , T n (hereinafter referred to as virtual CPU threads) are all responsible for simulating the behavior of a virtual CPU, and their main functions are instruction translation and instruction function execution.

虚拟CPU线程模块113中的所有虚拟CPU线程都可以通过内存管理模块12获得当前虚拟CPU将要执行的指令的二进制代码,该二进制代码经由虚拟CPU线程翻译成对应的指令号。虚拟CPU线程取得翻译过后的指令号后,查询指令功能函数表111得到当前指令对应的功能函数的入口。然后,虚拟CPU线程执行指令对应的功能函数完成当前指令规定的动作。All virtual CPU threads in the virtual CPU thread module 113 can obtain the binary code of the instruction to be executed by the current virtual CPU through the memory management module 12, and the binary code is translated into a corresponding instruction number via the virtual CPU thread. After the virtual CPU thread obtains the translated instruction number, it queries the instruction function function table 111 to obtain the entry of the function function corresponding to the current instruction. Then, the virtual CPU thread executes the function corresponding to the instruction to complete the action specified by the current instruction.

如果当前指令涉及软中断或异常,虚拟CPU线程将会把中断号发送给中断控制模拟模块13。中断控制模拟模块13接收到中断号后,根据中断号实现对应的中断功能,同时切换这条指令对应虚拟CPU线程的上下文,使其能转入对中断或异常的处理。If the current instruction involves a soft interrupt or an exception, the virtual CPU thread will send the interrupt number to the interrupt control simulation module 13 . After the interrupt control simulation module 13 receives the interrupt number, it realizes the corresponding interrupt function according to the interrupt number, and simultaneously switches the context of the virtual CPU thread corresponding to this instruction, so that it can transfer to the interrupt or exception processing.

如果当前指令的功能仅仅是改变虚拟CPU的自身状态,那么相应动作执行后由上面提到的同样的方法进入下一条指令的执行过程。如果当前指令的功能涉及到对内存的物理地址的读写,那么读写的操作将被传递给内存管理模块12。If the function of the current instruction is only to change the state of the virtual CPU itself, then after the corresponding action is executed, the execution process of the next instruction will be entered by the same method mentioned above. If the function of the current instruction involves reading and writing of the physical address of the memory, the reading and writing operation will be passed to the memory management module 12 .

同步控制模块112协同虚拟CPU线程模块113协调所有虚拟CPU线程的同步执行。The synchronization control module 112 cooperates with the virtual CPU thread module 113 to coordinate the synchronous execution of all virtual CPU threads.

如图3所示,内存管理模块12包括地址判断模块121和访存操作模块122。地址判断模块121接收虚拟CPU线程1发送来的读写操作后,判断读写操作所涉及的物理地址。如果是普通内存地址那么就直接交给访存操作模块122执行访存的动作;如果是外设映射的端口地址,则把映射端口地址传给外设模拟模块14,外设模拟模块14获取对应的端口号后,检索到端口响应的外设执行读写操作。As shown in FIG. 3 , the memory management module 12 includes an address judgment module 121 and a memory access operation module 122 . After receiving the read and write operations sent by the virtual CPU thread 1 , the address judging module 121 judges the physical addresses involved in the read and write operations. If it is an ordinary memory address, then it is directly handed over to the memory access operation module 122 to perform the memory access action; After receiving the port number, the peripheral device that retrieves the port response performs read and write operations.

如果外设模拟模块14模拟的外设中有中断请求,外设模拟模块14将会把中断请求发送给中断控制模拟模块13。中断控制模拟模块13执行相应处理后将中断号放入中断模拟模块13的中断请求队列中,同时,中断控制模拟模块13将设置虚拟CPU线程1的上下文,交由虚拟CPU线程1进行处理。If the peripheral simulated by the peripheral simulation module 14 has an interrupt request, the peripheral simulation module 14 will send the interrupt request to the interrupt control simulation module 13 . After the interrupt control simulation module 13 executes the corresponding processing, the interrupt number is put into the interrupt request queue of the interrupt simulation module 13. Meanwhile, the interrupt control simulation module 13 will set the context of the virtual CPU thread 1 and hand it over to the virtual CPU thread 1 for processing.

下面结合图4、图5说明本发明虚拟CPU线程T1、T2、……、Tn并行化执行的原理。The principle of parallel execution of virtual CPU threads T 1 , T 2 , . . .

虚拟CPU线程T1、T2、……、Tn的并行化执行是本发明的核心组成部分。现有的传统系统级虚拟机系统一般用数组标示每个CPU,然后用循环来调配各个虚拟的CPU分时在一个单独的物理CPU上运行。而在本发明中,每个虚拟的CPU都用一个线程来实现,从而可以同时并行的运行在多处理器服务器上。The parallel execution of virtual CPU threads T 1 , T 2 , . . . , T n is the core component of the present invention. Existing traditional system-level virtual machine systems generally mark each CPU with an array, and then use a loop to allocate each virtual CPU to run on a single physical CPU time-sharing. However, in the present invention, each virtual CPU is implemented with a thread, so that it can run on a multi-processor server in parallel at the same time.

虚拟CPU线程T1、T2、……、Tn就是线程化的CPU模拟。进一步说,就是每个虚拟CPU都用一个线程来封装,每个线程都可以访问公共的内存管理模块12,从而实现虚拟SMP体系结构。更进一步如图4所示,假设真实的物理CPU的个数为p,虚拟CPU线程T1、T2、……、Tn的数目小于或等于实际物理的CPU个数,虚拟CPU进程会与物理的CPU作一对一的映射。这样,可以减少线程在不同CPU之间切换所造成的cache命中率低下的弊端。如果虚拟的CPU的数目大于实际物理CPU的个数,本地操作系统4会尽量保证每个虚拟CPU线程T1、T2、……、Tn都能在以前曾经运行过的物理CPU上调度运行。The virtual CPU threads T 1 , T 2 , . . . , T n are threaded CPU simulations. Furthermore, each virtual CPU is encapsulated with a thread, and each thread can access the common memory management module 12, thereby realizing a virtual SMP architecture. Further, as shown in Figure 4, assuming that the number of real physical CPUs is p, and the number of virtual CPU threads T 1 , T 2 , ..., T n is less than or equal to the actual number of physical CPUs, the virtual CPU process will be connected with Physical CPUs are mapped one-to-one. In this way, the disadvantage of low cache hit rate caused by switching threads between different CPUs can be reduced. If the number of virtual CPUs is greater than the number of actual physical CPUs, the local operating system 4 will try to ensure that each virtual CPU thread T 1 , T 2 , ..., T n can be scheduled to run on the physical CPU that has been running before .

如图5所示,假设真实的物理CPU的个数为p,用户虚拟的CPU个数是a*p+b(其中a,b,p都是正整数,b<p)。本地操作系统4会把第1,p+1,2p+1,……,a*p+1个创建虚拟CPU线程分配到1号物理CPU上运行。同理:第2,p+2,2p+2,……,a*p+2号虚拟CPU线程分配到2号物理CPU上运行。如此,虚拟CPU线程将被分为p组,每组有a或a+1个虚拟CPU线程运行于一个物理CPU之上。但是,值得注意的是:如果出现以下情况,用户程序进程或线程数目的总和不及虚拟CPU的个数,例如,当前有4个真实物理CPU,用户创建了8个虚拟CPU线程,这样每个真实CPU上就有2个虚拟CPU线程在运行。这时,如果恰好只有2个用户线程在虚拟机上运行,并且都集中运行在同一个虚拟CPU线程上。本地操作系统4也不会重新调度虚拟CPU线程。这是因为,虚拟的CPU线程上如果没有任务运行时,都会有一个空闲进程在其上运行。本地操作系统4根本不可能知道虚拟CPU线程是否空闲。因此,操作系统不会根据虚拟机的负载情况调度虚拟的CPU线程。也就是说,一旦虚拟的CPU线程被创建,它基本上确定在同一个CPU上运行,如此可以提高cache的命中率,减少本地服务器CPU之间的cache同步开销,以及内存同步开销,提高系统的运行速度和效率。As shown in FIG. 5 , assume that the number of real physical CPUs is p, and the number of virtual CPUs of the user is a*p+b (where a, b, and p are all positive integers, b<p). The local operating system 4 will assign the 1st, p+1, 2p+1, ..., a*p+1 created virtual CPU threads to run on the 1st physical CPU. In the same way: the 2nd, p+2, 2p+2, ..., a*p+2 virtual CPU threads are assigned to run on the 2nd physical CPU. In this way, the virtual CPU threads will be divided into p groups, and each group has a or a+1 virtual CPU threads running on a physical CPU. However, it is worth noting that if the following conditions occur, the sum of the number of user program processes or threads is less than the number of virtual CPUs. For example, there are currently 4 real physical CPUs, and the user creates 8 virtual CPU threads, so that each real There are 2 virtual CPU threads running on the CPU. At this time, if there are only 2 user threads running on the virtual machine, and they all run on the same virtual CPU thread. Native OS 4 also does not reschedule virtual CPU threads. This is because, if there is no task running on the virtual CPU thread, there will be an idle process running on it. It is simply impossible for the native operating system 4 to know whether a virtual CPU thread is idle or not. Therefore, the operating system does not schedule virtual CPU threads according to the load of the virtual machine. That is to say, once a virtual CPU thread is created, it is basically determined to run on the same CPU, which can improve the cache hit rate, reduce the cache synchronization overhead between the local server CPUs, and the memory synchronization overhead, and improve the system performance. Operate with speed and efficiency.

为了保证本发明的虚拟机能够在并行执行的情况下正确运行,本发明提出了控制其并行执行的方法。包括:并行虚拟CPU的同步方法和临界资源的访问控制方法。In order to ensure that the virtual machine of the present invention can run correctly under the condition of parallel execution, the present invention proposes a method for controlling its parallel execution. Including: a method for synchronizing parallel virtual CPUs and an access control method for critical resources.

进一步对于并行虚拟CPU的同步方法(如图6),本发明为每一个虚拟CPU线程T1、T2、……、Tn都设置了一对消息通信的发送和等待操作;同时在所有的虚拟CPU线程外部设置了一个同步控制模块112。当每个虚拟CPU线程执行完规定的条数的指令后,便向同步控制模块发送通知消息。随后自己进入消息等待操作。当所有的CPU线程的通知消息都发送至同步控制模块112之后,同步控制模块112便向所有的虚拟CPU线程T1、T2、……、Tn分别发送继续执行消息。虚拟CPU线程T1、T2、……、Tn便退出等待,继续执行下一批指令,如此周而复始,循环运作。本发明的同步方法使得所有的虚拟CPU线程都能够保持相对的执行的指令数误差在一定的可控的范围之内。这样保证了整个虚拟机逻辑上的正确性。Further for the synchronous method (as Fig. 6) of parallel virtual CPU, the present invention is each virtual CPU thread T 1 , T 2 , ..., T n all is provided with a pair of sending and waiting operation of message communication; Simultaneously in all A synchronization control module 112 is set outside the virtual CPU thread. After each virtual CPU thread executes a specified number of instructions, it sends a notification message to the synchronization control module. Then enter the message and wait for the operation. After the notification messages of all the CPU threads are sent to the synchronization control module 112, the synchronization control module 112 sends the continuation messages to all the virtual CPU threads T 1 , T 2 , . . . , T n respectively. The virtual CPU threads T 1 , T 2 , . The synchronization method of the present invention enables all virtual CPU threads to keep the error of the number of relative executed instructions within a certain controllable range. This ensures the logical correctness of the entire virtual machine.

在对于临界资源的访问控制方法中,本发明所需管理的临界资源包括:对外设端口的读写以两次访存指令的原子性操作。In the access control method for critical resources, the critical resources to be managed in the present invention include: atomic operations of reading and writing peripheral ports and two memory access instructions.

更进一步,关于对外设端口的读写,当本发明的虚拟机中的某一个虚拟CPU线程1在对某个外设端口映射的内存地址进行读写操作时,如果有另一个虚拟CPU线程(如虚拟CPU线程2)也在这个时候对相同的端口发出读写的操作,那么这两个操作的冲突将导致数据的错误设置,从而使虚拟CPU线程1对外设的操作信号发生紊乱,读到或写出非法的数据,甚至根本读取不到想要的数据。因此,本虚拟机在并行执行,模拟多个同时运行的虚拟CPU线程T1、T2、……、Tn的时候,如果一个虚拟CPU线程将要发送对I/O端口操作的指令,它首先必须检测是否有其它的虚拟CPU线程正在进行I/O读写操作。进一步说就是检测虚拟I/O总线上读写操作的函数是否被其它虚拟CPU线程上锁,如果有则等待其释放对该锁的所有权,如果没有或其它虚拟CPU线程已经释放该锁,那么这个虚拟CPU线程就对该锁执行加锁操作。继而执行读写操作。操作完毕后释放这个锁。如此这样既保证了每次的I/O读写操作都能够成为一次原子操作而不被其它的操作打断,又可以使每个虚拟CPU线程通过竞争来获得I/O的读写权。保证了一定的公平性。Furthermore, regarding the reading and writing of peripheral ports, when a certain virtual CPU thread 1 in the virtual machine of the present invention is performing read and write operations on a memory address mapped by a certain peripheral port, if there is another virtual CPU thread ( If virtual CPU thread 2) also sends read and write operations to the same port at this time, the conflict between these two operations will cause the wrong setting of data, so that the operation signal of virtual CPU thread 1 to the peripheral is disturbed, and read Or write out illegal data, or even not read the desired data at all. Therefore, when this virtual machine is executing in parallel and simulating a plurality of virtual CPU threads T 1 , T 2 , ..., T n running simultaneously, if a virtual CPU thread is about to send an instruction to operate an I/O port, it first It must be detected whether other virtual CPU threads are performing I/O read and write operations. Further speaking, it is to detect whether the function of reading and writing operations on the virtual I/O bus is locked by other virtual CPU threads. If so, wait for it to release the ownership of the lock. If not or other virtual CPU threads have released the lock, then this The virtual CPU thread performs a locking operation on the lock. Then perform read and write operations. Release the lock after the operation is complete. This not only ensures that each I/O read and write operation can become an atomic operation without being interrupted by other operations, but also enables each virtual CPU thread to obtain I/O read and write rights through competition. A certain degree of fairness is guaranteed.

关于两次访存的指令的原子性操作,本发明采用判断后对内存读写加锁来实现。进一步具体地说,两次访存的指令是指某些指令的操作中涉及到两次对内存的读写。如INC指令,如果要对某一内存地址的数据进行INC操作,该操作将会首先将该内存中的内容读入CPU的寄存器中,随后将寄存器中的数值加一,最后把新的数据重新写入原来的内存地址。在这类涉及两次访存的指令执行时如果其它的虚拟CPU线程上运行的指令也对该内存地址进行了读写的操作那么要么读到脏数据,要么写丢失。With regard to the atomic operation of the two memory access instructions, the present invention realizes by locking the memory for reading and writing after judgment. More specifically, an instruction with two memory accesses means that the operation of some instructions involves two reads and writes to the memory. Such as the INC instruction, if you want to perform an INC operation on the data of a certain memory address, the operation will first read the contents of the memory into the register of the CPU, then add one to the value in the register, and finally rewrite the new data Write to the original memory address. When this type of instruction involving two memory accesses is executed, if other instructions running on the virtual CPU thread also read and write the memory address, then either dirty data is read or the write is lost.

为了防止读脏数据和写丢失的发生,本发明采取的具体做法是:首先判断虚拟CPU线程上将要执行的下一条指令是否是这类两次访存的指令,如果是则对内存读写加锁,操作完毕后对该锁解除封锁。对于其它不涉及两次访问内存的指令,如果它们需要读写内存,首先要检测是否内存读写已经被加锁。如果没有,表示此时没有涉及两次访问内存的指令执行,可以执行。如果发现内存读写已经被加锁,表示此时正好有一条设计两次访存的指令在执行,于是它将在原地循环检测等待,直到内存的读写锁被解除,涉及两次访存的指令执行完为止,然后继续正常的执行。本发明采用了以上的方法来避免涉及两次访存的指令的原子执行被打断,保证了此类指令的操作都能够正确无误的实现。In order to prevent the occurrence of dirty data reading and write loss, the specific method adopted by the present invention is: at first judge whether the next instruction to be executed on the virtual CPU thread is an instruction of this type of two memory accesses, and if so, add memory read and write Lock, unlock the lock after the operation is completed. For other instructions that do not involve two accesses to memory, if they need to read and write memory, first check whether the memory read and write has been locked. If not, it means that no instruction involving two memory accesses is executed at this time, and it can be executed. If it is found that the memory read and write has been locked, it means that there is exactly one instruction designed to access memory twice at this time, so it will check and wait in place until the read and write lock of the memory is released, which involves two memory accesses. Until the instruction is executed, then continue normal execution. The present invention adopts the above method to prevent the atomic execution of instructions involving two memory accesses from being interrupted, and ensures that the operations of such instructions can be implemented correctly.

本发明利用以上提到的方法有效的控制了虚拟CPU线程并行执行时在临界资源访问上可能产生的冲突。结合前面提到的并行虚拟CPU的同步方法,本发明保证了虚拟机在并行化后逻辑上的正确执行。The present invention utilizes the method mentioned above to effectively control possible conflicts in accessing critical resources when virtual CPU threads are executed in parallel. Combined with the synchronization method of parallel virtual CPUs mentioned above, the present invention ensures logically correct execution of virtual machines after parallelization.

本发明的整个系统服务流程如图7所示。如用户需要使用本发明所提供的并行多处理机虚拟机。如果是第一次使用,首先应该编辑本系统提供的配置脚本,指定所需模拟的处理器的型号、个数,内存大小,磁盘大小及规格、虚拟网络的地址等信息。然后为虚拟机安装满足用户需求的支持SMP的操作系统。然后用户直接启动本发明的虚拟机,等虚拟机内的操作系统启动后便可以像使用任何一台真实的计算机一样使用本并行虚拟机系统。The entire system service process of the present invention is shown in FIG. 7 . If the user needs to use the parallel multi-processor virtual machine provided by the present invention. If you are using it for the first time, you should first edit the configuration script provided by the system to specify the model, number, memory size, disk size and specifications, virtual network address and other information of the processors to be simulated. Then install an operating system that supports SMP that meets user requirements for the virtual machine. Then the user directly starts the virtual machine of the present invention, and after the operating system in the virtual machine is started, the parallel virtual machine system can be used like any real computer.

如果不是第一次使用,用户可以直接启动本发明的虚拟机,等虚拟机内的操作系统启动后便可以像使用任何一台真实的计算机一样试用本并行虚拟机系统。If it is not used for the first time, the user can directly start the virtual machine of the present invention, and after the operating system in the virtual machine is started, the parallel virtual machine system can be tried out like any real computer.

如果用户对第一次使用时的虚拟硬件配置不满意,用户可以首先停止本发明的虚拟机的执行,修改本系统提供的配置脚本直到各项配置都符合用户的需求,重新启动本虚拟机即可继续使用。If the user is dissatisfied with the virtual hardware configuration when using for the first time, the user can at first stop the execution of the virtual machine of the present invention, modify the configuration script provided by the system until each configuration meets the needs of the user, and restart the virtual machine. Can continue to use.

本发明中的虚拟机将会自动将用户分配给虚拟CPU的任务以虚拟的CPU为单位在真实的硬件服务器上并行执行,从而高效地利用现有硬件上多处理器的计算资源,为用户提供高性能的服务。The virtual machine in the present invention will automatically execute the tasks assigned by the user to the virtual CPU in parallel on the real hardware server in units of virtual CPUs, thereby efficiently utilizing the computing resources of multiprocessors on the existing hardware to provide users with High performance service.

Claims (3)

1. A parallel multiprocessor virtual machine system, characterized by: the system comprises a virtual machine (1) and an operating system (2) in the virtual machine;
the operating system (2) in the virtual machine adopts an operating system supporting a symmetric multiprocessor and runs on the virtual machine (1);
the virtual machine (1) provides a virtual platform for a user, and comprises a processor parallel simulation module (11), a memory management module (12), an interrupt control simulation module (13) and a peripheral simulation module (14);
the processor parallel simulation module (11) is used for receiving an instruction submitted by the operating system (2) in the virtual machine, and executing the instruction after translation; if the instruction relates to memory reading and writing, the reading and writing operation signal is transmitted to a memory management module (12); sending an interrupt signal to an interrupt control module (13) if the processor parallel simulation module (11) is to process an interrupt;
the memory management module (12) is responsible for the read-write operation management of all memories, transmits the received peripheral port address to the peripheral simulation module (14) and feeds back the result of the read-write operation of the memories to the processor parallel simulation module (11);
the peripheral simulation module (14) is responsible for simulating all peripheral actions and responding to port access messages, and if an interrupt is to be triggered, an interrupt signal is sent to the interrupt control simulation module (13) for processing;
the interrupt control module (13) is responsible for controlling and managing interrupt signals in the virtual machine (1); it receives external interrupt signal from peripheral analog module (14) and executes interrupt operation with processor parallel analog module (11).
2. The system of claim 1, wherein: the processor parallel simulation module (11) comprises an instruction function table (111), a synchronous control module (112) and a virtual CPU thread module (113).
The virtual CPU thread module (113) is used for simulating the behavior of the CPU and constructing n virtual CPU threads T1、T2、……、TnN is more than or equal to 1 and less than or equal to 17, and each virtual CPU thread corresponds to one physical CPU;
the query instruction function table (111) is used for storing a corresponding table of instructions and function functions;
the synchronization control module (112) coordinates the synchronous execution of all virtual CPU threads in cooperation with the virtual CPU thread module (113).
3. The system according to claim 1 or 2, characterized in that: the memory management module (12) comprises an address judgment module (121) and a memory access operation module (122); wherein,
the address judgment module (121) judges a physical address related to the read-write operation after receiving the read-write operation sent by the virtual CPU thread (1); if the address is a common memory address, the address is directly handed to the memory access operation module (122) to execute the memory access action; if the port address is the port address mapped by the peripheral equipment, the mapped port address is transmitted to the peripheral equipment simulation module (14), and after the peripheral equipment simulation module (14) acquires the corresponding port number, the peripheral equipment responding to the port is retrieved to execute read-write operation;
the memory access operation module (122) processes the read-write request of the virtual CPU thread and ensures the atomicity of two memory access instructions.
CNB2007101687209A 2007-12-10 2007-12-10 A kind of paralleling multi-processor virtual machine system Expired - Fee Related CN100573456C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101687209A CN100573456C (en) 2007-12-10 2007-12-10 A kind of paralleling multi-processor virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101687209A CN100573456C (en) 2007-12-10 2007-12-10 A kind of paralleling multi-processor virtual machine system

Publications (2)

Publication Number Publication Date
CN101183315A true CN101183315A (en) 2008-05-21
CN100573456C CN100573456C (en) 2009-12-23

Family

ID=39448603

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101687209A Expired - Fee Related CN100573456C (en) 2007-12-10 2007-12-10 A kind of paralleling multi-processor virtual machine system

Country Status (1)

Country Link
CN (1) CN100573456C (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901207A (en) * 2010-07-23 2010-12-01 中国科学院计算技术研究所 Operating System and Working Method of Heterogeneous Shared Memory Multiprocessor System
CN101290586B (en) * 2008-06-06 2011-07-20 华中科技大学 Dummy machine concealed flow control method based on priority china wall policy
CN101593134B (en) * 2009-06-29 2012-05-30 北京航空航天大学 virtual machine CPU resource allocation method and device
CN102541651A (en) * 2011-12-12 2012-07-04 华中科技大学 Real-time scheduling system of embedded virtual machine (VM)
CN102576325A (en) * 2009-10-16 2012-07-11 国际商业机器公司 Simulation method, system, and program
CN102662730A (en) * 2012-04-26 2012-09-12 龙芯中科技术有限公司 Atomic instruction simulation method of parallel multi-nuclear virtual machine and virtual machine device
WO2013037300A1 (en) * 2011-09-13 2013-03-21 华为技术有限公司 Multi-processor parallel simulation method, system and scheduler
WO2013097068A1 (en) * 2011-12-26 2013-07-04 Intel Corporation Scheduling virtual central processing units of virtual machines among physical processing units
CN103238143A (en) * 2010-09-27 2013-08-07 费希尔-罗斯蒙特系统公司 Methods and apparatus to virtualize a process control system
CN101788919B (en) * 2010-01-29 2013-08-14 中国科学技术大学苏州研究院 Chip multi-core processor clock precision parallel simulation system and simulation method thereof
CN101847105B (en) * 2009-03-26 2013-09-04 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN101908967B (en) * 2009-06-02 2014-02-19 百度在线网络技术(北京)有限公司 Configuration method and system of Linux virtual server
CN103814358A (en) * 2011-09-20 2014-05-21 国际商业机器公司 Virtual machine placement within server farm
CN104272270A (en) * 2012-07-26 2015-01-07 惠普发展公司,有限责任合伙企业 Application security testing
CN104468307A (en) * 2014-10-27 2015-03-25 中国运载火箭技术研究院 Real-time communication system based on virtual machine
CN104765613A (en) * 2015-04-21 2015-07-08 华中科技大学 Optimization method oriented to task parallel programming model under virtualization environment
CN104881840A (en) * 2015-05-11 2015-09-02 华中科技大学 Data parallel access method based on graph data processing system
CN105934744A (en) * 2013-12-06 2016-09-07 并发投资有限责任公司 System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware
CN106990998A (en) * 2016-01-21 2017-07-28 阿里巴巴集团控股有限公司 Virtual machine monitoring method and device
CN108124018A (en) * 2012-06-26 2018-06-05 丛林网络公司 The method and virtual machine manager of distributed processing network equipment task
CN110890995A (en) * 2019-05-14 2020-03-17 研祥智能科技股份有限公司 Network port testing method and network port testing device
CN111158610A (en) * 2019-12-31 2020-05-15 苏州浪潮智能科技有限公司 Method, device and equipment for synchronously setting cache acceleration and readable medium
CN113406572A (en) * 2021-06-23 2021-09-17 四川九洲电器集团有限责任公司 Radar parallel processing system and method, storage medium and terminal
CN114647200A (en) * 2020-12-17 2022-06-21 新疆金风科技股份有限公司 Hardware-in-the-loop test platform, variable-pitch-in-the-loop test system and test system

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290586B (en) * 2008-06-06 2011-07-20 华中科技大学 Dummy machine concealed flow control method based on priority china wall policy
CN101847105B (en) * 2009-03-26 2013-09-04 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN101908967B (en) * 2009-06-02 2014-02-19 百度在线网络技术(北京)有限公司 Configuration method and system of Linux virtual server
CN101593134B (en) * 2009-06-29 2012-05-30 北京航空航天大学 virtual machine CPU resource allocation method and device
CN102576325A (en) * 2009-10-16 2012-07-11 国际商业机器公司 Simulation method, system, and program
CN102576325B (en) * 2009-10-16 2015-04-15 国际商业机器公司 Simulation method, system, and program
CN101788919B (en) * 2010-01-29 2013-08-14 中国科学技术大学苏州研究院 Chip multi-core processor clock precision parallel simulation system and simulation method thereof
CN101901207B (en) * 2010-07-23 2012-03-28 中国科学院计算技术研究所 Operating System and Working Method of Heterogeneous Shared Memory Multiprocessor System
CN101901207A (en) * 2010-07-23 2010-12-01 中国科学院计算技术研究所 Operating System and Working Method of Heterogeneous Shared Memory Multiprocessor System
US11320797B2 (en) 2010-09-27 2022-05-03 Fisher-Rosemount Systems, Inc Methods and apparatus to virtualize a process control system
CN103238143A (en) * 2010-09-27 2013-08-07 费希尔-罗斯蒙特系统公司 Methods and apparatus to virtualize a process control system
US9703905B2 (en) 2011-09-13 2017-07-11 Huawei Technologies Co., Ltd. Method and system for simulating multiple processors in parallel and scheduler
WO2013037300A1 (en) * 2011-09-13 2013-03-21 华为技术有限公司 Multi-processor parallel simulation method, system and scheduler
CN103814358A (en) * 2011-09-20 2014-05-21 国际商业机器公司 Virtual machine placement within server farm
CN102541651A (en) * 2011-12-12 2012-07-04 华中科技大学 Real-time scheduling system of embedded virtual machine (VM)
US9098337B2 (en) 2011-12-26 2015-08-04 Intel Corporation Scheduling virtual central processing units of virtual machines among physical processing units
CN104011680A (en) * 2011-12-26 2014-08-27 英特尔公司 Scheduling virtual central processing units of virtual machines among physical processing units
WO2013097068A1 (en) * 2011-12-26 2013-07-04 Intel Corporation Scheduling virtual central processing units of virtual machines among physical processing units
CN104011680B (en) * 2011-12-26 2017-03-01 英特尔公司 The virtual center processing unit of scheduling virtual machine in physical processing unit
CN102662730A (en) * 2012-04-26 2012-09-12 龙芯中科技术有限公司 Atomic instruction simulation method of parallel multi-nuclear virtual machine and virtual machine device
CN102662730B (en) * 2012-04-26 2015-05-27 龙芯中科技术有限公司 Atomic instruction simulation method of parallel multi-nuclear virtual machine and virtual machine device
CN108124018A (en) * 2012-06-26 2018-06-05 丛林网络公司 The method and virtual machine manager of distributed processing network equipment task
CN108124018B (en) * 2012-06-26 2020-07-28 丛林网络公司 Method for distributed processing of network equipment tasks and virtual machine manager
CN104272270B (en) * 2012-07-26 2017-06-09 慧与发展有限责任合伙企业 Application security is tested
CN104272270A (en) * 2012-07-26 2015-01-07 惠普发展公司,有限责任合伙企业 Application security testing
US10210335B2 (en) 2012-07-26 2019-02-19 Entit Software Llc Application security testing
CN105934744A (en) * 2013-12-06 2016-09-07 并发投资有限责任公司 System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware
CN105934744B (en) * 2013-12-06 2019-05-17 并发投资有限责任公司 System and method for dividing simultaneously synchronization process task across multiple processing units/processor within hardware
CN104468307B (en) * 2014-10-27 2017-08-29 中国运载火箭技术研究院 A kind of real-time communication system based on virtual machine
CN104468307A (en) * 2014-10-27 2015-03-25 中国运载火箭技术研究院 Real-time communication system based on virtual machine
CN104765613B (en) * 2015-04-21 2017-09-12 华中科技大学 Towards the optimization method of tasks in parallel programming model under a kind of virtualized environment
CN104765613A (en) * 2015-04-21 2015-07-08 华中科技大学 Optimization method oriented to task parallel programming model under virtualization environment
CN104881840B (en) * 2015-05-11 2017-10-31 华中科技大学 A kind of data parallel access method based on diagram data processing system
CN104881840A (en) * 2015-05-11 2015-09-02 华中科技大学 Data parallel access method based on graph data processing system
CN106990998A (en) * 2016-01-21 2017-07-28 阿里巴巴集团控股有限公司 Virtual machine monitoring method and device
CN106990998B (en) * 2016-01-21 2020-10-27 阿里巴巴集团控股有限公司 Virtual machine monitoring method and device
CN110890995A (en) * 2019-05-14 2020-03-17 研祥智能科技股份有限公司 Network port testing method and network port testing device
CN110890995B (en) * 2019-05-14 2021-08-13 研祥智能科技股份有限公司 Network port testing method and network port testing device
CN111158610A (en) * 2019-12-31 2020-05-15 苏州浪潮智能科技有限公司 Method, device and equipment for synchronously setting cache acceleration and readable medium
CN111158610B (en) * 2019-12-31 2022-02-22 苏州浪潮智能科技有限公司 Method, device and equipment for synchronously setting cache acceleration and readable medium
CN114647200A (en) * 2020-12-17 2022-06-21 新疆金风科技股份有限公司 Hardware-in-the-loop test platform, variable-pitch-in-the-loop test system and test system
CN113406572A (en) * 2021-06-23 2021-09-17 四川九洲电器集团有限责任公司 Radar parallel processing system and method, storage medium and terminal

Also Published As

Publication number Publication date
CN100573456C (en) 2009-12-23

Similar Documents

Publication Publication Date Title
CN100573456C (en) A kind of paralleling multi-processor virtual machine system
CN101968746B (en) A kind of implementation method of kernel virtual machine Organizational Structure Mode
US11010053B2 (en) Memory-access-resource management
Schüpbach et al. Embracing diversity in the Barrelfish manycore operating system
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
Bugnion et al. Disco: Running commodity operating systems on scalable multiprocessors
JP5911985B2 (en) Providing hardware support for virtual memory shared between local and remote physical memory
JP5357972B2 (en) Interrupt communication technology in computer system
CN103793255B (en) Starting method for configurable multi-main-mode multi-OS-inner-core real-time operating system structure
CN102693162A (en) Method for process communication among multiple virtual machines on multi-core platform based on shared memory and intercore interruption
WO2007038011A1 (en) Real-time threading service for partitioned multiprocessor systems
US11301142B2 (en) Non-blocking flow control in multi-processing-entity systems
US10459771B2 (en) Lightweight thread synchronization using shared memory state
Gracioli et al. An experimental evaluation of the cache partitioning impact on multicore real-time schedulers
Lin et al. K2: A mobile operating system for heterogeneous coherence domains
Puri et al. Dracksim: Simulating cxl-enabled large-scale disaggregated memory systems
US10108349B2 (en) Method and system that increase storage-stack throughput
Zou et al. DirectNVM: Hardware-accelerated NVMe SSDs for high-performance embedded computing
US11243800B2 (en) Efficient virtual machine memory monitoring with hyper-threading
Shukla et al. Shared memory heterogeneous computation on PCIe-supported platforms
Matsuo et al. A file I/O system for many-core based clusters
Liu et al. Inter-Core Communication Mechanisms for Microkernel Operating System based on Signal Transmission and Shared Memory
US20240248744A1 (en) Systems and methods for offloading guest tasks to a host system
WO2023225991A1 (en) Dynamic establishment of polling periods for virtual machine switching operations
Suzuki Making gpus first-class citizen computing resources in multitenant cloud environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091223

Termination date: 20121210