Alan Kaminsky Department of Computer Science Rochester Institute of Technology 4486 + 2220 = 6706
Home Page
Operating Systems I 4003-440-02 Winter Quarter 2012
Course Page

4003-440-02 Operating Systems I
Course Schedule and Topics

Prof. Alan Kaminsky -- Winter Quarter 2012
Rochester Institute of Technology -- Department of Computer Science

Time: Mondays and Wednesdays, 6:00pm-7:50pm, Room 70-3455

Final Exam: Wednesday, 20-Feb-2013, 6:00pm-8:00pm, Room 70-3455

Sun Mon Tue Wed Thu Fri Sat
Nov. 25 Nov. 26
Course Introduction
Module 1. OS Structures
Nov. 27 Nov. 28
Module 2. Process Management
 
Nov. 29 Nov. 30 Dec. 1
Dec. 2
Drop/
add*
Dec. 3
Module 3. Thread Programming
Programming Project 1 assigned
Dec. 4 Dec. 5
Module 3. Thread Programming
 
Dec. 6 Dec. 7 Dec. 8
Dec. 9 Dec. 10
Module 4. Thread Coordination
 
Dec. 11 Dec. 12
Module 4. Thread Coordination
Programming Project 1 due
Dec. 13 Dec. 14 Dec. 15
Dec. 16 Dec. 17
Module 5. Concurrent Design Issues
 
Dec. 18 Dec. 19
Module 5. Concurrent Design Issues
 
Dec. 20 Dec. 21 Dec. 22
Holiday Break
Jan. 6 Jan. 7
Concurrent Design Case Study
Programming Project 2 assigned
Jan. 8
Project 1
resubmit
Jan. 9
Midterm Exam
 
Jan. 10 Jan. 18 Jan. 12
Jan. 13 Jan. 14
Module 6. Process Programming
 
Jan. 15 Jan. 16
Module 7. CPU Scheduling
Programming Project 2 due
Jan. 17 Jan. 18
Final exam
conflicts**
Jan. 19
Jan. 20 Jan. 21
Module 7. CPU Scheduling
Programming Project 3 assigned
Jan. 22 Jan. 23
Module 8. Memory Management
 
Jan. 24 Jan. 25 Jan. 26
Jan. 27 Jan. 28
Module 8. Memory Management
Programming Project 2 resubmission
Jan. 29 Jan. 30
Module 9. Memory Allocation
 
Jan. 31 Feb. 1
Withdraw
***
Feb. 2
Feb. 3 Feb. 4
Module 10. File Systems and Disks
 
Feb. 5 Feb. 6
Module 10. File Systems and Disks
Programming Project 3 due
Feb. 7 Feb. 8 Feb. 9
Feb. 10 Feb. 11
Module 11. Parallel & Distributed Systems
Programming Project 3 due
Feb. 12 Feb. 13
Module 11. Parallel & Distributed Systems
 
Feb. 14 Feb. 15 Feb. 16
Feb. 17 Feb. 18
Finals
 
Feb. 19
Finals
 
Feb. 20
Final Exam
6:00pm-8:00pm, Room 70-3455
Feb. 21
Finals
 
Feb. 22
Project 3
resubmit
Feb. 23

*Last date to drop/add courses: Sunday 02-Dec-2012
**Last date to request final exam rescheduling due to scheduling conflicts: Friday 18-Jan-2013
***Last date to withdraw with a grade of W: Friday 01-Feb-2013


Introduction
Topics
  • Course introduction
  • Course policies
  • Course schedule
Reading


Module 1. OS Structures
Topics
  • Review of computer organization and architecture
  • Operating system structure and operations
  • Operating system interfaces and APIs
  • Virtual machines; Java as an OS
Required Reading


Module 2. Process Management
Topics
  • Processes and threads
  • Process and thread scheduling
  • Interprocess communication
  • Thread coordination
Required Reading


Module 3. Thread Programming
Topics
  • Java thread classes and interfaces
  • Creating threads -- fork and join
  • Thread pools
  • Thread-based parallel programming
Required Reading


Module 4. Thread Coordination
Topics
  • The need for thread coordination/synchronization
  • Classical mechanisms: semaphores, locks, barriers
  • Object oriented mechanisms: monitors, conditions
  • Thread safe classes in Java
  • Multithreaded program design case study
Required Reading


Module 5. Concurrent Design Issues
Topics
  • Deadlock
  • Methods for dealing with deadlock
  • Starvation
  • Methods for dealing with starvation
Required Reading


Concurrent Design Case Study
Topics
  • Alternative ways of implementing a multithreaded program
Required Reading


Module 6. Process Programming
Topics
  • Unix process API
  • Creating processes -- fork, exec, and wait
  • Interprocess communication with pipes
  • Interprocess communication with messages
  • Message-based parallel programming
Required Reading


Module 7. CPU Scheduling
Topics
  • Process/thread states
  • CPU-bound vs. I/O-bound processes
  • CPU scheduling algorithms
  • Simulation studies of CPU scheduling
Required Reading


Module 8. Memory Management
Topics
  • Process swapping
  • Paging, segmentation, protection
  • Virtual memory
  • Page replacement algorithms
  • Simulation studies of page replacement
Required Reading


Module 9. Memory Allocation
Topics
  • Kernel memory allocation algorithms
  • User memory allocation algorithms
  • Garbage collection
Required Reading


Module 10. File Systems and Disks
Topics
  • File system interfaces
  • File system implementation
  • Disk structure
  • Disk scheduling algorithms
  • Simulation studies of disk scheduling
Required Reading


Module 11. Parallel and Distributed Systems
Topics
  • Big Data and Big CPU
  • SMP parallel computers and programming
  • Cluster parallel computers and programming
  • GPU parallel computers and programming
  • Distributed system structures
  • Web services
  • Distributed hash tables
  • Map-reduce systems
Required Reading

Operating Systems I 4003-440-02 Winter Quarter 2012
Course Page
Alan Kaminsky Department of Computer Science Rochester Institute of Technology 4486 + 2220 = 6706
Home Page
Copyright © 2013 Alan Kaminsky. All rights reserved. Last updated 15-Feb-2013. Please send comments to ark­@­cs.rit.edu.