0% found this document useful (0 votes)
33 views8 pages

RTOS

This document provides an introduction to Real-Time Operating Systems (RTOS), focusing on the concepts of tasks and processes, their states, and scheduling. It explains the differences between general operating systems and RTOS, detailing timing requirements, release times, deadlines, and the structure of process and task control blocks. Additionally, it discusses task characteristics, multitasking operations, and the importance of reentrant functions in RTOS environments.

Uploaded by

Ramesh B
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views8 pages

RTOS

This document provides an introduction to Real-Time Operating Systems (RTOS), focusing on the concepts of tasks and processes, their states, and scheduling. It explains the differences between general operating systems and RTOS, detailing timing requirements, release times, deadlines, and the structure of process and task control blocks. Additionally, it discusses task characteristics, multitasking operations, and the importance of reentrant functions in RTOS environments.

Uploaded by

Ramesh B
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

RTOS: Multiple tasks and Processes

In this module introduction to RTOS will be given. An RTOS becomes essential


when there is processing and servicing of multiple tasks and multiple devices with
real time constraints.Hence in this module, the ideas of Processes and Tasks will be
discussed. The multiple tasks, processes and process control block will also be
discussed.

1.OS and RTOS

Real-Time Operating system (RTOS) is the operating system that provides


facilities for satisfying the real-time requirements. It also allocates resources by
considering real time constraints and with the help of real time algorithms it
allocates resources but in General operating system (OS) allocates resources based
on the criteria like fairness. It also allocates the process without regards to time
which can easily cause processes to miss their deadlines.

1.1 Task and process

A process is a single execution of a program. If the same process runs at


different times, it is nothing but two different processes are created. Every process
has its own state and each state include registers and memory. In many OSs each
process is kept in a separate address space by the memory management unit.
Threads are processes, which will share same address space, while a task is
composed of several processes or threads that have their own address space.

1.2 Release time and deadline.

Depending on the application, processes will have timing requirements. A


scheduling policy which defines how processes are selected for promotion from the
ready state to the running state. It must define the timing requirements that it uses
whether the schedule is valid or not. The timing requirements are mainly divided
into release time and deadline.

Aperiodic and periodic :

The period of a process is the time between successive executions. Periodic


processes have regular arrival times and hard deadlines. Aperiodic process have
irregular arrival times and either soft or hard deadlines. An aperiodic process is
initiated by an event such as external data arriving or data computed by another
process.

Process Rate : It is the inverse of its period.

1.2.1 Release time – It is the time at which the process becomes ready to execute.
For aperiodic,the process is initiated by an event. The release time for aperiodic is
measured from that event onwards.

In periodic process the release time will be determined in two ways. For simpler
system, the process will be ready at the start of the period. In sophisticated systems
, the release time will be set at the arrival of data.

1.2.2 Deadline– It is the time at which the process must finish. For aperiodic
process the deadline is measured from the release time. In case of periodic process
it may occur at some time other than the end of the period.

Figure 1 shows the example for release time and deadline.

Dead line frequency will occur in two ways i.e. periodic and aperiodic.
There are three types of deadlines as follows:

● Hard: failure to meet deadline causes system failure.

● Soft: failure to meet deadline causes degraded response.

● Firm: late response is useless but some late responses can be tolerated.

2. Timing requirements on processes:

In a multirate system each process executes at its own distinct rate. The most
common case for periodic processes is for the initiation interval to be equal to the
period. However, the overlapped execution of different instances of processes
allows the initiation interval to be less than the period. A sequence of processes
with high initiation rate is shown in figure 2. The various execution instances of
program P1 have been subscripted to distinguish their initiation time. In this
example, there are four instances of the processes given to four different processors
with initiation interval is equal to one fourth of the period. The fifth instance of the
process is assigned back to CPU 1.

There will be a possibility of process initiation rate less than the period even in
case of single-CPU systems. If the process execution time is significantly less than
the period, the multiple copies of a program can be initiated in slightly offset times.

2.1 Process State and Scheduling


The process will be in any one state. The states are ready, executing and waiting
states.

• Ready- A process goes into the ready state when it receives its required data
and when it enters a new period.
• Waiting-A process goes into the waiting state when it needs data that it has not
yet received or when it has finished all its work for the current period.
• Executing-A process can go into the executing state only when it has all its
data, that is ready to run.

The process state is shown in figure 3.

Each process will have its own process control block (PCB). The PCB consists
of a data structure having the information using which the OS controls the process
state. The PCB is stored in the memory area of the kernel. It consists of the
information about the process state. The main components of PCB are

• Process ID

• Process priority
• Parent process

• Child process and address to the PCB of the next process which will run.

3. Task
A task is like a process or thread in an OS. In RTOS, task term is used for the
process. It consists of executable program (codes), state of which is controlled by
OS. Each task will have the task control block (TCB). The TCB will have data
structure information using which the OS controls the task state. The task will be
any one of these states – idle, ready, running, and blocked or finished.

The states are as follows:

• Idle state

• Ready State •Running state •Blocked (waiting) state •Delayed for a preset
period

•Idle state- task has been created and memory is allotted to its structure,if it is not
ready, then task is not scheduled by kernel.

Ready State – The created task is ready and is schedulable by the kernel but not
running at present as another higher priority task is scheduled to run and gets the
system resources at this instance.

Run state-Executing the codes and getting the system resources at this instance.
It will run till it needs some IPC (input) or wait for an event or till it gets
preempted by another higher priority task than this one.
Blocked state- Execution of task codes suspends after saving the needed
parameters into its context. It needs some IPC (input) or it needs to wait for an
event or wait for higher priority task to block to enable running after blocking.

Deleted Task─ The created task has memory de-allotted to its structure. It frees
the memory. Task has to be re-created.

The contents of a task control block are shown in figure 5.

The TCB consists of a Task ID which is a number between 0 and 255. In Tasks
Context, PC is the Program Counter which maintains the address of the next
instruction to be executed. Stack pointer, CPU and the Processor status register are
also available in the tasks context. The priority for a task is given using the Task
priority in TCB which is between 0 and 255 and is represented by bytes. Parent
Task and child task are also maintained using Task priority.

The Allocated program memory addresses the blocks in physical memory and in
secondary (virtual) memory for the tasks-codes,
• Allocated task-specific data address blocks.

• Allocated task-heap (data generated during the program run) addresses

• Allocated addresses of CPU register-save area as a task context represents by


CPU registers, which include the program counter and stack pointer. Allocated
task-stack addresses for the functions called during running of the process.

• Allocated addresses of CPU register-save area as a task context represents by


CPU registers, which include the program counter and stack pointer.

•Allocated addresses of CPU register save area as a task context. Task is


independent, it takes control of the CPU when scheduled by a scheduler at an OS.
The scheduler controls and runs the tasks.

Task Characteristics for a single CPU in a system:

Task is an independent one and it cannot call another task. Each task is identified
by a TCB. Each task has an ID just as each function has a name. The ID, task ID is
a byte if it is between 0 and 255. ID is also an index of the task. Each task may
have a priority parameter. If the priority is between 0 and 255, it is represented by
a byte. Multitasking operations are done by context switching between the various
tasks and it is performed by OS Scheduler. Each task must be either a reentrant
routine or it must have a way to solve the shared data problem. A function is
reentrant if it can be invoked while the process is already executing.

For a function to be rentrant the following should hold:

 All the arguments pass the values and none of the arguments is a pointer.
 Whenever a function call is initiated and when an operation is not atomic that
function should not operate on any variable which is declared outside the function
or which an interrupt service routine uses or which is a global variable.
 A variable should be passed by reference as an argument into the function and that
function should not call any other function which is not itself reentrant.

4. Summary
In this module we discussed about the Task and Process. The Multi task and
processes are explained in detail. Both the Process control block and Task control
block are also explained.

1. References
2. Wayne Wolf, “Computers as components: Principles of embedded computing
systems design”; Second edition, published by Morgan Kaufmann series(2008).
3. Embedded Systems Architecture, Programming and Design – Raj Kamal, second
edition, Tata McGraw-Hill Education 2008.

You might also like