Bryn Mawr College
CS 355: Operating Systems
Spring 2010
Course Materials

 

 Information

Texts  Important Dates  Projects  Lectures  Grading  Links

General Information

Instructor: Dianna Xu , 246A Park Hall, 526-6502
E-Mail: dxu at cs dot brynmawr dot edu
WWW: http://cs.brynmawr.edu/~dxu


Lecture Hours: Tuesdays & Thursdays, 11:30 am to 1:00 pm
Room: Park 232

Lab Hours: Thursdays 1-2pm
Lab room: Park 232

Office hours: Tuesdays 1-3pm


Texts & Software

  • Modern Operating Systems, 3rd Edition, by Andrew S. Tannenbaum, Prentice Hall, 2008.
  • The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage, by Clifford Stoll, Pocket, 2000 (or any other paperback edition).

In addition, you will need a good reference book on the C programming language, such as:

  • The C Programming Language, 2nd Edition, by Kernighan and Ritchie, Prentice Hall, 1988


Important Dates

Jan 19: First lecture
Feb 23: Exam 1
April 13: Exam 2
April 29: Last lecture


Programming Projects & Homework

Future home works will be posted here and/or handed out in class.

  • Homework (due Tuesday 1/26): Write a short 1-2 page essay on what an OS is and the variety of operating systems available today.
  • Homework (due Tuesday 2/1): hw1.pdf
  • Homework (due Thursday 2/11): hw2.pdf


Lectures

Planned Syllabus

Week Topic
1 Introduction to OS, Unix processes and system calls
2 Processes and threads, concurrent programming and IPC
3 Synchronization, semaphores and mutual exclusion. Interprocess communication and synchronization
4 Scheduling, real-time scheduling
5 Resource allocation, deadlocks and starvation
6 Midterm 1, Memory management, swapping
7 Virtual Memory
8 Spring break!
9 Paging, page replacement
10 I/O and devices, disks.
11 File systems.
12 File systems. Multiprocessor and distributed systems.
13 Midterm 2, Security and protection.
14 Security and protection. Case studies and discussions
15 Case studies and final review.

Detailed syllabus will be posted here as the semester progresses


  • Week 1

    Jan 19:
    Introduction: What is an OS?

    Homework (due Tuesday 1/26): Write a short 1-2 page essay on what an OS is and the variety of operating systems available today.

    Read: Tannenbaum 1.1 - 1.4, lecture notes

    Jan 21:
    Unix processes and system calls

    Read: Tannenbaum Chapter 1 and 2.1 lecture notes


    Lab: lab01.pdf

  • Week 2

    Jan 26:
    Unix system calls

Read: Tannenbaum 2.1 and 1.6 (again) carefully

Lab: lab02.pdf

Homework (due Tuesday 2/1): hw1.pdf

Jan 28: Processes and threads

Read: Tannenbaum 2.2
, lecture notes


  • Week 3

    Feb 2:
    Interprocess Communications

Read: Tannenbaum 2.3, lecture notes

Lab: lab03.pdf

Homework (due Thursday 2/11): hw2.pdf

Feb 4: Synchronization and Classic IPC Problems

Read: Tannenbaum 2.5
, lecture notes


  • Week 4

    Feb 9:
    Scheduling

Read: Tannenbaum 2.4, lecture notes

Feb 11: Scheduling continued

Read: Tannenbaum 2.4

 

 


Grading

All graded work will receive a score out of 100. Guidelines of letter grades corresponding to lab/exam score levels will also be given. At the end of the semester, a total score (to which the corresponding final grade is assigned) will be calculated from a weighted average of all scores according to the following weights:

Programming Assignments: 50%
Exams: 30%
Written Homeworks and discussions: 20%
Total: 100%

There are weekly or bi-weekly programming assignments and/or short writings as well as 2 in-class exams.

There is also a final paper on OS security, based on the course material and related readings. More details will be given out during class.


Links

Unix for Beginners

Basic Unix Tutorial

Unix FAQ

Emacs howto

LaTeX primer

Beginning LaTeX