CMSC 412 (Spring 2016)

Operating Systems

Professor: TAs:
Dr. Jeff Hollingsworth Eric Harrison Ben Miller Mahmoud Sayed
4155 AV Williams
301 405-2708
hollings@cs.umd.edu bmille16@terpmail.umd.edu mfayoub@cs.umd.edu
Office Hours:
Tu 11:00-12:00 Tu 12:00-2:00 M 4:00-6:00 Tu 2:00-4:00
F 10:00-11:00 Th 12:00-2:00 W 4:00-6:00 Th 2:00-4:00

Note: All TA office hours are held in the 400-level TA room (room 4103 in AV Williams).
Hot News

Hot News

This page contains information relating to the Course CS412 on operating systems offered during the Spring 2016 semester.

Academic Integrity:

"Integrity without knowledge is weak and useless, and knowledge without integrity is dangerous and dreadful." Samuel Johnson (The History of Rasselas, ch. 41 - 1759). Please read the statement on academic integrity. Each student is asked to sign the CMSC412 honesty pledge.

Handouts:

  • Syllabus
  • Calendar with all deadlines
  • Exams:
  • Midterm #1 - 03/10/16 (Solution)
  • Sample Exam #1
  • Sample Exam #2, (Solution)
  • Sample Exam #3, (Solution)
  • Sample Exam #4, (Solution)
  • Sample Exam #5
  • Sample Exam #6 (Solution)
  • Sample Exam #7 (Solution)
  • Sample Exam #8 (Solution)
  • Midterm #2 - 04/14/16 (Solution)
  • Sample Exam #1
  • Sample Exam #2, (Solution)
  • Sample Exam #3
  • Sample Exam #4, (Solution)
  • Sample Exam #5, (Solution)
  • Sample Exam #6, (Solution)
  • Sample Exam #7, (Solution)
  • Sample Exam #8, (Solution)
  • Final - (05/13/16 8:00-10:00 AM) - Room TBA
  • Sample Final #1
  • Sample Final #2
  • Sample Final #3
  • Sample Final #4
  • Sample Final #5
  • Sample Final #6
  • Sample Final #7
  • Sample Final #8
  • Dr. Hollingsworth's Lectures:
  • Lecture #1 (01/28/16)
  • Lecture #2 (02/01/16)
  • Lecture #3 (02/02/16)
  • Lecture #4 (02/04/16)
  • Lecture #5 (02/09/16)
  • Lecture #6 (02/11/16)
  • Lecture #7 (02/18/16)
  • Lecture #8 (02/23/16)
  • Lecture #9 (02/25/16)
  • Lecture #10 (03/01/16)
  • Lecture #11 (03/03/16)
  • Lecture #12 (03/08/16)
  • Lecture #13 (03/22/16)
  • Lecture #14 (03/24/16)
  • Lecture #15 (03/29/16)
  • Lecture #16 (03/31/16)
  • Lecture #17 (04/05/16)
  • Lecture #18 (04/12/16)
  • Lecture #19 (04/19/16)
  • Lecture #20 (04/21/16)
  • Lecture #21 (04/26/16)
  • Lecture #22 (04/28/16)
  • Lecture #23 (05/03/16)
  • Lecture #24 (05/05/16)
  • Lecture #25 (05/10/16)
  • Summary of Book Reading Assingments

    Discussion Section Notes:

    Projects (late policy):

    The projects this semester will be done using a virtual machine. We will supply an image with Ubuntu 14.04 LTS installed along with the class specific software. You are free to run this VM on either the CSIC machines or your own computer. We recomend using Virtual Box (its free and available for Linux, Windows, and Mac).

    The project virtual machine (412studentVM) is available for downloading. It is suitable for running in VirtualBox (and several other emulators). Contact Dr. Hollingsworth for the password to the user account installed in the VM.

  • Geek OS Overview
  • Project #0 (Due 2/3 - 5:00 PM)
  • Correction #1 - The error return for invalid params should be -1, not any negative number
  • Project #1 (Due 2/16 - 5:00 PM)
  • Project #2 (Due 3/3 - 5:00 PM)
  • Clarification #1 - At step #6 of Setup_Frame (handout pg.2), step 6.1 should read "... reflect the changes made in steps 3-5" rather than "reflect the changes made in step 3 & 4"
  • Project #3 (Due 3/22 - 5:00 PM)
  • Project #4 (Due 4/11 - 5:00 PM)
  • Clarification: pages are un-pinned (unlocked) by *setting* the PAGE_PAGEABLE bit
  • make sure to add a file .submitIgnore (with a single line .git in it) to ensure your make submit doesn't upload your .git history
  • The semantics of mmap's return should be those in the spec, return addr on nuccess, NULL on failure. The comments near Sys_Mmap are not correct.
  • Project #5 (Due 4/28 - 5:00 PM)
  • There is no supplied test nsp5test.c.
  • Your file system does not need to support different block sizes, so the check on mount "and that block size is support-able (a multiple of 512, or 512/1024/4096 at least)." does not need to be made.
  • The spec for CFS_Read constains extraneous information. CFS_Read should not be supported on a directory. It should return -1 if called on a directory.
  • Project #6 (Due 5/10 - 5:00 PM)
  • In the list of system calls that do not need to check ACLs since they operate on open file descriptors, it should be fstat and not stat. Stat (which takes a file name) needs to check ACLs.
  • To modify the owner or ACL of a file, the uid making the system call must have write access to the file (i.e. it's not UNIX semantics of write access to the directory).
  • On a SetACL that changes ownership of the file, the new owner should inherit the previous owner's file access (not any permissions the new owner might have had from an ACL).
  • The O_OWNER mode is used as a paramter to the SetACL system call, but is not stored as part of the file system permission bits. The ownership is only indicated by the uid of slot 0 of the ACL array.
  • This page will be updated throughout the class to provide online access to course materials. This page and all problem sets, lecture notes, and exams linked to it are copyrighted. Use of these pages for the class CMSC412 at the University of Maryland is permitted. Any other use requires permission of the author (Jeffrey K. Hollingsworth, hollings@cs.umd.edu).