Embedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group

Size: px
Start display at page:

Download "Embedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group"

Transcription

1 Embedded Software 7. Embedded software design TI2726 B Koen Langendoen Embedded Software Group

2 Overview Timing services RTOS and ISRs Design of embedded systems General principles

3 Timing Functionality Basic requirement of an embedded RTOS Suspend task for some time (vs. busy wait) Produce a result at a certain time Timeout (wait for an acknowledgement for some time) X32: delay(dt) busy waits (loops) until X32 clock has advanced dt ms ( polling ) RTOS: OSTimeDly(n) suspends caller (task) until time has advanced n OS ticks ( interrupt )!! set a timer variable to x ticks;!! decrement each tick;!! if zero move task to ready 16

4 delay() /* * delay -- busy-wait for ms milliseconds * */ void delay(int ms) { int time = X32_clock; while(x32_clock - time < ms) {} } 17

5 Time Delay Functionality OSTimeDly() is more efficient than delay() schedules other tasks (does useful work) while waiting for time to pass OS needs a timer interrupt mechanism to periodically check time NOTE: without OS, context switching is initiated by task calls => no timer interrupts are needed Timer interrupt => tick => delay resolution (and OS overhead) Timeouts in semaphores, etc. Blocking with WAIT_FOREVER is simple! Blocking for X timer ticks is more difficult Accuracy of a tick: OSTimeDly(3) OSTimeDly(3) time 18

6 OS Delay Processing highest priority task starts first timer ISR RTOS Task 1 Task 2 context switch timer IRQ tick tick OS_Delay(2) delay expired 19

7 Questions Is the parameter of OSTimeDly() given in ms? How accurate is the result of OSTimeDly()? How does the RTOS know how to setup the timer HW? What is normal length of a system tick? What if I need very accurate timing? 20

8 Overview Timing services RTOS and ISRs Design of embedded systems General principles

9 RTOS and Interrupts RTOS and interrupts are two separate worlds Exception are timers > OS delays Embedded programs use interrupts to react to events (buttons, I/O lines, UART, decoder,..) Interrupts and RTOS = trouble! Rule 1: No blocking Rule 2: No RTOS calls without a fair warning 23

10 RTOS and Interrupts Rule 1: an ISR must not call any RTOS function that might block the caller no pend type calls no semaphores to protect shared data in ISRs no reading queues, etc in ISR Violating this rule may affect response time and may even cause deadlock! 24

11 Example Violating Rule 1 void { } void { } isr_read_temps(void) // (reactor) OS_Pend(s); ISR Deadlock! itemperatures[0] = peripherals[..]; itemperatures[1] = peripherals[..]; OS_Post(s); main(void) interrupt OS_Pend(s); itemp[0] = itemperatures[0]; itemp[1] = itemperatures[1]; OS_Post(s); 25

12 Helping tools for rule 1 System calls that do not block Examples: Function giving the status of a semaphore Queues: use post() in ISR, use pend() in task code If queue is full, error is returned in ISR > nonblocking Task code might miss a number of elements This code works only if rule #2 is obeyed 26

13 RTOS and Interrupts Rule 2: An ISR must not call any RTOS function that might cause a context switch unless RTOS knows that it s an ISR (and not a task) that is calling no post() type calls (which is typical use!) unless RTOS knows it s an ISR No semaphore release events No writing to a queue, etc Violate this rule! RTOS will switch to other task ISR may not complete for a long time No guarantees on response time anymore 27

14 Example Violating Rule 2 void { } void { } isr_buttons(void) // (UTMS) if (peripherals[buttons] & 0x01) // button 0 OS_Post(event); // signal event vbuttontask(void) while (TRUE) { OS_Pend(event); // wait for event printf( current float levels: \n );!! list them } Context switch may block all lower priority ISRs 28

15 Example Violating Rule 2 How ISRs should work: button ISR RTOS vbuttontask vlevelstask OS_Post context switch after ISR finished What would really happen: button ISR RTOS vbuttontask vlevelstask OS_Post context switch before ISR finished! 29

16 Solution to Satisfy Rule 2 (uc/os) void { } isr_buttons(void) // (UTMS) OSIntEnter(); // warn uc/os not to reschedule if (peripherals[buttons] & 0x01) // button 0 OS_Post(event); // signal event OSIntExit(); // uc/os free to reschedule button ISR RTOS vbuttontask vlevelstask OS_Post but NO context switch Let the RTOS know an ISR is in progress by calling OSIntEnter()/OSIntExit() (uc/os) 30

17 Alternative solution Specialized functions for ISR Instead of OS_Post() use OS_ISR_Post() Not all OSes provide these alternatives 31

18 Overview Timing services RTOS and ISRs Design of embedded systems General principles

19 Overview Design of an embedded system Specify the real time system can be very difficult What must the system do? How fast should the system serve the inputs? Example: bar code scanner It must send the data to the terminal within reasonable time (fraction of a second one second) 100% guarantee can be hard A longer delay in a small amount of cases can be tolerated Choosing the right processor Example: serial port interface can we run ISR 1000 times a second? Should we go for a processor with DMA support? 34

20 Principles general operation System is in sleep state most of the time Tasks are in the blocked state waiting for events Processor may be in a low power mode ISR are active External event triggers ISR that trigger a whole series of tasks to start running When processing is done, system goes back to sleep Example: telegraph system 35

21 Principles short ISRs Short ISRs are preferred over long ISRs Lowest priority ISR runs before highest priority task Longer ISR > slower task response time ISRs exhibit more bugs/nr. lines of code ISRs are harder to debug Example: serial port communication System responds to commands coming from serial port Commands always end up with \n Commands arrive one at a time, after completion of prev. Serial port has a buffer of one character System can take a long time to respond to commands 36

22 Trade off designs Everything in the ISR Provides excellent response time for the serial port block System response for other tasks is disaster ISR for each event individual tasks for each event perfect architecture Will trigger a very low output from the processor A lot of time spent by RTOS in context switching Possible solution? 37

23 Principles how many tasks? Advantages of many tasks More tasks > usage of priority > faster system response 1 task versus 8 tasks Modularity A task for each: the display, printer, buttons, etc. More tasks > better data encapsulation Network task the only one that needs to access the HW signals 38

24 Principles how many tasks? Disadvantages of many tasks More tasks = more shared data = more semaphores More semaphore bugs and RTOS overhead More tasks = more data passed around in queues, pipes, More bugs and more RTOS overhead Each task has a stack > more memory needed General throughput smaller in a system with more tasks 39

25 Example of time constants RTOS on 20MHz Intel Get a semaphore 10 microsec. Release a semaphore 6 38 microsec. Switch tasks microsec. Write to a queue microsec. Read from a queue microsec. Create a task 158 microsec. Destroy a task microsec. 40

26 Principles task structure mytask.c!! private static data declared here void mytask(void) {!! More private data declared here!! either static either on the stack!! Initialization code here while(1) {!! wait for signal event } } switch(!! type of signal) { case!! signal type 1:... break; case!! signal type 2:... break;... }; 42

27 Create/destroy tasks Most RTOS allow dynamic tasks dynamic create/destroy Avoid this functionality Lengthy operation throughput is minimized Task destruction is dangerous Task owns a semaphore? Messages on the task input queues? What if these messages contain pointers to data that needed to be deleted by other tasks? Alternative: create all the dynamic tasks at the startup If memory is not an issue do not destroy the task! 43

28 Time slicing? Tasks with same priority > one options is to time slice Round robin scheduling Time slicing used a lot in desktops > fairness Embedded systems > timely response! Responses of all tasks with the same priority is needed Avoid time slicing Avoid having the same priority for two tasks 44

Exam TI2720-C/TI2725-C Embedded Software

Exam TI2720-C/TI2725-C Embedded Software Exam TI2720-C/TI2725-C Embedded Software Wednesday April 16 2014 (18.30-21.30) Koen Langendoen In order to avoid misunderstanding on the syntactical correctness of code fragments in this examination, we

More information

Micrium µc/os II RTOS Introduction EE J. E. Lumpp

Micrium µc/os II RTOS Introduction EE J. E. Lumpp Micrium µc/os II RTOS Introduction (by Jean Labrosse) EE599 001 Fall 2012 J. E. Lumpp μc/os II μc/os II is a highly portable, ROMable, very scalable, preemptive real time, deterministic, multitasking kernel

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 29, 2018 13.30-15.00 This exam (6 pages) consists of 60 True/False

More information

INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to

INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to CHAPTER 2 ucosiii Page 1 ENGG4420 CHAPTER 2 LECTURE 5 October 22 12 3:28 PM INTERRUPT MANAGEMENT An interrupt is a hardware mechanism used to service an event that can be external or internal to the CPU.

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 28, 2019 13.30-15.00 This exam (6 pages) consists of 60 True/False

More information

Embedded Software TI2725 C. 5. Software architectures. Koen Langendoen. Embedded Software Group

Embedded Software TI2725 C. 5. Software architectures. Koen Langendoen. Embedded Software Group Embedded Software 5. Software architectures TI2725 C Koen Langendoen Embedded Software Group Lec.2: Interrupts & data sharing volatile static long int lsecondstoday; void interrupt vupdatetime() ++lsecondstoday;

More information

Lecture 3: Concurrency & Tasking

Lecture 3: Concurrency & Tasking Lecture 3: Concurrency & Tasking 1 Real time systems interact asynchronously with external entities and must cope with multiple threads of control and react to events - the executing programs need to share

More information

Embedded Software TI2726 B. 4. Interrupts. Koen Langendoen. Embedded Software Group

Embedded Software TI2726 B. 4. Interrupts. Koen Langendoen. Embedded Software Group Embedded Software 4. Interrupts TI2726 B Koen Langendoen Embedded Software Group What is an Interrupt? Asynchronous signal from hardware Synchronous signal from software Indicates the need for attention

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

IN4073 Embedded Real-Time Systems. X32 Microcontroller Soft core

IN4073 Embedded Real-Time Systems. X32 Microcontroller Soft core IN4073 Embedded Real-Time Systems X32 Microcontroller Soft core FGPAs vs Standard Microcontrollers 8051, ARM,.., core architectures AD, Atmel, Dalas, Intel, MC (PIC), NS, ST, TI, Zilog ASICs with core,

More information

Bringing Organization to our Code (the shared-data problem)

Bringing Organization to our Code (the shared-data problem) Bringing Organization to our Code (the shared-data problem) Reference: An Embedded Software Primer By David E Simon (two copies in lab for checkout) Figure 44 Classic Shared-Data Problem Static int itemperatures[2];

More information

FreeRTOS X. Task Notifications Semaphores Family Critical Section FreeRTOS Producer Consumer Tasks

FreeRTOS X. Task Notifications Semaphores Family Critical Section FreeRTOS Producer Consumer Tasks FreeRTOS X Task Notifications Semaphores Family Critical Section FreeRTOS Producer Consumer Tasks Task Notifications Semaphores Family Binary Semaphore Counting Semaphore Mutex Recursive Mutex Critical

More information

NetBurner s uc/os RTOS Library

NetBurner s uc/os RTOS Library NetBurner s uc/os RTOS Library Revision 1.1 July 17, 2007 Released 1 Table of Contents 1. Introduction... 4 2. Functions... 4 2.1. OSTaskCreate... 7 2.2. OSSimpleTaskCreate (MACRO)... 9 2.3. OSTaskDelete...

More information

Single thread Scheduler All processes called once each sample

Single thread Scheduler All processes called once each sample Single thread Scheduler All processes called once each sample void main(void) { init_routines(); done = 0; while (!done) { perform_process1(); // Highest priority process perform_process2(); perform_process3();//

More information

Real-Time Programming

Real-Time Programming Real-Time Programming Week 7: Real-Time Operating Systems Instructors Tony Montiel & Ken Arnold rtp@hte.com 4/1/2003 Co Montiel 1 Objectives o Introduction to RTOS o Event Driven Systems o Synchronization

More information

Interrupts Peter Rounce - room 6.18

Interrupts Peter Rounce - room 6.18 Interrupts Peter Rounce - room 6.18 P.Rounce@cs.ucl.ac.uk 20/11/2006 1001 Interrupts 1 INTERRUPTS An interrupt is a signal to the CPU from hardware external to the CPU that indicates than some event has

More information

UNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called

More information

Module 12: I/O Systems

Module 12: I/O Systems Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Performance 12.1 I/O Hardware Incredible variety of I/O devices Common

More information

Real Time Operating System: Inter-Process Communication (IPC)

Real Time Operating System: Inter-Process Communication (IPC) ECE3411 Fall 2015 Lecture 6c. Real Time Operating System: Inter-Process Communication (IPC) Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut

More information

Module 11: I/O Systems

Module 11: I/O Systems Module 11: I/O Systems Reading: Chapter 13 Objectives Explore the structure of the operating system s I/O subsystem. Discuss the principles of I/O hardware and its complexity. Provide details on the performance

More information

The control of I/O devices is a major concern for OS designers

The control of I/O devices is a major concern for OS designers Lecture Overview I/O devices I/O hardware Interrupts Direct memory access Device dimensions Device drivers Kernel I/O subsystem Operating Systems - June 26, 2001 I/O Device Issues The control of I/O devices

More information

ECE 477 Digital Systems Senior Design Project. Module 10 Embedded Software Development

ECE 477 Digital Systems Senior Design Project. Module 10 Embedded Software Development 2011 by D. G. Meyer ECE 477 Digital Systems Senior Design Project Module 10 Embedded Software Development Outline Memory Models Memory Sections Discussion Application Code Organization Memory Models -

More information

PC Interrupt Structure and 8259 DMA Controllers

PC Interrupt Structure and 8259 DMA Controllers ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 PC Interrupt Structure and 8259 DMA Controllers This lecture covers the use of interrupts and the vectored interrupt

More information

Introduction to Real-Time Operating Systems

Introduction to Real-Time Operating Systems Introduction to Real-Time Operating Systems GPOS vs RTOS General purpose operating systems Real-time operating systems GPOS vs RTOS: Similarities Multitasking Resource management OS services to applications

More information

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory Embedded Systems 5. Operating Systems Lothar Thiele Computer Engineering and Networks Laboratory Embedded Operating Systems 5 2 Embedded Operating System (OS) Why an operating system (OS) at all? Same

More information

The components in the middle are core and the components on the outside are optional.

The components in the middle are core and the components on the outside are optional. CHAPTER 2 ucosiii Page 1 ENGG4420 CHAPTER 3 LECTURE 8 October 31 12 9:43 AM MQX BASICS MQX Real Time Operating System has been designed for uni processor, multi processor, and distributedprocessor embedded

More information

CS/ECE 6780/5780. Al Davis

CS/ECE 6780/5780. Al Davis CS/ECE 6780/5780 Al Davis Today s topics: Threads basic control block scheduling semaphores Midterm (next Tues) covers Chaps & Labs 1-5 sample on the web 1 CS 5780 Lab 5 Logistics Problem not enough interrupt

More information

Page 1. Lab 5 Logistics. Implicit Threads. Explicit Thread Semantics. Problem not enough interrupt pins CS/ECE 6780/5780. Al Davis

Page 1. Lab 5 Logistics. Implicit Threads. Explicit Thread Semantics. Problem not enough interrupt pins CS/ECE 6780/5780. Al Davis Lab 5 Logistics CS/ECE 6780/5780 Al Davis Today s topics: Threads basic control block scheduling semaphores Midterm (next Tues) covers Chaps & Labs 1-5 sample on the web Problem not enough interrupt pins

More information

Systemy RT i embedded Wykład 11 Systemy RTOS

Systemy RT i embedded Wykład 11 Systemy RTOS Systemy RT i embedded Wykład 11 Systemy RTOS Wrocław 2013 Plan Introduction Tasks Queues Interrupts Resources Memory management Multiprocessor operation Introduction What s an Operating System? Provides

More information

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1

GLOSSARY. VisualDSP++ Kernel (VDK) User s Guide B-1 B GLOSSARY Application Programming Interface (API) A library of C/C++ functions and assembly macros that define VDK services. These services are essential for kernel-based application programs. The services

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance Objectives Explore the structure of an operating

More information

Interrupts Peter Rounce

Interrupts Peter Rounce Interrupts Peter Rounce P.Rounce@cs.ucl.ac.uk 22/11/2011 11-GC03 Interrupts 1 INTERRUPTS An interrupt is a signal to the CPU from hardware external to the CPU that indicates than some event has occured,

More information

In4073 Embedded Real-Time Systems. Embedded Programming

In4073 Embedded Real-Time Systems. Embedded Programming In4073 Embedded Real-Time Systems Embedded Programming Embedded Software TI2726 B 2 nd year BSc course Fast forward (10:1) 2 Embedded Programming More difficult than classical programming Interaction with

More information

Device-Functionality Progression

Device-Functionality Progression Chapter 12: I/O Systems I/O Hardware I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Incredible variety of I/O devices Common concepts Port

More information

Chapter 12: I/O Systems. I/O Hardware

Chapter 12: I/O Systems. I/O Hardware Chapter 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations I/O Hardware Incredible variety of I/O devices Common concepts Port

More information

Embedded Operating Systems

Embedded Operating Systems Embedded Operating Systems Embedded Software Design 熊博安國立中正大學資訊工程研究所 pahsiung@cs.ccu.edu.tw Textbook: Programming Embedded Systems in C and C++, Michael Barr, O Reilly 1 Contents History and Purpose A

More information

Mobile Operating Systems Lesson 01 Operating System

Mobile Operating Systems Lesson 01 Operating System Mobile Operating Systems Lesson 01 Operating System Oxford University Press 2007. All rights reserved. 1 Operating system (OS) The master control program Manages all software and hardware resources Controls,

More information

Revision 1.6 March 26, uc/os RTOS Library

Revision 1.6 March 26, uc/os RTOS Library Revision 1.6 March 26, 2010 uc/os RTOS Library Table of Contents 1. Introduction... 4 2. Function Summary... 4 2.1. OSTaskCreate... 7 2.2. OSTaskCreatewName... 9 2.3. OSSimpleTaskCreate (MACRO)... 10 2.4.

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Objectives. I/O Hardware. A Typical PC Bus Structure. Device I/O Port Locations on PCs (partial)

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Objectives. I/O Hardware. A Typical PC Bus Structure. Device I/O Port Locations on PCs (partial) Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Micriμm. Getting Started with Micriμm s. Matt Gordon, Sr. Applications Engineer. 9L05I Renesas Electronics America Inc.

Micriμm. Getting Started with Micriμm s. Matt Gordon, Sr. Applications Engineer. 9L05I Renesas Electronics America Inc. Getting Started with Micriμm s μc/os-iii Kernel Matt Gordon, Sr. Applications Engineer Micriμm Class ID: 9L05I Renesas Electronics America Inc. 2012 Renesas Electronics America Inc. All rights reserved.

More information

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria A Predictable RTOS Mantis Cheng Department of Computer Science University of Victoria Outline I. Analysis of Timeliness Requirements II. Analysis of IO Requirements III. Time in Scheduling IV. IO in Scheduling

More information

Lesson FreeRTOS + LPC17xx. FreeRTOS & Tasks LPC17xx Memory Map Lab Assignment: FreeRTOS Tasks

Lesson FreeRTOS + LPC17xx. FreeRTOS & Tasks LPC17xx Memory Map Lab Assignment: FreeRTOS Tasks Lesson FreeRTOS + LPC17xx FreeRTOS & Tasks LPC17xx Memory Map Lab Assignment: FreeRTOS Tasks FreeRTOS & Tasks Introduction to FreeRTOS Objective To introduce what, why, when, and how to use Real Time Operating

More information

Figure 4.4: code example. 4.3: The shared data problem. Figure 4.4: analysis. Fig 4.4: observations. Figure 4.5: Does this fix problem?

Figure 4.4: code example. 4.3: The shared data problem. Figure 4.4: analysis. Fig 4.4: observations. Figure 4.5: Does this fix problem? 4.3: The shared data problem Inconsistency in data used by a task and updated by an ISR; arises because ISR runs at just the wrong time. Data is often shared because it is undesirable to have ISRs do all

More information

Tasks. Task Implementation and management

Tasks. Task Implementation and management Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration

More information

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX. Yousef Ebrahimi Professor Ryan Robucci

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX.   Yousef Ebrahimi Professor Ryan Robucci AvrX https://github.com/kororos/avrx Yousef Ebrahimi Professor Ryan Robucci Introduction AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. The Kernel is written

More information

What is a Real Time Operating System?

What is a Real Time Operating System? What is a Real Time Operating System? Review We tentatively defined an Operating System to be: Some sort of software that you did not write yourself that allows you to use a processor effectively. What

More information

Programming Embedded Systems

Programming Embedded Systems Programming Embedded Systems Lecture 5 Interrupts, modes of multi-tasking Wednesday Feb 1, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/31 Lecture outline Interrupts Internal, external,

More information

I/O Systems. 04/16/2007 CSCI 315 Operating Systems Design 1

I/O Systems. 04/16/2007 CSCI 315 Operating Systems Design 1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating Systems Concepts with Java, by Silberschatz, Galvin, and Gagne (2007). Many, if not

More information

Back to RTOS. CSE466 Autumn 00-1

Back to RTOS. CSE466 Autumn 00-1 Back to RTOS Scheduling Deadline Laxity Rate Monotonic Shared Code in Multiprocessing Share Resources: Deadlock avoidance Process Synchronization and Communication Memory Management CSE466 Autumn 00-1

More information

Zilog Real-Time Kernel

Zilog Real-Time Kernel An Company Configurable Compilation RZK allows you to specify system parameters at compile time. For example, the number of objects, such as threads and semaphores required, are specez80acclaim! Family

More information

Embedded Software TI2725-C. 8. Debugging techniques. Koen Langendoen. Embedded Software Group

Embedded Software TI2725-C. 8. Debugging techniques. Koen Langendoen. Embedded Software Group Embedded Software 8. Debugging techniques TI2725-C Koen Langendoen Embedded Software Group Grace Hopper 1947 2 Overview Debugging techniques Debugging a distributed system Lab information Preparation for

More information

Course Syllabus. Operating Systems

Course Syllabus. Operating Systems Course Syllabus. Introduction - History; Views; Concepts; Structure 2. Process Management - Processes; State + Resources; Threads; Unix implementation of Processes 3. Scheduling Paradigms; Unix; Modeling

More information

CSC227: Operating Systems Fall Chapter 1 INTERRUPTS. Dr. Soha S. Zaghloul

CSC227: Operating Systems Fall Chapter 1 INTERRUPTS. Dr. Soha S. Zaghloul CSC227: Operating Systems Fall 2016 Chapter 1 INTERRUPTS Dr. Soha S. Zaghloul LAYOUT 1.3 Devices Controlling Techniques 1.3.1 Polling 1.3.2 Interrupts H/W Interrupts Interrupt Controller Process State

More information

ò Paper reading assigned for next Tuesday ò Understand low-level building blocks of a scheduler User Kernel ò Understand competing policy goals

ò Paper reading assigned for next Tuesday ò Understand low-level building blocks of a scheduler User Kernel ò Understand competing policy goals Housekeeping Paper reading assigned for next Tuesday Scheduling Don Porter CSE 506 Memory Management Logical Diagram Binary Memory Formats Allocators Threads Today s Lecture Switching System to CPU Calls

More information

Design and Implementation Interrupt Mechanism

Design and Implementation Interrupt Mechanism Design and Implementation Interrupt Mechanism 1 Module Overview Study processor interruption; Design and implement of an interrupt mechanism which responds to interrupts from timer and UART; Program interrupt

More information

Xinu on the Transputer

Xinu on the Transputer Purdue University Purdue e-pubs Department of Computer Science Technical Reports Department of Computer Science 1990 Xinu on the Transputer Douglas E. Comer Purdue University, comer@cs.purdue.edu Victor

More information

8: Scheduling. Scheduling. Mark Handley

8: Scheduling. Scheduling. Mark Handley 8: Scheduling Mark Handley Scheduling On a multiprocessing system, more than one process may be available to run. The task of deciding which process to run next is called scheduling, and is performed by

More information

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests

More information

Intertask Communication

Intertask Communication Inter-task Communication 04/27/01 Lecture # 29 16.070 Task state diagram (single processor) Intertask Communication Global variables Buffering data Critical regions Synchronization Semaphores Mailboxes

More information

Silberschatz and Galvin Chapter 12

Silberschatz and Galvin Chapter 12 Silberschatz and Galvin Chapter 12 I/O Systems CPSC 410--Richard Furuta 3/19/99 1 Topic overview I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O requests to hardware operations

More information

real-time kernel documentation

real-time kernel documentation version 1.1 real-time kernel documentation Introduction This document explains the inner workings of the Helium real-time kernel. It is not meant to be a user s guide. Instead, this document explains overall

More information

238P: Operating Systems. Lecture 14: Process scheduling

238P: Operating Systems. Lecture 14: Process scheduling 238P: Operating Systems Lecture 14: Process scheduling This lecture is heavily based on the material developed by Don Porter Anton Burtsev November, 2017 Cooperative vs preemptive What is cooperative multitasking?

More information

[08] IO SUBSYSTEM 1. 1

[08] IO SUBSYSTEM 1. 1 [08] IO SUBSYSTEM 1. 1 OUTLINE Input/Output (IO) Hardware Device Classes OS Interfaces Performing IO Polled Mode Interrupt Driven Blocking vs Non-blocking Handling IO Buffering & Strategies Other Issues

More information

Chapter 1 Computer System Overview

Chapter 1 Computer System Overview Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Seventh Edition By William Stallings Objectives of Chapter To provide a grand tour of the major computer system components:

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance I/O Hardware Incredible variety of I/O devices Common

More information

QUIZ Ch.6. The EAT for a two-level memory is given by:

QUIZ Ch.6. The EAT for a two-level memory is given by: QUIZ Ch.6 The EAT for a two-level memory is given by: EAT = H Access C + (1-H) Access MM. Derive a similar formula for three-level memory: L1, L2 and RAM. Hint: Instead of H, we now have H 1 and H 2. Source:

More information

James E. Lumpp (Adapted from: An Embedded Software Primer by David E. Simon)

James E. Lumpp (Adapted from: An Embedded Software Primer by David E. Simon) Embedded Software Architectures James E. Lumpp (Adapted from: An Embedded Software Primer by David E. Simon) Survey of Embedded Software Architectures 1. Round-Robin 2. Round-Robin with Interrupts 3. Function-Queue-Scheduling

More information

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2 CPUs and RENESAS HEW4 Document Rev. 1 A product of Segger Microcontroller Systeme GmbH www.segger.com 2/25 embos for SH2 CPUs and

More information

IN2305-II Embedded Programming

IN2305-II Embedded Programming IN2305-II Embedded Programming prof.dr.ir. Arjan J.C. van Gemund Embedded Software Lab Software Technology Dept. Arjan van Gemund? BS Physics Engineering MS, PhD Computer Science DSM (Embedded Systems

More information

18-349: Introduction to Embedded Real-Time Systems

18-349: Introduction to Embedded Real-Time Systems 18-349: Introduction to Embedded Real-Time Systems Embedded Real-Time Systems Lecture 6: Timers and Interrupts Anthony Rowe Electrical and Computer Engineering Carnegie Mellon University Embedded Real-Time

More information

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 09, SPRING 2013

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 09, SPRING 2013 CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 09, SPRING 2013 TOPICS TODAY I/O Architectures Interrupts Exceptions FETCH EXECUTE CYCLE 1.7 The von Neumann Model This is a general

More information

OPERATING SYSTEM PROJECT: SOS

OPERATING SYSTEM PROJECT: SOS OPERATING SYSTEM PROJECT: SOS I. Description 1. This project simulates a noninteractive (batch) monolithic operating system. Your program, OS, is a set of functions invoked by SOS (Student Operating System),

More information

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for RENESAS SH2A CPUs and KPIT GNU compiler Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/24 embos for SH2A

More information

The CMXBug Manual. The CMXBug Manual

The CMXBug Manual. The CMXBug Manual The CMX CMXBug TM debugger provides the ability to view and modify different aspects of the CMX multitasking operating system environment, while application code is running. CMXBug runs as a task, usually

More information

Lecture notes Lectures 1 through 5 (up through lecture 5 slide 63) Book Chapters 1-4

Lecture notes Lectures 1 through 5 (up through lecture 5 slide 63) Book Chapters 1-4 EE445M Midterm Study Guide (Spring 2017) (updated February 25, 2017): Instructions: Open book and open notes. No calculators or any electronic devices (turn cell phones off). Please be sure that your answers

More information

embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1

embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 embos Real Time Operating System CPU & Compiler specifics for ARM core with ARM RealView Developer Suite 3.0 Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/25 embos

More information

CPSC 213. Introduction to Computer Systems. I/O Devices, Interrupts and DMA. Unit 2a Oct 27, 29, 31. Winter Session 2014, Term 1

CPSC 213. Introduction to Computer Systems. I/O Devices, Interrupts and DMA. Unit 2a Oct 27, 29, 31. Winter Session 2014, Term 1 CPSC 213 Introduction to Computer Systems Winter Session 2014, Term 1 Unit 2a Oct 27, 29, 31 I/O Devices, Interrupts and DMA Overview Reading in Text 8.1, 8.2.1, 8.5.1-8.5.3 Learning Goals Explain what

More information

Announcements. Reading. Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) CMSC 412 S14 (lect 5)

Announcements. Reading. Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) CMSC 412 S14 (lect 5) Announcements Reading Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) 1 Relationship between Kernel mod and User Mode User Process Kernel System Calls User Process

More information

Interrupts. How can we synchronize with a peripheral? Polling

Interrupts. How can we synchronize with a peripheral? Polling Interrupts How can we synchronize with a peripheral? Polling run a program loop continually checking status of the peripheral wait for it to be ready for us to communicate with it Then handle I/O with

More information

Preemptive Scheduling

Preemptive Scheduling Preemptive Scheduling Lecture 18 18-1 Big Picture Methods learned so far We ve been using a foreground/background system Interrupt service routines run in foreground Task code runs in background Limitations

More information

Mod5234 Interrupt Controllers Application Note

Mod5234 Interrupt Controllers Application Note Mod5234 Interrupt Controllers Application Note Revision 1.0 June 22, 2007 Document Status: Second Release Table of Contents Introduction 3 General Procedure 3 Peripheral Module Configuration 4 Interrupt

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Real Time Kernel v1.1

Real Time Kernel v1.1 Real Time Kernel v1.1 1. Task Management void TaskCreate( char tasknum, void (*t)(), int *stack, char stacksize ) Creates a task with the unique priority tasknum. Helium allows tasks to have one of eight

More information

Final Exam Study Guide

Final Exam Study Guide Final Exam Study Guide Part 1 Closed book, no crib sheet Part 2 Open book, open notes, calculator (no laptops, phones, devices with screens larger than a TI-89 calculator, devices with wireless communication).

More information

Operating Systems (CS1022) Input/Output. Yagiz Özbek Evren

Operating Systems (CS1022) Input/Output. Yagiz Özbek Evren Operating Systems (CS1022) Input/Output Yagiz Özbek Evren 1 Content Principles of IO Hardware...3 IO Devices.. Device Controllers.. Memory-Mapped IO... Direct Memory Access... Interrupts. Principles of

More information

Processes, Context Switching, and Scheduling. Kevin Webb Swarthmore College January 30, 2018

Processes, Context Switching, and Scheduling. Kevin Webb Swarthmore College January 30, 2018 Processes, Context Switching, and Scheduling Kevin Webb Swarthmore College January 30, 2018 Today s Goals What is a process to the OS? What are a process s resources and how does it get them? In particular:

More information

CSCI 8530 Advanced Operating Systems. Part 10 Clock and Timer Management

CSCI 8530 Advanced Operating Systems. Part 10 Clock and Timer Management CSCI 8530 Advanced Operating Systems Part 10 Clock and Timer Management Updated 10/11/2016 Location of Clock Management in the Hierarchy Clock Hardware Processor clock Controls processor rate Often cited

More information

ECE 341. Lecture # 19

ECE 341. Lecture # 19 ECE 341 Lecture # 19 Instructor: Zeshan Chishti zeshan@ece.pdx.edu December 3, 2014 Portland State University Announcements Final exam is on Monday, December 8 from 5:30 PM to 7:20 PM Similar format and

More information

The Kernel Abstraction

The Kernel Abstraction The Kernel Abstraction Debugging as Engineering Much of your time in this course will be spent debugging In industry, 50% of software dev is debugging Even more for kernel development How do you reduce

More information

CMPSCI 377: Operating Systems Exam 1: Processes, Threads, CPU Scheduling and Synchronization. October 9, 2002

CMPSCI 377: Operating Systems Exam 1: Processes, Threads, CPU Scheduling and Synchronization. October 9, 2002 Name: Student Id: General instructions: CMPSCI 377: Operating Systems Exam 1: Processes, Threads, CPU Scheduling and Synchronization October 9, 2002 This examination booklet has 10 pages. Do not forget

More information

Embedded Software TI2726-B. 1. Introduction. Koen Langendoen. (Stefan Dulman, Arjan v. Gemund) Embedded Software Group

Embedded Software TI2726-B. 1. Introduction. Koen Langendoen. (Stefan Dulman, Arjan v. Gemund) Embedded Software Group Embedded Software 1. Introduction TI2726-B Koen Langendoen (Stefan Dulman, Arjan v. Gemund) Embedded Software Group Embedded System Definition Many different definitions, some of them: a computer system

More information

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Dariusz Caban, Institute of Informatics, Gliwice, Poland - June 18, 2014 The use of a real-time multitasking kernel simplifies

More information

ECE 485/585 Microprocessor System Design

ECE 485/585 Microprocessor System Design Microprocessor System Design Lecture 3: Polling and Interrupts Programmed I/O and DMA Interrupts Zeshan Chishti Electrical and Computer Engineering Dept Maseeh College of Engineering and Computer Science

More information

INPUT/OUTPUT ORGANIZATION

INPUT/OUTPUT ORGANIZATION INPUT/OUTPUT ORGANIZATION Accessing I/O Devices I/O interface Input/output mechanism Memory-mapped I/O Programmed I/O Interrupts Direct Memory Access Buses Synchronous Bus Asynchronous Bus I/O in CO and

More information

High level scheduling: Medium level scheduling: Low level scheduling. Scheduling 0 : Levels

High level scheduling: Medium level scheduling: Low level scheduling. Scheduling 0 : Levels Scheduling 0 : Levels High level scheduling: Deciding whether another process can run is process table full? user process limit reached? load to swap space or memory? Medium level scheduling: Balancing

More information

3.1 Introduction. Computers perform operations concurrently

3.1 Introduction. Computers perform operations concurrently PROCESS CONCEPTS 1 3.1 Introduction Computers perform operations concurrently For example, compiling a program, sending a file to a printer, rendering a Web page, playing music and receiving e-mail Processes

More information

NuttX Realtime Programming

NuttX Realtime Programming NuttX RTOS NuttX Realtime Programming Gregory Nutt Overview Interrupts Cooperative Scheduling Tasks Work Queues Realtime Schedulers Real Time == == Deterministic Response Latency Stimulus Response Deadline

More information

Lab 3a: Scheduling Tasks with uvision and RTX

Lab 3a: Scheduling Tasks with uvision and RTX COE718: Embedded Systems Design Lab 3a: Scheduling Tasks with uvision and RTX 1. Objectives The purpose of this lab is to lab is to introduce students to uvision and ARM Cortex-M3's various RTX based Real-Time

More information

Computer Systems Assignment 4: Scheduling and I/O

Computer Systems Assignment 4: Scheduling and I/O Autumn Term 018 Distributed Computing Computer Systems Assignment : Scheduling and I/O Assigned on: October 19, 018 1 Scheduling The following table describes tasks to be scheduled. The table contains

More information