CIS 380:
Operating Systems
Fall 2011


Instructor: Boon Thau Loo
Room: DRLB A6 (David Ritterhouse Laboratory)
Time: Tuesday and Thursday 1:30-3pm.
Office hours: Wed 12-1pm, 605 Levine.
Newsgroup: http://groups.google.com/group/cis-380-fall-2011

Teaching assistants:

  • Adam Aviv (aviv@cis.upenn.edu). Office hours: By appointment only.
  • Vin Mannino (vinm@seas.upenn.edu). Office hours: Wednesday 3-4pm.
  • Seth Shannin (sshannin@seas.upenn.edu). Office hours: Friday 1-2pm.
  • Thanat Owlarn (towlarn@seas.upenn.edu). Office hours: Thurs 3-4pm.
  • Kevin Xu (kevinxu@seas.upenn.edu). Office hours: Monday 2-3pm.

    All office hours will be help in the distributed systems laboratory (Moore 102). If DSL is unavailable, the TAs will hold office hours in Moore 100 labs next door.


    Course Description

    This course is an introduction to the theory and practice behind modern computer operating systems. Topics will include what an operating system does (and doesn't) do, system calls and interfaces, processes, concurrent programming, resource scheduling and management (of the CPU, memory, etc.), virtual memory, deadlocks, distributed systems and algorithms, networked computing and programming, and security. We will approach the subject from both a theoretical perspective (what are the abstractions and algorithms?) as well as a practical one (what are the mechanisms and how are they built?).

    Course textbook:

  • A.S. Tanenbaum. Modern Operating Systems (3/e). Prentice Hall. (You can use the 2nd edition as well).
  • (Optional): W. Richard Stevens and Stephen A. Rago. Advanced Programming in the UNIX Environment (2/e). Addison-Wesley Professional. 2005. (available online, but you probably want a printed copy).

    Course pre-requisites:

  • Working knowledge of the C programming language (e.g. CIS 240 level).


    Grading

  • Written assignments: 7%
  • Programming projects: 55% (5% for project 0, 15% for project 1, 35% for project 2)
  • Class participation: 3%
  • Midterms: 35% (15% for midterm 0, 20% for midterm 1)

    Class participation will be graded based on regular class attendence, visibility on newsgroup, and contribution to group projects.


    Schedule

    Syllabus is subjected to change and tentatively based on the schedule in Spring 2009. Please revisit this page regularly before class.

    Date Topic Reading Remarks
    Sept 8 Introduction [PPT] Chapter 1 Project 0 (due Sept 19)
    Sept 13 Processes and system calls;
    Unix system calls and process management [PPT]
    Unix "man" pages for:
    read(2), write(2), fork(2), execve(2),
    execl(2), wait(2), exit(2)
    Sept 15 Processes and threads [PPT] Chapter 2.1-2.2.
    Sept 20 Concurrent programming and IPC [PPT] Chapter 2.3, 2.5 Project 1 (due Oct 13)
    token-shell.tgz (gzip'ed tarball)
    Sept 22 Synchronization mechanisms and mutual exclusion [PPT]
    Sept 27 Interprocess communication and synchronization [PPT]
    Sept 29 Scheduling [PPT] Chapter 2.4 Homework 0 (due Oct 6)
    Oct 4 Scheduling (continue) [PPT] Chapter 2.4
    Oct 6 Resources and deadlocks [PPT] Chapter 6
    Oct 13 Midterm review and memory management [PPT] Chapter 3.1 and 3.2 Sample midterm
    Homework 0 solutions
    Oct 18 Midterm 0 Project 2 (milestone Nov 9, due Nov 30)
    Extra Credit Options
    context_demo.c
    Oct 20 Project 2 discussion [PDF] Instructor: Adam Aviv
    Oct 25 Project 2 discussion [PDF (administravia)] Instructor: Adam Aviv
    Oct 27 Project 2 discussion Instructor: Adam Aviv, Matt Blaze
    Nov 1 Memory Management, Virtual memory, TLBs, Page replacement [PPT] Chapter 3.1-3.3
    Nov 3 Page replacement algorithms; thrashing [PPT] Chapter 3.4
    Nov 8 I/O and devices [PPT] Chapter 5
    Nov 10 Disks, terminals and networks [PPT] Chapter 5
    Nov 15 File systems [PPT] Chapter 4 Homework 1 (due Nov 23)
    Nov 17 File Systems (continue) [PPT]
    Nov 22 Remote Procedure Calls, communication protocols [PPT]
    Nov 29 Network programming (TCP/IP stack and sockets), Distributed File Systems [PPT] Homework 1 solutions
    Dec 1 Project 2 demo discussion
    Dec 2 Project 2 Demo in Moore 100 Lab Demo Worksheet
    Dec 6 Final midterm review [PPT] Sample midterm
    Sample final
    Dec 8 Midterm 1


    Significant Dates

  • Sep. 7, First day of classes
  • Sep. 23, Add period ends
  • Oct. 14, Drop period ends
  • Oct. 8 - 11, Fall break
  • Nov. 24 - Nov. 27, Thanksgiving break
  • Dec. 9, End of Fall term classes
  • Dec. 10-13, Reading days
  • Dec 14-21, Final exams