# US 2018/0321973 A1 · Method and apparatus for scheduling tasks to a cyclic schedule

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0321973 A1
- Document ID: US20180321973A1
- Status: Published application
- Kind: A1
- Application number: 15/968,342
- Filed: 2018-05-01
- Published: 2018-11-08
- Earliest claimed: 2017-05-04
- Assignees: Robert Bosch GmbH
- Applicants: Robert Bosch GmbH
- Inventors: Nigel Tracey; Alexander Vensmer; Gary Morgan; Michael Mutter; Paul Austin; Thomas Wendel
- Web page: https://patentgrep.com/patent/US20180321973A1

## CPC

- G06F 9/4887: {involving deadlines, e.g. rate based, periodic}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/54: Interprogram communication
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for scheduling tasks to a cyclic schedule, comprising maintaining a request queue, a count, the count being initialized to a given limit, and an index of a current time slot within the schedule. Periodically, if the request queue contains a reference to an urgent task among the tasks, that reference is removed from the request queue and the urgent task is dispatched and if the request queue is empty, the index is advanced to the next time slot within the schedule. If the next time slot is statically assigned to a task among the tasks, that task is dispatched, and if the next time slot is unassigned and the count is below the limit, the count is incremented and the index is further advanced to the next but one time slot.

## Claims

### Claim at position 1

1-10. (canceled)

### Claim 11

A method for scheduling tasks to a cyclic schedule, comprising:
maintaining a request queue, a count, the count being initialized to a given limit, and an index of a current time slot within the schedule, wherein periodically:
if the request queue contains a reference to an urgent task among the tasks, the reference is removed from the request queue and the urgent task is dispatched; and
if the request queue is empty, the index is advanced to the next time slot within the schedule, wherein:
if the next time slot is statically assigned to a first task among the tasks, the first task is dispatched, and
if the next time slot is unassigned and the count is below the limit, the count is incremented and the index is further advanced to the next but one time slot.

### Claim 12 (depends on 11)

The method according to claim 11, wherein upon request by management software while the count is greater than zero, the count is decremented and a reference to a specified task among the tasks is added to the request queue.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the request is submitted through an application programming interface.

### Claim 14 (depends on 13)

The method according to claim 13, wherein the request queue, the count, and the index are maintained by a hypervisor providing the application programming interface.

### Claim 15 (depends on 14)

The method according to claim 14, wherein the hypervisor is in the form of a type-1 hypervisor.

### Claim 16 (depends on 14)

The method according to claim 14, wherein the management software controls the hypervisor and the tasks.

### Claim 17 (depends on 14)

The method according to claim 14, wherein access to the application programming interface is restricted to the management software.

### Claim 18

A non-transitory machine-readable storage medium on which is stored a computer program for scheduling tasks to a cyclic schedule, the computer program, when executed by a computer, causing the computer to perform:
maintaining a request queue, a count, the count being initialized to a given limit, and an index of a current time slot within the schedule, wherein periodically:
if the request queue contains a reference to an urgent task among the tasks, the reference is removed from the request queue and the urgent task is dispatched; and
if the request queue is empty, the index is advanced to the next time slot within the schedule, wherein:
if the next time slot is statically assigned to a first task among the tasks, the first task is dispatched, and
if the next time slot is unassigned and the count is below the limit, the count is incremented and the index is further advanced to the next but one time slot.

### Claim 19

An apparatus adapted to schedule tasks to a cyclic schedule, the apparatus adapted to:
maintain a request queue, a count, the count being initialized to a given limit, and an index of a current time slot within the schedule, wherein periodically:
if the request queue contains a reference to an urgent task among the tasks, the reference is removed from the request queue and the urgent task is dispatched; and
if the request queue is empty, the index is advanced to the next time slot within the schedule, wherein:
if the next time slot is statically assigned to a first task among the tasks, the first task is dispatched, and
if the next time slot is unassigned and the count is below the limit, the count is incremented and the index is further advanced to the next but one time slot.
