cis5480-25sp (Spring 2025) Home Schedule Assignments Tools & Refs Schedule

Operating Systems Design and Implementation (Spring 2025)

Schedule

Week 0

L00 Thu, Jan 16 Introduction & C refresher [ pdf ]
Course administrivia. Temrinal, C & C Memory model.

Week 1

L01 Tue, Jan 21 C refresher cont. and Intro to Processes [ pdf ]
C structs, malloc, what is a process?, fork(), exec()
L02 Thu, Jan 23 Processes cont. && shredder Q&A [ pdf ]
fork(), Process states, exec*(), wait(), alarm(), signals (start), shredder demo

Week 2

Check-in00 Due (fork, exec, signals)
due @ 12:00 pm on Tue, Jan 28
L03 Tue, Jan 28 Process States & Signals & Blocking Signals [ pdf ]
sigaction(), signal handlers, asynch wait, sigaddset(), sigprocmask(), critical sections
Survey00 Due (Pre-semester Survey)
due @ 11:59 pm on Tue, Jan 28
L04 Thu, Jan 30 File Descriptors & Pipe (start) [ pdf ]
File Descriptor Table, open(), close(), File Descriptor "inheritance", redirection, pipes
R00 Thu, Jan 30 Recitation00: Penn-Shredder Tips [ slides ]
wait() v. waitpid(), GDB & Valgrind debugging, project 1 tips
HW00 Due (penn-vec)
due @ 11:59 pm on Fri, Jan 31
HW01 Due (penn-shredder)
due @ 11:59 pm on Fri, Jan 31

Week 3

Check-in01 Due (Signals, File Descriptors, Pipe, Dup2)
due @ 12:00 pm on Tue, Feb 04
L05 Tue, Feb 04 File Descriptors Continued, pipes wrap-up, Penn-shell Demo and Q&A [ pdf ]
chaining pipes
L06 Thu, Feb 06 Process Groups, Terminal Control, Project 1 Tips [ pdf ]
Process groups setpgrp(), Terminal Control tcsetpgrp()
R01 Thu, Feb 06 Recitation01: Handling Processes [ slides ]
Fork, Pipe, Exec

Week 4

HW01 Peer Eval Due (penn-shredder)
due @ 11:59 pm on Mon, Feb 10
Check-in02 Due (Signals, Terminal Control, Process Groups, Race Conditions)
due @ 12:00 pm on Tue, Feb 11
L07 Tue, Feb 11 File System: Intro [ pdf ]
What is a File System, Disks, Contigious & Linked-List allocation, FAT Start
HW02 Milestone Due (penn-shell Milestone)
due @ 11:59 pm on Wed, Feb 12
L08 Thu, Feb 13 File System: FAT, Inodes, Directories [ pdf ]
FAT, INodes, Directories
R02 Thu, Feb 13 Recitation02: Signals and Job Control [ slides ]
good for penn-shell

Week 5

Check-in03 Due (File System)
due @ 12:00 pm on Tue, Feb 18
L09 Tue, Feb 18 File System: Continued [ pdf ]
File System Wrap-Up
L10 Thu, Feb 20 Intro to Threads [ pdf ]
context swithing, threads, threads vs processes
R03 Thu, Feb 20 Recitation03: Background Processes and Terminal Control [ slides ]
good for penn-shell pt. 2

Week 6

Check-in04 Due (File System & Threads)
due @ 12:00 pm on Tue, Feb 25
L11 Tue, Feb 25 Scheduling [ pdf ]
SJF, FCFS, RR, RR Variants
L12 Thu, Feb 27 Data Races, Race Conditions & Synchronization (start) [ pdf ]
Threads Intro Continued, Data races, Race conditions, Mutex, TSL, Peterson's Algorithm
R04 Thu, Feb 27 Recitation04: Midterm Review [ slides ]
Everything up to 2/25
HW02 Due (penn-shell)
due @ 11:59 pm on Fri, Feb 28

Week 7

Check-in05 Due (Scheduling & Threads)
due @ 12:00 pm on Tue, Mar 04
L13 Tue, Mar 04 Midterm Review [ pdf ]
Midterm Practice Questions made by Joel & Travis
Ex0 Thu, Mar 06 Exam00 Thu 12:00 pm - Thu 01:30 pm @ Amy Gutmann Hall 106  [exam info]

Week 8

:( Tue, Mar 11 No Class
:( Thu, Mar 13 No Class

Week 9

L14 Tue, Mar 18 Inclass PennOS Demo and Q&A Session [ pdf ]
PennOS & PennFAT details, VERY USEFUL
L15 Thu, Mar 20 Locality: Buffering, Memory Hierarchy & Caching [ pdf ]
stdio Buffering, Memory Heirarchy, Caches, std::vector vs std::list
R05 Thu, Mar 20 Recitation05: To Be Decided!
Coming Soon

Week 10

L16 Tue, Mar 25 Caches wrap-up, threads & spthreads refresh [ pdf ]
caches, threads, spthreads, locks
Survey01 Due ( Mid-semester Survey)
due @ 11:59 pm on Wed, Mar 26
L17 Thu, Mar 27 Deadlocks, Dining Philosophers [ pdf ]
TSL, Petersons, Deadlocks, Dining Philosophers, Resource Graphs
R06 Thu, Mar 27 Recitation06: PennOS Intro: Milestone 0 and 1 [ slides ]
Good to come back to once you start typing code
PennOS Milestone 0 Due (Organizing, Planning & Fundamentals of PennOS)
due @ 11:59 pm on Fri, Mar 28

Week 11

L18 Tue, Apr 01 Condition Variables, Parallel Analysis [ pdf ]
condition variables, Parallel Analysis
L19 Thu, Apr 03 Virtual Memory: introduction [ pdf ]
Introduction to virtual memory, pages, page frames, page tables, address translation
R07 Thu, Apr 03 Recitation07: To Be Decided!
Coming Soon
Reading Assignment Due (Remembering that Operating Systems exist IN A SOCIETY)
due @ 11:59 pm on Fri, Apr 04

Week 12

Check-in06 Due (Virtual Memory & Locks)
due @ 12:00 pm on Tue, Apr 08
L20 Tue, Apr 08 Virtual Memory: Page Tables [ pdf ]
Virtual Memory Refresher, TLB, Multi Level Page Tables
L21 Thu, Apr 10 Virtual Memory: Page Replacement [ pdf ]
Page Replacement, FIFO, LRU, Thrashing, Aging, Second Chance, Linux Version
R08 Thu, Apr 10 Recitation08: To Be Decided!
Coming Soon
PennOS Milestone 1 Due (Demo ~60% completion)
due @ 11:59 pm on Fri, Apr 11

Week 13

Check-in07 Due (Virtual Memory & Locks)
due @ 12:00 pm on Tue, Apr 15
L22 Tue, Apr 15 Memory Allocation [ pdf ]
Malloc & Free Lists, Fragmentation
L23 Thu, Apr 17 Memory Allocation [ pdf ]
Garbage Collection, Arena Allocators, Buddy Algorithm, Slab Allocator
R09 Thu, Apr 17 Recitation09: To Be Decided!
Coming Soon

Week 14

L24 Tue, Apr 22 Special Topics
To be decided
L25 Thu, Apr 24 Special Topics
To be decided
R10 Thu, Apr 24 Recitation10: To Be Decided!
Coming Soon
PennOS Due (PennOS, all of it)
due @ 11:59 pm on Fri, Apr 25
late deadline 11:59 pm on Tues, Apr29

Week 15

L26 Tue, Apr 29 Course Wrapup
R11 Thu, May 01 Recitation11: To Be Decided!
Coming Soon

Week 16

Ex1 Mon, May 05 Final Exam  [more info to be released]