L1: Intro to Computer Systems: Complexity Robert Morris and Frans Kaashoek 6.033 Spring 2009

Slides:



Advertisements
Similar presentations
Martin Suchara, Ryan Witt, Bartek Wydrowski California Institute of Technology Pasadena, U.S.A. TCP MaxNet Implementation and Experiments on the WAN in.
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
1Notes  Questions?  Assignment 1 should be ready soon (will post to newsgroup as soon as it’s out)
What's inside a router? We have yet to consider the switching function of a router - the actual transfer of datagrams from a router's incoming links to.
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Other Disk Details. 2 Disk Formatting After manufacturing disk has no information –Is stack of platters coated with magnetizable metal oxide Before use,
Department of Computer Engineering University of California at Santa Cruz Networking Systems (1) Hai Tao.
The Architecture Design Process
Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory.
L10: Protocols and Layering Dina Katabi Spring Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek,
CSE331: Introduction to Networks and Security Lecture 7 Fall 2002.
L1: Intro to Computer Systems: Complexity Frans Kaashoek and Robert Morris Spring 2009
CSC 395 – Software Engineering Lecture 15: Object-Oriented Design –or– Ask For Whom The Data Tolls.
What Is TCP/IP? The large collection of networking protocols and services called TCP/IP denotes far more than the combination of the two key protocols.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
Connecting LANs, Backbone Networks, and Virtual LANs
Group practice in problem design and problem solving
1 CS101 Introduction to Computing Lecture 24 Design Heuristics.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
1.3 System Design Parts of a System InputProcessOutput Input Devices Central Processing Unit Output Devices The main parts of any computer system.
Midterm Review - Network Layers. Computer 1Computer 2 2.
An Introduction to Software Architecture
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Overview of implementations openBGP (and openOSPF) –Active development Zebra –Commercialized Quagga –Active development XORP –Hot Gated –Dead/commercialized.
Lecture 9. The organizational structure of management of enterprise.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
 Protocols used by network systems are not effective to distributed system  Special requirements are needed here.  They are in cases of: Transparency.
CSC Intro. to Computing Lecture 23: Networks.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
TELE202 Lecture 5 Packet switching in WAN 1 Lecturer Dr Z. Huang Overview ¥Last Lectures »C programming »Source: ¥This Lecture »Packet switching in Wide.
ACN: RED paper1 Random Early Detection Gateways for Congestion Avoidance Sally Floyd and Van Jacobson, IEEE Transactions on Networking, Vol.1, No. 4, (Aug.
William Stallings Data and Computer Communications 7 th Edition Chapter 1 Data Communications and Networks Overview.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
CE Operating Systems Lecture 11 Windows – Object manager and process management.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
EECE 411: Design of Distributed Software Applications (or Distributed Systems 101) Matei Ripeanu
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Packet switching network Data is divided into packets. Transfer of information as payload in data packets Packets undergo random delays & possible loss.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Managing Complexity: Systems Design March 2, 2001.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks TCP.
1 ECEN “Internet Protocols and Modeling”, Spring 2011 Slide 5.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Protocols and Architecture Slide 1 Use of Standard Protocols.
COS 420 Day 15. Agenda Finish Individualized Project Presentations on Thrusday Have Grading sheets to me by Friday Group Project Discussion Goals & Timelines.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
UML - Development Process 1 Software Development Process Using UML.
2/14/2016  A. Orda, A. Segall, 1 Queueing Networks M nodes external arrival rate (Poisson) service rate in each node (exponential) upon service completion.
By Nitin Bahadur Gokul Nadathur Department of Computer Sciences University of Wisconsin-Madison Spring 2000.
Company LOGO Network Architecture By Dr. Shadi Masadeh 1.
L1: Intro to Computer Systems: Controlling Complexity Frans Kaashoek Spring 2007
Network Layer Lecture Network Layer Design Issues.
Performance Evaluation of Ethernet Networks under different Scenarios Lab 6
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Section 4 – Computer Networks
Lessons from The File Copy Assignment
What Are Routers? Routers are an intermediate system at the network layer that is used to connect networks together based on a common network layer protocol.
Software Design and Architecture
Operating System Structure
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction Principles of System Design
COT 5611 Operating Systems Design Principles Spring 2012
Practical Issues for Commercial Networks
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
New York Institute of Technology- Amman Campus
Why study Software Engineering ?
Presentation transcript:

L1: Intro to Computer Systems: Complexity Robert Morris and Frans Kaashoek Spring

Schedule has all assignments Every meeting has preparation/assignment First deliverable is due Tuesday Read the Therac paper for Friday Return sign-up sheet at the end of lecture ( if you didn’t do so yesterday) We will post sections assignment tonight

What is a system? hidden is about the design of s/w systems. System = [diagram] Inside vs outside achieve specific external behavior many components Examples: Bank ATMs, Web Much of will operate at design level Relationships of components Internals of components that help structure

Problem: Complexity hidden Hard to define; symptoms: Large # of components Large # of connections Irregular No short description Many people required to design/maintain Technology rarely the limit! Indeed tech opportunity is the problem Limit is usually designers’ understanding

6.033 Approach hidden Lectures/book: big ideas, technology, examples Recitations: papers, discussion Design examples Writing examples: core prob/soln vs detail Learn how to read a paper, skim vs meat Design projects: practice designing and writing Design: choose problem, tradeoffs, structure Writing: explain core ideas concisely Exams: focus on reasoning about system design Ex students: papers and recitations

Example Readings Therac-25 UNIX Ethernet End-to-End Arguments System R

Papers hidden ONE SENTENCE EACH Therac: bad design, at many levels. detailed post-mortem. UNIX: successful “New Jersey” design. small, careful choice of problems to solve. Ethernet: elegant, beat competition, scaled by 3000x! End-to-end: captures a non-obvious and very useful philosophical point. System R: huge influence on construction of fault-tolerant systems – recovery from crash at any point.

Problem Types hidden Emergent properties surprises Propagation of effects Small change -> big effect [ Incommensurate ] scaling Design for small model may not scale

Lessons hidden, running Expect surprises There is no small change 10x increase  perhaps re-design Just one more feature! Complexity is super-linear Performance cost is super-linear

Emergent Property Example: Ethernet All computers share single cable Goal is reliable delivery Listen before send to avoid collisions Will listen-while-send detect collisions?  Maximum cable length!  Minimum packet size!

Propagation of Effects Example (L. Cole 1969) WHO attempted to control malaria in North Borneo Sprayed villages with DDT Wiped out mosquitoes, but …. Roaches collected DDT in tissue Lizards ate roaches and became slower Easy target for cats Cats didn’t deal with DDT well and died Forest rats moved into villages Rats carried the bacillus for the plague  WHO replaced malaria with the plague

Galileo in 1638 “To illustrate briefly, I have sketched a bone whose natural length has been increased three times and whose thickness has been multiplied until, for a correspondingly large animal, it would perform the same function which the small bone performs for its small animal. From the figures here shown you can see how out of proportion the enlarged bone appears. Clearly then if one wishes to maintain in a great giant the same proportion of limb as that found in an ordinary man he must either find a harder and stronger material for making the bones, or he must admit a diminution of strength in comparison with men of medium stature; for if his height be increased inordinately he will fall and be crushed under his own weight. Whereas, if the size of a body be diminished, the strength of that body is not diminished in the same proportion; indeed the smaller the body the greater its relative strength. Thus a small dog could probably carry on his back two or three dogs of his own size; but I believe that a horse could not carry even one of his own size.” [Dialog Concerning Two New Sciences, 2 nd Day]

Incommensurate scaling Scaling a mouse into an elephant Volume ~ O(x 3 ) where x is a linear measure Bone strength ~ cross section ~ O(x 2 ) [Haldane, “On being the right size”, 1928] Scaling Ethernet’s bit-rate 10 mbit/s: min packet 64 bytes, max cable 2.5 km 100: 64 bytes, 0.25 km 1,000: 512 bytes, 0.25 km 10,000: no shared cable Scaling the Internet 39 sites in 1973 Total size of tables (for shortest paths): O(n 2 )

Sources of Complexity hidden Many goals/requirements Interaction of features Performance

Example: more goals, more complexity 1975 Unix kernel: 10,500 lines of code 2008 Linux line counts: 85,000 processes 430,000 sound drivers 490,000 network protocols 710,000 file systems 1,000,000 different CPU architectures 4,000,000 drivers 7,800,000 Total

Example: interacting features, more complexity Call Forwarding Call Number Delivery Blocking Automatic Call Back Itemized Billing AC ?? A B CNDB ACB + IB A calls B, B is busy Once B is done, B calls A A’s number on appears on B’s bill CF

Interacting Features hidden Each feature has a spec. An interaction is bad if feature X breaks feature Y.... The point is not that these bad interactions can’t be fixed. The point is that there are so many interactions that have to be considered: they are a huge source of complexity. Perhaps more than n^2 interactions, e.g. triples. Cost of thinking about / fixing interaction gradually grows to dominate s/w costs. The point: Complexity is super-linear

Example: single rail hidden Performance -> complexity One track in a narrow canyon [diagram] Base design: alternate trains Low throughput, high delay Worse than two-track, cheaper than blasting Lower delay w/ a siding and two trains Precise schedule Risk of collision / signal lights Siding limits train length (a global effect!) Point: performance cost super-linear

Coping with Complexity hidden Simplifying insights / experience Modularity Split up system, consider separately Abstraction Interfaces/hiding, e.g. standard size windows Helps avoid propagation of effects Hierarchy Reduce connections Divide-and-conquer Layering Gradually build up capabilities

Class plan Next lecture: computer systems are different Naming: gluing modules together Client/server: enforced modularity Networks: hard boundaries between modules Reliability and transactions: handing failures Security: handling malicious failures