Vous êtes sur la page 1sur 20

1

VxWorks 5.4
Group A3:
Wafa Jaffal
Kathryn Bean
2
What is Real Time Operating System (RTOS)
Standard for RTOS
VxWorks Features as RTOS
Layer Structure
Microkernal Functions:
Multitasking
Scheduling
Interrupt Service Code
Shared Code and Reentrancy
Intertask Communications
Applications for VxWorks







Topics Covered
3
What is Real Time OS
(RTOS)
RTOS Characteristics
Processing must be done within a time constraint or the
system will fail.
All delays in the system will be bounded; from the retrieval of
stored data to the time RTOS finishes the request.
Types of RTOS
Hard RTOS
Soft RTOS
4
Standard for RTOS
Standard requirement for RTOS
POSIX 1003.1b by ISO/IEEE chapter.
Asynchronous I/O
Semaphore
Message queues

Queued signals
Scheduling
Clocks and timers
Memory management
POSIX interfaces:
5
VxWorks OS as RTOS
6
Layer Structure
Real-Time Embedded Application
Graphics Multiprocessing
Internet
Java Support POSIX Library File System
WindNet Networking
Wind Microkernal
Core OS:
7
Multitasking
P R D
S
Suspended used primarily for debugging
Ready wait for CPU,
a single primitive=create+activate
Pended blocked, wait t time for recourses. After
t - Error.
Delay asleep for t time, after t goes to ready state.
On a context switch, a tasks context is saved in TCB. All code
executes in a single common space. Memory isnt saved.

8
Scheduling, One CPU
Priority-based preemptive scheduling
Each task has priority (from 0 - highest to 255 -
lowest). Each priority has its own queue.
If two tasks are in the ready state, a lower priority task
would be pre-empted by one of a higher priority.
Round-robin scheduling
After time slice for a task expires, another task with the
same priority will execute during the given time slice.
Preemption locks
These locks prevent task context switching, but do not
prevent interrupt handling.
9
Interrupt Service Code
Via interrupts, the system is informed of external
events.
Interrupt Service Routines (ISRs) run outside any
task context.
Interrupt handling involves no task context switch.
Limitations of ISR:
All ISRs share the same stack
ISR has no context that can be suspended
Cannot take the semaphore, but can give the
semaphores, releasing any task waiting on them.
Cannot perform I/O through drivers except pipe.

10
Shared Code and
Reentrancy
Shared Code - a single copy of code executed by multiple
tasks.
Shared Code must be reentrant. A subroutine is reentrant if a
single copy of the routine can be called simultaneously from
several task contexts without conflict.
Reentrancy Techniques:
Dynamic Stack Variables
Global and Static Variables Guarded by Semaphores
Task Variables
11
Shared Code and
Reentrancy, Continued
Task1( ){ ..
comFun(myData1)
}
Task2( ){ ..
comFun(myData2)
}
comFun(yourData){
}
myData1
myData2
Dynamic Stack Variables
Tasks
Task Stacks
Common Function
12
Shard Code and
Reentrancy, Continued
Guarded Global and Static Variables
Mutual-exclusion mechanism - only one task at a time
can be in a critical section of the code.
Task Variables
Four byte variables are added to the task context
block (TCB).
13
Intertask Communications,
One CPU
Shared Data
Message Queue
Pipes - Virtual I/0
Network Intertask Communication
Sockets
Remote Procedure Call
Types of Intertask Communications:
14
Intertask Communication,
Shared Data
Access SharData
Access SharData
Tasks Memory
Access SharData
SharData
1.
2.
3.
15
Semaphores
Semaphore - mechanism for mutual exclusion and intertask
communication.
Binary Semaphore
Semaphore
available
TimeOut=
No_Wait
Task is
pended for
timeOut
Task cont.
Semaphore
taken
NO NO
NO
YES
Task cont.
Semaphore
not taken
YES
16
Semaphores, Continued
Is semaphore is given and no tasks are
blocked, count ++
Counting Semaphore
Every time is semaphore is given count ++
Every time is semaphore is taken count --
If count=0, task that tried to take semaphore is blocked
If semaphore is given and task is blocked, task is
unblocked
Special Semaphore Option (Not in POSIX)
Timeout
Time the task is willing to wait (time in ticks) in pended
state. If time > timeout, ERROR occurs.
17
Intertask Communication,
Message Queue
Allows a variable number of messages to be queued
Any task or ISR can send a message to a queue.
Multiple tasks can send and receive from the same
message queue.
Timeout Parameter:
Send message: how long to wait for buffer space
to place message.
Receive message: how long to wait to obtain
message.
18
Applications for VxWorks
Flight simulators
Radio and optical telescopes
Navigation systems
Deep sea instrumentation
Traffic control systems
Modems
any systems where rigid time requirement have been
placed on the operation of a processor or the flow of the data.
Some usage of RTOS
Printers
Digital cameras
Hand-held computing
devices
Routers, switches, and
other network devices

19
Thank You
Any Questions ?
20
Bibliography
VxWorks 5.4 Programmer Guide

Vous aimerez peut-être aussi