CS 501: Software Engineering Fall 1999

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 2.
Advertisements

1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
CS 5150 Software Engineering
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
ConcurrencyCS-3013 A-term Introduction to Concurrency ( Processes, Threads, Interrupts, etc.) CS-3013, Operating Systems A-term 2009 (Slides include.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems.
EMBEDDED SOFTWARE Team victorious Team Victorious.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
1 소프트웨어공학 강좌 Chap 11. Real-time software Design - Designing embedded software systems whose behaviour is subject to time constraints -
EEL Software development for real-time engineering systems.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
Slide 1 Chapter 11 Real –time Software Designs. Slide 2 Real-time systems l Systems which monitor and control their environment l Inevitably associated.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 501: Software Engineering
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 14 System Architecture II.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Real-time Software Design.
Real-time Software Design King Saud University College of Computer and Information Sciences Department of Computer Science Dr. S. HAMMAMI.
Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls.
Introduction to Concurrency CS-502 (EMC) Fall Introduction to Concurrency ( Processes, Threads, Interrupts, etc.) CS-502, Operating Systems Fall.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real.
Real-time Software Design
Applied Operating System Concepts
Real-time Software Design
Real-time Software Design
REAL-TIME OPERATING SYSTEMS
Chapter 1: Introduction
Chapter 1: Introduction
Introduction to Basic OS Concepts
Advanced Operating Systems CIS 720
Topics Covered What is Real Time Operating System (RTOS)
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 7.2 Computer Architecture
Chapter 1: Introduction
מעבדה במערכות משובצות ד"ר מרינה ליפשטיין דוא"ל:
Chapter 1: Introduction
TYPES OFF OPERATING SYSTEM
Real-time Software Design
Introduction to Realtime Systems (& Embedded Systems)
Chapter 1: Introduction
Interrupts and Interrupt Handling
Chapter 4: Threads.
Concurrency CS-3013 Operating Systems C-Term 2008 Assumptions:
Operating System Concepts
Chapter 1: Introduction
Software testing and configuration : Embedded software testing
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Embedded System Development Lecture 1 1/10/2007
Subject Name: Operating System Concepts Subject Number:
Chapter 1: Introduction
Chapter 1: Introduction
CSC3050 – Computer Architecture
Chapter 1: Introduction
Chapter 1: Introduction
Operating System Overview
Chapter 1: Introduction
Operating System Concepts
Chapter 13: I/O Systems.
Chapter 1: Introduction
Overview of Computer system
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara
Presentation transcript:

CS 501: Software Engineering Fall 1999 Lecture 25 Real Time Systems

Administration  Examination schedule

Real Time System A real time system is a software system whose correct functioning depends upon the results produced and the time at which they are produced.  A soft real time system is degraded if the results are not produced within required time constraints  A hard real time system fails if the results are not produced within required time constraints

Embedded Systems Software and hardware are combined to provide an integrated unit, usually dedicated to a specific task  Digital telephone  Automobile engine control  GPS  Scientific instruments The software may be embedded in the device in a manner that can not be altered after manufacture

Autonomous Land Vehicle GPS Steer Sonar Model Control signals Throttle Laser Controls Sensors Signal processing

Other Applications Response critical  Network router  Telephone switch  Seat bag controller Shared systems  Multi-user data processing  Time sharing

Techniques  Special purpose hardware  Multi-threading and multi-tasking  Parallel processing => digital signal processing  Interrupts => levels and priorities

Multi Threading Several similar threads operating concurrently  Re-entrant code -- separation of pure code from data for each thread  Testing -- single thread and multi thread May be real time (e.g., telephone switch) or non-time critical

Real Time Executive Schedules and dispatches tasks in a real time system  Real time clock  Interrupt handler  Scheduler  Resource manager  Dispatcher Must be extremely reliable

Timing Timing mechanisms  Synchronous (clocked) -- periodic stimuli  Asynchronous -- wait for next signal Example: Communications protocols may be synchronous or asynchronous

Hardware v. Software Design of embedded systems requires close understanding of hardware characteristics  Special purpose hardware requires special tools and expertise.  Some functions may be implemented in either hardware of software (e.g., floating point unit)  Design requires separation of functions Distinction between hardware and software may be blurred

Dartmouth Time Shared System Central processor Communications processor I/O Mulitplexor Central processor Communications processor Central processor

Software Considerations Resource considerations may dictate software design and implementation:  Low level language (e.g., C) where programmer has close link to machine  Inter-process communication may be too slow (e.g., C fork).  May implement special buffering, etc., to control timings

Example: CD Controller 4 3 1 Input block 5 2 Output block 6 7 Circular buffer

Continuous Operation Many embedded systems must operate continuously  Software update while operating  Hardware monitoring and repair  Alternative power supplies, networks, etc.  Remote operation These functions must be designed into the fundamental architecture

Routers and Other Network Computing  Interoperation with third party devices  Support for several versions of protocols  Restart after total failure  Defensive programming -- must survive => erroneous or malicious messages => extreme loads  Time outs, dropped packets, etc.  Evolution of network systems

Software Development Testing and debugging need special tools and environments  Debuggers, etc., can not be used to test real time performance  Simulation of environment may be needed to test interfaces -- e.g., adjustable clock speed  General purpose tools may not be available

Software Engineering for Real Time The special characteristics of real time computing require extra attention to good software engineering principles:  Requirements analysis and specification  Development of tools  Modular design  Exhaustive testing Heroic programming will fail!

Reading Before the examination, read Sommerville Chapters 25, 26 and 27