REAL TIME OPERATING SYSTEMS. Lesson-9:

Similar documents
REAL TIME OPERATING SYSTEMS. Lesson-10:

SYSTEM ecos Embedded Configurable Operating System

REAL TIME OPERATING SYSTEMS. Lesson-3:

Priority Inversion Problem and Deadlock Situations

Operating Systems. Lecture 03. February 11, 2013

Exception and Interrupt Handling in ARM

PROGRAMMING CONCEPTS AND EMBEDDED PROGRAMMING IN C, C++ and JAVA: Lesson-4: Data Structures: Stacks

Lecture 6: Interrupts. CSC 469H1F Fall 2006 Angela Demke Brown

Lesson-16: Real time clock DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK

Chapter 2: OS Overview

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

First-class User Level Threads

The Real-Time Operating System ucos-ii

Computer-System Architecture

An Introduction to the ARM 7 Architecture

Device Management Functions

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Operating System Software

1. Computer System Structure and Components

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

Chapter 11: Input/Output Organisation. Lesson 06: Programmed IO

Outline: Operating Systems

Operating System Components and Services

RTOS Debugger for ecos

Performance Comparison of RTOS

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

Operating Systems Lecture #6: Process Management

Embedded Systems. 6. Real-Time Operating Systems

OPERATING SYSTEM SERVICES

Lesson-3 CASE STUDY OF AN EMBEDDED SYSTEM FOR SMART CARD

CS161: Operating Systems

Have both hardware and software. Want to hide the details from the programmer (user).

Tasks Schedule Analysis in RTAI/Linux-GPL

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

Storage. The text highlighted in green in these slides contain external hyperlinks. 1 / 14

OPERATING SYSTEMS SCHEDULING

Process Description and Control william stallings, maurizio pizzonia - sistemi operativi

Chapter 13. PIC Family Microcontroller

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

Linux Process Scheduling Policy

Chapter 1 Computer System Overview

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Interrupts and the Timer Overflow Interrupts Huang Sections What Happens When You Reset the HCS12?

ELEC 377. Operating Systems. Week 1 Class 3

EECE 276 Embedded Systems

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems Chapter-1L03: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Keil C51 Cross Compiler

Chapter 1 FUNDAMENTALS OF OPERATING SYSTEM

Chapter 11 I/O Management and Disk Scheduling

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Chapter 3. Operating Systems

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory

Linux 2.4. Linux. Windows

LAB 5: Scheduling Algorithms for Embedded Systems

Hypervisor: Requirement Document (Version 3)

MQX Lite Real-Time Operating System User Guide

Processor Scheduling. Queues Recall OS maintains various queues

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

Real Time Operating Systems. Tajana Simunic Rosing Department of Computer Science and Engineering University of California, San Diego.

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Chapter 6, The Operating System Machine Level

CS414 SP 2007 Assignment 1

CPU Scheduling. CPU Scheduling

Chapter 02: Computer Organization. Lesson 04: Functional units and components in a computer organization Part 3 Bus Structures

Operating System Manual. Realtime Communication System for netx. Kernel API Function Reference.

Lecture 25 Symbian OS

Shared Address Space Computing: Programming

Chapter 3 Operating-System Structures

Quality of Service su Linux: Passato Presente e Futuro

Computer and Set of Robots

CSC 2405: Computer Systems II

Operating Systems 4 th Class

Real-time KVM from the ground up

W4118 Operating Systems. Instructor: Junfeng Yang

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts

UNIT 4 Software Development Flow

Enhancing the Monitoring of Real-Time Performance in Linux

Comparing RTOS to Infinite Loop Designs

Timer, Interrupt, Exception in ARM

An Implementation Of Multiprocessor Linux

1 Organization of Operating Systems

Computer Organization. and Instruction Execution. August 22

REAL TIME OPERATING SYSTEMS. Lesson-18:

Lecture 5. User-Mode Linux. Jeff Dike. November 7, Operating Systems Practical. OSP Lecture 5, UML 1/33

the high-performance embedded kernel User Guide Version 5.0 Express Logic, Inc Toll Free 888.THREADX FAX

Real Time Operating System for Embedded DSP Applications

Embedded Software development Process and Tools:

Real-Time Operating Systems.

Process Scheduling. Process Scheduler. Chapter 7. Context Switch. Scheduler. Selection Strategies

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

Transcription:

REAL TIME OPERATING SYSTEMS Lesson-9: INTERRUPT ROUTINES IN RTOS ENVIRONMENT AND HANDLING OF INTERRUPT SOURCE CALLS 1

1. INTERRUPT ROUTINES IN RTOS 2

ISRs in RTOSes ISRs have the higher priorities over the RTOS functions and the tasks. An ISR should not wait for a semaphore, mailbox message or queue message An ISR should not also wait for mutex else it has to wait for other critical section code to finish before the critical codes in the ISR can run. Only the IPC accept function for these events (semaphore, mailbox, queue) can be used, not the post function 3

RTOSes Three alternative ways systems to respond to hardware source calls from the interrupts 4

2. Direct Call to an ISR by an Interrupting Source and ISR sending an ISR enter message to OS 5

Direct Call to an ISR 6

Direct Call to an ISR and ISR Enter message On an interrupt, the process running at the CPU is interrupted ISR corresponding to that source starts executing. A hardware source calls an ISR directly. The ISR just sends an ISR enter message to the RTOS. ISR enter message is to inform the RTOS that an ISR has taken control of the CPU 7

ISR IPC messages and Exit message ISR code can send into a mailbox or message queue but the task waiting for a mailbox or message queue does not start before the return from the ISR When ISR finishes, it send s Exit message to OS On return from ISR by retrieving saved context, The RTOS later on returns to the interrupted process (task) or reschedules the processes (tasks). RTOS action depends on the event-messages, whether the task waiting for the event message from the ISR is a task of higher priority than the interrupted task on the interrupt 8

Event Message (IPC) from the ISR On certain RTOSes, there may be a function OSISRSemPost ( ). 9

Example in RTOS COS-II Assume that a microcontroller timer programmed to interrupt every 10 ms. Timer interrupt calls and program counter changes to an ISR vector address, ISR_Timer_Addr. At ISR_Timer_Addr, there is a routine ISR_Timer for the servicing the timer interrupt. ISR_Timer first executes OSIntEnter ( ) just after the start of ISR_Timer 10

Example in RTOS COS-II ISR_Timer then executes OSIntExit ( ) before the return code. OSIntEnter ( ) sends the message to RTOS that there should be return to the ISR only after any system call is made by the ISR until the OSIntExit ( ) executes in the ISR code. Any task waiting for the post of semaphore or mailbox message or queue message should not start on execution of the post function within the ISR or in any other task or ISR 11

Multiple ISRs Nesting Each ISR low priority sends on high priority interrupt the ISR interrupt message (ISM) to the OS to facilitate return to it on the finishing and return from the higher priority interrupt. Nesting means when an interrupt source call of higher priority, for example, SysClkIntr occurs, then the control is passed to higher priority and on return from the higher priority the lower priority ISR starts executing. 12

Multiple ISRs Nesting Each ISR on letting a higher priority interrupt call sends the ISM to the RTOS. Common stack for the ISR nested calls, similar to the nested function calls. 13

3. RTOS first interrupting on an interrupt, then RTOS calling the corresponding ISR 14

RTOS first interrupting on an interrupt 15

RTOS interrupting on an interrupt On interrupt of a task, say, k-th task, the RTOS first gets itself the hardware source call and initiates the corresponding ISR after saving the present processor status (or context) Then the ISR during execution then can post one or more outputs for the events and messages into the mailboxes or queues. 16

RTOS first interrupting on an interrupt The ISR must be short and it must simply puts post the messages for another task. This task runs the remaining codes whenever it is scheduled. RTOS schedules only the tasks (processes) and switches the contexts between the tasks only. ISR executes only during a temporary suspension of a task. 17

Mobile PDA device example Each device event has the codes for an ISR, which executes only on scheduling it by the RTOS and provided an interrupt is pending for its service. Assume that using an RTOS, the touch screen ISR, ISR_TouchScreen has been created using a function OS_ISR_Create ( ). The ISR can share the memory heap with other ISRs. A function, IntConnect connects the touch screen event with the event identifier in an interrupt handler, ISR_handler. 18

Mobile PDA device example When a touch screen event occur on tap at the screen to select icon or menu the OS sends signal on behalf of the ISR_handler to the waiting ISR_TouchScreen. ISR_TouchScreen runs on an interrupt call message ISR_TouchScreen executes as per its priority, IST_TouchScreenPriority among the other pending ISRs before it starts executing 19

Mobile PDA device example Before return from the ISR_TouchScreen, it sends a message to kernel using a function OS_eventPost ( ) or OS_ISR_Exit ( ) just before the end of the codes in the ISR_TouchScreen 20

4. RTOS first interrupting on interrupt, then RTOS calling the corresponding ISR, the ISR sending messages to priority queue of Interrupt Service threads by Temporary Suspension of a scheduled Task 21

RTOS calling the corresponding ISR, the ISR sending messages to priority queue of Interrupt Service threads 22

RTOS calling the corresponding ISR, the ISR sending messages to IST An RTOS can provide for two levels of interrupt service routines, a fast level ISR, FLISR and a slow level ISR (SLISR). The FLISR can also be called hardware interrupt ISR and the SLISR as software interrupt ISR. FLISR is called just the ISR in RTOS Windows CE The SLISR is called interrupt service thread (IST) in Windows CE. 23

ISR sending messages to priority queue of Interrupt Service threads The use of FLISR reduces the interrupt latency (waiting period) for an interrupt service and jitter (worst case and best case latencies difference) for an interrupt service. An IST functions as deferred procedure call (DPC) of the ISR. An i-th interrupt service thread (IST) is a thread to service an i-th interrupt source call. 24

Windows NT Priority level of interrupts always higher than the user-thread priorities. [Threads are also assigned priorities.] Only very critical operations of ISR are performed and the remaining processing passed to a DPC or IST. DPCs executes ass priority FIFOs. 25

Window NT Even very low priority task ISR and DPC can preempt a real time process. DPCs run in FIFO mode. therefore, a DPC of the very low priority ISR may not release a resource. [For example, DPC of network IO or keypad interrupt] 26

Windows CE In Window CE provides for priority inheritance by the IST. Interrupt service threads (equivalent of DPCs) of high priority ISR will inherit the priority of the ISR. Window CE provides hard real time support. 27

Mac OS X RTOS for ipod An interrupt handler first receives the primary interrupt and then it then generates a software interrupt known as a secondary interrupt. The secondary software interrupt using SWI is sent to initiate an IST There is three level strategy 28

Mac OS X OS does not receive the actual interrupt but the low level LISR intercepts the interrupt directly. When LISR is called, it resets the pending interrupt bit in the device interrupt controller and calls a device-specific ISR, say, DISRi. The DISRi posts a message to an ISTi specific to the device. 29

Mac OS X The message notifies to ISTi that an interrupt has occurred, and then the DISRi returns to LISR. LISR resets another pending interrupt bit in the device interrupt controller and calls the another device-specific ISR, say, DISRj. 30

Mac OS X When no further interrupts are pending, the OS control returns to the currently executing thread, which was interrupted and when the OS passed control to the LISR. The IST i are scheduled by the OS, the IST i finds that the SWI interrupt has occurred, it starts and run the codes. ISTs run as if a thread is running 31

Summary 32

We learnt RTOS uses one of three strategies on interrupt source calls (i) An ISR directly servicing directly, after and ISR just merely informing the RTOS on enter and sends exit information before return. 33

We learnt (ii) Kernel intercepting the call and calling the corresponding ISR and tasks. RTOS kernel schedules only the tasks (processes) and ISR executes only during a temporary suspension of the task by the RTOS 34

We learnt (iii) Kernel intercepting the call and calling the ISR, which initiates and queues the ISR call into a priority FIFO. The RTOS kernel schedules the ISTs and tasks (processes) as per priorities In MAC OS X, there is hardware level LISR, which calls device specific DISR, which posts messages to ISTs 35

End of Lesson 9 of Chapter 8 36