Fred Kuhns ( ) CS523S: Operating Systems CS523 Operating Systems Fred Kuhns Applied Research Laboratory Computer Science Washington University
Fred Kuhns ( ) CS523S: Operating Systems
CS523Operating Systems
Fred Kuhns
Applied Research Laboratory
Computer Science
Washington University
Fred Kuhns ( ) CS523S: Operating Systems
CS523 - Operating Systems
• Instructor: Fred Kuhns
• Phone: 935-6598
• Email: [email protected]
• Office Hours:Tu/Th: 4:00 - 5:00PM
• Location: TBD
• Class times: Tu/Th: 2:30 - 4:00PM
Fred Kuhns ( ) 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.
Fred Kuhns ( ) 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)
Fred Kuhns ( ) CS523S: Operating Systems
Exams, Homework and Grading
• Weekly: Homework assignment or Quiz
• Final Exam (no mid-term): Comprehensive
• Relative weights:25% Final exam20% Quizzes10% Homework30% Programming projects (10% per project)15% Final Project
Fred Kuhns ( ) CS523S: Operating Systems
Course OverviewOverview of OS design issues
o Review of general purpose OS serviceso Intro to Advanced OS Topics:
• Real-Time, Database, Distributed and Multi-processor
Detailed analysis of conventional OS internals:o Focus on UNIX - Linux, BSD, SVR4 and Macho Single/Multi-processoro Resource management
Focus on Real-Time: design and implementationo Performance and predictability issueso Resource scheduling and managing concurrency
Fred Kuhns ( ) CS523S: Operating Systems
Introduction
• Functions of an Operating SystemResource managementUser environment
• Design ApproachesLayered, Kernel and Virtual
• Types of Advanced Operating SystemsDistributed, Multiprocessor, Database and Real-time
• Overview of UNIX (why do we care)
Fred Kuhns ( ) CS523S: Operating Systems
Functions of an OS
• Resource ManagementTime management - temporal properties
CPU and disk transfer scheduling
Space management main and secondary storage allocation
Synchronization and deadlock handlingc
Accounting and status informations
Fred Kuhns ( ) CS523S: Operating Systems
Functions of an OS (cont)• User Environment - OS layer transforms bare
hardware machine into higher level abstractionsExecution environment - process management, file
manipulation, interrupt handling, I/O operations, language.
Error detection and handlingProtection and securityFault tolerance and failure recovery
Fred Kuhns ( ) CS523S: Operating Systems
Design Approaches• Deal with complexities of modern systems• Separation of Policies and Mechanisms
Policies - What should be doneMechanisms - How it should be doneLevin, 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 ApproachKernel ApproachVirtual Machine Approach
Fred Kuhns ( ) CS523S: Operating Systems
Layered Approach
Level Name Objects Example13 Shell User programming env. Bash statements12 User process User process Quit,kill,suspend,resume11 Directories Directories Create,destroy,attach,list10 Devices External: printer,display Create,open,close9 File system Files Create,open,close8 Communications Pipes Crreate,open,close7 Virtual memory Segments,pages Read,write,fetch6 Local secondary store Blocks,channel Read,write,fetch5 Primitive process Process,semaphore Suspend,resume,wait4 Interrupts Interrupt-handlers Invoke,mask,retry3 Procedures Procedure,stack,display Mark stack,call,return2 Instruction set Evaluation stack Load,store,add1 Electronic circuit Registers,gates,buses Clear,transfer,activate
Simplifies design, implementation and testingModular by dividing OS into functional layers.
HW
reso
urce
envi
ronm
ent
Fred Kuhns ( ) CS523S: Operating Systems
Kernel Based Approach
Kernel contains a collection of primitives which are used to build the OS
OS implements policyKernel implements mechanisms
Hardware
kernel
Operating system
Fred Kuhns ( ) CS523S: Operating Systems
Virtual Machine Approach
Virtual software layer over hardwareIllusion of multiple instances of hardwareSupports multiple instances of OSs
Hardware
Virtual machine software
VM1 VM2 VM3 VM4
Fred Kuhns ( ) 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.
• KernelBrinch 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.
• VirtualSeawright, L., and R. MacKinnon, "VM/370 - A Study of
Multiplicity and Usefulness", IBM Systems Journal, 1979, pp. 4-17.
Fred Kuhns ( ) CS523S: Operating Systems
Types of Advanced OSs
Distributed Operating SystemsMultiprocessor Operating SystemsDatabase Operating SystemsReal-time Operating Systems
Fred Kuhns ( ) CS523S: Operating Systems
Distributed Operating Systems
• Controls and manages resources for a network of autonomous computersmanage 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 clockunpredictable communication delays.
Fred Kuhns ( ) CS523S: Operating Systems
Multiprocessor Operating Systems• Consists of a set of processors that
share a set of physical memory blocksshare a common clock "share" over an interconnection network.
• Control and manage resources hardware and software resourcesviewed as a uniprocessor system.
• Design issues same as traditional system.• Practical issues:
increased complexity of synchronization, scheduling, memory management, protection and security.
Fred Kuhns ( ) CS523S: Operating Systems
Database Operating Systems• Database systems place increased demands on an
operating system to efficiently support: concept of a transactionsmanage large volumes of dataconcurrency controlsystem failure control
Fred Kuhns ( ) 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.
Fred Kuhns ( ) 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
Fred Kuhns ( ) CS523S: Operating Systems
Traditional UNIX kernel
• Bloated kernel• Inflexible: supported single type of
file system,process schedulingexecutable file format
file system
virtual memory
loader
block dev char dev
kernel
Fred Kuhns ( ) CS523S: Operating Systems
Modern UNIX
• Separation of policy and mechanism
• modular design and implementation (layered)
Acrobat Document
Fred Kuhns ( ) 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.