Intro Day1 PDF
Intro Day1 PDF
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