Hierarchical Architecture

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

Operating System Structures
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
1/21/2008CSCI 315 Operating Systems Design1 Operating System Structures Notice: The slides for this lecture have been largely based on those accompanying.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Course Instructor: Aisha Azeem
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
KWIC Project – Part 1 Mini-Project to Evaluate Architectural Patterns(Styles) Carl Chesser Ji Li EECS 761.
Software Architecture - 1 September 10, 2015September 10, 2015September 10, 2015.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
Operating Systems CS3502 Fall 2014 Dr. Jose M. Garrido
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Processes Introduction to Operating Systems: Module 3.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
UNIX Unit 1- Architecture of Unix - By Pratima.
Systems Design.  Application Design  User Interface Design  Database Design.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Introduction to Operating Systems Concepts
Computer System Structures
7. Modular and structured design
Software architecture
Operating System Structure
N-Tier Architecture.
Sabri Kızanlık Ural Emekçi
Key Ideas from day 1 slides
Architecting Web Services
IS301 – Software Engineering Dept of Computer Information Systems
Data Flow Architecture
SOFTWARE DESIGN AND ARCHITECTURE
CASE STUDY 1: Linux and Android
Architecting Web Services
Software Design and Architecture
Introduction to Computers and Java
Part 3 Design What does design mean in different fields?
1.1 Reasons to study concepts of PLs
Lecture 1 Runtime environments.
Chapter 2: Operating-System Structures
Operating Systems : Overview
Shell & Kernel Concepts in Operating System
Chapter 2: System Structures
Princess Nourah bint Abdulrahman University
Software Architecture
Architectural Design.
Software models - Software Architecture Design Patterns
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Operating Systems : Overview
Outline Chapter 2 (cont) OS Design OS structure
Introduction to Virtual Machines
Lecture 1 Runtime environments.
Outline Operating System Organization Operating System Examples
System calls….. C-program->POSIX call
Introduction to Virtual Machines
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Reasons To Study Programming Languages
Presentation transcript:

Hierarchical Architecture

Objectives Introduce concepts of hierarchy arch. pros and cons Main/subroutine Master/slave Layered architecture Virtual machine pros and cons implementation techniques 1 min

Overview Key Idea: services layered Upper layer consumes service from lower layer Why? system too complex 1.5 min

Overview System SWs are typically – hierarchical architecture Examples Microsoft .NET Unix operating system TCP/IP 1.5 min

General Rules Services at lower level provides more specific functionality down to fundamental utility services such as I/O services, transaction, scheduling, security services, etc. Middle layers provide more domain dependent functions such as Business logic, core processing, etc. Upper layers provide more abstract functionality in the form of user interfaces such as Command line interpreter, GUI, Shell programming Plus Point: Any changes to a specific layer may affect only its adjacent upper layers. So, no ripple effects of change 1.5 min

Main/Subroutine Architecture Probably the oldest and most widely used architecture. Purpose: Encourage re-use of modules Idea System decomposed into sub-routines A “main” program calls sub-routines and accomplishes task 1 min

How Sub-routine Call is Supported Function Call Supported by Assembly Protect old register values by pushing to stack Set parameters in register Call the subroutine Jump, Long Jump, Call instruction Software Interrupt Function Call Supported by High Level Language Much more convenient Much more tricky! Parameter passing Pass by value Pass by reference 1.5 min

Main/Subroutine Design Usually Requirement Spec. Specified in Data Flow Diagram (DFD) Objective: Map from DFD to Main/Subroutine Design 1 2 3 4 5 7 6 8 Customer record Customer info validate return Action path 1.5 min

DFD Two types of flow Mapping Process Transform Flow: input data get processed and results in output data (sequential) Transaction Flow: depending on input data, take different control actions (branch) Mapping Process Identify transform and transaction flows Map each flow into a subroutine Generally: a main process controls the overall flow 1.5 min

DFD mapped into main/subroutine structure #2 #1 #3 #4 #7-8 #5-6 #6 #5 #8 #7 Do it on board: 2 min 15.5 min now

Main/subroutine: Summary Benefits: Easy to decompose the system Can still be used in sub-system of OO Design. Limitation: Globally shared data are vulnerable Tight coupling may cause ripple impacts as compared to OO design 1.5 min 17 min now

Master-Slave A variant of main-subroutine architecture It supports Fault tolerance and system reliability In this architecture: The slaves provide replicated services to the master The master selects a particular result among slaves by certain selection strategies. Slaves may perform the same functional task by different algorithms and methods or a totally different functionality. 1.5 min 17 min now

<<slaves>> Master-Slave Block diagram for master-slave architecture Class diagram for master-slave architecture Master Slave 1 Slave 2 master <<slaves>> +service() slave 2+ 1.5 min 17 min now

Master-Slave Characteristics: Applicable domain: Parallel computing and accuracy of computation Applicable domain: Where reliability is crucial 1.5 min 17 min now

Layered Arch. Idea: functionality grouped into layers upper layer invokes func. in lower layer 0.5 min

Example Benefits: Mainly in system development and maintenance (1) interface defined and published  concurrent development by multiple teams (2) each layer is thoroughly tested  no deeply nested debugging 1.5 min

Physical Implementation Functions in one layer usually organized in one package Some times deployed as services 1 min

Examples OSI 7-layer Network Stack OS (driver, kernel, system call, application) Web service (ip, tcp, http, xml, SOAP, WSDL, BPEL, UDDI) 1.5 min

Summary - Layered Applicable Design Domains: For systems that can be divided between portions providing generic services to the application of the system For applications which have classes that are close related each other 0.5 min

Summary - Layered Benefits: Limitations: Incremental software development Enhanced independence of upper layer to lower layer Enhanced reusability and interchangeability Component-based technology is a suitable Promotion of portability Limitations: Lower runtime performance Many applications can not fit this architecture Exception and error handling 2 min 24 min

Virtual Machine Variation of Layered Approach Idea: Provide a virtual interpretation layer that separates Application Physical machine layer i.e., Software/Components run on simulation layer 1 min

Example 1 1 min

Summary Applicable Design Domain: Benefits: Limitations: Suitable for solving a problem by simulation or translation Sample applications such as interpreters of microprogramming, XML processing, script command language execution, rule-based system execution, Smalltalk and Java interpreter typed programming language Benefits: Portability and machine platform independency Simplicity of the software development Simulation for non-native and disaster working model Limitations: Slow execution of the interpreter Additional overhead due to the new layer 1.5 min