Practical UML Statecharts in C/C++

Size: px
Start display at page:

Download "Practical UML Statecharts in C/C++"

Transcription

1 Practical UML Statecharts in C/C++ Event-Driven Programming for Embedded Systems 2nd Edition Miro Samek ELSEVIER AMSTERDAM. BOSTON. HEIDELBERG LONDON NEW YORK. OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Newnes is an imprint of Elsevier

2 Part I: Uml State Machines 1 Chapter 1: Getting Started with UML State Machines and Event-Driven Programming Installing the Accompanying Code Let's Play Running the DOS Version Running the Stellaris Version The main() Function The Design of the "Fly 'n' Shoot" Game Active Objects in the "Fly 'n' Shoot" Game The Missile Active Object The Ship Active Object..' The Tunnel Active Object The Mine Components Events in the "Fly 'n' Shoot" Game Generating, Posting, and Publishing Events Coding Hierarchical State Machines Step 1: Defining the Ship Structure Step 2: Initializing the State Machine Step 3: Defining State-Handler Functions The Execution Model Simple Nonpreemptive "Vanilla" Scheduler The QK Preemptive Kernel Traditional OS/RTOS Comparison to the Traditional Approach Summary 52 Chapter 2: A Crash Course in UML State Machines The Oversimplification of the Event-Action Paradigm Basic State Machine Concepts States State Diagrams 61

3 vi Table of Contents State Diagrams versus Flowcharts Extended State Machines Guard Conditions Events Actions and Transitions Run-to-Completion Execution Model UML Extensions to the Traditional FSM Formalism Reuse of Behavior in Reactive Systems Hierarchically Nested States Behavioral Inheritance Liskov Substitution Principle for States Orthogonal Regions Entry and Exit Actions Internal Transitions Transition Execution Sequence Local versus External Transitions Event Types in the UML Event Deferral Pseudostates UML Statecharts and Automatic Code Synthesis The Limitations of the UML State Diagrams UML State Machine Semantics: An Exhaustive Example Designing A UML State Machine Problem Specification High-Level Design Scavenging for Reuse Elaborating Composite States Refining the Behavior Final Touches Summary 96 Chapter 3: Standard State Machine Implementations The Time-Bomb Example Executing the Example Code A Generic State Machine Interface Representing Events Nested Switch Statement Example Implementation Consequences Variations of the Technique State Table Generic State-Table Event Processor Application-Specific Code 118

4 vii Consequences Variations of the Technique Object-Oriented State Design Pattern Example Implementation Consequences Variations of the Technique QEP FSM Implementation Generic QEP Event Processor Application-Specific Code Consequences Variations of the Technique General Discussion of State Machine Implementations Role of Pointers to Functions State Machines and C++ Exception Handling Implementing Guards and Choice Pseudostates Implementing Entry and Exit Actions Summary 146 Chapter 4: Hierarchical Event Processor Implementation Key Features of the QEP Event Processor :' QEP Structure QEP Source Code Organization Events Event Signal (QSignal) QEvent Structure in C QEvent Structure in C Hierarchical State-Handler Functions Designating the Superstate (Q_SUPER() Macro) Hierarchical State-Handler Function Example in C Hierarchical State-Handler Function Example in C Hierarchical State Machine Class Hierarchical State Machine in C (Structure QHsm) Hierarchical State Machine in C++ (Class QHsm) The Top State and the Initial Pseudostate Entry/Exit Actions and Nested Initial Transitions Reserved Events and Helper Macros in QEP Topmost Initial Transition (QHsm_init ()) Dispatching Events (QHsm_dispatch (), General Structure) Executing a Transition in the State Machine (QHsm_dispatch (), Transition) Summary of Steps for Implementing HSMs with QEP Step 1: Enumerating Signals Step 2: Defining Events 185

5 viii Table of Contents Step 3: Deriving the Specific State Machine Step 4: Defining the Initial Pseudostate Step 5: Defining the State-Handler Functions Coding Entry and Exit Actions Coding Initial Transitions Coding Internal Transitions Coding Regular Transitions Coding Guard Conditions Pitfalls to Avoid While Coding State Machines with QEP Incomplete State Handlers Ill-Formed State Handlers State Transition Inside Entry or Exit Action Incorrect Casting of Event Pointers Accessing Event Parameters in Entry/Exit Actions or Initial Transitions Targeting a Nonsubstate in the Initial Transition Code Outside the switch Statement Suboptimal Signal Granularity Violating the Run-to-Completion Semantics Inadvertent Corruption of the Current Event Porting and Configuring QEP Summary 201 Chapter 5: State Patterns Ultimate Hook Intent Problem Solution Sample Code Consequences Reminder Intent Problem Solution Sample Code Consequences Deferred Event Intent Problem Solution Sample Code Consequences Known Uses 230

6 ix 5.4 Orthogonal Component Intent Problem Solution Sample Code Consequences Known Uses Transition to History Intent Problem Solution Sample Code Consequences Known Uses Summary 251 Part II: Real-Time Framework, 253 Chapter 6: Real-Time Framework Concepts.' Inversion of Control CPU Management Traditional Sequential Systems Traditional Multitasking Systems Traditional Event-Driven Systems Active Object Computing Model System Structure Asynchronous Communication Run-to-Completion Encapsulation Support for State Machines Traditional Preemptive Kernel/RTOS Cooperative Vanilla Kernel Preemptive RTC Kernel Event Delivery Mechanisms Direct Event Posting Publish-Subscribe Event Memory Management Copying Entire Events Zero-Copy Event Delivery Static and Dynamic Events Multicasting Events and the Reference-Counting Algorithm Automatic Garbage Collection Event Ownership 288 i J 1 ' if " 'O "r j cori L 'S^JI

7 6.5.7 Memory Pools Time Management Time Events System Clock Tick Error and Exception Handling Design by Contract Errors versus Exceptional Conditions Customizable Assertions in C and C State-Based Handling of Exceptional Conditions Shipping with Assertions Asserting Guaranteed Event Delivery Framework-Based Software Tracing Summary 304 Chapter 7: Real-Time Framework Implementation Key Features of the QF Real-Time Framework Source Code Portability Scalability ' Support for Modern State Machines Direct Event Posting and Publish-Subscribe Event Delivery Zero-Copy Event Memory Management Open-Ended Number of Time Events Native Event Queues Native Memory Pool Built-in "Vanilla" Scheduler Tight Integration with the QK Preemptive Kernel Low-Power Architecture Assertion-Based Error Handling Built-in Software Tracing Instrumentation QF Structure QF Source Code Organization Critical Sections in QF Saving and Restoring the Interrupt Status Unconditional Locking and Unlocking Interrupts Internal QF Macros for Interrupt Locking/Unlocking Active Objects Internal State Machine of an Active Object Event Queue of an Active Object Thread of Execution and Active Object Priority Event Management in QF Event Structure Dynamic Event Allocation 335

8 xi Automatic Garbage Collection Deferring and Recalling Events Event Delivery Mechanisms in QF Direct Event Posting Publish-Subscribe Event Delivery Time Management Time Event Structure and Interface The System Clock Tick and the QF_tick () Function Arming and Disarming a Time Event Native QF Event Queue The QEQueue Structure Initialization of QEQueue The Native QF Active Object Queue The "Raw" Thread-Safe Queue Native QF Memory Pool Initialization of the Native QF Memory Pool Obtaining a Memory Block from the Pool Recycling a Memory Block Back to the Pool Native QF Priority Set Native Cooperative "Vanilla" Kernel The qvanilla.c Source File The qvanilla.h Header File QP Reference Manual Summary 387 Chapter 8: Porting and Configuring QF The QP Platform Abstraction Layer Building QP Applications Building QP Libraries Directories and Files The qep_port.h Header File The qf_port.h Header File 400 Types of Platform-Specific QActive Data Members 402 Base Class for Derivation of QActive 402 The Maximum Number of Active Objects in the Application 403 Various Object Sizes Within the QF Framework 403 QF Critical Section Mechanism 404 Include Files Used by this QF Port 404 Interface Used Only Inside QF, But Not in Applications 405 Active Object Event Queue Operations 406 QF Event Pool Operations The qf_port.c Source File The qp_port.h Header File 411 I

9 xii Table of Contents Platform-Specific QF Callback Functions System Clock Tick (Calling QF_tick()) Building the QF Library Porting the Cooperative "Vanilla" Kernel The qep_port.h Header File The qf_port.h Header File The System Clock Tick (QF_tick()) Idle Processing (QF_onidle ()) QF Port to uc/os-ii (Conventional RTOS) The qep_port.h Header File The qf_port.h Header File The qf_port. c Source File Building the uc/os-ii Port The System Clock Tick (QF_tick ()) Idle Processing QF Port to Linux (Conventional POSIX-Compliant OS) The qep_port.h Header File The qf_port.h Header File The qf_port. c Source File Summary 441 Chapter 9: Developing QP Application Guidelines for Developing QP Applications Rules Heuristics The Dining Philosopher Problem Step 1: Requirements Step 2: Sequence Diagrams Step 3: Signals, Events, and Active Objects Step 4: State Machines Step 5: Initializing and Starting the Application Step 6: Gracefully Terminating the Application Running DPP on Various Platforms "Vanilla" Kernel on DOS "Vanilla" Kernel on Cortex-M uc/os-ii Linux Sizing Event Queues and Event Pools In Sizing Event Queues Sizing Event Pools System Integration Summary 480

10 xiii Chapter 10: Preemptive Run-to-Completion Kernel Reasons for Choosing a Preemptive Kernel Introduction to RTC Kernels Preemptive Multitasking with a Single Stack Nonblocking Kernel Synchronous and Asynchronous Preemptions Stack Utilization Comparison to Traditional Preemptive Kernels QK Implementation QK Source Code Organization The qk.h Header File Interrupt Processing The qk_sched.c Source File (QK Scheduler) The qk.c Source File (QK Startup and Idle Loop) Advanced QK Features Priority-Ceiling Mutex Thread-Local Storage Extended Context Switch (Coprocessor Support) Porting QK The qep_port.h Header File The qf_port.h Header File The qk_port.h Header File Saving and Restoring FPU Context Testing the QK Port Asynchronous Preemption Demonstration Priority-Ceiling Mutex Demonstration TLS Demonstration Extended Context Switch Demonstration Summary 540 Chapter 11: Software Tracing for Event-Driven Systems Software Tracing Concepts Quantum Spy Software-Tracing System Example of a Software-Tracing Session The Human-Readable Trace Output QS Target Component QS Source Code Organization The QS Platform-Independent Header Files qs. h and qs_dummy. h QS Critical Section General Structure of QS Records QS Filters 562 Global On/Off Filter 562

11 xiv Table of Contents Local Filters QS Data Protocol 566 Transparency 567 Endianness QS Trace Buffer 569 Initializing the QS Trace Buffer QS_initBuf () 569 Byte-Oriented Interface: QS_getByte() 571 Block-Oriented Interface: QS_getBlock() Dictionary Trace Records 574 Object Dictionaries 575 Function Dictionaries 577 Signal Dictionaries Application-Specific QS Trace Records Porting and Configuring QS The QSPY Host Application Installing QSPY Building QSPY Application from Sources 584 Building QSPY for Windows with Visual C Building QSPY for Windows with MinGW 584 Building QSPY for Linux Invoking QSPY Exporting Trace Data to MATLAB Analyzing Trace Data with MATLAB MATLAB Output File MATLAB Script qspy.m MATLAB Matrices Generated by qspy.m Adding QS Software Tracing to a QP Application Initializing QS and Setting Up the Filters Defining Platform-Specific QS Callbacks Generating QS Timestamps with the QS_onGetTime () Callback Generating QS Dictionary Records from Active Objects Adding Application-Specific Trace Records "QSPY Reference Manual" Summary 608 Chapter 12: QP-nano: How Small Can You Co? Key Features of QP-nano Implementing the "Fly 'n' Shoot" example with QP-nano The main () function The qpn_port.h Header File 618 o@ 000

12 xv Signals, Events, and Active Objects in the "Fly 'n' Shoot" Game Implementing the Ship Active Object in QP-nano Time Events in QP-nano Board Support Package for "Fly 'n' Shoot" Application in QP-nano Building the "Fly 'n' Shoot" QP-nano Application QP-nano Structure QP-nano Source Code, Examples, and Documentation Critical Sections in QP-nano 634 Task-Level Interrupt Locking 635 ISR-Level Interrupt Locking State Machines in QP-nano Active Objects in QP-nano The System Clock Tick in QP-nano Event Queues in QP-nano The Ready-Set in QP-nano (QF_readySet_) Posting Events from the Task Level (QActive_post ()) Posting Events from the ISR Level (QActive_postlSR()) The Cooperative "Vanilla" Kernel in QP-nano Interrupt Processing Under the "Vanilla" Kernel Idle Processing under the "Vanilla" Kernel The Preemptive Run-to-Completion QK-nano Kernel QK-nano Interface qkn.h Starting Active Objects and the QK-nano Idle Loop The QK-nano Scheduler Interrupt Processing in QK-nano Priority Ceiling Mutex in QK-nano The PELICAN Crossing Example PELICAN Crossing State Machine The Pedestrian Active Object QP-nano Port to MSP430 with QK-nano Kernel QP-nano Memory Usage Summary 678 Appendix A. Licensing Policy for QP and QP-nano 679 A.I Open-Source Licensing 679 A.2 Closed-Source Licensing 680 A.3 Evaluating the Software 680 A.4 NonProfits, Academic Institutions, and Private Individuals 680 A.5 GNU General Public License Version 2 681

13 XVI Table of Contents Appendix B. Guide to Notation 685 B.I Class Diagrams 685 B.2 State Diagrams 688 B.3 Sequence Diagrams 689 B.4 Timing Diagrams 690 Bibliography 693 Index 699 o<s 0DC

Updates and Errata. Document Revision C for QP version February 2012

Updates and Errata. Document Revision C for QP version February 2012 Updates and Errata Document Revision C for QP version 4.4.00 February 2012 Index of Corrections and Updates NOTE: The following index uses the section numbering consistent with the book. Practical UML

More information

Modern Embedded Systems Programming: Beyond the RTOS

Modern Embedded Systems Programming: Beyond the RTOS Modern Embedded Systems Programming: Beyond the RTOS Miro Samek Quantum Leaps, LLC 1 Presentation Outline A quick introduction to RTOS and the perils of blocking Active objects State machines ~40 min Active

More information

Design Pattern Deferred Event

Design Pattern Deferred Event QP state machine framework pattern Design Pattern Document Revision C October 2013 Copyright Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com The following excerpt comes from the book Practical

More information

Modern Embedded Systems Programming: Beyond the RTOS

Modern Embedded Systems Programming: Beyond the RTOS Modern Embedded Systems Programming: Beyond the RTOS Miro Samek Quantum Leaps, LLC 1 Presentation Outline A quick introduction to RTOS and the perils of blocking Active objects State machines ~40 min Active

More information

Programming with POSIX Threads

Programming with POSIX Threads Programming with POSIX Threads David R. Butenhof :vaddison-wesley Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sidney Tokyo Singapore Mexico City Contents List of

More information

Computers as Components Principles of Embedded Computing System Design

Computers as Components Principles of Embedded Computing System Design Computers as Components Principles of Embedded Computing System Design Third Edition Marilyn Wolf ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY

More information

Quantum Platform Programmer s Manual

Quantum Platform Programmer s Manual Quantum Platform Programmer s Manual Document Revision C October 2006 quantum L e aps, LLC Copyright 2002-2006 quantum L e aps, LLC. All Rights Reserved. All parts of this document and the referenced software

More information

This presentation provides an overview of the QP active object (actor) frameworks and the QM modeling and code-generation tool from Quantum Leaps.

This presentation provides an overview of the QP active object (actor) frameworks and the QM modeling and code-generation tool from Quantum Leaps. This presentation provides an overview of the QP active object (actor) frameworks and the QM modeling and code-generation tool from Quantum Leaps. You can't just look at the QP frameworks and the QM modeling

More information

state-machine.com 2018, Quantum Leaps

state-machine.com 2018, Quantum Leaps The embedded software industry is in the midst of a major revolution. Tremendous amount of new development lays ahead. This new software needs an actual architecture that is safer, better structured and

More information

Embedded Systems Architecture

Embedded Systems Architecture Embedded Systems Architecture A Comprehensive Guide for Engineers and Programmers By Tammy Noergaard ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE

More information

Design Pattern Transition to History

Design Pattern Transition to History QP state machine framework pattern Design Pattern Document Revision C October 2013 Copyright Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com The following excerpt comes from the book Practical

More information

The Definitive Guide to the ARM Cortex-M3

The Definitive Guide to the ARM Cortex-M3 The Definitive Guide to the ARM Cortex-M3 Joseph Yiu AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Newnes is an imprint of Elsevier Newnes Forewopd

More information

This talk is based on my 15 years of experience with developing and refining active object frameworks for deeply embedded real-time systems.

This talk is based on my 15 years of experience with developing and refining active object frameworks for deeply embedded real-time systems. In this presentation I'd like to talk about a modern way to build real-time embedded software that goes beyond the traditional Real-Time Operating System (RTOS). Even though the ideas I'll discuss today

More information

An Introduction to Parallel Programming

An Introduction to Parallel Programming F 'C 3 R'"'C,_,. HO!.-IJJ () An Introduction to Parallel Programming Peter S. Pacheco University of San Francisco ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO

More information

QP-nano Programmer s Manual

QP-nano Programmer s Manual QP-nano Programmer s Manual Document Version 1.5.01 October 2006 quantum L e aps, LLC Copyright 2002-2005 quantum L e aps, LLC. All Rights Reserved. All parts of this document and the referenced software

More information

Programming 8-bit PIC Microcontrollers in С

Programming 8-bit PIC Microcontrollers in С Programming 8-bit PIC Microcontrollers in С with Interactive Hardware Simulation Martin P. Bates älllllltlilisft &Щ*лЛ AMSTERDAM BOSTON HEIDELBERG LONDON ^^Ш NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO

More information

Application Programming

Application Programming Multicore Application Programming For Windows, Linux, and Oracle Solaris Darryl Gove AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris

More information

Engineering Real- Time Applications with Wild Magic

Engineering Real- Time Applications with Wild Magic 3D GAME ENGINE ARCHITECTURE Engineering Real- Time Applications with Wild Magic DAVID H. EBERLY Geometric Tools, Inc. AMSTERDAM BOSTON HEIDELRERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE

More information

Using the FreeRTOS Real Time Kernel

Using the FreeRTOS Real Time Kernel Using the FreeRTOS Real Time Kernel NXP LPC17xx Edition Richard Barry iii Contents List of Figures... vi List of Code Listings... viii List of Tables... xi List of Notation... xii Preface FreeRTOS and

More information

DATABASE SYSTEM CONCEPTS

DATABASE SYSTEM CONCEPTS DATABASE SYSTEM CONCEPTS HENRY F. KORTH ABRAHAM SILBERSCHATZ University of Texas at Austin McGraw-Hill, Inc. New York St. Louis San Francisco Auckland Bogota Caracas Lisbon London Madrid Mexico Milan Montreal

More information

The Unified Modeling Language User Guide

The Unified Modeling Language User Guide The Unified Modeling Language User Guide Grady Booch James Rumbaugh Ivar Jacobson Rational Software Corporation TT ADDISON-WESLEY Boston San Francisco New York Toronto Montreal London Munich Paris Madrid

More information

MSP430 Microcontroller Basics

MSP430 Microcontroller Basics MSP430 Microcontroller Basics John H. Davies AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Newnes is an imprint of Elsevier N WPIGS Contents Preface

More information

Using the FreeRTOS Real Time Kernel

Using the FreeRTOS Real Time Kernel Using the FreeRTOS Real Time Kernel i ii Using the FreeRTOS Real Time Kernel Renesas RX600 Edition Richard Barry iii First edition published 2011. All text, source code and diagrams are the exclusive property

More information

Agile Principles, Patterns, and Practices in C#

Agile Principles, Patterns, and Practices in C# Agile Principles, Patterns, and Practices in C# Robert C. Martin Micah Martin 22 Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid!ENTICE,,,.

More information

Coding for Penetration

Coding for Penetration Coding for Penetration Testers Building Better Tools Jason Andress Ryan Linn ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Syngress is

More information

Managed. Code Rootkits. Hooking. into Runtime. Environments. Erez Metula ELSEVIER. Syngress is an imprint of Elsevier SYNGRESS

Managed. Code Rootkits. Hooking. into Runtime. Environments. Erez Metula ELSEVIER. Syngress is an imprint of Elsevier SYNGRESS Managed Code Rootkits Hooking into Runtime Environments Erez Metula ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEWYORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Syngress is an imprint

More information

ZiLOG Real-Time Kernel Version 1.2.0

ZiLOG Real-Time Kernel Version 1.2.0 ez80acclaim Family of Microcontrollers Version 1.2.0 PRELIMINARY Introduction The (RZK) is a realtime, preemptive, multitasking kernel designed for time-critical embedded applications. It is currently

More information

An Introduction to Object-Oriented Programming

An Introduction to Object-Oriented Programming An Introduction to Object-Oriented Programming Timothy Budd Oregon State University TT Addison-Wesley Publishing Company Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario Wokingham,

More information

An Introduction to Programming with IDL

An Introduction to Programming with IDL An Introduction to Programming with IDL Interactive Data Language Kenneth P. Bowman Department of Atmospheric Sciences Texas A&M University AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN

More information

Coding for Penetration Testers Building Better Tools

Coding for Penetration Testers Building Better Tools Coding for Penetration Testers Building Better Tools Second Edition Jason Andress Ryan Linn Clara Hartwell, Technical Editor ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO

More information

RT3 - FreeRTOS Real Time Programming

RT3 - FreeRTOS Real Time Programming Formation FreeRTOS Real Time Programming: Real-time programming applied to the FreeRTOS operating system - Systèmes d'exploitation: RTOS RT3 - FreeRTOS Real Time Programming Real-time programming applied

More information

Real-Time Systems and Programming Languages

Real-Time Systems and Programming Languages Real-Time Systems and Programming Languages Ada, Real-Time Java and C/Real-Time POSIX Fourth Edition Alan Burns and Andy Wellings University of York * ADDISON-WESLEY An imprint of Pearson Education Harlow,

More information

FPGAs: Instant Access

FPGAs: Instant Access FPGAs: Instant Access Clive"Max"Maxfield AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO % ELSEVIER Newnes is an imprint of Elsevier Newnes Contents

More information

Algorithmic Graph Theory and Perfect Graphs

Algorithmic Graph Theory and Perfect Graphs Algorithmic Graph Theory and Perfect Graphs Second Edition Martin Charles Golumbic Caesarea Rothschild Institute University of Haifa Haifa, Israel 2004 ELSEVIER.. Amsterdam - Boston - Heidelberg - London

More information

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc.

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc. Quadros Systems Inc. RTXC Kernel Services Reference, Volume 1 Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms Disclaimer Quadros Systems, Inc. makes no representations or warranties

More information

Contents. List of Figures... vi. List of Code Listings... viii. List of Tables... xi. List of Notation... xii

Contents. List of Figures... vi. List of Code Listings... viii. List of Tables... xi. List of Notation... xii Contents List of Figures... vi List of Code Listings... viii List of Tables... xi List of Notation... xii Preface FreeRTOS and the Cortex-M3... 1 Multitasking on a Cortex-M3 Microcontroller... 2 An Introduction

More information

Real World Multicore Embedded Systems

Real World Multicore Embedded Systems Real World Multicore Embedded Systems A Practical Approach Expert Guide Bryon Moyer AMSTERDAM BOSTON HEIDELBERG LONDON I J^# J NEW YORK OXFORD PARIS SAN DIEGO S V J SAN FRANCISCO SINGAPORE SYDNEY TOKYO

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

Short Term Courses (Including Project Work)

Short Term Courses (Including Project Work) Short Term Courses (Including Project Work) Courses: 1.) Microcontrollers and Embedded C Programming (8051, PIC & ARM, includes a project on Robotics) 2.) DSP (Code Composer Studio & MATLAB, includes Embedded

More information

The Designer's Guide to VHDL Second Edition

The Designer's Guide to VHDL Second Edition The Designer's Guide to VHDL Second Edition Peter J. Ashenden EDA CONSULTANT, ASHENDEN DESIGNS PTY. VISITING RESEARCH FELLOW, ADELAIDE UNIVERSITY Cl MORGAN KAUFMANN PUBLISHERS An Imprint of Elsevier SAN

More information

CLASSIC DATA STRUCTURES IN JAVA

CLASSIC DATA STRUCTURES IN JAVA CLASSIC DATA STRUCTURES IN JAVA Timothy Budd Oregon State University Boston San Francisco New York London Toronto Sydney Tokyo Singapore Madrid Mexico City Munich Paris Cape Town Hong Kong Montreal CONTENTS

More information

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. AAddison-Wesley

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. AAddison-Wesley Modern C++ Design Generic Programming and Design Patterns Applied Andrei Alexandrescu f AAddison-Wesley Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore

More information

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. .~Addison-Wesley

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. .~Addison-Wesley Modern C++ Design Generic Programming and Design Patterns Applied Andrei Alexandrescu.~Addison-Wesley Boston " San Francisco " New York " Toronto " Montreal London " Munich " Paris " Madrid Capetown "

More information

CIS 21 Final Study Guide. Final covers ch. 1-20, except for 17. Need to know:

CIS 21 Final Study Guide. Final covers ch. 1-20, except for 17. Need to know: CIS 21 Final Study Guide Final covers ch. 1-20, except for 17. Need to know: I. Amdahl's Law II. Moore s Law III. Processes and Threading A. What is a process? B. What is a thread? C. Modes (kernel mode,

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

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu Modern C++ Design Generic Programming and Design Patterns Applied Andrei Alexandrescu ADDISON-WESLEY Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore

More information

Multiple Choice Questions. Chapter 5

Multiple Choice Questions. Chapter 5 Multiple Choice Questions Chapter 5 Each question has four choices. Choose most appropriate choice of the answer. 1. Developing program in high level language (i) facilitates portability of nonprocessor

More information

Maya Python. for Games and Film. and the Maya Python API. A Complete Reference for Maya Python. Ryan Trowbridge. Adam Mechtley ELSEVIER

Maya Python. for Games and Film. and the Maya Python API. A Complete Reference for Maya Python. Ryan Trowbridge. Adam Mechtley ELSEVIER Maya Python for Games and Film A Complete Reference for Maya Python and the Maya Python API Adam Mechtley Ryan Trowbridge AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO

More information

The Essential Guide to Video Processing

The Essential Guide to Video Processing The Essential Guide to Video Processing Second Edition EDITOR Al Bovik Department of Electrical and Computer Engineering The University of Texas at Austin Austin, Texas AMSTERDAM BOSTON HEIDELBERG LONDON

More information

EE249 Lab September 30 h, 2008 Hugo A. Andrade

EE249 Lab September 30 h, 2008 Hugo A. Andrade High-Level Development Tools Data Flow C Code Textual Math Modeling Statechart EE249 Lab September 30 h, 2008 Hugo A. Andrade Graphical System Design Platform Linux Macintosh Windows Real-Time FPGA Micro

More information

Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz

Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming by Nasser Kehtarnavaz University

More information

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON.

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON. Fundamentals of Database Systems 5th Edition Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington Shamkant B. Navathe College of Computing Georgia Institute

More information

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Microsoft. Microsoft Visual C# Step by Step. John Sharp Microsoft Microsoft Visual C#- 2010 Step by Step John Sharp Table of Contents Acknowledgments Introduction xvii xix Part I Introducing Microsoft Visual C# and Microsoft Visual Studio 2010 1 Welcome to

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

Chapter 4: Multi-Threaded Programming

Chapter 4: Multi-Threaded Programming Chapter 4: Multi-Threaded Programming Chapter 4: Threads 4.1 Overview 4.2 Multicore Programming 4.3 Multithreading Models 4.4 Thread Libraries Pthreads Win32 Threads Java Threads 4.5 Implicit Threading

More information

Modern Embedded Computing Designing Connected, Pervasive, Media-Rich Systems

Modern Embedded Computing Designing Connected, Pervasive, Media-Rich Systems Modern Embedded Computing Designing Connected, Pervasive, Media-Rich Systems Peter Barry Patrick Crowley ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE

More information

Chapter 2 Processes and Threads

Chapter 2 Processes and Threads MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 2 Processes and Threads The Process Model Figure 2-1. (a) Multiprogramming of four programs. (b) Conceptual model of four independent,

More information

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader... Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns

More information

CS A331 Programming Language Concepts

CS A331 Programming Language Concepts CS A331 Programming Language Concepts Lecture 12 Alternative Language Examples (General Concurrency Issues and Concepts) March 30, 2014 Sam Siewert Major Concepts Concurrent Processing Processes, Tasks,

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. CMSIS Version 3.0 RTOS API

CODE TIME TECHNOLOGIES. Abassi RTOS. CMSIS Version 3.0 RTOS API CODE TIME TECHNOLOGIES Abassi RTOS CMSIS Version 3.0 RTOS API Copyright Information This document is copyright Code Time Technologies Inc. 2011-2013. All rights reserved. No part of this document may be

More information

Structured Parallel Programming

Structured Parallel Programming Structured Parallel Programming Patterns for Efficient Computation Michael McCool Arch D. Robison James Reinders ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO

More information

PTC Mathcad Prime 3.0

PTC Mathcad Prime 3.0 Essential PTC Mathcad Prime 3.0 A Guide for New and Current Users Brent Maxfield, P.E. AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO @ Academic

More information

The Power of Events. An Introduction to Complex Event Processing in Distributed Enterprise Systems. David Luckham

The Power of Events. An Introduction to Complex Event Processing in Distributed Enterprise Systems. David Luckham The Power of Events An Introduction to Complex Event Processing in Distributed Enterprise Systems David Luckham AAddison-Wesley Boston San Francisco New York Toronto Montreal London Munich Paris Madrid

More information

Hazard Pointers. Number of threads unbounded time to check hazard pointers also unbounded! difficult dynamic bookkeeping! thread B - hp1 - hp2

Hazard Pointers. Number of threads unbounded time to check hazard pointers also unbounded! difficult dynamic bookkeeping! thread B - hp1 - hp2 Hazard Pointers Store pointers of memory references about to be accessed by a thread Memory allocation checks all hazard pointers to avoid the ABA problem thread A - hp1 - hp2 thread B - hp1 - hp2 thread

More information

Structured Parallel Programming Patterns for Efficient Computation

Structured Parallel Programming Patterns for Efficient Computation Structured Parallel Programming Patterns for Efficient Computation Michael McCool Arch D. Robison James Reinders ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO

More information

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY Programming In Ada 2005 JOHN BARNES... TT ADDISON-WESLEY An imprint of Pearson Education Harlow, England London New York Boston San Francisco Toronto Sydney Tokyo Singapore Hong Kong Seoul Taipei New Delhi

More information

DSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin

DSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin Product Bulletin TM DSP/BIOS Kernel Scalable, Real-Time Kernel TM for TMS320 DSPs Key Features: Fast, deterministic real-time kernel Scalable to very small footprint Tight integration with Code Composer

More information

Concurrent and Distributed Systems Introduction

Concurrent and Distributed Systems Introduction Concurrent and Distributed Systems 8 lectures on concurrency control in centralised systems - interaction of components in main memory - interactions involving main memory and persistent storage (concurrency

More information

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition

More information

Integrated Approach. Operating Systems COMPUTER SYSTEMS. LEAHY, Jr. Georgia Institute of Technology. Umakishore RAMACHANDRAN. William D.

Integrated Approach. Operating Systems COMPUTER SYSTEMS. LEAHY, Jr. Georgia Institute of Technology. Umakishore RAMACHANDRAN. William D. COMPUTER SYSTEMS An and Integrated Approach f Architecture Operating Systems Umakishore RAMACHANDRAN Georgia Institute of Technology William D. LEAHY, Jr. Georgia Institute of Technology PEARSON Boston

More information

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 Overview Objective: To explore the principles upon which

More information

Semaphore. Originally called P() and V() wait (S) { while S <= 0 ; // no-op S--; } signal (S) { S++; }

Semaphore. Originally called P() and V() wait (S) { while S <= 0 ; // no-op S--; } signal (S) { S++; } Semaphore Semaphore S integer variable Two standard operations modify S: wait() and signal() Originally called P() and V() Can only be accessed via two indivisible (atomic) operations wait (S) { while

More information

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-M3 CCS

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-M3 CCS CODE TIME TECHNOLOGIES Abassi RTOS Porting Document ARM Cortex-M3 CCS Copyright Information This document is copyright Code Time Technologies Inc. 2011,2012. All rights reserved. No part of this document

More information

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Give your application the ability to register callbacks with the kernel. by Frédéric Rossi In a previous article [ An Event Mechanism

More information

Chapter 4: Threads. Operating System Concepts 9 th Edition

Chapter 4: Threads. Operating System Concepts 9 th Edition Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples

More information

Windows Interrupts

Windows Interrupts Windows 2000 - Interrupts Ausgewählte Betriebssysteme Institut Betriebssysteme Fakultät Informatik 1 Interrupts Software and Hardware Interrupts and Exceptions Kernel installs interrupt trap handlers Interrupt

More information

Chapter 4: Threads. Operating System Concepts 9 th Edition

Chapter 4: Threads. Operating System Concepts 9 th Edition Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples

More information

EMBEDDED SYSTEMS: Jonathan W. Valvano INTRODUCTION TO THE MSP432 MICROCONTROLLER. Volume 1 First Edition June 2015

EMBEDDED SYSTEMS: Jonathan W. Valvano INTRODUCTION TO THE MSP432 MICROCONTROLLER. Volume 1 First Edition June 2015 EMBEDDED SYSTEMS: INTRODUCTION TO THE MSP432 MICROCONTROLLER Volume 1 First Edition June 2015 Jonathan W. Valvano ii Jonathan Valvano First edition 3 rd printing June 2015 The true engineering experience

More information

MPI: A Message-Passing Interface Standard

MPI: A Message-Passing Interface Standard MPI: A Message-Passing Interface Standard Version 2.1 Message Passing Interface Forum June 23, 2008 Contents Acknowledgments xvl1 1 Introduction to MPI 1 1.1 Overview and Goals 1 1.2 Background of MPI-1.0

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

Today s Topics. u Thread implementation. l Non-preemptive versus preemptive threads. l Kernel vs. user threads

Today s Topics. u Thread implementation. l Non-preemptive versus preemptive threads. l Kernel vs. user threads Today s Topics COS 318: Operating Systems Implementing Threads u Thread implementation l Non-preemptive versus preemptive threads l Kernel vs. user threads Jaswinder Pal Singh and a Fabulous Course Staff

More information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes and Non-Preemptive Scheduling. Otto J. Anshus Processes and Non-Preemptive Scheduling Otto J. Anshus Threads Processes Processes Kernel An aside on concurrency Timing and sequence of events are key concurrency issues We will study classical OS concurrency

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

Green Hills Software, Inc.

Green Hills Software, Inc. Green Hills Software, Inc. A Safe Tasking Approach to Ada95 Jim Gleason Engineering Manager Ada Products 5.0-1 Overview Multiple approaches to safe tasking with Ada95 No Tasking - SPARK Ada95 Restricted

More information

PATTERN-ORIENTED SOFTWARE ARCHITECTURE

PATTERN-ORIENTED SOFTWARE ARCHITECTURE PATTERN-ORIENTED SOFTWARE ARCHITECTURE A Pattern Language for Distributed Computing Volume 4 Frank Buschmann, Siemens, Munich, Germany Kevlin Henney, Curbralan, Bristol, UK Douglas C. Schmidt, Vanderbilt

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger C-SPY plugin Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger This document describes the IAR C-SPY Debugger plugin for the ThreadX RTOS. The ThreadX RTOS awareness

More information

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel Alexander Züpke, Marc Bommert, Daniel Lohmann alexander.zuepke@hs-rm.de, marc.bommert@hs-rm.de, lohmann@cs.fau.de Motivation Automotive and Avionic industry

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

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 AC OB S Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 ACOBS ACtive OBject (operating) System Simplified FW System for Multi-Threading on ARM embedded systems ACOBS

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-A9 CCS

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document. ARM Cortex-A9 CCS CODE TIME TECHNOLOGIES Abassi RTOS Porting Document ARM Cortex-A9 CCS Copyright Information This document is copyright Code Time Technologies Inc. 2012. All rights reserved. No part of this document may

More information

JAVA CONCEPTS Early Objects

JAVA CONCEPTS Early Objects INTERNATIONAL STUDENT VERSION JAVA CONCEPTS Early Objects Seventh Edition CAY HORSTMANN San Jose State University Wiley CONTENTS PREFACE v chapter i INTRODUCTION 1 1.1 Computer Programs 2 1.2 The Anatomy

More information

RTOS Real T i Time me Operating System System Concepts Part 2

RTOS Real T i Time me Operating System System Concepts Part 2 RTOS Real Time Operating System Concepts Part 2 Real time System Pitfalls - 4: The Ariane 5 satelite launch rocket Rocket self destructed in 4 June -1996. Exactly after 40 second of lift off at an attitude

More information

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition Chapter 5: Process Synchronization Silberschatz, Galvin and Gagne 2013 Chapter 5: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks

More information

Microsoft Visual C# Step by Step. John Sharp

Microsoft Visual C# Step by Step. John Sharp Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual

More information

Systems:;-'./'--'.; r. Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington

Systems:;-'./'--'.; r. Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington Data base 7\,T"] Systems:;-'./'--'.; r Modelsj Languages, Design, and Application Programming Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington Shamkant

More information

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4 Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell

More information

DRIVER MODEL ULB Darmstadt

DRIVER MODEL ULB Darmstadt Microsoft" y / /«Second Edition PROGRAMMING MICROSO FT WIN D 0 WS DRIVER MODEL ULB Darmstadt i minis Walter Oney Acknowledgments Introduction Beginning a Driver Project 1 A Brief History of Device Drivers

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