160 likes | 182 Views
Summary and Review. Course Objectives. The main objectives of the course are to introduce different concepts in operating system theory and implementation; identify software design issues for advanced computer systems, such as multiprocessors or distributed systems;
E N D
Course Objectives • The main objectives of the course are to • introduce different concepts in operating system theory and implementation; • identify software design issues for advanced computer systems, such as multiprocessors or distributed systems; • provide exposure to classic & current topics in operating system research through reading and discussing conference and journal papers; • review and expand on complex concepts from the introductory operating systems course, such as synchronization, virtual memory, and file systems.
Introduce different concepts in OS theory and implementation • Microkernel operating systems • Extensible operating systems • Virtual machine operating systems
Identify software design issues for advanced computer systems • Distributed systems architectures • Distributed system principles/design issues • Naming • Replication and consistency • Fault tolerance • Distributed systems goals
Provide exposure to classic & current topics in OS research in reading and analysis of papers • Extensible operating systems • Virtual machine papers • Racetrack & Eraser • Superpages • MapReduce & Dynamo
Review/expand on concepts from the introductory OS course • Synchronization • Shared memory systems • Distributed systems • File replication • Virtual Memory • Superpages • File Systems • Organization/performance • Distributed file systems • Caching and replication
Unification • When you review course material try to think about connections: • Distributed system architectures as applied to systems we studied; e.g., compare Google cluster architecture to traditional client-server; P2P • Discussion of logical time/Lamport time stamps/vector clocks and applications of those techniques • Middleware definition and examples of services that could be implemented as middleware. • Examples: “what is fault tolerance, how is it managed in <some system we have studied>”, “define transparency and discuss techniques that might be used to achieve it”, …
Coverage • Comprehensive • Relatively more emphasis on untested material • Distributed file systems • MapReduce & Dynamo (although we only spent a short time on these two systems) • Memory management/superpages • Material from previous tests • Less detail, but remember that much of it shows up again and again, so you can’t ignore it (e.g. architectures, scalability, …) • Mutual exclusion and other forms of synchronization are still important
New Material • Distributed file systems • Basic concepts • Use of caching • Cache consistency issues • Different file semantics • Replication/replica updates/replica consistency
New Material • Dynamo • Basic idea • P2P aspects • Fault tolerance • MapReduce • Basic idea • Responsibilities of processors • Fault tolerance issues
New Material • Superpages • the problem • Large superpage size versus small • Use multiple page sizes or just one • Reservation versus relocation • Affect of these issues on fragmentation/contiguity
Things to Study • Definitions • Algorithms (e.g., mutual exclusion, how to place an item in a P2P system, …) • Numbered lists: “4 reasons for…”, “3 advantages of…”, “main design goals…” • Discuss and evaluate • Anything that can be compared/contrasted; e.g. RaceTrack v Eraser methodology
Test-Taking Tips - 1 • Base length of answer on (1) my suggestion – “brief”, “25 words or less”, etc. (2) number of points it’s worth, (3) amount of space on test paper. • Don’t answer anything I didn’t ask about, but DO answer the question posed; e.g., for the question “Structurally, how do microkernel operating systems differ from traditional
Test-Taking Tips - 2 • Don’t answer anything I didn’t ask about, but DO answer the question posed; e.g., for the question “How does a microkernel architecture differ from the architecture of a traditional operating system?” • DON’T talk about advantages/disadvantages; don’t talk about the motivation behind each kind of system. • DO describe the architectures, show where they are different.
Test-Taking Tips 3 • Budget your time • If you don’t know the answer, come back to it later • Don’t waste a lot of time on a 2-point questions • If you want to add extra details, don’t do so until you’re sure you’ve covered the basics.
Test-Taking tips – 4 • Be sure you read the instructions for each question before you begin the answer. • If a question has several parts (a, b, c) don’t answer part (a) until you have read parts (b) and (c) – otherwise, you may write things in the first part that you’ll have to repeat later. • If a question says “Answer three out of four”, don’t waste time answering all four.