CSS 503: Systems Programming
Spring 2013

MW 6:00-7:45pm at LBA-003

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@u.washington.edu>, room UW1-331, phone 352-3459, office hours: MW 5:30-6:00pm and 7:45-8:00pm

Course Description:

This course examines the logical design and programming aspects of operating systems and network communication. Topics covered include processes, threads, synchronization, deadlocks, memory management, virtual memory, file systems, and client-server network programming.

Course Goals:

The overall goal of CSS 503, "Systems Programming" includes:

Prerequisites:

CSS502.

Work Load and Grading:

Course Work Percentage
Programming 1 11%
Programming 2 11%
Programming 3 11%
Final Project 17%
Midterm Exam 25%
Final Exam 25%

Textbooks:

  1. Operating System Concepts, 9th edition, Avi Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2012.

References:

  1. Advanced Programming in the Unix Environment, 2nd Ed, W. Richard Stevens, Addison Wesley, 2005
  2. Beginning Linux Programming, 4th Edition, Neil Matthew and Richard Stones, Wrox, 2007.
  3. Unix Network Programming, Volume 1, 3rd Version W. Richard Stevens, Addison-Wesley, 2003.

Policies:

All programming assignments are to be done independently. Any collaboration of work will result in severe penalty. You may discuss the problem statement and any clarification with each other, but any actual work to be turned in, must be done without collaboration.

Any homework is due at the beginning of class on the due date. The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies, in which case you may turn in yor homework late with a written proof. No make-up exams will be given except under exceptional circumstances. Barring emergencies, I must be informed before the exam.

To request academic accommodations due to a disability, please contact Disability Resources for Services (DRS) in UW1-175, (email: drs@uwb.edu, TDD: 425-352-5303, and FAX: 425-352-3581). If you have a documented disability on file with the DSS office, please have your DRS counselor contact me and we can discuss accommodations.

Assignments:

Four programming assignments are given. Please read assignment.html to understand the environment you use for assigments and the submission/grading procedures.
  1. Process management
  2. Multithreaded program
  3. Process/Thread synchronization
  4. Multithreaded TCP server

Topics covered and tentative 503 spring 2013 schedule:

Note that this is an approximate ordering of topics. Chapters will take about the allotted time and not all sections in all chapters are covered.

Week Date (MW) Topics Lab Work Chapters Reading Assignment
1 Apr 1 Introduction   1 pp3-53  
  Apr 3 OS Structures   2 pp55-102  
2 Apr 8 Processes   3.1-3.5 pp105-136  
  Apr 10   Lab 1     Program 1 assigned
3 Apr 15 Threads   4 pp163-201  
  Apr 17        
4 Apr 22 Process Synchronization   5 pp203-259  
  Apr 24   Lab 2     Program 1 due
Program 2 assigned
5 Apr 29 Deadlocks   7 pp315-347  
  May 1 File-System Interface   11 pp503-541  
6 May 6 Midterm exam in class   1 - 3.5, 4, 5, and 7 pp3-136, 163-259, and pp315-347  
  May 8 File-System Implementation Lab 3 12 pp543-586 Program 2 due
Program 3 assigned
7 May 13 Cancelled due to blackout        
  May 15 Distributed Systems   17 pp741-778 Extended Program 2 Duedate
8 May 20          
  May 22 Communication in Client-Server Systems Lab 4 3.6 pp136-147 Program 3 due
Project assigned
  May 27 No School - holiday        
9 May 29 Main Memory   8 pp351-395 Program 3's New Duedate
10 Jun 3 Virtual Memory   9 pp397-463  
  Jun 5          
11 Jun 10 Final exam in class   3.6, 8, 9, 11, 12, and 17 pp136-147, 351-463, 503-586, and 741-778 Final project due at 6pm
  Jun 12         Final project due at 6pm (UW1-331)