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