cis5480-25su (Summer 2025) Home Schedule Assignments Tools & Refs Schedule

Operating Systems Design and Implementation (Summer 2025)

Schedule

Week 19

L00 Tue, May 27 Introduction & C refresher [ pdf ]
Course administrivia. Temrinal, C & C Memory model.
L01 Wed, May 28 C refresher cont. and Intro to Processes [ pdf ]
C structs, malloc, what is a process?, fork(), exec()
R00 Thu, May 29 Recitation00: C Review [ slides ]
structs, strings, pointers, output parameters, header files, GDB

Week 20

L02 Mon, Jun 02 Processes cont. && shredder Q&A [ pdf ]
fork(), Process states, exec*(), wait(), alarm(), signals (start), shredder demo
HW00 Due (penn-vec)
due @ 11:59 pm on Mon, Jun 02
L03 Tue, Jun 03 Process States & Signals & Blocking Signals [ pdf ]
sigaction(), signal handlers, asynch wait, sigaddset(), sigprocmask(), critical sections
L04 Wed, Jun 04 File Descriptors & Pipe (start) [ pdf ]
File Descriptor Table, open(), close(), File Descriptor "inheritance", redirection, pipes
Survey00 Due (Pre-semester Survey)
due @ 11:44 pm on Wed, Jun 04
R01 Thu, Jun 05 Recitation01: Handling Processes [ slides ]
Fork, Pipe, Exec, Wait, Valgrind, Good Style😎
HW01 Due (penn-shredder)
due @ 11:59 pm on Fri, Jun 06

Week 21

Check-in01 Due (Fork, Exec, Signals, File Descriptors (start))
due @ 12:00 pm on Mon, Jun 09
L05 Mon, Jun 09 File Descriptors Continued, pipes wrap-up, Penn-shell Demo and Q&A [ pdf ]
chaining pipes
Partner-Signup0 Due (Penn-shell partner sign-up due)
due @ 11:59 pm on Mon, Jun 09
L06 Tue, Jun 10 Process Groups, Terminal Control, Project 1 Tips [ pdf ]
Process groups setpgrp(), Terminal Control tcsetpgrp()
L07 Wed, Jun 11 File System: Intro [ pdf ]
What is a File System, Disks, Contigious & Linked-List allocation, FAT Start
R02 Thu, Jun 12 Recitation02: Penn-Shell [ slides ]
Signals, Pipes, Redirection, Process Groups, and waitpid()
HW01 Peer Eval Due (penn-shredder peer eval)
due @ 11:59 pm on Fri, Jun 13

Week 22

Check-in02 Due (Signals, Process Groups, Controlling Terminals.)
due @ 12:00 pm on Mon, Jun 16
L08 Mon, Jun 16 File System: FAT, Inodes, Directories [ pdf ]
FAT, INodes, Directories
HW02 Milestone Due (penn-shell Milestone)
due @ 11:59 pm on Mon, Jun 16
L09 Tue, Jun 17 File System: Continued [ pdf ]
File System Wrap-Up
L10 Wed, Jun 18 ENIAC, History, and Scheduling [ pdf ]
ENIAC, first schedulers, FCFS, SJF, RR, RR Variants

Week 23

Check-in03 Due (File Systems)
due @ 12:00 pm on Mon, Jun 23
L11 Mon, Jun 23 Scheduling Wrap-up & Intro to Threads [ pdf ]
RR Variants, CFS, EEVDF, context switching, threads, threads vs processes
L12 Tue, Jun 24 Midterm Review [ pdf ]
Midterm Practice Questions made by Joel & Travis
Ex0 Wed, Jun 25 Exam00 Wed 07:00 pm - Wed 09:00 pm @ midterm  [exam info]
HW02 Due (penn-shell)
due @ 11:59 pm on Fri, Jun 27

Week 24

Check-in04 Due (Threads & Scheduling)
due @ 12:00 pm on Mon, Jun 30
L13 Mon, Jun 30 Data Races, Race Conditions & Synchronization (start) [ pdf ]
Threads Intro Continued, Data races, Race conditions, Mutex, Peterson's Algorithm, Concurrency Benefits
Partner-Signup1 Due (PennOS partner sign-up due)
due @ 11:59 pm on Mon, Jun 30
L14 Tue, Jul 01 Inclass PennOS Demo and Q&A Session [ pdf ]
PennOS & PennFAT details, VERY USEFUL
L15 Wed, Jul 02 Threads, Locks, spthreads and Deadlocks (start) [ pdf ]
threads, spthreads, locks
Survey01 Due ( Mid-semester Survey)
due @ 11:59 pm on Wed, Jul 02
R03 Thu, Jul 03 Recitation03: PennOS Start! [ slides ]
good for milestone 0 and 1!

Week 25

L16 Mon, Jul 07 Deadlocks (cont.), Dining Philosophers [ pdf ]
Deadlocks, Dining Philosophers, Resource Graphs
L17 Tue, Jul 08 Condition Variables, Parallel Analysis [ pdf ]
condition variables, Parallel Analysis
PennOS Milestone 0 Due (Organizing, Planning & Fundamentals of PennOS)
due @ 11:59 pm on Tue, Jul 08
L18 Wed, Jul 09 Locality: Buffering, Memory Hierarchy & Caching [ pdf ]
stdio Buffering, Memory Heirarchy, Caches, std::vector vs std::list
R04 Thu, Jul 10 Recitation04: To Be Decided!
Coming Soon

Week 26

Check-in05 Due (Threads & Locks)
due @ 12:00 pm on Mon, Jul 14
L19 Mon, Jul 14 Virtual Memory: introduction [ pdf ]
Introduction to virtual memory, pages, page frames, page tables, address translation
L20 Tue, Jul 15 Virtual Memory: Page Tables [ pdf ]
Virtual Memory Refresher, TLB, Multi Level Page Tables
L21 Wed, Jul 16 Virtual Memory: Page Replacement [ pdf ]
Page Replacement, FIFO, LRU, Thrashing, Aging, Second Chance, Linux Version
R05 Thu, Jul 17 Recitation05: PennOS Intro: Milestone 0 and 1
Good to come back to once you start typing code
PennOS Milestone 1 Due (Demo ~60% completion)
due @ 11:59 pm on Fri, Jul 18

Week 27

Check-in06 Due (Virtual Memory)
due @ 12:00 pm on Mon, Jul 21
L22 Mon, Jul 21 Memory Allocation [ pdf ]
Malloc & Free Lists, Fragmentation
L23 Tue, Jul 22 Memory Allocation [ pdf ]
Garbage Collection, Arena Allocators, Buddy Algorithm, Slab Allocator
L24 Wed, Jul 23 Course Wrapup [ pdf ]
Course Wrapup
R06 Thu, Jul 24 Recitation06: Final Exam Review [ slides ]
final exam review
PennOS Due (PennOS, all of it)
due @ 11:59 pm on Fri, Jul 25
late deadline 11:59 pm on Tues, Jul29

Week 28

L25 Mon, Jul 28 PennOS Office Hours
More time to work on PennOS!
L26 Tue, Jul 29 Exam Review [ pdf ]
Exam Review
L27 Wed, Jul 30 Exam Review [ pdf ]
Exam Review
R07 Thu, Jul 31 Recitation07: Last Minute Exam Office Hours
Coming Soon
Ex1 Thu, Jul 31 Exam01 Thu 07:00 pm - Thu 09:00 pm @ final  [exam info]
Survey02 Due (PennOS Peer Eval)
due @ 11:59 pm on Sun, Aug 03