Sunteți pe pagina 1din 20

VxWorks 5.

4
Group A3: Wafa Jaffal Kathryn Bean

Topics 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
2

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
3

Standard for RTOS


Standard requirement for RTOS
POSIX 1003.1b by ISO/IEEE chapter. POSIX interfaces: Asynchronous I/O Semaphore Queued signals Scheduling Clocks and timers

Message queues

Memory management
4

VxWorks OS as RTOS

Layer Structure
Real-Time Embedded Application Internet File System

Graphics Java Support

Multiprocessing POSIX Library

WindNet Networking
Core OS: Wind Microkernal
6

Multitasking
P R
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. 7

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.
8

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.
9

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

10

Shared Code and Reentrancy, Continued


Dynamic Stack Variables Tasks
Task1( ){ .. comFun(myData1) }

Task Stacks myData1

Common Function

comFun(yourData){

}
Task2( ){ .. comFun(myData2) }

myData2
11

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).

12

Intertask Communications, One CPU


Types of Intertask Communications: Shared Data Message Queue Pipes - Virtual I/0 Network Intertask Communication Sockets Remote Procedure Call

13

Intertask Communication, Shared Data


Tasks
1. Access SharData

Memory

2.

Access SharData

SharData

3.

Access SharData

14

Semaphores
Semaphore - mechanism for mutual exclusion and intertask communication. Binary Semaphore
Semaphore available YES Task cont. Semaphore taken NO TimeOut= No_Wait YES Task cont. Semaphore not taken
15

NO

Task is pended for timeOut

Semaphores, Continued
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 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 > timeout, ERROR occurs.

16

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.

17

Applications for VxWorks


Some usage of RTOS Flight simulators Radio and optical telescopes Printers Digital cameras

Navigation systems
Deep sea instrumentation Traffic control systems

Hand-held computing devices


Routers, switches, and other network devices

Modems

any systems where rigid time requirement have been placed on the operation of a processor or the flow of the data.
18

Thank You
Any Questions ?

19

Bibliography
VxWorks 5.4 Programmer Guide

20

S-ar putea să vă placă și