Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CS523
Operating Systems
Fred Kuhns
Applied Research Laboratory
Computer Science and Engineering
Washington University in St. Louis
Washington
WASHINGTON UNIVERSITY IN ST LOUIS
• Newsgroup: wu.cs.class.523
Web: http://www.arl.wustl.edu/~fredk/Courses/cs523
Course Materials
• No Required Textbook, but I will reference the
following:
– Real-Time Systems, Jane W. S. Liu, Prentice Hall, 2000
– Foundations of Multithreaded, Parallel, and Distributed
Programming, Gregory Andrews, Addison Wesley, 2000
– UNIX Internals: The New Frontiers, 2nd edition, Uresh
Vahalia, Prentice Hall, 2001
– The Design and Implementation of the 4.4 BSD
Operating System, McKusick, Bostic, Karels and
Quarterman, Addison Wesley, 1996
– and your favorite undergraduate text
• Selected papers from the literature, web page,
handouts, class notes, and man pages
Fred Kuhns (8/27/2003) CS523 – Operating Systems 3
Other Policies
• Late Policy
– only with prior approval
• Post questions to the newsgroup, rather than
sending email to me
– all benefit from both the questions and answers
– someone other than I may respond faster
– feel free to discuss homework and projects on the
newsgroup
– do not post answers, but you may post hints or code
snippets
Programming Project
• Major systems design and implementation
• Project report:
– Introduction and motivation: problem identification, why I should
care and solution outline
• problem, context and solution
– System (i.e. project) implementation overview
– Analysis: this is where you provide quantitative data to support your
claims.
– Related work: what others have done to solve this problem
– Conclusions and Future work
• Software/system development
– Correct, predictable behavior
– Performance (efficiency)
– Completeness of design
– “readability” of code (maintainability and whether I can understand
it)
Fred Kuhns (8/27/2003) CS523 – Operating Systems 6
Course Overview
• Overview of OS design issues
– Review of general purpose OS services
– Intro to Advanced OS Topics:
• Real-Time, Database, Distributed and Multiprocessor
• 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
Course Topics
• Conventional Systems
– Process and Kernel Model
– Threads, MicroKernel, Multiprocessors
– Synchronization and Inter-Process Communication
– File Systems, Memory Management and Virtual Memory
– Communications, Networking and I/O
• Real-Time: scheduling, reclaiming and reliability
– Clock Driven, Priority Driven -
• periodic, aperiodic and sproadic tasks
– Non-Processor resources and access control
– if time allows, multiprocessor and dependencies
– Flexible Scheduling, Real-Time Communications
• if time permits, a look at the end-to-end problem
Functions of an OS
• Resource Management:
– Time management - CPU and disk transfer scheduling
– Space management - main and secondary storage allocation
– Synchronization and deadlock handling - IPC, critical section,
coordination
– Accounting and status information - resource usage tracking
• 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
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
Fred Kuhns (8/27/2003) CS523 – Operating Systems 12
Layered Approach
• Simplifies design, implementation and testing
• Modular by dividing OS into functional layers.
• References:
– Dijkstra, E. W., "The Structure of THE Multiprogramming System",
Communications of the ACM, May 1968, pp. 341-346.
– (Ring) Organick, E., The Multics System, MIT Press, Cambridge, MA. 1972.
User Sys
User Applications Apps Services
kernel-user interface kernel-user interface
kernel
file virtual
loader
system memory
block dev char dev