COP-4610 Operating System Principles (Spring 2018)

General Information

Class Time and Place:

  • Lectures: Mon/Wed 5:00 PM – 6:15 PM, ECS 135
  • Labs: Tue 3:30 PM – 4:45 PM (U01), Fri 3:00 PM – 4:15 PM (U02), ECS 141

Instructor: Liting Hu

Office Hours (subject to change):

  • Mon/Wed 3:30 PM – 5:00 PM
  • Students are welcome to stop by and ask questions as long as the instructor is available at the time. Office hours are designated time for students and you can also make an appointment before coming to the office hour in order to guarantee more exclusive access.

Teaching Assistants:

  • Pinchao Liu
    • Office: ECS 265
    • Email: pliu002@fiu.edu
    • Phone: 786-607-0688
  • Xiaolong Zhu
    • Office: ECS 251
    • Email: xzhu009@fiu.edu
    • Phone: 786-241-7582

Course Information

Course Discription:

Operating systems design principles and implementation techniques. Address spaces, system call interface, process/threads, interprocess communication, deadlock, scheduling, memory, virtual memory, I/O, file systems. Lectures will often take Unix as an example, won’t talk much about Windows.

Major Topics:

  • Threads & Processes
  • Concurrency & Synchronization
  • Scheduling
  • Deadlock
  • Virtual Memory
  • I/O
  • Disks
  • File systems
  • Protection & Security
  • Virtual machines

Learning Outcome:

  • Master the functions and structures of operating systems
  • Be familiar with issues in the design of operating systems
  • Master techniques of memory management
  • Master file and storage systems
  • Master concepts of process synchronization and communication

Course Moodle:

We use Moodle (https://moodle.cis.fiu.edu/v3.1/course/view.php?id=1709) for disseminating information and collect homework assignments. The grades will also be put on moodle as well.

Prerequisites:

  • CDA-4101: Structured Computer Organization (levels of organization in a computer: design of memory, buses, ALU, CPU; and design of microprogram)
  • COP 4338: Computer Programming III (programming in C and advanced programming in Unix environments, including multiprocessing and multithreading)

Textbook

Recommended Reading:

  • Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Nothing beats a free online book. This he book covers all the necessary topics of this course.
  • Learn C The Hard Way, by Zed A. Shaw. If you need to brush upon the C, language, this book is a good option as it has a good coverage of the language. The book used to be free but is no longer.
  • Advanced Programming in the UNIX Environment, by W. Richard Stevens and Stephen A. Rago. Recommended for any serious Unix programmer.

Grading

Letter grades will be assigned based on overall percentage. The scale is as follows: A is 90% or higher, B is 80% or higher, and C is 70% or higher. + or – is done at 3.33% intervals, so A- is 86.67% or higher, B+ is 83.33%, etc. C- is 66.67% or higher.
  • 10% Assignment 1
  • 10% Assignment 2
  • 10% Assignment 3
  • 10% Assignment 4
  • 25% Midterm (written, closed book and closed note)
  • 30% Final exam (written, closed book and closed note)
  • 5% Class participation

Policy

Class Attendance:

The students are required to attend the lectures and labs. Your class participation grade will be 5%*the percentage of your attendance. In general, materials covered in the classes and labs will not be repeated outside the class to any specific students who are absent, although special arrangements can be made upon requests and with the instructor’s approval.

Make-up Exams:

There will be no make-up exams.

Homework Assignments:

Late submission for assignments will be accepted with grade deduction. The calculation of the grade deduction is as follows. If submitted within 24 hours of the deadline, 15%; if submitted between 24 and 48 hours, 30%; if submitted between 48 and 72 hours, 50%. Assignments will not be accepted if they are submitted beyond 72 hours (that is, 100% deduction). For example, if the assignment is submitted late for two days, and if the grade for the assignment is 90 before the penalty, the final grade for the assignment will be 90*(1-30%)=63.

Exceptions include legitimate, verifiable cases of illness or emergency, and observation of religious holy days. ALL EXCEPTIONS MUST BE APPROVED WITH WRITTEN NOTICE BY THE INSTRUCTOR IN ADVANCE BEFORE THE ASSIGNMENT’S DEADLINE.

Teamwork:

Students work in team of size two. You are required to find your partner on the first week of the class. Once the team is formed, it cannot be separated until the end of the class. In case of any unexpected issues, you may be granted only one chance to change your partner, but IT MUST BE APPROVED WITH WRITTEN NOTICE BY THE INSTRUCTOR IN ADVANCE

Communication with Instructor:

You are welcome to stop by the instructor’s office at any time when you find her available. The chance is better during the office hours (see above). In any case, it’s better to make an appointment with the instructor beforehand in order to secure a dedicated slot for you.

The most convenient way to reach the instructor is through email. Given the large number of students in class, PLEASE SPELL OUT YOUR NAME AND PANTHER ID IN YOUR EMAIL WHEN COMMUNICATING WITH THE INSTRUCTOR.

Academic Conduct:

Florida International University is a community dedicated to generating and imparting knowledge through excellent teaching and research, the rigorous and respectful exchange of ideas, and community service. All students should respect the right of others to have an equitable opportunity to learn and honestly demonstrate the quality of their learning. Therefore, all students are expected to adhere to a standard of academic conduct, which demonstrates respect for themselves, their fellow students, and the educational mission of the University. All students are deemed by the University to understand that if they are found responsible for academic misconduct, they will be subject to the Academic Misconduct procedures and sanctions, as outlined in the Student Handbook.

Tentative Course Schedule

The schedule is tentative and can only be used as a reference. Your instructor reserves the right to make changes to the schedule during the course.

Important Deadlines:

  • 01/15: Sign up your name and your partner's name on Moodle deadline
  • 02/05: Project 1 deadline (assigned: 01/19, deadline: 2/05)
  • 02/26: Project 2 deadline (assigned: 02/06, deadline: 2/26)
  • 03/19: Project 3 deadline (assigned: 02/27, deadline: 3/19)
  • 04/16: Project 4 deadline (assigned: 03/20, deadline: 4/16)

Covered Topics and Duration (# Weeks):

  • Introduction: 1.5
  • Processes and Threads: 2.5
  • Deadlocks: 1.5
  • Memory Management: 3
  • Midterm (03/12)
  • Input/Output: 1.5
  • File Systems: 2
  • Security: 1
  • Case Studies: 1
  • Final Exam (TBA)

Course Schedule (Subject to Change):

  • Week 1: (Chapter 1: Introduction)
    • 01/08 (Mon):
      • Syllabus/admin
      • History
      • Types of Operating Systems
      • Overview of Hardware
    • 01/10 (Wed):
      • Fundamental Concepts: Processes, Threads, Deadlock, Memory Management, Virtual Memory, I/O and File Systems
      • Shell Programs
      • System Calls
  • Week 2: (Chapter 2: Processes and Threads)
    • 01/15 (Mon):
      • Chapter 1 review
    • 01/17 (Wed):
      • The Process: States (ready, running, blocked), Implementation
  • Week 3: (Chapter 2: Processes and Threads)
    • 01/22 (Mon):
      • The Thread: User-level thread packages
      • Interprocess Communication: Mutual Exclusion, Critical Regions, Semaphores, Monitors
    • 01/24 (Wed):
      • Dining Philosophers, Producer/Consumer, etc.
  • Week 4: (Chapter 2: Processes and Threads)
    • 01/27 (Mon):
      • Scheduling Algorithms
    • 01/31 (Wed):
      • Chapter 2 review
  • Week 5: (Chapter 3: Deadlocks)
    • 02/5 (Mon):
      • Resource Contention
      • Deadlock Detection
      • Deadlock Avoidance
      • Deadlock Prevention
    • 02/07 (Wed):
      • Starvation
      • Two-phase locking
  • Week 6: (Chapter 4: Memory Management)
    • 02/12 (Mon):
      • Chapter 3 review
    • 02/14 (Wed):
      • Multiprogramming
      • Swapping
  • Week 7: (Chapter 4: Memory Management)
    • 02/19 (Mon):
      • Virtual Memory
    • 02/21 (Wed):
      • Paging
      • Page Tables
  • Week 8: (Chapter 4: Memory Management)
    • 02/26 (Mon):
      • Page Replacement Algorithms
    • 02/28 (Wed):
      • Segmentation
      • Issues
  • Week 9: (Chapter 4: Memory Management)
    • 03/05 (Mon):
      • Chapter 4 review
    • 03/07 (Wed):
      • Midterm review
  • Week 10: Midterm
    • 03/12 (Mon):
      • Midterm
    • 03/14 (Wed):
      • Midterm Q&A
  • Week 11: (Chapter 5: Input/Output)
    • 03/19 (Mon):
      • Device Controllers
      • Memory-Mapped I/O
      • Direct Memory Access
      • Interrupt Handlers
    • 03/21 (Wed):
      • Device Drivers
      • Disks
      • Clocks
      • Character I/O
      • GUIs
      • Power Managements
  • Week 12: (Chapter 6: File Systems)
    • 03/26 (Mon):
      • Chapter 5 review
    • 03/28 (Wed):
      • Files (attributes, operations)
      • Directories
  • Week 13: (Chapter 6: File Systems)
    • 04/2 (Mon):
      • Hierarchical Systems
      • Implementation
    • 04/4 (Wed):
      • Reliability, Performance
      • Log-based Systems
  • Week 14: (Chapter 7: Case studies)
    • 04/9 (Mon):
      • Chapter 6 review
    • 04/11 (Wed):
      • Case studies-1
  • Week 15: (Course Review)
    • 04/16 (Mon):
      • Case studies-2
    • 04/18 (Wed):
      • Final review
  • Final

Thanks Dr.Jason Liu for sharing the course syllabus. Last updated January 6, 2018.