M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Handout 12 - March 2, 1999

Quiz Review 1 Outline


Definition of a Complex System

  • Large # of nodes/components
  • Large # of interactions
  • Interacting functions
  • Surrounded by an environment
  • Lack of methodical description
  • Cannot be completely understood by just one or two people

    Problems found in Complex Systems

  • Emergent Properties
  • Propagation of Effects
  • Incommensurate Scaling

    Design Methodologies

  • Modularity --- Soft vs Hard
  • Abstraction
  • Hierarchy
  • Level Definition

    Client/Server

  • Modular, can prevent failure of entire system, levels of protection depend on implementation
  • Encourages Abstraction, look at Xwindows

    Virtual Memory

  • Abstraction, one address in program, lower levels in software deal with where it really is
  • Modularity, separating one program's memory from others
  • Locality and Replacement Strategies
  • Tradeoffs, size (cost)/speed (latency and throughput)

    Kernels

  • Trusted intermediate: applications communicate with each other and the hardware devices through the kernel
  • Tradeoffs, small kernel (fault isolation) fewer interactions (speed) many more
  • Monolithic, includes management of most things
  • Micro, separate many things out into user space
  • Exo, separate policy from management only control protection, let users choose method of managing resources

    Threads

  • Modular, separate programs, separate virtual processors
  • Scheduling policies -- Preemptive vs Nonpreemptive

    Coordination

  • Mutual Exclusion
  • Atomicity!

    Networking

  • Level definition, the protocol stack
  • Isochronous vs asynchronous models
  • Possible errors in network, where does data get lost?
  • Contracts: knowing what states are possible, and the plan to deal with errors
    Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu