Zephyr Project Requirements
Thread Scheduling

Thread Scheduling

Type LevelUIDREFS Title Statement Rationale Comment
Text

SPDX-License-Identifier: Apache-2.0

Requirement 1
Thread Scheduling
Requirement 1.1 ZEP-SRS-2-1
Support operation on more than one CPU

The Zephyr RTOS shall support operation on more than one physical CPU sharing the same kernel state.

Requirement 1.2 ZEP-SRS-2-2
Running threads on specific CPUs

The Zephyr RTOS shall provide an interface for running threads on specific sets of CPUs ( default is 1 CPU).

Requirement 1.3 ZEP-SRS-2-3
Exclusion between physical CPUs

The Zephyr RTOS shall provide an interface for mutual exclusion between multiple physical CPUs.

Requirement 2
Thread Scheduling
Requirement 2.1 ZEP-SRS-2-4
Scheduling a thread based on an event

The Zephyr RTOS shall provide an interface to schedule a thread based on an event.

Requirement 2.2 ZEP-SRS-2-5
Deadline Scheduling Priorities

The Zephyr RTOS shall organize running threads by earliest deadline first priority.

Requirement 2.3 ZEP-SRS-2-6
Work Queue utility capable of running preemptible work items

The Zephyr RTOS shall provide a thread-pooled work queue utility capable of running preemptible work items with specific scheduler priorities.

Requirement 2.4 ZEP-SRS-2-7
Run user supplied functions in-order in a separate thread(s)

The Zephyr RTOS shall provide an interface for running user-supplied functions.

Requirement 2.5 ZEP-SRS-2-8
Organize running threads into a fixed list

The Zephyr RTOS shall organize running threads into a fixed list of numeric priorities.

Requirement 2.6 ZEP-SRS-2-9
Preemption support

The Zephyr RTOS shall support preemption of a running thread by a higher priority thread.

Requirement 2.7 ZEP-SRS-2-10
Un-preemptible thread priorities

The Zephyr RTOS shall support thread priorities which cannot be preempted by other user threads.

Requirement 2.8 ZEP-SRS-2-11
Time sharing of CPU resources

The Zephyr RTOS shall support time sharing of CPU resources among threads of the same priority.