vx works

Upload: varunsunil

Post on 13-Oct-2015

3 views

Category:

Documents


0 download

DESCRIPTION

vxworks

TRANSCRIPT

  • VxWorks 5.4Group A3:Wafa JaffalKathryn Bean

  • 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

  • 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

  • Standard for RTOS Standard requirement for RTOSPOSIX 1003.1b by ISO/IEEE chapter. Asynchronous I/O Semaphore Message queues

    Queued signals Scheduling Clocks and timers Memory managementPOSIX interfaces:

  • VxWorks OS as RTOS

  • Layer StructureReal-Time Embedded ApplicationGraphicsMultiprocessing InternetJava SupportPOSIX LibraryFile SystemWindNet NetworkingWind MicrokernalCore OS:

  • MultitaskingPRDS 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.

  • 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 schedulingAfter time slice for a task expires, another task with the same priority will execute during the given time slice. Preemption locksThese locks prevent task context switching, but do not prevent interrupt handling.

  • Interrupt Service CodeVia 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.

  • 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

  • Shared Code and Reentrancy, ContinuedTask1( ){ .. comFun(myData1)}Task2( ){ .. comFun(myData2)}comFun(yourData){}myData1myData2Dynamic Stack VariablesTasksTask StacksCommon Function

  • Shard Code and Reentrancy, Continued Guarded Global and Static VariablesMutual-exclusion mechanism - only one task at a time can be in a critical section of the code. Task VariablesFour byte variables are added to the task context block (TCB).

  • Intertask Communications, One CPU Shared Data Message Queue Pipes - Virtual I/0 Network Intertask Communication Sockets Remote Procedure CallTypes of Intertask Communications:

  • Intertask Communication, Shared DataAccess SharDataAccess SharDataTasksMemory Access SharDataSharData1.2.3.

  • SemaphoresSemaphore - mechanism for mutual exclusion and intertask communication. Binary SemaphoreSemaphoreavailableTimeOut=No_WaitTask is pended for timeOut Task cont.Semaphore takenNONONOYESTask cont.Semaphore not takenYES

  • 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) TimeoutTime the task is willing to wait (time in ticks) in pended state. If time > timeout, ERROR occurs.

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

  • 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

  • Thank YouAny Questions ?

  • BibliographyVxWorks 5.4 Programmer Guide