COT 5611 Operating Systems Design Principles Spring 2012

Slides:



Advertisements
Similar presentations
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Advertisements

Chapter 2 – Software Processes
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
COT 4600 Operating Systems Spring 2011 Dan C. Marinescu Office: HEC 304 Office hours: Tu-Th 6:00-7:15 PM.
Software Evolution Managing the processes of software system change
SWE Introduction to Software Engineering
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Software Process and Product Metrics
CGS 3863 Operating Systems Spring 2013 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 11:30 AM – 1 PM.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu, Th 3:00-4:00 PM.
3- System modelling An architectural model presents an abstract view of the sub-systems making up a system May include major information flows between.
COT 5611 Operating Systems Design Principles Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 1:00-2:00 PM.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
EET 4250: Chapter 1 Computer Abstractions and Technology Acknowledgements: Some slides and lecture notes for this course adapted from Prof. Mary Jane Irwin.
Sogang University Advanced Computing System Chap 1. Computer Architecture Hyuk-Jun Lee, PhD Dept. of Computer Science and Engineering Sogang University.
The Beauty and Joy of Computing Lecture #3 : Creativity & Abstraction UC Berkeley EECS Lecturer Gerald Friedland.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
Managing Complexity: Systems Design March 2, 2001.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Advanced Operating Systems - Fall 2009 Lecture 2 – January 12, 2009 Dan C. Marinescu Office: HEC 439 B.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: W, F 3:00-4:00 PM.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu, Th 3:00-4:00 PM.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
COP 5611 Operating Systems Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 1:00-2:00 PM.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
CompSci 280 S Introduction to Software Development
COMPSCI 110 Operating Systems
OPERATING SYSTEMS CS 3502 Fall 2017
Module 12: I/O Systems I/O hardware Application I/O Interface
CS 325: Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
IS301 – Software Engineering Dept of Computer Information Systems
Chapter 8 – Software Testing
Computer Systems are Different!
COSC 3406: Computer Organization
Architecture & Organization 1
Chapter 1: Introduction
COP 4600 Operating Systems Fall 2010
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
CGS 3763 Operating Systems Concepts Spring 2013
COT 5611 Operating Systems Design Principles Spring 2014
COT 5611 Operating Systems Design Principles Spring 2012
Architecture & Organization 1
CGS 3763 Operating Systems Concepts Spring 2013
COP 5611 Operating Systems Fall 2011
COT 5611 Operating Systems Design Principles Spring 2012
Chapter 2: The Linux System Part 1
CGS 3763 Operating Systems Concepts Spring 2013
Overview: Software and Software Engineering
CGS 3763 Operating Systems Concepts Spring 2013
COT 5611 Operating Systems Design Principles Spring 2012
COP 5611 Operating Systems Spring 2010
CS 501: Software Engineering Fall 1999
COP 5611 Operating Systems Spring 2010
COT 4600 Operating Systems Fall 2010
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating Systems Lecture 3.
CS310 Software Engineering Lecturer Dr.Doaa Sami
CS310 Software Engineering Dr.Doaa Sami Khafaga
Text by: Lambert and Osborne
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
COT 5611 Operating Systems Design Principles Spring 2014
COT 5611 Operating Systems Design Principles Spring 2014
COT 5611 Operating Systems Design Principles Spring 2014
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 3 – Wednesday January 18 Reading assignment: class slides of Lectures 2 and 3 and the class notes “distributed systems-basic concepts” available online. Last time 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 2/24/2019 Lecture 3

Today Computers as a distinct species of complex systems Milestones in the evolution of computing and communication technology. Factors affecting the complexity of computing and communication systems The software The exponential growth Coping with complexity Resource sharing and complexity Scale-free systems or how nature deals with complexity. Lessons learned. Names and fundamental abstractions 2/24/2019 Lecture 3

Innovations are now full-circle 2/24/2019 Lecture 3

Factors affecting complexity of computing and communication systems 2/24/2019 Lecture 3

Analog, digital, and hybrid systems Analog systems: the noise from individual components accumulate and the number of components is limited Digital systems: are noise-free the number of components is not limited regeneration  restoration of digital signal levels static discipline the range of the analog values a device accepts for each input digital value should be wider than the range of analog output values digital components could fail but big mistakes are easier to detect than small ones!! Hybrid systems e.g., quantum computers and quantum communication systems 2/24/2019 Lecture 3

Factors affecting complexity of computing and communication systems 2/24/2019 Lecture 3

Computers a distinct species of complex systems The complexity of computer systems not limited by the laws of physics  distant bounds on composition Digital systems are noise-free. The hardware is controlled by software The rate of change unprecedented The cost of digital hardware has dropped in average 30% per year for the past 35 years 2/24/2019 Lecture 3

Computers are controlled by software Composition of hardware limited by laws of physics. Composition of software is not physically constrained; software packages of 107 lines of code exist Abstractions hide the implementation beneath module interfaces and allow the creation of complex software modification of the modules Abstractions can be leaky. Example, representation of integers, floating point numbers. 2/24/2019 Lecture 3

Exponential growth of computers Unprecedented: when a system is ready to be released it may already be obsolete. when one of the parameters of a system changes by a factor of 2 other components must be drastically altered due to the incommensurate scaling. 10  the systems must be redesigned; E.g.; balance CPU, memory, and I/O bandwidth; does not give pause to developers to learn lessons from existing systems find and correct all errors negatively affects “human engineering”  ability to build reliable and user-friendly systems the legal and social frameworks are not ready 2/24/2019 Lecture 3

Coping with complexity of computer systems Modularity, abstraction, layering, and hierarchy are necessary but not sufficient. An additional technique  iteration Iteration Design increasingly more complex functionality in the system Test the system at each stage of the iteration to convince yourself that the design is sound Easier to make changes during the design process 2/24/2019 Lecture 3

Iteration – design principles Make it easy to change the simplest version must accommodate all changes required by successive versions do not deviate from the original design rationale think carefully about modularity  it is very hard to change it. Take small steps; rebuild the system every day, to discover design flaws and errors. Ask others to test it. Don’t rush to implementation. Think hard before starting to program. Use feedback judiciously use alpha and beta versions do not be overconfident from an early success Study failures  understand that complex systems fail for complex reasons. 2/24/2019 Lecture 3

Curbing complexity In absence of physical laws curb the complexity use good judgment. Easier said than done because: temptation to add new features than in the previous generation competitors have already incorporated the new features the features seem easy to implement the technology has improved human behavior: arrogance, pride, overconfidence… 2/24/2019 Lecture 3

Resource sharing and complexity A main function of the OS is resource sharing. Sharing computer resources went through several stages with increased levels of complexity: A. Many-to-one B. One-to-one C. Many-to-many D. Peer-to-peer E. Cloud Computing 2/24/2019 Lecture 3

2/24/2019 Lecture 3

2/24/2019 Lecture 3

Millions of lines of source code Software follows hardware – the operating systems become increasingly more complex Millions of lines of source code 2/24/2019 Lecture 3

Cheap  Pervasive 2/24/2019 Lecture 3

Pervasive  qualitative change Number crunching log (people per computer) Word processing Communication So if we look at the computing spectrum today, each of the classes exist simultaneously. In a room we can put 100s of teraflops and many petabytes of computing. Our productivity, document preparation, and personal information management fits in our pocket and a new class is emerging that will provide a means of streaming information to and from the physical world like we have never seen before. Embedded Sense/control year 2/24/2019 Lecture 3 Slide from David Culler, UC Berkeley

Latency improves slowly Moore’s law (~70% per year) Improvement wrt year #1 Speed of light (0% per year) DRAM access latency (~7% per year) 2/24/2019 Lecture 3 Year #

Heat is a problem 2/24/2019 Lecture 3

Recent Intel CPU Clock Rate Pentium 4 HT Pentium 4 Pentium III mHz PentiumPro Pentium 486 2/24/2019 Lecture 3

What went right? Unbounded composibility General-purpose computers Only need to make one thing fast Separate architecture from implementation S/W can exploit new H/W Cumulative R&D investment over years 2/24/2019 Lecture 3

How the nature deals with complexity For biological systems: symmetry, construction of complex biological structures from building blocks. Self-organization though difficult to define, its intuitive meaning is reflected in the observation made by Alan Turing that ``global order can arise from local interactions'' Scale-free systems. Each component interacts directly only with a small number of other components. Man-made systems to imitate nature!! 2/24/2019 Lecture 3

Scale-free systems The scale-free organization can be best explained in terms of the network model of the system, a random graph with vertices representing the entities and the links representing the relationships among them. In a scale-free organization, the probability P(m) that a vertex interacts with m other vertices decays as a power law: with d a positive real number, regardless of the type and function of the system, the identity of its constituents, and the relationships between them. 2/24/2019 Lecture 3

Examples of scale-free systems The collaborative graph of movie actors where links are present if two actors were ever cast in the same movie; in this case d=2. The power grid of the Western US has some 5,000 vertices representing power generating stations; in this case d=4. The World Wide Web, d=2.1. This means that the probability that m pages point to one page is P(m) = m-2.1 The citation of scientific papers d=3. 2/24/2019 Lecture 3