SDS Foil no 1 How to make real systems: Implementation design, deployment and realisation.

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

Categories of I/O Devices
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Remote Procedure Call (RPC)
Chapter 3 Digital Logic Structures
Sensor Network Platforms and Tools
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
Threads Clients Servers Code Migration Software Agents Summary
1 Concurrent and Distributed Systems Introduction 8 lectures on concurrency control in centralised systems - interaction of components in main memory -
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
3.5 Interprocess Communication
Sequence Diagrams By Zvika Gutterman Adam Carmi. Agenda Interaction Diagrams A First Look at Sequence Diagrams Objects Messages Control Information Examples.
Sequence Diagrams By Zvika Gutterman Adam Carmi. Sequence Diagrams2 Agenda Interaction Diagrams A First Look at Sequence Diagrams Objects Messages Control.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
What do operating systems do? manage processes manage memory and computer resources provide security features execute user programs make solving user.
Fundamentals of Python: From First Programs Through Data Structures
An Introduction to Rational Rose Real-Time
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
What is Concurrent Programming? Maram Bani Younes.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
An Introduction to Software Architecture
SDS Foil no 1 How to make real systems: Implementation design, deployment and realisation.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
Architecting Web Services Unit – II – PART - III.
FDT Foil no 1 Overall Methodology – from Engineering RT Systems through TIMe; to RAM. Covering the full development cycle Supporting the whole company.
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.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Java Threads 11 Threading and Concurrent Programming in Java Introduction and Definitions D.W. Denbo Introduction and Definitions D.W. Denbo.
The Structure of Processes (Chap 6 in the book “The Design of the UNIX Operating System”)
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Chapter 2.1 : Processes Process concept Process concept Process scheduling Process scheduling Interprocess communication Interprocess communication Threads.
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
1 Concurrency Architecture Types Tasks Synchronization –Semaphores –Monitors –Message Passing Concurrency in Ada Java Threads.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distributed Computing A Programmer’s Perspective.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Winter 2007SEG2101 Chapter 111 Chapter 11 Implementation Design.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Processes, Threads, and Process States. Programs and Processes  Program: an executable file (before/after compilation)  Process: an instance of a program.
CCSDS SOIS Working Group Meeting – Berlin, Germany 14th of October 2008 Prototyping of CCSDS SOIS services on 1553 Bus Sev Gunes-Lasnet, Olivier Notebaert.
SelfCon Foil no 1 Variability in Self-Adaptive Systems.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Science and Technology Norwegian University of NTNU Rolv Bræk, January Introduction to Systems Engineering by Rolv Bræk NTNU.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Adding Concurrency to a Programming Language Peter A. Buhr and Glen Ditchfield USENIX C++ Technical Conference, Portland, Oregon, U. S. A., August 1992.
Chapter 4 – Thread Concepts
Last Class: Introduction
Kernel Design & Implementation
Prototyping of CCSDS SOIS services on 1553 Bus
Processes and threads.
Architecting Web Services
Chapter 4 – Thread Concepts
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Architecting Web Services
Distributed Systems - Comp 655
Lecture Topics: 11/1 General Operating System Concepts Processes
An Introduction to Software Architecture
CS510 Operating System Foundations
Presentation transcript:

SDS Foil no 1 How to make real systems: Implementation design, deployment and realisation

SDS Foil no 2 Implementation design, deployment and realisation Non-functional properties

SDS Foil no 3 Realisation Is a precise technical definition of the realisation in terms of the technologies used, such as mechanics, electronics and software Is necessary to actually produce a working system The choice of realisation depends on what properties are desired from the realisation itself (often called non-functional properties) Is a precise technical definition of the realisation in terms of the technologies used, such as mechanics, electronics and software Is necessary to actually produce a working system The choice of realisation depends on what properties are desired from the realisation itself (often called non-functional properties) –So, what’s the problem? –How is implementation design different from functional design?

SDS Foil no 4 Consider the AC system as an example: –Abstract objects, SDL –State machines –Asynchronous messaging –Concrete objects, hw, sw –Distribution –Scheduling –I/O drivers –Middleware Realization How to find a realization?

SDS Foil no 5 A typical realization HW OS Middleware legacy app i/o

SDS Foil no 6 Deployment mapping HW OS Middleware legacy app i/o Key design issues: 1.Performance 2.Timeliness 3.Availability

SDS Foil no 7 Communication options HW OS Middleware legacy app i/o 1.Synchronous – invocation: method calls, RMI, CORBA, Web, SOAP, … 2.Asynchronous – messaging: TCP, UDP, MoM, Actor Router, MQTT, … 3.Physical lines and I/O

SDS Foil no 8 Synchronous communication using method calls P1 [a,b][c,d] [e,f] P2 P3 P1 c(), d() P2 SDL UML classes state e(), f() P3 state a(), b() Implement any limitations? Pseudo code of class P2: integer state; void c(){ switch (state) { case 1: P3.e(); P3.f(); State:=2; return; case 2:....; return;} } void d(){ switch (state) { case 1: P3.f(); State:=3; return; case 2:....; return;} }

SDS Foil no 9 Conditions for synchronous communication by procedure/method calls : Structure: The (sub) system must behave like a single procedure/method call tree, a single sequential activity thread. Waiting: Waiting for external events or timers only at the root of the tree, unless the waiting time is negligible. No mixed initiatives!! Return signals: For each signal sent down the tree, not more than one reply signal is returned to the sender (implemented as a procedure return value). Return signals must be sent as the last action on a transition before entering the next state, i.e. only one pr transition. Timing: There is sufficient time between each external input signal to process all signals and outputs that follows from it, and to return to the input process. Consequently, there is no need to give pre-emptive priority to the input process. Distribution: The added RPC/RMI overhead must be acceptable Structure: The (sub) system must behave like a single procedure/method call tree, a single sequential activity thread. Waiting: Waiting for external events or timers only at the root of the tree, unless the waiting time is negligible. No mixed initiatives!! Return signals: For each signal sent down the tree, not more than one reply signal is returned to the sender (implemented as a procedure return value). Return signals must be sent as the last action on a transition before entering the next state, i.e. only one pr transition. Timing: There is sufficient time between each external input signal to process all signals and outputs that follows from it, and to return to the input process. Consequently, there is no need to give pre-emptive priority to the input process. Distribution: The added RPC/RMI overhead must be acceptable What if there are many instances?

SDS Foil no 10 Asynchronous communication using messages Structure: no restrictions Distribution: transparent, efficient and scalable Memory management: required – here freepools Structure: no restrictions Distribution: transparent, efficient and scalable Memory management: required – here freepools

SDS Foil no 11 What about performance? Synchronous calls are only efficient within a single activity thread! Asynchronous messaging is normally more efficient between scheduled processes and across networks even with the overhead of queues! Synchronous calls are only efficient within a single activity thread! Asynchronous messaging is normally more efficient between scheduled processes and across networks even with the overhead of queues! Because with messaging: – scheduling is simple – processes are not blocked when communicating – context switching is reduced.

SDS Foil no 12 Communication SDL and UML does not restrict your implementation options! You are free to use your preferred communication solution As long as it fits your application problem!! SDL and UML does not restrict your implementation options! You are free to use your preferred communication solution As long as it fits your application problem!!

SDS Foil no 13 Is synchronous communication OK in The ATM system? The access control system? The Taxi system? Call handling, the LocalSwitch? Web services, e.g. internet banking? A City guide? The ATM system? The access control system? The Taxi system? Call handling, the LocalSwitch? Web services, e.g. internet banking? A City guide?

SDS Foil no 14 State machines: state oriented program State-1: Input:= Wait(Inport,Indefinetely); CASE Input OF (Signal-a): Action-1; GOTO State-3; (Signal-b): Action-2; GOTO State-5; ELSE: Action-3; GOTO State-1; ESAC; State-2: Input:= Wait(Inport,Indefinetely); CASE Input OF (Signal-c): State-1: Input:= Wait(Inport,Indefinetely); CASE Input OF (Signal-a): Action-1; GOTO State-3; (Signal-b): Action-2; GOTO State-5; ELSE: Action-3; GOTO State-1; ESAC; State-2: Input:= Wait(Inport,Indefinetely); CASE Input OF (Signal-c): State-1 State-5 State-3 signal-a signal-b * Action-1 Action-2 Action-1 Action-3 What if there are many instances?

SDS Foil no 15 State machines: Action oriented program NEWMODE CONTROL_STATES = SET(State-1, State-2, State-3,...); DCL State CONTROL_STATES; DO FOR EVER Input:= Wait(Inport,Indefinetely); CASE State OF State-1: CASE Input OF (Signal-a):Action-1; State:= State-3; (Signal-b):Action-2; State:= State-5; ELSE: Action-3; State:= State-1; ESAC; State-2: CASE Input OF (Signal-c): ESAC; OD; State-1 State-5 State-3 signal-a signal-b * Action-1 Action-2 Action-1 Action-3 What if there are many instances now?

SDS Foil no 16 Implementation from Exercise 2 RTS: Do forever Begin msg := inq.receiveMessage(); //input fsm:= findObject(msg.destination) //select process instance fsm.run(msg); End; inq RTS P1 Run state P1 Run state P1 run state P1 run state Pn Run state Pn Run state Pn run state Pn run state

SDS Foil no 17 State machines: table driven code Process Instance State (*): Data ST- Table Process Type Output Input SS TYPE FSM (+): Action FSM-Support Signal Signalname (*): Param. do forever begin wait (Inport); Use Signalname and State as key to Transition Record in ST-table; Call Action; State := Next:State; end; inport

SDS Foil no 18 State machines SDL/UML does not restrict your implementation options You are free to use any language and platform you like Using a runtime support system helps to simplify coding and testing. RTS features: Signal addressing Signal sending and receiving Timers Process scheduling SDL Procedure calls and composite states State-machine coding SDL/UML does not restrict your implementation options You are free to use any language and platform you like Using a runtime support system helps to simplify coding and testing. RTS features: Signal addressing Signal sending and receiving Timers Process scheduling SDL Procedure calls and composite states State-machine coding

SDS Foil no 19 Runtime support – virtual SDL machines

SDS Foil no 20 A software design

SDS Foil no 21 OS Software categories Message Routing Error Handling Operat. System Application: FSM = IMPLEMENT [ AccessControl.LocalUnit] Display Out SW TYPE LocalUnitSoftware Channel input Channel output Key Input Card- Reader Card i/o Door Lock unit Door Lock i/o Display Key- board (1,10): Panel Hw Panel Bus Out Channel In Channel middleware errh SDL support I/O application

SDS Foil no 22 Logical and physical communication BLOCK LocalStation BLOCK Central unit User Abstract system (SDL) Concrete system logical physical logical

SDS Foil no 23 Routing module

SDS Foil no 24 How are concrete systems different from abstract SDL and UML systems? There are fundamental differences: 1. processing takes time; 2. errors and noise do occur; 3. physical distances must be covered; 4. resources are finite; 5.data types are concrete and not abstract. and conceptual differences: 6. in communication primitives; 7.in concurrency; 8. in synchronisation primitives; 9. in language primitives. There are fundamental differences: 1. processing takes time; 2. errors and noise do occur; 3. physical distances must be covered; 4. resources are finite; 5.data types are concrete and not abstract. and conceptual differences: 6. in communication primitives; 7.in concurrency; 8. in synchronisation primitives; 9. in language primitives.

SDS Foil no 25 Deployment/Implementation design Describes aspects that come in addition to the functionality, such as distribution, hardware/software allocation and use of middleware and defines a mapping between functionality and realisation by: describing the realisation (the physical system) on a high level identifying the technologies used describing how and where the functionality is realised describes configurations Serves together with functionality as the main documentation. Describes aspects that come in addition to the functionality, such as distribution, hardware/software allocation and use of middleware and defines a mapping between functionality and realisation by: describing the realisation (the physical system) on a high level identifying the technologies used describing how and where the functionality is realised describes configurations Serves together with functionality as the main documentation. configuration data: –priorities; –versions; –etc.