CS 154/156, Fall 2009: Operating Systems
Instructor: Professor Gabriel Parmer
gparmer at gwu dot edu
Class Schedule: Tues, Thurs 12:45--2:00pm, Tompkins 205
Office Hours: Philips Hall, room 720E, Thurs: 3--5pm. Other times by Appointment.
Lab (Required Attendance): Thursday 6:10--8:00pm, Tompkins 211
Course Outline
This course covers the fundamental concepts of operating systems.
This includes OS structure, processes and thread management,
communication with peripherals, synchronization, deadlocks, memory
management, virtual memory, file systems, networking (sockets and
protocols), and distributed systems.
Course Objectives
In completing this class, students will...
- understand concepts involving system resource management,
organization, and abstraction
- understand how an OS manages and interfaces with hardware
- understand fundamental trade-offs integral to system
design
- experience both development and experimentation in a real
OS
Course Prerequisites
CS 135, 143.
Assignments for this class will be done in C. Thus, a familiarity
with C or a willingness to learn it quickly is required.
Course Material
Required Text: Operating Systems Concepts, 8th edition, by
Silberschatz, Galvin, and Gagne
Recommended Text: Linux Kernel Development by Robert Love
Lab Section
Location: Thompkins 211
Time: Thurs 6:10-8:00
Students in either 154/156 must be enrolled in lab for CSCI
154. Lab section attendance is required and will cover the
practical implementation of systems.
TA: James Marshall (jcmarsh at gwmail dot gwu dot
edu).
- Office Hours: Monday, Tuesday 4-6pm
Written Assignments
Syllabus (subject to change)
-
Introduction and OS fundamentals (Chapter 1,2)
Definitions, Computer Architecture, OS History, OS Structure
-
Processes, Inter-Process Communcation, Threads (Chapter 3, 4)
Address spaces, I/O, Isolation, and Run-states
-
CPU Scheduling and Synchronization (Chapter 5, 19, 6)
Scheduling Mechanisms, Algorithms, and Evaluation. Critical
Sections and how they are provided
-
Synchronization Cont. and Deadlock (Chapter 6, 7)
Semaphores/Monitors, Deadlock conditions and Solutions
-
Memory Management and Paging (Chapter 8)
Allocation Algorithms, Segmentation, Address Translation
-
Virtual Memory (Chapter 9)
Demand Paging, Algorithms for Page Replacement, Thrashing
-
Midterm Examination on October 20th, 2009
-
File-Systems and I/O (Chapters 10, 11, 12, 13)
File-System API, Rotating Storage, File-System Layout, Block Device Scheduling
-
The Networking Stack: Internetworking and Transport Layers
(Chapter 16)
IP, UDP/TCP, Socket API
-
The Networking Stack: Physical and Link Layers
Device Drivers, DMA
-
Distributed Systems (Chapter 17)
Overview, Distributed FS, Stateful vs. Stateless
-
Distributed Coordination (Chapter 18)
Event Ordering, Election Algorithms
-
Final Exam: Tuesday Dec 15th, 2009, 12:40-2:40pm in Tompkins 205
Lectures
- 9/1/09 - Class Introduction, OS definition and history [pdf]
- 9/3/09 - System Architecture and Structure [pdf]
- 9/8/09 - Processes [pdf]
- 9/10/09 - Concurrency and Parallelism: Inter-Process Communication and Threads [pdf]
- 9/15/09 - CPU Scheduling I [pdf]
- 9/17/09 - CPU Scheduling II & Synchronization [pdf]
- 9/22/09 - Synchronization II && III [pdf]
- 9/29/09 - Deadlocks [pdf]
- 10/01/09 - Memory Management I [pdf]
- 10/06/09 - Memory Management and Virtual/Physical Address Spaces [pdf]
- 10/08/09 - Virtual Memory [pdf]
- 10/13/09 - Page Replacement Algorithms [pdf]
- 10/17/09 - File System Interfaces [pdf]
- 10/29/09 - File System Structures [pdf]
- 11/03/09 - Disk Scheduling [pdf]
- 11/10/09 - Networking [pdf]
- 11/17/09 - Consistency [pdf]
- 11/19/09 - Distributed Coordination [pdf]
- 11/24/09 - Protection [pdf]
Grading
Grades will be assigned with the following proportions:
Homeworks and Quizes: 45%
Midterm: 20%
Final: 25%
Class and Lab Participation: 10%
Academic Honesty
You are not allowed to collaborate on the homeworks and the lab
assignments. The group projects require collaboration amidst each
group, but no collaboration between teams is permitted. Please refer
to the academic integrity policy linked from the course web page.
This policy will be strictly enforced. If you're having significant
trouble with an assignment, please contact me.
Academic
Integrity Policy
Credit: I'd like to thank Prof. Narahari for the first versions of
this academic honesty policy.