COP-5614 Operating System (Fall 2018)

General Information

Class Time and Place:

  • Lectures: Tuesday/Thursday 12:30 PM – 13:45 PM, Parking Garage 6 115

Instructor: Liting Hu

Office Hours (subject to change):

  • Thesday/Thursday 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

Course Information

Course Discription:

Welcome to graduate operating systems! We will cover an exciting range of materials from the broad field of operating systems, including basic operating system structure, file systems and storage servers, memory management techniques, process scheduling and resource management, threads, distributed and peer-to-peer systems, and a few other “hot” topics. By tracing the key ideas of today’s most popular systems to their origins in research, the class highlights key developments in operating system design over the last two decades and illustrates how insight has evolved to implementation.

The course will center around four basic entities: reviewing operating system concepts, a warm-up project, reading and critiquing research papers, and a final project. During the first half of the semester, you will review the basic operating system concepts on the textbook, finish an independent project just to get warmed up. Then, you will have a comprehensive midterm exam. During the second half of the semester, you will read related research papers and work on your final project, which is the real meat of the class: a mini research project on the topic of your choice. We will provide a pool of available projects and provide some suggestions, you are also encouraged to come up a topic of your own. More details will be available.

Major Topics:

  • Operating system structuring
  • Synchronization, communication and scheduling in parallel systems
  • Memory management techniques
  • File systems and storage servers
  • Distributed systems, their communication mechanisms, distributed objects and middleware
  • System support for internet-scale computing and cloud computing

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=1813) 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)
  • COP 4610: Operating Systems Principles (Operating systems design principles and implementation techniques)

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% Individual warm-up project (report and code)
  • 10% Research paper survey (written)
  • 20% Final project (report, code and demo)
  • 25% Midterm (written, closed book and closed note)
  • 30% Final exam (written, closed book and closed note)
  • 5% Class participation (not required for online students)

Policy

Class Attendance:

On-site students are required to attend the lectures. Your class participation grade will be 5%*the percentage of your attendance. In general, materials covered in the classes 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:

  • 08/31: Sign up your name and your partner's name on Moodle deadline
  • 09/14: Individual warm-up project deadline (assigned: 08/27, deadline: 09/14)
  • 10/05: Research paper survey deadline (assigned: 09/17, deadline: 10/05)
  • 11/23: Final project deadline (assigned: 10/08, deadline: 11/23)

Covered Topics and Duration (# Weeks):

  • Introduction: 1.5
  • Processes and Threads: 2.5
  • Deadlocks: 1.5
  • Memory Management: 3.5
  • Midterm (10/23)
  • Input/Output: 1
  • File Systems: 2
  • OS Hot Topics: 2
  • Final Exam (12/04)

Course Schedule (Subject to Change):

  • Week 1: (Chapter 1: Introduction)
    • 08/21 (Tuesday):
      • Syllabus/admin
      • History
      • Types of Operating Systems
      • Overview of Hardware
    • 08/23 (Thursday):
      • 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)
    • 08/28 (Tuesday):
      • Chapter 1 review
    • 08/30 (Thursday):
      • The Process: States (ready, running, blocked), Implementation
  • Week 3: (Chapter 2: Processes and Threads)
    • 09/04 (Tuesday):
      • The Thread: User-level thread packages
      • Interprocess Communication: Mutual Exclusion, Critical Regions, Semaphores, Monitors
    • 09/06 (Thursday):
      • Dining Philosophers, Producer/Consumer, etc.
  • Week 4: (Chapter 2: Processes and Threads)
    • 09/11 (Tuesday):
      • Scheduling Algorithms
    • 09/13 (Thursday):
      • Chapter 2 review
  • Week 5: (Chapter 3: Deadlocks)
    • 09/18 (Tuesday):
      • Resource Contention
      • Deadlock Detection
      • Deadlock Avoidance
      • Deadlock Prevention
    • 09/20 (Thursday):
      • Starvation
      • Two-phase locking
  • Week 6: (Chapter 4: Memory Management)
    • 09/25 (Tuesday):
      • Chapter 3 review
    • 09/27 (Thursday):
      • Multiprogramming
      • Swapping
  • Week 7: (Chapter 4: Memory Management)
    • 10/02 (Tuesday):
      • Virtual Memory
    • 10/04 (Thursday):
      • Paging
      • Page Tables
  • Week 8: (Chapter 4: Memory Management)
    • 10/09 (Tuesday):
      • Page Replacement Algorithms
    • 10/11 (Thursday):
      • Segmentation
      • Issues
  • Week 9: (Chapter 4: Memory Management)
    • 10/16 (Tuesday):
      • Chapter 4 review
    • 10/18 (Thursday):
      • Midterm review
  • Week 10: Midterm
    • 10/23 (Tuesday):
      • Midterm
    • 10/25 (Thursday):
      • Midterm Q&A
  • Week 11: (Chapter 5: Input/Output)
    • 10/30 (Tuesday):
      • Device Controllers
      • Memory-Mapped I/O
      • Direct Memory Access
      • Interrupt Handlers
    • 11/01 (Thursday):
      • Chapter 5 review
  • Week 12: (Chapter 6: File Systems)
    • 11/06 (Tuesday):
      • Files (attributes, operations)
      • Directories
    • 11/08 (Thursday):
      • Hierarchical Systems
      • Implementation
  • Week 13: (Chapter 6: File Systems)
    • 11/13 (Tuesday):
      • Reliability, Performance
      • Log-based Systems
    • 11/15 (Thursday):
      • Chapter 6 review
  • Week 14: (Chapter 7: OS hot topics)
    • 11/20 (Tuesday):
      • OS hot topic 1: HDFS
    • 11/22 (Thursday):
      • OS hot topic 2: Big data systems
  • Week 15: (Chapter 7: OS hot topics)
    • 11/27 (Tuesday):
      • OS hot topic 3: Virtual machines and containers
    • 11/29 (Thursday):
      • Final review
  • Week 16: Final
    • 12/04 (Tuesday 12:00 PM - 14:00 PM Location:Parking Garage 6 115)

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