General Information

Course description

This course teaches how interals of modern operating systems are working with hardware/software stack. In the course, we will learn fundamental concepts of operating systems by building an operating system by our own hand. In particular, Labs are based on JOS, an educational OS project, and will build it starting from booting (lab1), to virtual memory (lab2), to process (lab3), to multi-tasking (lab4, extra), and finally, to filesystem (lab5, extra). We will also covers concurrency issues in systems by learning on how to implement locks and other synchronization mechanisms and how to resolve deadlock issues.

This course borrows lots of materials from MIT’s 6.828 (https://pdos.csail.mit.edu/6.828/2018/overview.html), the original course that developed JOS, and also from CS3210 of the Georgia Institute of Technology (https://tc.gts3.org/cs3210/2016/spring/index.html) and CSE 451 of the University of Washington (https://courses.cs.washington.edu/courses/cse451/18au/).

Prerequisite

  • Computer Architecture and Assembly Language (CS 271 at OSU)
  • Linux System Administration (CS 312 at OSU)
  • Operating Systems I (CS 344 at OSU)

Class meetings

Lab meetings

  • Lab1 : Tue 10:00-11:20, Cordley 3121
  • Lab2 : Tue 12:00-13:20, Milam Hall 019
  • Lab3 : Wed 15:00-16:20, Bexell Hall 416
  • Lab4 : Fri 14:00-15:50, Bexell Hall 321

Office hours and recitation

We will have office hours from 17:00 to 18:30 (walk-in) at KEC 3079 on Wed, every week (this could be changed at the instructor’s discretion).

Grading policy

  • 30% JOS Lab (1,2,3)
  • 20% Concurrency Lab (1,2)
  • 20% lab quiz (1,2)
  • 30% final exam
  • 30% extra credit, JOS Lab (4,5)

Online Discussion

Online discussion is strongly encouraged and it will help you a lot in solving lab problems.

Please join Piazza and post your questions, ideas and thoughts.

Please also join Discord to have a more faster feedback on your questions; we will try to reply to your questions ASAP, but in the worst case, please allow us to reply within a day.

Policy

CS 444/544 provides 5 tokens, each of token lets you push the deadline of a lab for one day.

Regarding plagiarism, We strictly follow the OSU policy (read OSU’s Code of Student Conduct).

Important

Cheating vs. collaboration

Collaboration is a very good thing. On the other hand, cheating is considered a very serious offense and is vigorously prosecuted. Vigorous prosecution requires that you be advised of the cheating policy of the course before the offending act.

For this semester, the policy is simple: don’t cheat:
  • Never share code or text on the project.
  • Never use someone else’s code or text in your solutions.
  • Never consult potential solutions on the Internet.
On the other hand, for this class, you are strongly encouraged to:
  • Share ideas.
  • Explain your code to someone to see if they know why it doesn’t work.
  • Help someone else debug if they’ve run into a wall.

If you obtain help of any kind, always write the name(s) of your sources.

(ref. http://courses.cs.washington.edu/courses/cse451/15au/)

Staff/TA