CS 314 Operating Systems
Focuses on the fundamentals of operating systems including: processes, deadlocks, memory management, I/O, and file systems. After a thorough grounding in these basics, students will explore distributed/multiprocessor computing. Security and computer networks are also covered. Lectures in class will be reinforced with programming assignments using the Linux operating system.

 

Textbooks:

Online References

Syllabus (tentative):

Introduction (Tanenbaum 1)
   Class Notes
   Book Notes
   Microsoft Antitrust Case (Original)
   Microsoft Antitrust Case (Massachusetts Update)
   History of Unix
   History of Microsoft Windows
   Study shows Linux on the rise in Corporate Data Centers
Scheduling (Tanenbaum 2.5)
   Class Notes
   Book Notes
   

Linux "How To"
   Fedora Website [main] [install] [documentation]
   Linux Basics Tutorial
   emacs Tutorial
   Make Tutorial
   How to use a Floppy Drive
   Your First C++ Program Using Linux

Multiple Processor Systems (Tanenbaum 8)
    Class Notes
    Book Notes
Processes (Tanenbaum 2.1)
   Class Notes
   Book Notes
   Time Slice - System call to discover duration of a process time slice
   Simple Fork - Basic example of how to use fork to create a child process
   Sleep Fork - What happens to child process when parent dies before child

Memory Management (Tanenbaum 4)
   Class Notes
   Book Notes

Threads (Tanenbaum 2.2)
   Class Notes
   Book Notes
   Linux Thread FAQ
   Pthread Tutorial
   Linux Pthread Implementation
   Singing Pthreads - how to write a threaded program using pthreads
   Summation Pthreads - sharing a global variable between parent and child thread
   Race Condition Pthreads - sharing a global variable between parent and two child threads causes race condition

Generic I/O (Tanenbaum 5)
   Class Notes
   Book Notes
   

Interprocess Communication (Tanenbaum 2.3, 2.4)
   Class Notes
   Book Notes
   Northeast Buoys - create complex systems using cooperating tasks with IPC
   Shared Memory - Producer/Consumer using fork and shared memory
   Pipe - Producer/Consumer problem using fork and pipes
   Pipe Stdin/Stdout - Using pipes to connect stdout of parent to stdin of child
   Socket - Simple chat program using sockets
   Socket w/ Worker Thread - A simple prime number server and client demonstrating the dispatcher/worker thread concept.
   Socket Programming Tutorial - Short and sweet tutorial on socket programming
   Well Known TCP/UDP Ports - Be careful which port you choose to communicate on
   Semaphores: Producer/Consumer using pthreads and semaphores
   Semaphores Tutorial: A brief overview of POSIX semaphores
   Monitors & Condition Variables: Produer/Consumer in Java using monitors, and condition variables
   Reader/Writer Problem: Bad solutions to reader/writer
   Using Mutex to Create Counting Semaphore

File I/O (Tanenbaum 6)
   Class Notes
   Book Notes
Deadlocks (Tanenbaum 3)
   Class Notes
   Book Notes
   Resources and Processes for Graph

Security (Tanenbaum 9)
   Class Notes
   Book Notes
   How To Upgrade Mozilla
   How To Install and Configure Enigmail
   Open Source Group Attacks Buffer Overflows
   Morris and Thompson's Classic Paper on Passwords
   Email Forgery Mars Reputation
   Internet Domain Name Server Denail of Service Attack
   Company Specific Denail of Service Attack
   Well Known Port Numbers
   Dominic Giampaolo
   XWindows Security Flaw

 

Course Logistics:
Lectures are held M,W 1:00-2:15 in Stanger 308.

The Lab - Stanger 308:

Many of the homeworks and project will require you to work in the lab located in Stanger 308 unless you install linux on your own machine. The lab is open from 8AM to 12AM during the week. During some of that time the lab is used as a classroom. Also, the lab is occasionally reserved for a special meeting (this is rare).You can find the schedule here.

Grading Policy:
Click here to find out how I compute your grade.

Evaluation Weight Raw Score Due Mean Std. Dev
Projects & Quizzes 75        
   Project 1   20 09/20/2006 19.6 0.8
   Project 2   30 10/04/2006 26.5 3.3
   Project 3 [tar file]   50 10/26/2006 48.3 3.1
   Project 4 [code for A, B, C, D]   50 11/01/2006 41.5 5.9
   Project 5 [data files]   12 11/20/2006 11.6 1.0
   Project 6 [data files]   12 11/29/2006 11.0 1.9
   Project 7   23 12/06/2006 18.8 2.3
   Project 8 [tar file]   30 12/06/2006 30 0
Final Exam
25 73 12/15/2006 53.6 7.2
TOTAL 100 100   81.66 8.37

Late Work
Homework will be turned in at the beginning of class on the day they are due. Late homeworks will not be accepted. This policy is firm because homework solutions will be handed out on the due day.

Projects are due at 11:59:59 PM, on the due date. Late projects will be accepted with a penalty of 10% per day for 3 days. After that, the project will not be accepted.

Exams are to be taken at the specified date and time. If you miss the exam, you will receive a 0.

Sometimes things happen. If there are circumstances that prevent you from meeting your obligations for this course, you need to talk to me to make arrangements IN ADVANCE.

Dropping the Course
I want you to stay in the course! Please talk to me before you decide to drop.

Getting Help:

Instructor: Bob Dugan
office Stanger 206
office hours

M,W 3:45-5:00,
Stanger 206 or
Stanger 308

office phone 508-565-1682
e-mail bdugan@stonehill.edu
aol im drbobdugan