IP Library › Granted Patent US 11,194,622
Granted Patent B2
US 11,194,622 · App. 16/468,288 · Granted Dec 7, 2021

System and method for scheduling a plurality of guest systems and/or threads

Inventor: Michael Peter (Berlin, DE)
Assignee: OPENSYNERGY GMBH
G06F9/4881G06F9/3836G06F9/455G06F9/45558G06F9/48G06F9/485G06F9/4806G06F9/4818G06F9/4843G06F9/50G06F9/5005G06F9/5027G06F9/5038G06F9/5061G06F9/5066G06F9/5077G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,194,622
App. No.
16/468,288
Granted
Dec 7, 2021
Kind
B2
Abstract

A method for scheduling guest systems and/or threads in a virtualization system that assigns processor time and memory space to guest systems and including a virtualization system scheduler, the method including running a first guest system that includes at least one first thread and at least one second thread running in the first guest system, and a guest system scheduler that assigns processing time to the at least one second thread, assigning a plurality of time reservations to the first guest system, wherein the plurality of time reservations include a first time reservation associated to one first thread and a second time reservation associated to the guest system scheduler of the first guest system, assigning processor time to the first guest system according to the second time reservation, and assigning processor time to the at least one first thread of the first guest system according to the first time reservation.

Claims (48)

1. A method for scheduling a plurality of guest systems and/or threads in a system, the system comprising a virtualization system running on a processor, the virtualization system adapted to assign processor time and memory space to the plurality of guest systems and comprising a virtualization system scheduler, the method comprising:

running a first guest system on the virtualization system, the first guest system comprising at least one first thread and at least one second thread running in the first guest system, and a guest system scheduler adapted to assign processing time to the at least one second thread;

assigning, in the virtualization system, a plurality of time reservations to the first guest system, wherein the plurality of time reservations comprises a first time reservation associated to the at least one first thread and a second time reservation associated to the guest system scheduler of the first guest system;

assigning processor time, by the virtualization system scheduler, to the first guest system according to the second time reservation; and

further assigning processor time, by the virtualization system scheduler, to the at least one first thread of the first guest system according to the first time reservation, comprising:

providing, by the virtualization system scheduler, information to the first guest system, the information enabling to determine that the at least one first thread has to be dispatched;

dispatching, by the virtualization system, the first guest system; and

further dispatching, by a dispatcher of the first guest system, the at least one first thread in the first guest system.

2. The method according to claim 1 , wherein the first guest system comprises a selector module, the method further comprising:

obtaining, by the selector module, the information from the virtualization system scheduler;

determining from the information that the first thread is to be dispatched; and

in response to determining from the information that the first thread is to be dispatched, dispatching the first thread.

3. The method according to claim 1 , wherein said assigning processor time, by the virtualization system scheduler, to the first guest system according to the second time reservation comprises:

providing, by the virtualization system scheduler, information to the first guest system, the information enabling to determine that a guest system scheduler has to determine the thread to be dispatched; and

dispatching the first guest system.

4. The method according to claim 3 , wherein the first guest system comprises a selector module, the method further comprising:

obtaining, by the selector module, the information from the virtualization system scheduler;

determining from the information that the guest system scheduler has to determine the thread to be dispatched; and

in response to said determining from the information that the guest system scheduler has to determine the thread to be dispatched, assigning processor time, by the guest system scheduler of the first guest system, to the at least one second thread.

5. The method according to claim 1 , further comprising:

running a second guest system and/or a third guest system on the virtualization system, the second guest system comprising at least one thread and/or the third guest system comprising at least one thread running in the same processor privilege level as a scheduler and a dispatcher of the third guest system;

assigning a fourth time reservation to the second guest system and/or a fifth time reservation to the third guest system; and

dispatching, depending on the fourth time reservation, the second guest system and/or dispatching, depending on the fourth time reservation, the third guest system.

6. The method according to claim 1 , wherein the information is an identifier, in particular an integer stored by the virtualization layer scheduler in a scheduling information shared memory.

7. The method according to claim 1 , wherein the at least one first thread is a real-time thread.

8. The method according to claim 1 , wherein the at least one second thread is a non-real time thread.

9. The method according to claim 1 , wherein a guest system, the information, a type of scheduling and/or a scheduling parameter is assigned to each time reservation, wherein in particular the type of scheduling is a real time scheduling or a fair share scheduling.

10. Non-volatile memory including a program containing commands for executing a method for scheduling a plurality of guest systems and/or threads in a system, when loaded and executed on a processor, the system comprising a virtualization system adapted to assign processor time and memory space to the plurality of guest systems and comprising a virtualization system scheduler, the method comprising:

running a first guest system virtualization system, the first guest system comprising at least one first thread and at least one second thread running in the first guest system, and a guest system scheduler adapted to assign processing time to the at least one second thread;

assigning, in the virtualization system, a plurality of time reservations to the first guest system, wherein the plurality of time reservations comprises a first time reservation associated to the at least one first thread and a second time reservation associated to the guest system scheduler of the first guest system;

assigning processor time, by the virtualization system scheduler, to the first guest system according to the second time reservation; and

assigning processor time, by the virtualization system scheduler, to the at least one first thread of the first guest system according to the first time reservation, comprising

providing, by the virtualization system scheduler, information to the first guest system, the information enabling to determine that the at least one first thread has to be dispatched;

dispatching, by the virtualization system, the first guest system; and

further dispatching, by a dispatcher of the first guest system, the at least one first thread in the first guest system.

11. A system comprising:

at least one processor connected to at least one memory;

a virtualization system adapted to run on said at least one processor, the virtualization system being adapted to assign processor time and memory space to a plurality of guest systems, and comprising a virtualization system scheduler;

a first guest system adapted to run on said virtualization system, the first guest system comprising:

at least one first thread adapted to run in the first guest system;

at least one second thread adapted to run in the first guest system;

a guest system scheduler adapted to assign processing time to said at least one second thread; and

a dispatcher adapted to dispatch said at least one first thread,

wherein, in said virtualization system, a plurality of time reservations is assigned to said first guest system, the plurality of time reservations comprising a first time reservation for said at least one first thread and a second time reservation associated to said guest system scheduler of said first guest system,

wherein said virtualization system scheduler is adapted to assign processor time to said first guest system according to the second time reservation, and

wherein said virtualization system scheduler is further adapted to assign processor time to said at least one first thread of said first guest system according to the first time reservation by providing information to said first guest system, the information enabling to determine that said at least one first thread has to be dispatched, dispatching, by said virtualization system, said first guest system, and further dispatching, by said dispatcher of said first guest system, said at least one first thread in the first guest system.

12. The system according to claim 11 , wherein assigning processor time, by said virtualization system scheduler, to said first guest system according to the second time reservation comprises dispatching said first guest system.

13. The system according to claim 12 , wherein said first guest system comprises a guest system scheduler adapted to assign processor time to said at least one second thread.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2024
From: OPENSYNERGY GMBH
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 067850/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2019
From: PETER, MICHAEL
To: OPENSYNERGY GMBH
Reel/Frame 049425/0917 →
Priority Claims (1)
EP 16207006 · Dec 27, 2016 · regional
Continuity (1)
Related Publication 20200081737A1 · Mar 12, 2020