Summary

  • 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.
  • Prerequisites: COMP 264 and COMP 271.

Microsoft TeamsJoin Link

Office Hours

  • Doyle 309
  • Office Hours TBD
  • Or by appointment
TA Jeffrey Ricketts-Hagan

Grading

  • 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.

Collaboration

  • 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

Tenative

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