CS-333: Introduction to Operating Systems

Syllabus - Fall 2014



Course Reference Number:
CS-333, Fall 2014: 10975 (section: 001)



Links
The BLITZ System: www.cs.pdx.edu/~harry/Blitz
Lecture Notes: directory
Grades so far: PDF of point spreadsheet or PDF of bar chart
Final Grades: PDF of point spreadsheet or PDF of bar chart

Homeworks
Homework 1: pdf -- due Oct 9 (end of 2nd week)
Homework 2: pdf -- due Oct 23 (end of 4th week)
Homework 3: pdf -- due xxx (end of 6th week)
Homework 4: pdf -- due xxx (end of 8th week)
Homework 5: pdf -- due xxx (end of 10th week)

Project Assignments
Project 1: pdf directory -- due Oct 7
Project 2: pdf directory -- due Oct 14
Project 3: pdf directory -- due Oct 21
Project 4: pdf directory -- due Oct 28
Project 5: pdf directory -- due Nov 4
Project 6: pdf directory -- due Nov 13
Project 7: pdf directory -- due Nov 20
Project 8: pdf directory -- due Dec 2


Instructor: Professor Harry Porter
E-Mail: porter@pdx.edu <=== UPDATED
Web Page: www.cs.pdx.edu/~harry
Short Bio: Click Here
Office space at PSU: Fourth Ave Bldg, room 120-13
Office hours: Tuesday and Thursday, 4:00-5:00 PM
Office phone: 503-725-9815 (No messages; only answered when I'm in)



Grader: Isaac Kasukonis
E-Mail: ijk3@pdx.edu
Office Hours: ??? (@ fishbowl)



Catalog Description:
Introduction to the principles of operating systems and concurrent programming. Operating system services, file systems, resource management, synchronization. The concept of a process; process cooperation and interference. Introduction to networks, and protection and security. Examples drawn from one or more modern operating systems. Programming projects, including concurrent programming.

Major Topics Covered in the Course: Processes, inter-process communication, concurrent programming, scheduling, memory management, file systems, synchronization, device management, introductions to protection & security and to networking.



When and Where:
Tuesday & Thursday, 2:00PM - 3:50PM
Academic and Student Recreation Center (ASRC), room 215
First Class: Tuesday, September 30, 2014
Holiday: Veteran's Day, Tuesday, November 11, 2014 -- No class
Holiday: Thanksgiving, Thursday, November 27, 2014 -- No class
Mid-Term Exam #1: October 23, 2014 (tentative)
Mid-Term Exam #2: November 18, 2014 (tentative)
Final Exam: Monday, December 8, 2014, 10:15AM - 12:05PM
The final will be comprehensive. It will be closed book and closed notes.



Required Textbook:

Textbook Photo [photo from Amazon.com]

Modern Operating Systems (fourth edition), Andrew S. Tanenbaum, Herbert Bos, Prentice Hall Publishers, 2014, ISBN-10: 013359162X, ISBN-13: 978-0133591620.

The textbook will be available through the PSU Bookstore. Amazon carries this book for $135.00 (new) or $142.65? (used). (Amazon Page)



Supplemental Reference Material:

The BLITZ System, Harry Porter, approx. 241 pages, September 18, 2007.

This packet documents the BLITZ software we'll be using in this course. It may be purchased for approx $xxxxx at CleanCopy, located on 1510 SW 6th Ave; 503-221-1876.

(This material is also available online and you can print it yourself, instead of purchasing it... What's in the packet)



Course Outline
  Week 1:  (Chapter 1: Introduction)
    History
    Types of Operating Systems
    Overview of Hardware
    Fundamental Concepts
      Processes, Threads, Deadlock
      Memory Management, Virtual Memory
      I/O and File Systems
    Shell Programs
    System Calls
  Week 2,3:  (Chapter 2: Processes and Threads)
    The Process
      States (ready, running, blocked)
      Implementation
    The Thread
       User-level thread packages
    Interprocess Communication
       Mutual Exclusion, Critical Regions
       Semaphores
       Monitors
    Dining Philosophers, Producer/Consumer, etc.
    Scheduling Algorithms
  Week 4:  (Chapter 3: Deadlocks)
    Resource Contention
    Deadlock Detection
    Deadlock Avoidance
    Deadlock Prevention
    Starvation
    Two-phase locking
  Exam #1 (end of week 4)
  Week 5,6:  (Chapter 4: Memory Management)
    Multiprogramming
    Swapping
    Virtual Memory, Paging, Page Tables
    Page Replacement Algorithms
    Segmentation
    Issues
  Week 7,8:  (Chapter 5: Input/Output)
     Device Controllers
     Memory-Mapped I/O
     Direct Memory Access
     Interrupt Handlers
     Device Drivers
     Disks
     Clocks
     Character I/O
     GUIs
     Power Managements
  Exam #2 (end of week 7)
  Week 9,10:  (Chapter 6: File Systems)
     Files (attributes, operations)
     Directories
       Hierarchical Systems
     Implementation
       Reliability, Performance
       Log-based Systems


Prerequisites:
The official course prerequisites are:
CS 200: Computer Systems Programming I
CS 201: Computer Systems Programming II
CS 311: Computational Structures
Students should have previous familiarity with programming in a high-level object-oriented language (such as C++ or Java); assembly language programming; CPU organization, instruction sets, registers; program development in the Unix environment (edit, compile, link, load, execute, makefile, using the shell); the Unix system call interface; basic data structures (lists, trees, graphs); object-oriented concepts (class, object, method).

CS 311 (Computational Structures) is also listed as a prerequisite. The material in 311 is not closely related to this class.

It is the student's responsibility to ensure that he/she has the appropriate background before attempting this class.

To complete the projects, students need to know the basics of Unix/Linux. They need to be familiar with commands like ls, mkdir, cd, pwd, cp, mv, rm, cat, less, man, make, and how to edit text files. Here is a link to a good tutorial: www.ee.surrey.ac.uk/Teaching/Unix/index.html.



Homework Assignments:
There will be approximately 5 homework assignments, of two weeks each. Due dates are (tentatively):
  HW 1: End of 2nd week
  HW 2: End of 4th week
  HW 3: End of 6th week
  HW 4: End of 8th week
  HW 5: End of 10th week
Homeworks are due at the beginning of class. Late homeworks will not be accepted without prior approval.



Attendance:
Attendance in class is mandatory. Successful students will arrive on-time, relaxed and full of curiosity.

Attendance will be checked regularly and will count for part of your grade.



Regarding Due Date and Time:
Please bring your project and homework submissions to class. All assignments are due at the beginning of class, and not one second later! I will collect submissions before lecture and I will not accept submissions after I begin class.

The reason I am such a stickler about this is that I do not want students to miss lectures because they are trying to finish up a project or homework. Plan ahead; all due times are "hard."

I will make extensions to deadlines in the case of medical emergencies and business travel if you contact me ahead of time.



Working Together:
I encourage students to discuss the material in this class. Feel free to discuss the programming projects amongst yourselves.

However, the programming project is not a group project. You must create the code on your own!

It is okay to look at someone else's code for the purposes of helping that person or for comparing your different approaches, but each student must do the coding alone. You must type in every line of code you submit. You must not copy another student's code. Do not look at some one else's code, then turn around and type that code in. You must create your code on your own.

It will be considered cheating to copy code.



Grading:
The exams may test on material covered only in class and on material covered only in the reading assignments.

Your grade will be based approximately, as follows. These percentages are tentative and subject to change.
   10% - Homeworks
   25% - Projects
   15% - Midterm Exam #1
   15% - Midterm Exam #2
   30% - Final
   5%  - Attendance
Incompletes will not be given.

My grading procedures and point system are discussed here.



MailMan Mailing List: PorterClassList2
A "MailMan" e-mailing list will be maintained for this class. From time to time I may post notices about the class and hints/comments about assignments. Students are encouraged to send mail to the list, too.

All students should subscribe to this list. Go to the following web page and enter your email address and a password and click "subscribe".
    https://mailhost.cecs.pdx.edu/mailman/listinfo/porterclasslist2/
The MailMan program will email you a confirmation message. You must reply, but you can simply hit your email "reply" button. After being adding to the mailing list you will get a "welcome" message from me.

NOTE: I am teaching another class with an almost identical mailing list name. CS-333 uses "PorterClassList2" and CS-201 uses "PorterClassList". Please use the correct list name!

To post a message to all the list members, send email to:
    PorterClassList2@mailhost.cecs.pdx.edu
For additional documentation, see
    staff.imsa.edu/~ckolar/mailman/mailman-userguide-0.1.pdf (pdf, 159 kb)
(By the way, if Internet Explorer does not work with MailMan on the Mac, use the "Safari" web browser instead.)



Using "FTP" to Obtain Class Files:
You may wish to use an "ftp" program to transfer class files from my directory (the "remote") to your computer (the "local"). If you want to use the standard UNIX ftp program, type the following command:
    ftp ftp.cs.pdx.edu
Then, login using the name
    anonymous
You'll be asked to provide your email address as a password.

Then, change to my directory. For example, to get to the directory containing the files for project 1, at the "ftp>" prompt type:
    cd /pub/users/harry/Blitz/OSProject/p1
To list all the files in the remote directory, type:
    ls
To copy the files without translating NL to CR-NL (which can be a problem with Windows machines), type
    binary
To copy all files from the remote directory into the current directory on your local machine, type
    mget *
Other useful FTP commands are
    get <filename>, help, quit, pwd
To suppress verbose interaction, answer "a" to the "mget filename [anpqy?]?" prompt, if it appears.

For further info, in UNIX type:
    man ftp


Hints on how to study effectively:
Here is a document I wrote, which you may find useful or interesting:

Professor Porter's Study Tips



Snow Closure: For inclement weather information, call the University switchboard, 725-3000, for a recorded message about university-wide class cancellation. Snow closure info is also available at: www.flashnews.net/pdx.html (click on "View Current Info").

Other Cancellations: If I should need to cancel class for any reason, I will email the class mailing list.


Problems / Comments on This Web Page