EE458 - Embedded Systems Modularization

Similar documents
Introduction to Real-Time Systems and Multitasking. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff

EE458 - Embedded Systems Exceptions and Interrupts

Elevator Control System

Scheduling Algorithm and Analysis

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

Embedded Systems. 6. Real-Time Operating Systems

EECS 571 Principles of Real-Time Embedded Systems. Lecture Note #10: More on Scheduling and Introduction of Real-Time OS

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

Hardware/Software Codesign of Schedulers for Real Time Systems

Computer-System Architecture

Computer-System Architecture. Common Functions of Interrupts. Computer-System Operation. Interrupt Handling. Chapter 2: Computer-System Structures

Instruction Cycle. Computer-System Architecture. Computer-System Operation. Common Functions of Interrupts. Chapter 2: Computer-System Structures

Chapter 13: I/O Systems

Embedded Systems Programming

Chapter 12: I/O Systems

Chapter 13: I/O Systems

Chapter 12: I/O Systems. Operating System Concepts Essentials 8 th Edition

ReconOS: An RTOS Supporting Hardware and Software Threads

Task Based Programming Revisited Real Time Operating Systems

Commercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory

Chapter 3: Processes. Operating System Concepts 8 th Edition,

Computer-System Structures

WS_CCESSH5-OUT-v1.01.doc Page 1 of 7

Chapter 3: Processes. Operating System Concepts 8th Edition,

Common Computer-System and OS Structures

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

Lecture 4: Memory Management & The Programming Interface

Administrative Stuff. We are now in week 11 No class on Thursday About one month to go. Spend your time wisely Make any major decisions w/ Client

Providing Real-Time and Fault Tolerance for CORBA Applications

EC EMBEDDED AND REAL TIME SYSTEMS

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

Real-Time Operating Systems Design and Implementation. LS 12, TU Dortmund

18-642: Race Conditions

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

Priya Narasimhan. Assistant Professor of ECE and CS Carnegie Mellon University Pittsburgh, PA

آنستیتیوت تکنالوجی معلوماتی و مخابراتی ICTI

Process Description and Control

Diagram of Process State Process Control Block (PCB)

Processes and More. CSCI 315 Operating Systems Design Department of Computer Science

Real-Time Operating Systems. Ludovic Apvrille Eurecom, office

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

CS450/550 Operating Systems

Real Time & Embedded Systems. Final Exam - Review

IN4343 Real-Time Systems

Using the Executor Framework to Implement AEH in the RTSJ

Tasks. Task Implementation and management

2. Introduction to Software for Embedded Systems

Real-Time & Embedded Operating Systems

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT I OPERATING SYSTEMS

Real-time HOOD. Analysis and Design of Embedded Systems and OO* Object-oriented Programming Jan Bendtsen Automation and Control

Green Hills Software, Inc.

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

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Module 20: Multi-core Computing Multi-processor Scheduling Lecture 39: Multi-processor Scheduling. The Lecture Contains: User Control.

Reference Model and Scheduling Policies for Real-Time Systems

Content(2) Contribution of OOT in Software Engineering History of SE Technologies and Contribution of OOT JAIST Koichiro Ochimizu

Introduction to System Design

Microkernel Construction

Chapter 3: Processes. Operating System Concepts Essentials 2 nd Edition

ARM Interrupts. EE383: Introduction to Embedded Systems University of Kentucky. James E. Lumpp

Last Time. Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads

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

Embedded Operating Systems. Unit I and Unit II

Threads SPL/2010 SPL/20 1

MultiThreading. Object Orientated Programming in Java. Benjamin Kenwright

The von Neuman architecture characteristics are: Data and Instruction in same memory, memory contents addressable by location, execution in sequence.

What are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID:

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

CS370 Operating Systems

Lecture 15: I/O Devices & Drivers

Real-Time Concepts for Embedded Systems Author: Qing Li with Caroline Yao

CS4514 Real-Time Systems and Modeling

Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems

Chapter 8: I/O functions & socket options

CSC 539: Operating Systems Structure and Design. Spring 2006

Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted from Hennessy & Patterson / 2003 Elsevier

FreeRTOS - Common Task Design Patterns in Multi-tasking Applications

Concurrent activities in daily life. Real world exposed programs. Scheduling of programs. Tasks in engine system. Engine system

Chapter 13: I/O Systems

3.1 Introduction. Computers perform operations concurrently

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Patterns for! Parallel Programming II!

Multicore for safety-critical embedded systems: challenges andmarch opportunities 15, / 28

Schedulability Analysis of AADL Models

The Big Picture So Far. Chapter 4: Processes

ECE 485/585 Microprocessor System Design

Final Exam Study Guide

Analysis and Research on Improving Real-time Performance of Linux Kernel

Chapter 3: Processes

Grundlagen Microcontroller Interrupts. Günther Gridling Bettina Weiss

Syllabus Instructors:

Enriching Enea OSE for Better Predictability Support

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

Real-time operating systems and scheduling

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

WS_CCESBF7-OUT-v1.00.doc Page 1 of 8

Modern Embedded Systems Programming: Beyond the RTOS

Transcription:

EE458 - Embedded Systems Modularization Outline Decomposing Applications Final Projects References RTC: Chapter 14 1

Decomposing Applications How do we break an application into concurrent tasks? How do we assign task? There are several approaches, we will focus on the outside-in decomposition method. In the outside-in method we first identify the input and output devices and then assign tasks to handle each device following some general guidelines. 2

Decomposing Applications Guidelines to outside-in decomposition: 1) Identify Device Dependencies 1a) Identify Active I/O Devices 1b) Identify Passive I/O Devices 2) Identify Event Dependencies 3) Identify Dependencies 3a) Identify Critical and Urgent Activities 3b) Identify Different Periodic Execution Rates 3c) Identify Temporal Cohesion 3

Decomposing Applications Guidelines to outside-in decomposition (cont): 4) Identify Computationally Bound Activities 5) Identify Functional Cohesion 6) Identify Tasks with a Specific Purpose 7) Identify Cohesion 4

1) Identify Device Dependencies Active I/O devices are those that generate interrupts to communicate with the application. Synchronous devices generate interrupts periodically or in sync with other active devices, asynchronous devices do not. Passive I/O devices do not generate interrupts. These devices must be. Communication can be periodic or aperiodic. 5

1a) Identify Active Devices Recommendations 1) Initially assign separate tasks for separate asynchronous I/O devices. 2) Combine tasks for I/O devices that generate infrequent interrupts having long. 3) Assign separate tasks to devices that have different input and output rates. Devices with high I/O frequencies should be associated with higher priority tasks. 6

1a) Identify Active Devices Recommendations (cont.) 4) Assign higher priorities to tasks associated with interrupt generating devices. The task must be able to execute fast enough to keep up with the interrupts. 5) Assign a resource control task to control access to I/O devices. This task can receive multiple I/O requests from different tasks. 6) Assign an event task for I/O device requests that need to be handed off to multiple tasks. May handle one or more devices. 7

1b) Identify Passive Devices Recommendations 1) Assign a single task to interface with passive devices when communication with such devices is aperiodic and when deadlines are not urgent. 2) Assign separate polling tasks to send periodic requests to passive I/O devices. 3) Trigger polling requests via timer events. Do not use busy loops, they are subject to interrupts and. 4) Assign a high relative priority to polling tasks with relatively short periods. 8

2) Identify Event Dependencies Externally generated events are interrupts. Tasks will also need to be assigned to handle internally generated events such as error conditions or. Should the event be sent to a task for user notification via an I/O device? Can corrective active be taken to clear the fault? 9

3) Identify Time Dependencies 3a) Identify Critical and Urgent Activities Failure of a critical task to meet a deadline is disastrous. Priorities for critical and urgent tasks should be relatively. 3b) Identify Periodic Execution Rates Activities with similar rates can be grouped into tasks. 3c) Identify Temporal Cohesion Group sequences of code that always execute at the same time into a single task. 10

4) Ident. Comp. Bound Activities Computationally bound activities require a lot of CPU time compared to the time required for other operations, such as I/O. These are typically number crunching activities and may have relatively long deadlines. Typically low priorities are assigned to the corresponding tasks so that they do not monopolized the CPU. These types of tasks may be at a common (low) priority level. 11

Guidelines 5-7 5) Identify Function Cohesion Group functions that perform related activities into a single task. Two tasks that pass lots of data may be combined into a single task. 6) Identify Tasks with a Specific Purpose Tasks can be grouped according to the purpose they serve. Should there be a task to detect problems, set alarms, and notify the user? 7) Identify Sequential Cohesion Group activities that must occur in a given sequence into a single task. 12

Final Projects Demonstrate an RTOS (other than one we use in class) running on real or simulated hardware. Examples: FreeRTOS, ecos. Demonstrate RTEMS, uc/os, AvrX running on hardware different from that used in class. Demonstrate an RTEMS, uc/os, or AvrX application. 13

Final Projects Example RTEMS projects: Networking Remote Debugging File Systems Device Driver Development Graphical User Interface Eclipse or CodeBlocks IDE Ports to PowerPC, ARM, Coldfire Some of the research projects could develop into Senior projects... 14