Summary

  • Course meets Tuesday & Thursday from 10:00-11:15 AM in Dumbach 119
  • 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.

Office Hours

  • Doyle 309
  • Lab Thursday 4 — 6 PM
    Doyle Makerspace
  • Or by appointment
TA TBD

Grade Review Policy

After a graded item is returned in class or in Sakai, any requests for reviewing the grade must be submitted in writing with the graded item within 1 week.

Course Outcomes

  • Explain fundamental Types of OS abstractions: processes, files,
  • Design and implement OS components: libraries, system calls, virtual memory, schedulers, filesystems, and device drivers
  • Assess system performance
  • Explain the impact of algorithms and data structures
  • Make use of concurrency in userland programs

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.
  • Lowest two homework and quiz assignments will be dropped.
  • No partial credit for code that does not compile.
    • Homework: 40 %
    • Quizzes: 20 %
    • Final Project: 40 %
    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
Tue 01/14 Intro; Bootloaders GitHub Username Survey
Intro Slides
Thu 01/16 Bootloaders & Binary File Format OS Repository
In-Class Activity:BIOS Calls | GitHub Repo
Debugging Programs (video)
Linux Tools (video)
Further Reading:
Tue 01/21 ASM Intro, BIOS, Bootloaders Homework 1 Assigned: Terminal Driver | rprintf.c rprintf.h
Thu 01/23 C Refresher Further Reading
Tue 01/28 Polling I/O Further Reading:
Thu 01/30 Interrupts Further Reading
Tue 02/04 Supervisor Mode and Privileged Operations Homework 1 Due
Homework 2: Input/Output | Keyboard Map | interrupt.c | interrupt.h | OSDEV
Further Reading:
kernel.ld
Thu 02/06 Memory & Memory Allocation In-Class Activity: malloc Fun
Further Reading:
Tue 02/11 Memory & Memory Allocation Homework 3 Assigned
Further Reading:
Thu 02/13 Virtual Memory & Paging Homework 2 Due
Homework 3 Assigned
In-Class Activity: Paging | GitHub Repo
Further Reading:
Tue 02/18 Virtual Memory & Paging Quiz 3 Practice
Thu 02/20 Setting up the MMU on the 386 MMU Quiz
Tue 02/25 Syscalls Further Reading:
Thu 02/27 Filesystems Activity: Raw Syscalls
Homework 4: FAT FS Driver | ide.s | ide.h | fat.h
Filesystem Slides
ELF File Format
Tue 03/04 Spring Break: No Class
Thu 03/06 Spring Break: No Class
Tue 03/11 Filesystems
Thu 03/13 The FAT Filesystem Further Reading:
Tue 03/18 More FAT Filesystem Further Reading:
Activity: Filesystems 1
Thu 03/20 More More FAT Filesystem Homework 3 Due
Activity: Filesystems Part 2
Tue 03/25 More More More FAT Filesystem In Class Activity: pthreadexample.c | Coordinate Rotation Threading Lab
Thu 03/27 Processes Project Proposals Due | Project Proposal Guidelines
Tue 04/01 Processes II Activity: Containers from Scratch
In-Class Activity: Write a Shell! | shittyshell.c | GitHub Repo
Thu 04/03 Scheduling
Tue 04/08 Threads
Thu 04/10 Threads II Homework 4 Due
elf.h
Tue 04/15 Containers interrupt.c | interrupt.h
signal.c
Thu 04/17 Virtualization
Tue 04/22 Peer Evaluation
Thu 04/24