How to Troubleshoot Apps for the Modern Connected Worker
Lecture1
1. Fred Kuhns ( ) CS523S: Operating Systems
CS523
Operating Systems
Fred Kuhns
Applied Research Laboratory
Computer Science
Washington University
2. Fred Kuhns ( ) CS523S: Operating
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
3. Fred Kuhns ( ) CS523S: Operating
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.
4. Fred Kuhns ( ) CS523S: Operating
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)
5. Fred Kuhns ( ) CS523S: Operating
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
6. Fred Kuhns ( ) CS523S: Operating
Course Overview
Overview of OS design issues
o Review of general purpose OS services
o 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 Mach
o Single/Multi-processor
o Resource management
Focus on Real-Time: design and implementation
o Performance and predictability issues
o Resource scheduling and managing concurrency
7. Fred Kuhns ( ) CS523S: Operating
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)
8. Fred Kuhns ( ) CS523S: Operating
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
9. Fred Kuhns ( ) CS523S: Operating
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
10. Fred Kuhns ( ) CS523S: Operating
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
11. Fred Kuhns ( ) CS523S: Operating
Layered Approach
Level Name Objects Example
13 Shell User programming env. Bash statements
12 User process User process Quit,kill,suspend,resume
11 Directories Directories Create,destroy,attach,list
10 Devices External: printer,display Create,open,close
9 File system Files Create,open,close
8 Communications Pipes Crreate,open,close
7 Virtual memory Segments,pages Read,write,fetch
6 Local secondary store Blocks,channel Read,write,fetch
5 Primitive process Process,semaphore Suspend,resume,wait
4 Interrupts Interrupt-handlers Invoke,mask,retry
3 Procedures Procedure,stack,display Mark stack,call,return
2 Instruction set Evaluation stack Load,store,add
1 Electronic circuit Registers,gates,buses Clear,transfer,activate
Simplifies design, implementation and testing
Modular by dividing OS into functional layers.
HWresourceenvironment
12. Fred Kuhns ( ) CS523S: Operating
Kernel Based Approach
Kernel contains a collection of primitives
which are used to build the OS
OS implements policy
Kernel implements mechanisms
Hardware
kernel
Operating system
13. Fred Kuhns ( ) CS523S: Operating
Virtual Machine Approach
Virtual software layer over hardware
Illusion of multiple instances of hardware
Supports multiple instances of OSs
Hardware
Virtual machine software
VM1 VM2 VM3 VM4
14. Fred Kuhns ( ) CS523S: Operating
• 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.
15. Fred Kuhns ( ) CS523S: Operating
Types of Advanced OSs
Distributed Operating Systems
Multiprocessor Operating Systems
Database Operating Systems
Real-time Operating Systems
16. Fred Kuhns ( ) CS523S: Operating
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.
17. Fred Kuhns ( ) CS523S: Operating
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.
18. Fred Kuhns ( ) CS523S: Operating
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
19. Fred Kuhns ( ) CS523S: Operating
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.
20. Fred Kuhns ( ) CS523S: Operating
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
21. Fred Kuhns ( ) CS523S: Operating
Traditional UNIX kernel
• Bloated kernel
• Inflexible: supported single type of
file system,
process scheduling
executable file format
file
system
virtual
memory
loader
block dev char dev
kernel
22. Fred Kuhns ( ) CS523S: Operating
Modern UNIX
• Separation of policy and mechanism
• modular design and implementation (layered)
AcrobatDocum ent
23. Fred Kuhns ( ) CS523S: Operating
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.