# US 8,789,051 B2 · Operating system and architecture for embedded system

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

- Number: US 8,789,051 B2
- Document ID: US8789051B2
- Status: Granted
- Kind: B2
- Application number: 10/991,743
- Filed: 2004-11-18
- Published: 2006-05-18
- Granted: 2014-07-22
- Earliest claimed: 2004-11-18
- Assignees: Hamilton Sundstrand Corporation
- Applicants: Jeffrey S. Schmidt; Mark E. Jenkinson
- Inventors: Jeffrey S. Schmidt; Mark E. Jenkinson
- Web page: https://patentgrep.com/patent/US8789051B2

## CPC

- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 9/4887: {involving deadlines, e.g. rate based, periodic}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An improved operating system and architecture, particularly useful for aircraft, provides a schedule for multiple tasks that ensures that each task has sufficient execution time and does not interfere with any other tasks. In the operating system, each task is scheduled to a deadline monotonic algorithm. The algorithm creates a schedule for the tasks in which the tasks are time partitioned by task, not by task level. The APIs in the operating system are provided by the services. Thus, changing a service, e.g. because of a change in hardware, is facilitated, since the service will provide the proper API.

## Claims

### Claim 1

An operating system for an aircraft comprising:
at least one first partition and at least one second partition, the at least one first and second partitions protected from one another such that one of the at least one first or second partitions cannot corrupt another of the at least one first or second partitions;
a plurality of first tasks in the at least one first partition, wherein first tasks having different criticality levels run on different first partitions and cannot share a first partition, and wherein first tasks having the same criticality level share a first partition;
a plurality of second tasks in the at least one second partition, wherein second tasks having different criticality levels run on different second partitions and cannot share a second partition, and wherein second tasks having the same criticality level share a second partition, wherein the plurality of first and second tasks are operated in a user mode, and wherein the at least one first partition and the at least one second partition are further protected from one another such that a failure in one of the plurality of first tasks does not impede the execution of one of the plurality of second tasks, and such that a failure in one of the plurality of second tasks does not impede the execution of one of the plurality of first tasks; and
a first Application Programming Interface (API) for providing communication between a selected one of the plurality of first tasks task and a selected one of the second tasks on a computer, wherein the first API is a device driver that is set up in a supervisor mode and operated in the user mode.

### Claim 2 (depends on 1)

The operating system of claim 1 wherein the first API is a first message queue.

### Claim 3 (depends on 2)

The operating system of claim 2 wherein the first message queue provides communication only in a single direction, from the first task to the second task.

### Claim 4 (depends on 3)

The operating system of claim 3 further including a second message queue providing communication only in a single direction, from the second task to the first task.

### Claim 5 (depends on 1)

The operating system of claim 1 wherein execution of the first task and the second task is time-partitioned, such that the first task is executed in first period and the second task is executed in a second period, the first task sending data to the message queue during the first period, the second task receiving the data from the message queue during the second period.
