COT 5611 Operating Systems Design Principles Spring 2012

Slides:



Advertisements
Similar presentations
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Advertisements

Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu, Th 3:00-4:00 PM.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
3- System modelling An architectural model presents an abstract view of the sub-systems making up a system May include major information flows between.
HW/SW/FW Allocation – Page 1 of 14CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Allocation of Hardware, Software, and Firmware.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
COT 5611 Operating Systems Design Principles Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 1:00-2:00 PM.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 2Slide 1 Chapter 2 Computer-Based System Engineering As modified by Randy Smith.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN.
Managing Complexity: Systems Design March 2, 2001.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: W, F 3:00-4:00 PM.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu, Th 3:00-4:00 PM.
CS223: Software Engineering Lecture 14: Architectural Patterns.
COT 4600 Operating Systems Fall 2010 Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:30-4:30 PM.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Introduction to Embedded Systems. The embedded systems is wide and varied, and it is difficult to exact definitions or descriptions. Chapter 1 introduces.
Introduction to Information Systems 1.2 Systems Theory.
Software Architecture
CS 325: Software Engineering
IS301 – Software Engineering Dept of Computer Information Systems
Software Architecture
Lecture 9- Design Concepts and Principles
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Software Design and Architecture
Advance Software Engineering
Part 3 Design What does design mean in different fields?
COP 4600 Operating Systems Fall 2010
COT 5611 Operating Systems Design Principles Spring 2014
CGS 3763 Operating Systems Concepts Spring 2013
COT 5611 Operating Systems Design Principles Spring 2014
COT 5611 Operating Systems Design Principles Spring 2012
COT 5611 Operating Systems Design Principles Spring 2012
COT 5611 Operating Systems Design Principles Spring 2012
COT 5611 Operating Systems Design Principles Spring 2014
CS 425/625 Software Engineering Architectural Design
CGS 3763 Operating Systems Concepts Spring 2013
Software Engineering Lecture #14.
Chapter 6 – Architectural Design
CGS 3763 Operating Systems Concepts Spring 2013
Lecture 9- Design Concepts and Principles
COP 5611 Operating Systems Spring 2010
Software models - Software Architecture Design Patterns
Chapter 5 Architectural Design.
COT 4600 Operating Systems Fall 2010
COT 5611 Operating Systems Design Principles Spring 2012
CSE403 Software Engineering Autumn 2000 Design (Overview)
Software Design Lecture : 8
COT 4600 Operating Systems Spring 2011
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 9 Architectural Design.
COT 5611 Operating Systems Design Principles Spring 2012
ICS 52: Introduction to Software Engineering
Design Yaodong Bi.
Why study Software Engineering ?
COT 5611 Operating Systems Design Principles Spring 2012
Chapter 6: Architectural Design
COT 5611 Operating Systems Design Principles Spring 2012
COT 5611 Operating Systems Design Principles Spring 2014
Chapter 6 – Architectural Design
Segments Introduction: slides minutes
COT 5611 Operating Systems Design Principles Spring 2014
Software Architecture
Presentation transcript:

COT 5611 Operating Systems Design Principles Spring 2012 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 5:00-6:00 PM

Lecture 2 – Wednesday January 11 Reading assignment: class slides Man-made systems and the environment Complex systems Factors affecting complexity Sources of complexity Coping with complexity Modularity Abstractions Hierarchy Characteristics of complex systems Propagation of effects Incommensurate scaling Tradeoffs 12/7/2018 Lecture 2

Systems and the environment System  a set of interconnected components that has a an expected behavior observed at the interface with its environment The environment  a critical component to be considered in the design of any system The systems we are concerned consist of hardware and software 12/7/2018 Lecture 2

Man-made systems Basic requirements for man-made systems: Functionality Performance Cost All systems are physical  the laws of physics governing the functioning of any system must be well understood. Physical resources are limited. 12/7/2018 Lecture 2

Complex systems Large number of components Large number of interconnections Many irregularities Long description For man-made systems: a team of designers, implementers, and maintainers. 12/7/2018 Lecture 2

Issues faced by the designer of a complex system Emerging Properties Propagation of effects Incommensurate scaling Tradeoffs 12/7/2018 Lecture 2

Emerging properties A characteristic of complex systems  properties that are not evident in the individual components but show up when the components interact with one another. Example: you have several electronic components which radiate electromagnetic energy; if they are too close to one another their function are affected. 12/7/2018 Lecture 2

Two sources of complexity 1. Cascading and interacting requirements 1.1 When the number of requirements grows then the number of exception grows. 1.2 The principle of escalating complexity: 1.3 Meeting many requirements with a single design  the need for generality. Advice: avoid excessive generality. 1.4 Requirement changes. Example: the electric car by Tesla. 12/7/2018 Lecture 2

Two sources of complexity (cont’d) 2. High performance 2.1 Every system must satisfy performance standards. 2.2 The law of diminishing return the more one improves one performance metrics the more effort the next improvement will require 12/7/2018 Lecture 2

Modularity for Coping with Complexity Why does modularity reduce complexity we can focus on the interaction within one module/component. Example: assume that: N , the number of statements of a program B - the # of bugs in a program proportional with N T- the time to debug a program  proportional with N x B thus, with N2 Now we divide the program in K modules Each module has n=N/K statements t, the time to debug a module  proportional with n2=(N/K)2 𝜁, the time to debug the K modules  proportional with K x t = K x (N/K)2 = N2/K We have reduced the time by a factor of K. Is that so? 12/7/2018 Lecture 2

Abstractions and Coping with Complexity Abstraction separation of the interface from the internals or specification from implementation Example: you do not need to know how the engine of your car works in order to drive the car Why abstractions reduce complexity  because they minimize the interconnections between components. Observations: Best division usually follows natural boundaries. The goal is defeated by unintentional or accidental interconnections among components. 12/7/2018 Lecture 2

More about abstractions Abstractions are critical for understanding critical phenomena. Think about the abstract model of computation provided by the Turing Machine. Do not be carried away by abstractions. For example, often software designers think about an abstract computer and are not concerned about the physical resources available to them. E.g., the small display of a wireless phone. 12/7/2018 Lecture 2

Robustness band safety margin principles The robustness principle  be tolerant of inputs and strict on outputs. The safety margin principle  Keep track of the safety margin of the cliff or you may fall over edge!! 12/7/2018 Lecture 2

Layering for Coping with Complexity Layering  building a set of successive functional entities with restricted communication patterns, a layer may only communicate with the layer below it and with the one above it. Examples: networking 12/7/2018 Lecture 2

Hierarchy for Coping with Complexity Hierarchical structures  construct a large system from a small collection of relatively large subsystems Examples: Corporations An army A computer is a collection of subsystems 12/7/2018 Lecture 2

Propagation of effects In a complex system: Changes of one component affect many other components. Example, changing the size of the tire of a car. A problem affecting one component propagates to others. For example, the collapse of the housing industry in the US affected the economy of virtually all countries in the world. 12/7/2018 Lecture 2

Incommensurate scaling Not all components of a complex system follow the same scaling rules. Examples: The pyramids The tankers The power dissipation increases as (clock rate)3. If you double the clock rate, then the power dissipation increases by a factor of 8 so you need a heat removal system 8 times more powerful. 12/7/2018 Lecture 2

Trade-offs Many tradeoffs are involved in the design of any system Examples: a network switch  what should be done in hardware and what should be done in software a hybrid car with a gas and an electric engine  how powerful should the gas engine be a spam filter  where to set the threshold 12/7/2018 Lecture 2