230 likes | 405 Views
CS523 Operating Systems. Fred Kuhns Applied Research Laboratory Computer Science Washington University. CS523 - Operating Systems. Instructor: Fred Kuhns Phone: 935-6598 Email: fredk@cs.wustl.edu Office Hours : Tu/Th: 4:00 - 5:00PM Location: TBD Class times:
E N D
CS523Operating Systems Fred Kuhns Applied Research Laboratory Computer Science Washington University CS523S: Operating Systems
CS523 - Operating Systems • Instructor: Fred Kuhns • Phone: 935-6598 • Email: fredk@cs.wustl.edu • Office Hours: • Tu/Th: 4:00 - 5:00PM • Location: • TBD • Class times: • Tu/Th: 2:30 - 4:00PM CS523S: Operating Systems
Course Materials • Textbook: • Real-Time Systems, Jane W. S. Liu • Selected papers from the literature, • Class handouts and presentation material, • Class web page, • OS man pages and web accessible documentation, • UNIX account. CS523S: Operating Systems
Programming Projects • 3 projects plus a final project • Final project: • team/individual class presentations • address a system issue covered in class. May build on class projects. Report or implementation. • Project focus: • Correct, predictable behavior (of implementation) • Performance (efficient execution) • Completeness of design (address all issues) • "readability" of code (can I understand it) CS523S: Operating Systems
Exams, Homework and Grading • Weekly: Homework assignment or Quiz • Final Exam (no mid-term): • Comprehensive • Relative weights: • 25% Final exam • 20% Quizzes • 10% Homework • 30% Programming projects (10% per project) • 15% Final Project CS523S: Operating Systems
Course Overview • Overview of OS design issues • Review of general purpose OS services • Intro to Advanced OS Topics: • Real-Time, Database, Distributed and Multi-processor • Detailed analysis of conventional OS internals: • Focus on UNIX - Linux, BSD, SVR4 and Mach • Single/Multi-processor • Resource management • Focus on Real-Time: design and implementation • Performance and predictability issues • Resource scheduling and managing concurrency CS523S: Operating Systems
Introduction • Functions of an Operating System • Resource management • User environment • Design Approaches • Layered, Kernel and Virtual • Types of Advanced Operating Systems • Distributed, Multiprocessor, Database and Real-time • Overview of UNIX (why do we care) CS523S: Operating Systems
Functions of an OS • Resource Management • Time management - temporal properties • CPU and disk transfer scheduling • Space management • main and secondary storage allocation • Synchronization and deadlock handling • c • Accounting and status information • s CS523S: Operating Systems
Functions of an OS (cont) • User Environment - OS layer transforms bare hardware machine into higher level abstractions • Execution environment - process management, file manipulation, interrupt handling, I/O operations, language. • Error detection and handling • Protection and security • Fault tolerance and failure recovery CS523S: Operating Systems
Design Approaches • Deal with complexities of modern systems • Separation of Policies and Mechanisms • Policies - What should be done • Mechanisms - How it should be done • Levin, R., E. Cohen, W. Corwin, F. Pollack and W. Wulf, "Policy/Mechanism Separation in HYDRA," Proceedings of the 5th Symposium on Principles of Operating Systems, 1975, pp. 132-140. • Three common approaches: • Layered Approach • Kernel Approach • Virtual Machine Approach CS523S: Operating Systems
Layered Approach • Simplifies design, implementation and testing • Modular by dividing OS into functional layers. environment resource HW CS523S: Operating Systems
Hardware kernel Operating system Kernel Based Approach • Kernel contains a collection of primitives which are used to build the OS • OS implements policy • Kernel implements mechanisms CS523S: Operating Systems
VM1 VM2 VM3 VM4 Virtual machine software Hardware Virtual Machine Approach • Virtual software layer over hardware • Illusion of multiple instances of hardware • Supports multiple instances of OSs CS523S: Operating Systems
Layered: Dijkstra, E. W., "The Structure of THE Multiprogramming System", Communications of the ACM, May 1968, pp. 341-346. Layered (Ring): Organick, E., The Multics System, MIT Press, Cambridge, MA. 1972. Kernel Brinch Hansen, P., "The Nucleus of a Multiprogramming System", Communications of the ACM, Apr. 1970, pp. 238-241. Wulf, W., E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson, and F. Pollack, "HYDRA: The Kernel of a Multiprocessor Operating System", Communications of the ACM, June 1974, pp. 337-345. Virtual Seawright, L., and R. MacKinnon, "VM/370 - A Study of Multiplicity and Usefulness", IBM Systems Journal, 1979, pp. 4-17. CS523S: Operating Systems
Types of Advanced OSs • Distributed Operating Systems • Multiprocessor Operating Systems • Database Operating Systems • Real-time Operating Systems CS523S: Operating Systems
Distributed Operating Systems • Controls and manages resources for a network of autonomous computers • manage both hardware and software resources • behaves as a single monolithic system. • User not aware of program or resource location • Design issues same as traditional systems • Practical issues: • lack of shared memory • lack of global clock • unpredictable communication delays. CS523S: Operating Systems
Multiprocessor Operating Systems • Consists of a set of processors that • share a set of physical memory blocks • share a common clock • "share" over an interconnection network. • Control and manage resources • hardware and software resources • viewed as a uniprocessor system. • Design issues same as traditional system. • Practical issues: • increased complexity of synchronization, scheduling, memory management, protection and security. CS523S: Operating Systems
Database Operating Systems • Database systems place increased demands on an operating system to efficiently support: • concept of a transactions • manage large volumes of data • concurrency control • system failure control CS523S: Operating Systems
Real-time Operating Systems • Place application specific special requirements on an operating system. • Policies and mechanisms are geared to ensuring jobs meet their deadlines. • Problem is one of resource scheduling and overall system utilization. CS523S: Operating Systems
Why UNIX • Historical significance • Advanced features developed for or ported to UNIX • Availability of source code and research papers • Importance to present and future research activities at WashU • Highlights key design and architectural issues CS523S: Operating Systems
kernel file system virtual memory loader block dev char dev Traditional UNIX kernel • Bloated kernel • Inflexible: supported single type of • file system, • process scheduling • executable file format CS523S: Operating Systems
Modern UNIX • Separation of policy and mechanism • modular design and implementation (layered) CS523S: Operating Systems
References • Original UNIX implementation: • D. M. Ritchie, and K. Thompson, “The UNIX Time-Sharing System”, Communications of the ACM, Vol. 17, No. 7, Jul. 1974, pp. 365-375. CS523S: Operating Systems