Title: VxWorks 5.4
1VxWorks 5.4
- Group A3
- Wafa Jaffal
- Kathryn Bean
2Topics Covered
- 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
-
3What 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.
4Standard for RTOS
- Standard requirement for RTOS
- POSIX 1003.1b by ISO/IEEE chapter.
POSIX interfaces
- Queued signals
- Scheduling
- Clocks and timers
- Asynchronous I/O
- Semaphore
- Message queues
5VxWorks OS as RTOS
6Layer Structure
Real-Time Embedded Application
Internet
Graphics
Multiprocessing
Java Support
POSIX Library
File System
WindNet Networking
Core OS
Wind Microkernal
7Multitasking
P
R
D
S
- Suspended used primarily for debugging
- Ready wait for CPU,
- a single primitivecreateactivate
- 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. -
8Scheduling, 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.
9Interrupt 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.
10Shared 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
11Shared Code and Reentrancy, Continued
Dynamic Stack Variables
Task Stacks
Common Function
Tasks
Task1( ) .. comFun(myData1)
myData1
comFun(yourData)
Task2( ) .. comFun(myData2)
myData2
12Shard 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).
13Intertask Communications, One CPU
Types of Intertask Communications
- Network Intertask Communication
- Sockets
- Remote Procedure Call
14Intertask Communication, Shared Data
Tasks
Memory
Access SharData
1.
Access SharData
SharData
2.
Access SharData
3.
15Semaphores
Semaphore - mechanism for mutual exclusion and
intertask communication.
Semaphore available
TimeOut No_Wait
Task is pended for timeOut
NO
NO
NO
YES
YES
Task cont. Semaphore taken
Task cont. Semaphore not taken
16Semaphores, Continued
- Every time is semaphore is given count
- Every time is semaphore is taken count --
- If count0, task that tried to take semaphore is
blocked
- If semaphore is given and task is blocked, task
is unblocked
- Is semaphore is given and no tasks are blocked,
count
- Special Semaphore Option (Not in POSIX)
- Timeout
- Time the task is willing to wait (time in ticks)
in pended state. If time gt timeout, ERROR occurs.
17Intertask 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.
18Applications for VxWorks
Some usage of RTOS
- Flight simulators
- Radio and optical telescopes
- Navigation systems
- Deep sea instrumentation
- Traffic control systems
- Modems
- Printers
- Digital cameras
- Hand-held computing devices
- Routers, switches, and other network devices
any systems where rigid time requirement have
been placed on the operation of a processor or
the flow of the data.
19Thank You
Any Questions ?
20Bibliography
VxWorks 5.4 Programmer Guide