CSCI 3753: Design and Analysis of Operating Systems - Tam Vu

CSCI 3753: Design and Analysis of Operating Systems

Fall 2018



General Information

  • Course number: CSCI 3753
  • Instructors: Tam Vu
  • Email: Tam [dot] vu [at] colorado [dot] edu
  • Class hours: Tuesday & Thursday: 12:30PM - 01:45PM
  • Class location: ECCR 265
  • Office hours: Tuesday & Thursday: 02:00PM - 03:00PM (Available other times as needed, send me an email or stop by)
  • Office location: ECCS 111
  • Prerequisites: CSCI 2400
  • Co-Prerequisites: None.
  • Course Credits: Three (3).
  • Required Textbook: Operating System Concepts, 9th or 10th Edition, Abraham Silberschatz, Peter Galvin, Greg Gagne (electronic or hardcover)

TAs & CAs Office Hours

TA: Anh Nguyen (Anh [dot] TL [dot] Nguyen [at] colorado [dot] edu)
- T 04:30PM - 06:00PM @ ECCS 112B
- F 03:00PM - 04:30PM @ ECCS 102

TA: Zaid Alali (Zaid [dot] Alali [at] colorado [dot] edu)
- W 01:00PM - 02:00PM @ ECCS112B
- F 01:00PM - 02:30PM @ ECCS102

TA: Christopher Godley (Christopher [dot] Godley [at] colorado [dot] edu)
- T, Th 11:00AM - 12:00PM @ ECOT 832
- F 9:00AM - 10:45AM @ ECOT 832

CA: Ashley Kim (ashleykim0506 [at] gmail.com)
- M 4:00PM - 6:00PM @ couch room
- T, Th 3:15PM - 6:15PM @ couch room

CA: Ryan Loi (Ryan [dot] Loi [at] colorado [dot] edu)
- M, W 9:00AM - 12:00AM / 3:00PM - 4:00PM @ couch room

CA: Yang Yang (Yang [dot] Yang-4 [at] colorado [dot] edu)
- Th 11:00AM - 12:30PM @C SEL
- F 10:30AM - 1:00PM @ CSEL
- Sun 3:00PM - 6:00PM @ CSEL


Course overview

This course introduces students to important Operating Systems concepts. The course will cover key aspects of how an operating systems functions on a modern computer. The following major topics will be covered:

  • Basic System Structure
  • Processes and Threads
  • Virtual Memory
  • File Systems
  • Security
  • Networking and Distributed (File) Systems
  • Virtual Machines
  • In addition, the class will gain familiarity with important software tools such as debuggers, compilers, editors, kernel modules, and virtual machines.


    Course schedule

    Week Time Lecture Content Reading
    Day 1 Day 2 9th Edition 10th Edition
    1
    08/27 - 09/02
    Machine Components, Boot Loader, Kernel Mode, System Calls, Virtual Machines (VM) Ch. 1, 16 Ch. 1, 18
    2
    09/03 - 09/09
    Bus, Controllers, Direct Memory Access (DMA), Device Drivers, LKMs Ch. 2, 13.1-13.4 Ch. 2, 12.1-12.4
    3
    09/10 - 09/16
    Processes Ch. 3 Ch. 3
    4
    09/17 - 09/23
    InterProcess Communication (IPC) Ch. 3 Ch. 3
    5
    09/24 - 09/30
    Threads, Thread Safe and Reentrant Code, Synchronization Ch. 4, 5 Ch. 4, 6
    6
    10/01 - 10/07
    Mutual Exclusion, Synchronization Monitors, Conditional Variables Ch. 5 Ch. 7
    7
    10/08 - 10/14
    Scheduling Processes and Tasks, Performance Criteria Ch. 6 Ch. 5
    8
    10/15 - 10/21
    Deadlock (Conditions, Detection, Avoidance) & Midterm Review

    Midterm (10/18)
    Ch. 7 Ch. 8
    9
    10/22 - 10/28
    Memory Management, Virtual Memory Ch. 8 Ch. 9
    10
    10/29 - 11/04
    Paging, Page Replacement, Memory Allocation, On-Demand Paging Ch. 8, 9 Ch. 9, 10
    11
    11/05 - 11/11
    Paging, Page Replacement, Memory Allocation, On-Demand Paging Ch. 8, 9 Ch. 9, 10
    12
    11/12 - 11/18
    Disk hardware, Disk R/W scheduling, Flash drives, RAID File Systems Ch. 10, 11 Ch. 11, 13
    -
    11/19 - 11/25
    Fall Break & Thanksgiving Holiday
    -
    13
    11/26 - 12/02
    File Allocation, Free Space Management, File Systems, Distributed File Systems Ch. 12, 17 Ch. 14, 19
    14
    12/03 - 12/09
    Security, Authorization, Symmetric Key Crypto, Public Key Crypto Ch. 15 Ch. 16
    15
    12/10 - 12/16
    Networking & Final Review
    No Reading
    Final Exam (12/19 @ 4:30PM-5:45PM)

    Re-taken Midterm Exam (12/19 @ 5:50PM-7:00PM)


    Course Grade

        Activities Percentage
        Recitation Quizzes 10%
        Problem Sets 10%
        Programming Assignments 40%
        Exams (2 exams, 20% midterm and 20% final) 40%

      Letter Grades are as follows:

      • A –“Superior/Excellent”, 90 – 100%
      • B –“Good/Better than Average”, 80 – 89%
      • C –“Competent/Average”, 70 – 79%
      • D –“Minimum Passing”, 60 – 69%
      • F –“Failing”


    Course procedures

  • Assignments: Examinations are intended to measure your individual mastery of the material. Exams concentrate on your understanding of the important concepts, rather than your ability to memorize details. All major examinations will be held in class with exact dates determined in class. The exams will generally test your knowledge of lecture material, so you are responsible for mastering all topics and programming material submitted with other partners. All exams will be open book and open notes (unless otherwise stated). The nature of the course material is such that the exams must be cumulative.

  • Extension/Make-ups: In general, late work will not be accepted. Turn in all work by the established deadline. In case you have difficulties finishing an assignment contact the instructor before the deadline. Late work can be accepted only under circumstances beyond student's control and after arrangement with the Instructor, prior to the deadline. Note: work turned-in on time is eligible for partial credit. It will always be better to turn work in by the deadline, as trying to "perfect" it and turn it in late will give you no points at all. You have to follow the submission and media policies and guidelines published on the web. Plagiarism is the passing of someone else's work as one's own, without giving the original author due credit. Scholastic dishonesty will be treated very strictly as per University of Colorado Boulder rules.

  • Lectures: Lecture materials will be made available on the web prior to class. Lecture will also consist of chalk drawings, overhead drawings, and content not explicitly present in slides and notes.

  • E-mail Policy: I will be using the University e-mail system. I will be checking my email frequently and you can expect a response within 48 hours (holidays excluded). All email communication by students must use colorado.edu as the email domain, emails from gmail, hotmail, yahoo, etc are NOT considered valid methods of communication.


  • Student Expectations

  • Civility: My commitment is to create a climate for learning characterized by respect for each other and the contributions each person makes to class. I ask that you make a similar commitment.

  • Professionalism: Since mobile devices can be distracting during class, I ask that all devices be put into “silent” mode and not utilized during class; this includes checking Facebook, sending a Tweet, or checking e-mail. If I feel that your mobile device is becoming a distraction for either other students, you, or myself I will ask you to leave the classroom. Additionally, playing videos or other music without the use of headphones is prohibited. Headphones can only be used during open lab (not during announcements and lecture).

  • Religious Observations: I understand that an individual’s religion plays a large part in their lives and I do not want this course to interfere with that aspect of their lives. If you find that your religions holiday(s) falls on a class day and you cannot attend due to this, please notify me prior to that class date by e-mail and we can work together to find an acceptable solution.

  • E-mail Policy: I will be using the University e-mail system. I will be checking my email frequently and you can expect a response within 48 hours (holidays excluded). All email communication by students must use colorado.edu as the email domain, emails from gmail, hotmail, yahoo, etc are NOT considered valid methods of communication.


  • Collaboration and Cheating

    I encourage you to review material and discuss ideas together for the assignments and to work on problems you encounter. It is a characteristic of computation that discussions often help to clarify problems and resolve difficulties – feel free to take advantage of this to improve your understanding of the material, and to complete labs, but make sure that you then create your own work . It’s important that you go through the program design, coding, and debugging process yourself, or you will not be developing your own programming skills and understand. “Working together” does not mean that one student does the majority of the work and other students put their name on it! If you have questions about what this means, please see me. Every student must create their own work on their own! (this is easy to check for, so do your own work).

    Any instances of checking will result in either a zero for the lab, a grade of zero in the course, or sanctions determined by the university (including suspension and expulsion).

    University Policies

    Academic Honesty and Student Code of Conduct: Students are expected to know, understand, and comply with the ethical standards of the university, including rules against plagiarism, cheating, fabrication and falsification, multiple submissions, misuse of academic materials, and complicity in academic dishonesty.

    Copyright © Tam Vu 2018