CSCI1600: Embedded and Real Time Software Lecture 2: Introduction Steven Reiss, Fall 2015.

Slides:



Advertisements
Similar presentations
Mehdi Naghavi Spring 1386 Operating Systems Mehdi Naghavi Spring 1386.
Advertisements

Chapter 1 An Overview of Computers and Programming Languages.
Introduction CSCI 444/544 Operating Systems Fall 2008.
MotoHawk Training Model-Based Design of Embedded Systems.
1: Operating Systems Overview
Chapter 13 Embedded Systems
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
1 Input/Output Chapter 3 TOPICS Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Reference: Operating Systems Design.
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
EMBEDDED SOFTWARE Team victorious Team Victorious.
Microcontroller: Introduction
An Introduction and Practical approach to RTOS concepts.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
9/14/ Introduction to Realtime Systems Chapter 1 R. Williams’ text B. Ramamurthy.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Chapter 5 Operating System Support. Outline Operating system - Objective and function - types of OS Scheduling - Long term scheduling - Medium term scheduling.
◦ What is an Operating System? What is an Operating System? ◦ Operating System Objectives Operating System Objectives ◦ Services Provided by the Operating.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
EEL Software development for real-time engineering systems.
Real-Time Systems Mark Stanovich. Introduction System with timing constraints (e.g., deadlines) What makes a real-time system different? – Meeting timing.
Hardware-software Interface Xiaofeng Fan
CSCI1600: Embedded and Real Time Software Lecture 4: Introduction to the Arduino Steven Reiss, Fall 2015.
Chapter 5 Input/Output 5.1 Principles of I/O hardware
CSCI1600: Embedded and Real Time Software Lecture 8: Modeling III: Hybrid Systems Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Steven Reiss Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 6: Modeling I: Continuous Systems Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 9: Input Output Concepts Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 14: Input/Output II Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 23: Real Time Scheduling I Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 16: Advanced Programming with I/O Steven Reiss, Fall 2015.
CSCI1600: Embedded and Real Time Software Lecture 5: Arduino Programming Steven Reiss, Fall 2015.
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
CSCI1600: Embedded and Real Time Software Lecture 15: Advanced Programming Concepts Steven Reiss, Fall 2015.
Chapter 1 An Overview of Computers and Programming Languages.
 Introduction.  Block Diagram.  Sensors.  Arduino.  Advantages.  Limitations.  Applications.  Conclusion. Contents.
Networked Embedded Systems Sachin Katti EE107 Spring 2016 Lecture 3 Microcontrollers.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Embedded System Design and Development Introduction to Embedded System.
CSCI1600: Embedded and Real Time Software Lecture 10: Modeling IV: Compositions of State Machines Steven Reiss, Fall 2015.
Benefits of a Virtual SIL
Unit OS9: Real-Time and Embedded Systems
מעבדה במערכות משובצות ד"ר מרינה ליפשטיין דוא"ל:
Introduction to Realtime Systems (& Embedded Systems)
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
EE 472 – Embedded Systems Dr. Shwetak Patel.
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Operating System Introduction.
Virtual Memory: Working Sets
Chapter 2 Operating System Overview
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Presentation transcript:

CSCI1600: Embedded and Real Time Software Lecture 2: Introduction Steven Reiss, Fall 2015

Embedded Programming A system that has embedded software and computer hardware, which make it a system dedicated for an application or a specific part of an application or product or a part of a larger system. Any device that includes a programmable computer but is not itself intended to be a general-purpose computer.

Real Time Computing  Embedded computing where responsiveness matters; where inputs and/or outputs have to be processed in real time

History  Elevators in the early 1900’s  Navy ships in the 1950’s  Arpanet hubs in the 1960’s  Pinball machines from the 1950’s on  Today: everything from pacemakers to thermostats to toasters

Homework  What device did you think of and how might it work

Challenge: Restricted Hardware  CPU power, memory, power  Arduino: 32K memory, 16mhz clock  Hardware costs dominate  10 million units – every penny matters  Unlikely to be upgraded  Need to get it right the first time

Challenge: Reliability  A system crash can cause injury or real damage  X-ray machines, planes  GPS driving a car into a river  Imlac display amps  Mars probe with wrong units  Systems must minimize risk  Toyota brakes  Fly-by-wire jet with minor pilot errors  Computer driven cars

Reliability: Solutions  Modeling and analysis of SW & HW  To determine behavior before implementation  Finite state modeling (control-based)  Continuous modeling of physical systems  Queueing theory, data and control modeling  Timing analysis  Fault analysis  Simulation  Verifying software

Challenge: Maintainability  Who is going to upgrade a toaster  Other devices may be upgraded  How much work  Is it feasible  Planning for this

Challenge: Limited OS Support  Often none at all  You have to do your own scheduling  You might build a mini-OS as part of software  Threads, scheduling, synchronization, …  Input/output devices and drivers  Interrupt processing  Debugger?  Might need test hardware platform

Challenge: Emphasis on I/O  Need to interact with the world  Multiple types of input devices  And each is different/unique  Multiple types of output devices  Reactions need to be quick and appropriate  Devices may be analog/continuous

Challenge: Performance  Important:  Reacting in the proper  Finding input changes appropriately  Power usage  Unimportant  Performance: fast enough is all that is needed  Performance sacrificed for  Memory, CPU power, battery life, predictability, simplicity, reliability

Challenge: Control Orientation  Dealing with inputs/outputs  Get external stimulus  Provide appropriate external actions  Event-based (stimulus – repsonse)  Object-oriented designs don’t generally work  Too bulky  Miss the whole point of the system  Embedded systems are TASK oriented

Challenge: Hardware Details  Common operations might be expensive  Floating point operations  Integer multiply, divide  Trade memory for cpu (lookup tables)  Number of I/O channels  Number of interrupt channels

Real Time  Hard real time: there are physical consequences for not meeting deadlines  Planes crash, cars crash  Soft real time: the results might not be as accurate or convenient  GPS in the phone  Flashing rate on lights

Real Time Challenges  Ensuring software meets requirements  Determining maximum run time of code  Including interrupts, external I/O, …  Memory caching, hyperthreading, pipelining  Avoiding unpredictable algorithms & DS  Hash tables, memory allocation, quicksort  Done in terms of TASKS

Real Time Challenges  Scheduling multiple tasks  NP-complete problem  Ensuring predictable software  Modeling program behavior  Modeling timing issues  Formal verification of the software  Formal verification of the timing

Example  CLAPPER  Input: microphone  Output: LED lights  Computer: Arduino  CPU, memory, I/O ports  Digital and analog inputs  Serial inputs (UART) to computer  Program  Check for input  Set outputs

Clapper: Issues  What types of input do we want  What does sound input look like  Different frequencies (whistler)  Threshold of loudness (clapper)  What is the threshold  Continuous loud noises  Interim noises  Sampling rate

Clapper: Issues  Handling output lights  Flashing on and off at the right times  Handling logic  Handling multiple claps  We’ll go over this next week

Homework for Monday  Project Idea Presentations  1-4 minutes each (depends on group size)  Pitch your project  Elevator talks