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

Similar documents
System types. Distributed systems

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Multiprocessor and Real-Time Scheduling. Chapter 10

Software Engineering. Part 3. Design. - Application Architectures - Object-Oriented Design - Real-Time Software Design

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

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

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

ECE519 Advanced Operating Systems

Multiprocessor and Real- Time Scheduling. Chapter 10

Today s class. Scheduling. Informationsteknologi. Tuesday, October 9, 2007 Computer Systems/Operating Systems - Class 14 1

The Real-time Specification for Java

Multimedia Systems 2011/2012

Lecture 3: Concurrency & Tasking

Time Handling in Programming Language

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University

Distributed systems. Distributed Systems Architectures

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

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

DISTRIBUTED REAL-TIME SYSTEMS

Today: Distributed Objects. Distributed Objects

Introduction to Real-time Systems. Advanced Operating Systems (M) Lecture 2

IN4343 Real-Time Systems

Multiprocessor scheduling

SMD149 - Operating Systems

TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

PROCESSES AND THREADS

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

8: Scheduling. Scheduling. Mark Handley

Today: Distributed Middleware. Middleware

SMD149 - Operating Systems - Multiprocessing

Overview. SMD149 - Operating Systems - Multiprocessing. Multiprocessing architecture. Introduction SISD. Flynn s taxonomy

CSCI-GA Operating Systems Lecture 3: Processes and Threads -Part 2 Scheduling Hubertus Franke

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date:

Reference Model and Scheduling Policies for Real-Time Systems

Exam TI2720-C/TI2725-C Embedded Software

4. Hardware Platform: Real-Time Requirements

DS 2009: middleware. David Evans

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13

CS4514 Real-Time Systems and Modeling

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

SWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems

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

Outline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems

Exam Review TexPoint fonts used in EMF.

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

Real-Time Programming

Syllabus Instructors:

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University

MODELS OF DISTRIBUTED SYSTEMS

Architectural Design. CSCE Lecture 12-09/27/2016

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

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS

1.264 Lecture 16. Legacy Middleware

Operating System Support

MULTIPROCESSORS. Characteristics of Multiprocessors. Interconnection Structures. Interprocessor Arbitration

3.1 Introduction. Computers perform operations concurrently

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

I/O AND DEVICE HANDLING Operating Systems Design Euiseong Seo

Ensuring Schedulability of Spacecraft Flight Software

Distributed Objects. Object-Oriented Application Development

Precedence Graphs Revisited (Again)

CPE731 Middleware for Distributed Systems

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

OPERATING SYSTEM CONCEPTS UNDERSTAND!!! IMPLEMENT!!! ANALYZE!!!

I/O Systems. Amir H. Payberah. Amirkabir University of Technology (Tehran Polytechnic)

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

Operating Systems (1DT020 & 1TT802)

Middleware Support for Aperiodic Tasks in Distributed Real-Time Systems

Elevator Control System

Multiprocessors 2007/2008

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100

Real-Time Systems 1. Basic Concepts

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

Traditional Approaches to Modeling

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

Computer Science 4500 Operating Systems

Providing Real-Time and Fault Tolerance for CORBA Applications

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

SIR C.R.REDDY COLLEGE OF ENGINEERING, ELURU DEPARTMENT OF INFORMATION TECHNOLOGY LESSON PLAN

Real-Time Systems and Programming Languages

Components & Characteristics of an Embedded System Embedded Operating System Application Areas of Embedded d Systems. Embedded System Components

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

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 4 Communication

Operating Systems Comprehensive Exam. Spring Student ID # 3/20/2013

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009

Frequently Asked Questions about Real-Time

EC EMBEDDED AND REAL TIME SYSTEMS

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

CPU Scheduling. CSE 2431: Introduction to Operating Systems Reading: Chapter 6, [OSC] (except Sections )

Lecture Topics. Announcements. Today: Advanced Scheduling (Stallings, chapter ) Next: Deadlock (Stallings, chapter

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Concurrent Exception Handling and Resolution in Distributed Object Systems

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

Scheduling. CSC400 - Operating Systems. 7: Scheduling. J. Sumey. one of the main tasks of an OS. the scheduler / dispatcher

Process- Concept &Process Scheduling OPERATING SYSTEMS

Transcription:

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

Real-Time and On-Line ON-Line Real-Time Flight avionics NOT Real-Time Our PCs OFF-Line Analyze seismic data Rendering Toy Story

Distributed Systems

Basic System Types Personal systems One, two, or four processors, very tightly coupled in one machine Usually on-line (interactive) but not real-time Embedded systems Moderately tightly coupled processors, specific to a appliance, device, or machine Usually on-line, often real-time Distributed systems Loosely integrated group of cooperating processors linked by a network Usually on-line (interactive) but not real-time Sometimes off-line and not real-time

Distributed Systems Virtually all large computer-based systems are now distributed systems Information processing is distributed over several computers rather than confined to a single machine Distributed software engineering is now very important

DS Characteristics Resource sharing Openness Concurrency Scalability Fault tolerance Transparency (components)

Disadvantages Complexity Security Manageability Unpredictability

Issues Resource identification Communication Quality of service Software architecture

Main DS Architectures Client-server architectures Servers that provide services are treated differently from clients that use services Distributed object architectures No distinction between clients and servers. Any object on the system may provide and use services from other objects

Middleware Manages and supports the different components of a distributed system Usually COTS (commercial off-the-shelf) Examples Transaction processing Data conversion Distributed communication control

Multiprocessor Architectures Multiple related processes running on coupled processors, embedded or distributed Control (scheduling) A priori vs. real-time Both Common w/ real-time systems

Client-Server Architectures Servers offer a set of services, clients request/use these services Clients know of servers but servers need not know of clients Clients/servers are logical processes The mapping of processors to processes is not necessarily 1 : 1

Thin vs. Thick Client Thin-client model All of the application processing and data management is carried out on the server Client is simply responsible for running the presentation software. Heavy burden on server Thick-client model Server is only responsible for data management Client maintenance is more complex

CORBA International standard for an Object Request Broker middleware to manage communications between distributed objects Several implementations available DCOM is an alternative approach by Microsoft to object request brokers CORBA has been defined by the Object Management Group

CORBA Standards Object model for application objects A CORBA object is an encapsulation of state with a well-defined, language-neutral interface defined in an interface definition language (IDL) An object request broker (ORB) that manages requests for object services A set of general object services of use to many distributed applications A set of common components built on top of these services

CORBA Objects Comparable (in principle) to objects in C++ and Java Each object MUST have a separate interface definition that is expressed using a common language (IDL) similar to C++ There is a mapping from this IDL to programming languages (C++, Java, etc.) As a result, objects written in different languages can communicate with each other

CORBA Object Request Broker Handles object communications Knows all objects and interfaces in the system Calling object Using an ORB, calling object binds an IDL stub interface of the called object Receiving object ORB calls the required object through a published IDL skeleton interface to the service implementation

Inter-ORB Communication Link-time objects ORBs are not usually separate programs but are a set of objects in a static library that are linked with an application when it is developed One/same machine ORBs handle communications between objects executing on the same machine Different/distributed machines Several ORBS may be available and each computer in a distributed system will have its own ORB Inter-ORB communication services are used for distributed object calls

CORBA Services Naming and trading These allow objects to discover and refer to other objects on the network Notification These allow objects to notify other objects that an event has occurred Transaction These support atomic transactions and rollback on failure

Real-Time Systems

Real-Time Systems In general Systems that interact with (monitor and control) their environment Inevitably associated with hardware devices Sensors: collect data from the system environment Actuators: change (in some way) the system's environment Time is critical MUST respond within specified times

Definitions A real-time system is a software system where the correct functioning of the system depends on the results produced by the system and the time at which these results are produced Soft real-time system A system whose operation is degraded if results are not produced according to the specified timing requirements Hard real-time system A system whose operation is incorrect if results are not produced according to the timing specification

Stimulus/Response Given a stimulus, the system must produce a response within a specified time Periodic stimuli Regular/predictable time intervals For example, a temperature sensor may be polled 10 times per second Aperiodic stimuli Stimuli which occur at unpredictable times For example, a system power failure may trigger an interrupt which must be processed by the system

Architectural Considerations System architecture must allow for fast switching between stimulus handlers Timing demands of different stimuli are different so a simple sequential loop is not usually adequate Real-time systems are usually designed as cooperating processes with a realtime executive controlling the processes

Design Considerations Identify stimuli to be processed and the required responses to these stimuli For each stimulus and response, identify the timing constraints Aggregate the stimulus and response processing into concurrent processes A process may be associated with each class of stimulus and response

Design Considerations (Continued) Algorithms to process each class of stimulus and response These must meet the given timing requirements Design a scheduling system Ensure that processes are started in time to meet their deadlines Integrate Use a real-time executive or operating system (RTOS)

Timing Constraints Extensive simulation and experiment Ensure that these are met by the system OOD might be OUT Certain design strategies such as objectoriented design cannot be used because of the additional overhead involved ASM might be IN May mean that low-level programming language features have to be used for performance reasons

Real-Time Executives Specialized operating systems that manage the processes in the RTS Responsible for process management and resource (processor and memory) allocation May be based on a standard RTE kernel which is used unchanged or modified for a particular application Usually does not include facilities such as file management

Executive Components Real-time clock Provides information for process scheduling Interrupt handler Manages requests for service Scheduler Chooses the next process to be run Resource manager Allocates memory and processor resources Despatcher Starts process execution Communications Send/receive process/processor messages

Priorities The processing of some types of stimuli must sometimes take priority Interrupt level priority Highest priority allocated to processes requiring a very fast response Handle quickly Clock level priority Allocated to periodic processes Within these, further levels of priority may be assigned

Interrupts Control is transferred automatically to a pre-determined memory location This location contains an instruction to jump to an interrupt service routine Further interrupts are disabled, the interrupt serviced and control returned to the interrupted process Interrupt service routines MUST be short, simple and fast

Periodic Processing Classes periods, execution times, and deadlines Timing interrupts Each real-time clock tick causes an interrupt that effects the scheduling of periodic processes The process manager selects a process that is ready for execution

Process Scheduling Non pre-emptive scheduling Once a process has been scheduled for execution, it runs to completion or until it is blocked for some reason (e.g. waiting for I/O) Pre-emptive scheduling The execution of an executing processes may be stopped if a higher priority process requires service Scheduling algorithms Round-robin Rate monotonic Shortest deadline first

Monitor and Control (Class) Important class of real-time systems Continuously check sensors and take actions depending on sensor values Monitoring systems examine sensors and report their results Control systems take sensor values and control hardware actuators Estimation and control theory

Mutual Exclusion Producer-consumer Producer processes collect data and add it to a buffer. Consumer processes take data from the buffer and act on them Producer and consumer processes must be mutually excluded from accessing the same element. Boundary conditions A buffer must stop producer processes adding information to a full buffer and consumer processes trying to take information from an empty buffer.

Software Engineering for Distributed and Real-Time Sys Notion of distribution impacts design Would generally be part of requirements Periods for COTS evaluation Spec, find, asses, choose Schedules might allow for simulations Timing Transaction order and robustness Stochastic testing of each