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

Check-in05 Due (Threads & Data Races)
due @ 12:00 pm on Mon, Jul 07
L16 Mon, Jul 07 Deadlocks (cont.), Dining Philosophers
TSL, Petersons, Deadlocks, Dining Philosophers, Resource Graphs
L17 Tue, Jul 08 Condition Variables, Parallel Analysis
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
stdio Buffering, Memory Heirarchy, Caches, std::vector vs std::list
R04 Thu, Jul 10 Recitation04: To Be Decided!
Coming Soon
Reading Assignment Due (Remembering that Operating Systems exist IN A SOCIETY)
due @ 11:59 pm on Fri, Jul 11

Week 26

Check-in06 Due (Locks & Deadlocks)
due @ 12:00 pm on Mon, Jul 14
L19 Mon, Jul 14 Virtual Memory: introduction
Introduction to virtual memory, pages, page frames, page tables, address translation
PennOS Milestone 1 Due (Demo ~60% completion)
due @ 11:59 pm on Mon, Jul 14
L20 Tue, Jul 15 Virtual Memory: Page Tables
Virtual Memory Refresher, TLB, Multi Level Page Tables
L21 Wed, Jul 16 Virtual Memory: Page Replacement
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

Week 27

Check-in07 Due (Virtual Memory)
due @ 12:00 pm on Mon, Jul 21
L22 Mon, Jul 21 Memory Allocation
Malloc & Free Lists, Fragmentation
L23 Tue, Jul 22 Memory Allocation
Garbage Collection, Arena Allocators, Buddy Algorithm, Slab Allocator
L24 Wed, Jul 23 Course Wrapup & Exam Review
Course Wrapup & Exam Review
R06 Thu, Jul 24 Recitation06: To Be Decided!
Coming Soon
PennOS Due (PennOS, all of it)
due @ 11:59 pm on Fri, Jul 25
late deadline 11:59 pm on Tues, Jul29

Week 28

Check-in08 Due ()
due @ 12:00 pm on Mon, Jul 28
L25 Mon, Jul 28 Class Cancelled
More time to work on PennOS!
L26 Tue, Jul 29 Exam Review
Exam Review
L27 Wed, Jul 30 Exam Review
Exam Review
R07 Thu, Jul 31 Recitation07: To Be Decided!
Coming Soon

Week 29

Check-in09 Due ()
due @ 12:00 pm on Mon, Aug 04
L28 Mon, Aug 04 Special Topics: Distributed Systems
Sockets and Distributed Systems intro
L29 Tue, Aug 05 Concurrency Wrapup
Banker's Algorithm, Deadlock avoidance and User Level vs Kernel Threads
L30 Wed, Aug 06
R08 Thu, Aug 07 Recitation08: To Be Decided!
Coming Soon