CSE 221 - Operating Systems
Lecture 1 - Intro
Checkpoints - things that we need to be familiar for this class
- What is a privileged instruction. Examples?
- Difference between system call and a function call?
- Give an example of an atomic instruction
- Difference between a semaphore and a condition variable
- Difference between hardware and software-managed TLBs
- What can happen at a memory instruction. Can the CPU directly access the cache to get the data?
- What is an inode?
Use the textbook Operating System Concept, by Silberscatz, Galvin, and Gagne if you need to brush up on OS concepts.
Objectives for the course
- Understanding system design trade-offs. Previous and modern-day systems.
- Gain experience reading research papers
- Develop intuition for what question and issues are important, which are not.
- Experience discussing research material
- Be able to express opinions and arguing points for/against design decisions.
Lecture 2 - “‘THE’-Multiprogramming System” and “The Nucleus of a Multiprogramming System”
Lecture 3 - TENEX and HYDRA
Lecture 4 - Protection and Protection in Multics
Lecture 5 - UNIX and Plan 9
Lecture 6 - Medusa and Pilot
- Medusa: An Experiment in Distributed Operating Systems Structure
- Pilot: An Operating System for a Personal Computer
Lecture 7 - Monitors and Mesa
Lecture 8 - Monitors and Mesa
Lecture 9 - Grapevine and Global Memory Management
Lecture 10 - Microkernels and Exokernels
- The performance of Micro-Kernel-Based Systems
- Exokernel: An OS Architecture for Application-Level Resource Management
Lecture 11 - VM/370 and Xen
Lecture 12 - Mach and Vax VMMS
- Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures
- Virtual Memory Management in the Vax/VMS Operating System
Lecture 13 - Unix Filesystems
Lecture 14 - Rio and Soft Updates
- The Rio File Cache: Surviving OS Crashes
- Soft Updates: A Solution to the Metadata Update Problem in File Systems
Lecture 15 - Lottery Scheduling and Scheduler Activations
- Lottery Scheduling: Flexible Proportional-Share Resource Management
- Scheduler Activations: Effective Kernel Support for the User-level Management of Parallelism
Lecture 16 - Cells and TaintDroid
- Cells: A Virtual Mobile Smartphone Architecture
- TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones
Lecture 17 - GFS and BigTable
Lecture 18 - MapReduce and Haystack
- MapReduce: Simplified Data Processing on Large Clusters
- Finding a needle in Haystack: Facebook’s Photo Storage