Operating Systems COT 4600 – Fall 2009Lecture 3NamesNames and fundamental abstractionsComputers a distinct species of complex systemsAnalog, digital, and hybrid systemsComputers are controlled by softwareExponential growth of computersCoping with complexity of computer systemsIteration – design principlesCurbing complexityCritical elements of information revolution!Slide 13The relation between homo sapiens and the computersResource sharing and complexitySlide 16Slide 17Operating Systems COT 4600 – Fall 2009Dan C. MarinescuOffice: HEC 439 BOffice hours: W, F 3:00-4:00 PMLecture 1 2Last timeComputer SystemsToday:NamesComputer Systems versus Other SystemsCoping with Computer System ComplexityNext timeThe projectHomework 1 due Thursday, September 3, 2009Lecture 3Lecture 1 3NamesModularity along with abstraction, layering, and hierarchy allow a designer to cope with complexity;Names and addresses provide the means to connect modules. A system a bunch of resources, glued together with namesNaming allows the designer to:Delay the implementation of some modules; use dummy onesReplace an implementation with another one.Binding choosing an implementation for a moduleDelayed binding; use a place holder.Lecture 1 4Names and fundamental abstractionsThe fundamental abstractions1. Storage mem, disk, data struct, File Systems, disk arrays2. Interpreters cpu, programming language e.g. java VM3. Communication wire, Ethernet rely on names.Naming:FlatHierarchicalLecture 1 5Computers a distinct species of complex systemsThe complexity of computer systems not limited by the laws of physics distant bounds on compositionDigital systems are noise-free.The hardware is controlled by softwareThe rate of change unprecedentedThe cost of digital hardware has dropped in average 30% per year for the past 35 yearsLecture 1 6Analog, digital, and hybrid systemsAnalog systems:the noise from individual components accumulate and the number of components is limitedDigital systems: are noise-freethe number of components is not limitedregeneration restoration of digital signal levelsstatic discipline the range of the analog values a device accepts for each input digital value should be wider than the range of analog output valuesdigital components could fail but big mistakes are easier to detect than small ones!!Hybrid systems e.g., quantum computers and quantum communication systemsLecture 1 7Computers are controlled by softwareComposition of hardware limited by laws of physics.Composition of software is not physically constrained; software packages of 107 lines of code existAbstractions hide the implementation beneath module interfaces and allow the creation of complex softwaremodification of the modulesAbstractions can be leaky. Example, representation of integers, floating point numbers.Lecture 1 8Exponential growth of computersUnprecedented: 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 systemsfind and correct all errorsnegatively affects “human engineering” ability to build reliable and user-friendly systemsthe legal and social frameworks are not readyLecture 1 9Coping with complexity of computer systemsModularity, abstraction, layering, and hierarchy are necessary but not sufficient.An additional technique iterationIterationDesign increasingly more complex functionality in the systemTest the system at each stage of the iteration to convince yourself that the design is soundEasier to make changes during the design processLecture 1 10Iteration – design principlesMake it easy to changethe simplest version must accommodate all changes required by successive versionsdo not deviate from the original design rationalethink 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 versionsdo not be overconfident from an early successStudy failures understand that complex systems fail for complex reasons.Lecture 1 11Curbing complexityIn absence of physical laws curb the complexity by good judgment. Easier said than done because:tempted to add new features than in the previous generationcompetitors have already incorporated the new features the features seem easy to implementthe technology has improvedhuman behavior: arrogance, pride, overconfidence…Lecture 1 12Critical elements of information revolution!Lecture 1 13Lecture 1 14The relation between homo sapiens and the computersThe feelings of the homo sapiens:HateFrustrationLack of understandingThe Operating System A program to “domesticate” the computer.Transforms a “bare machine” into a “user machine”Controls and facilitates access to computing resources; optimizes the use of resources.The relation went through several stages:Many-to-oneOne-to-oneMany-to-manyPeer-to-peerLecture 1 15Resource sharing and complexity A main function of the OS is resource sharing.Sharing computer resources went through several stages with different levels of complexity:Many-to-oneOne-to-oneMany-to-manyPeer-to-peerLecture 1 16Lecture 1
View Full Document