Browse Prior Art Database

Adding non-realtime scheduler function to any realtime operating system

IP.com Disclosure Number: IPCOM000015603D
Original Publication Date: 2002-Mar-15
Included in the Prior Art Database: 2003-Jun-20
Document File: 3 page(s) / 64K

Publishing Venue

IBM

Abstract

We assume that the base RTOS (Realtime Operating System) provides only the priority base scheduling for its tasks. The RTOS has no capability to support the other scheduling than the priority base scheduling, e.g. time-slice, round robin, etc. In this invention, the non-realtime scheduler is implemented as an RTOS task . Any preferable scheduling algorithm can be adopted for the scheduler. The POSIX scheduler can be developed and implemented over an ITRON, which is the most familiar RTOS in Japan. This reference implementation basically supports SCHED_OTHER like the legacy UNIX system, and both SCHED_RR (Round Robin) and SCHED_FIFO for the POSIX realtime extension. The following chart depicts the reference implementation.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 55% of the total text.

Page 1 of 3

Adding non-realtime scheduler function to any realtime operating system

We assume that the base RTOS (Realtime Operating System) provides only the priority base scheduling for its tasks. The RTOS has no capability to support the other scheduling than the priority base scheduling, e.g. time-slice, round robin, etc.

In this invention, the non-realtime scheduler is implemented as an RTOS task . Any preferable scheduling algorithm can be adopted for the scheduler.

The POSIX scheduler can be developed and implemented over an ITRON, which is the most familiar RTOS in Japan. This reference implementation basically supports SCHED_OTHER like the legacy UNIX system, and both SCHED_RR (Round Robin) and SCHED_FIFO for the POSIX realtime extension.

The following chart depicts the reference implementation.

1

Page 2 of 3

Priority High Prio rity Lo

 ITRON Realtime Tasks

POSIX Scheduler

ReadyQ

POSIX TCB

POSIX TCB

POSIX TCB

POSIX TCB

WaitQ

POSIX TCB

POSIX TCB

POSIX TCB

w

POSIX Thread

POSIX Thread

POSIX Thread

POSIX Thread

POSIX Thread

Ready Suspend Suspend Suspend Suspend

Since the scheduler should not affect the realtime tasks, it is registered as a low priority task . If there is no realtime task in the ready state, the scheduler can perform its job.

The scheduler manages POSIX threads as a scheduling unit using some queues. Each queue indicates a state of the POSIX thread, and has a list of POSIX TCBs (Thread Control Blocks) to represent the POSIX threads. The ready queue (ReadyQ in the above figure) has a list of the POSIX TCBs which are ready to run. The wait queue (WaitQ in the above figure) has a list of the POSIX threads which wait for any event.

2

[Th...