• Course meets Monday & Wednesday from 4:15-5:30 PM in Cuneo Hall 116
  • This is an upper level course that teaches the basics of computer operating systems.
  • The schedule on this page lists the topics we will cover by date.

Microsoft TeamsJoin Link

Office Hours

  • Doyle 309
  • Office Hours TBD
  • Or by appointment
TA Victor Rakotondranoro


  • Treat this course like a job where you are trying to get promoted. If you show up and do your work, you will get a good grade.
  • Each person will get five slop days to turn in assignments late. You can use up to two days per assignment.
  • No partial credit for code that does not compile.
    • Homework: 60 %
    • Quizzes: 20 %
    • Participation: 20 %
    Percentage Letter Grade
    91+ A
    89-90 A-
    87-88 B+
    77-86 B
    75-76 B-
    73-74 C+
    62-72 C
    60-61 C-
    50-59 D
    Below 50 F

Scheduling Conflicts

  • If you have a (legitimate) scheduling conflict with a quiz or exam, it is possible to schedule a makeup session. You must let me know at least two weeks prior to the quiz/exam date. Legitimate scheduling conflicts include religious observances.
  • LUC's academic calendar can be found here.

Mandatory Reporter Statment

  • Each faculty and staff member at Loyola University Chicago is required to report any incidents of gender-based misconduct that they are made aware of, even if it happened in the past. Gender-based misconduct includes discrimination based on actual or perceived sex, sexual orientation, gender expression or identity, or pregnancy or parenting status; dating and domestic violence; sexual misconduct (including sexual assault, sexual harassment, and sexual exploitation); and stalking.


  • No collaboration is permitted on exams or quizzes.
  • Collaboration, but not copying, is encouraged on homework assignments. If you obtain a solution through research, e.g., in the library or online, cite your source completely and write up the solution in your own words.

Course Schedule


Date Topic Details
Mon 08/28 Intro Intro Slides
GitHub Username Survey
Further Reading
Wed 08/30 Processes & Threads In-Class Activity: Write a Shell! | shittyshell.c | GitHub Repo
Homework 1 Assigned lash shell | GitHub Repo
Further Reading
Mon 09/04 Labor Day: No Class
Wed 09/06 Processes & Threads shittyshell Due
Processes Slides
Further Reading
Mon 09/11 Concurrency Further Reading
Wed 09/13 Data Races & Mutexes Homework 1 Due
Homework 2: engine.c | GitHub Classroom Link
Concurrency Slides
Further Reading:
Mon 09/18 Files & IO Further Reading
Wed 09/20 Scheduling Homework 2 Due
Quiz: Processes & Concurrency
Mon 09/25 Memory & Memory Allocation In-Class Activity: malloc Fun
Further Reading:
Wed 09/27 Memory & Memory Allocation junk.c | babyasm.s
In-Class Activity: Make the malloc8r
Further Reading:
Mon 10/02 Virtual Memory & Paging In-Class Activity: Paging | GitHub Repo
Further Reading:
Wed 10/04 Virtual Memory & Paging Quiz 3 Practice
Mon 10/09 Fall Break: No Class
Wed 10/11 Virtual Memory & Paging MMU Quiz
Homework 3 Due
Mon 10/16 Filesystems Further Reading:
Wed 10/18 Filesystems Activity: Raw Syscalls
Homework 4: FAT FS Driver | ide.s | ide.h | fat.h
Filesystem Slides
ELF File Format
Mon 10/23 Filesystems Grad Reading:
Wed 10/25 The FAT Filesystem Further Reading:
Mon 10/30 More FAT Filesystem Further Reading:
Activity: Filesystems 1
Wed 11/01 More More FAT Filesystem Homework 3 Due
Activity: Filesystems Part 2
Grad Reading
Mon 11/06 More More More FAT Filesystem In Class Activity: pthreadexample.c | Coordinate Rotation Threading Lab
Wed 11/08 Processes
Mon 11/13 Processes II Activity: Containers from Scratch
Grad Reading
Wed 11/15 Scheduling
Mon 11/20 Threads Grad Reading
Wed 11/22 Threads II Homework 4 Due
Project Proposals Due
Grad Reading
Mon 11/27 Thanksgiving: No Class
Wed 11/29 Virtualization Final Project Specs
Final Project Demo Signup
Mon 12/04 Containers
Wed 12/06