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)
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: C refresher & setup
C refresher, docker setup, project 0 tips
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
chaining pipes
Partner-Signup0 Due (Penn-shell partner sign-up due)
due @ 11:59 pm on Mon, Jun 09
HW01 Due (penn-vec)
due @ 11:59 pm on Mon, Jun 09
L06 Tue, Jun 10 Process Groups, Terminal Control, Project 1 Tips
Process groups setpgrp(), Terminal Control tcsetpgrp()
L07 Wed, Jun 11 File System: Intro
What is a File System, Disks, Contigious & Linked-List allocation, FAT Start
R02 Thu, Jun 12 Recitation02: Handling Processes
Fork, Pipe, Exec
HW01 Peer Eval Due (penn-shredder peer eval)
due @ 11:59 pm on Fri, Jun 13

Week 22

Check-in02 Due (Pipes and File System)
due @ 12:00 pm on Mon, Jun 16
L08 Mon, Jun 16 File System: FAT, Inodes, Directories
FAT, INodes, Directories
HW02 Milestone Due (penn-shell Milestone)
due @ 11:59 pm on Mon, Jun 16
L09 Tue, Jun 17 File System: Continued
File System Wrap-Up
L10 Wed, Jun 18 Intro to Threads
context swithing, threads, threads vs processes

Week 23

Check-in03 Due (File System, Threads, Scheduling)
due @ 12:00 pm on Mon, Jun 23
L11 Mon, Jun 23 Scheduling
SJF, FCFS, RR, RR Variants
HW02 Due (penn-shell)
due @ 11:59 pm on Mon, Jun 23
L12 Tue, Jun 24 Data Races, Race Conditions & Synchronization (start)
Threads Intro Continued, Data races, Race conditions, Mutex, TSL, Peterson's Algorithm
L13 Wed, Jun 25 Midterm Review
Midterm Practice Questions made by Joel & Travis

Week 24

Check-in04 Due (Threads Refresher & Data races)
due @ 12:00 pm on Mon, Jun 30
L14 Mon, Jun 30 Inclass PennOS Demo and Q&A Session
PennOS & PennFAT details, VERY USEFUL
Partner-Signup1 Due (PennOS partner sign-up due)
due @ 11:59 pm on Mon, Jun 30
L15 Tue, Jul 01 Locality: Buffering, Memory Hierarchy & Caching
stdio Buffering, Memory Heirarchy, Caches, std::vector vs std::list
L16 Wed, Jul 02 Caches wrap-up, threads & spthreads refresh
caches, threads, spthreads, locks
Survey01 Due ( Mid-semester Survey)
due @ 11:59 pm on Wed, Jul 02
R03 Thu, Jul 03 Recitation03: Signals and Job Control
good for penn-shell
PennOS Milestone 0 Due (Organizing, Planning & Fundamentals of PennOS)
due @ 11:59 pm on Thu, Jul 03

Week 25

Check-in05 Due ()
due @ 12:00 pm on Mon, Jul 07
L17 Mon, Jul 07 Deadlocks, Dining Philosophers
TSL, Petersons, Deadlocks, Dining Philosophers, Resource Graphs
L18 Tue, Jul 08 Condition Variables, Parallel Analysis
condition variables, Parallel Analysis
L19 Wed, Jul 09 Virtual Memory: introduction
Introduction to virtual memory, pages, page frames, page tables, address translation
R04 Thu, Jul 10 Recitation04: Background Processes and Terminal Control
good for penn-shell pt. 2
Reading Assignment Due (Remembering that Operating Systems exist IN A SOCIETY)
due @ 11:59 pm on Fri, Jul 11

Week 26

Check-in06 Due ()
due @ 12:00 pm on Mon, Jul 14
L20 Mon, Jul 14 Virtual Memory: Page Tables
Virtual Memory Refresher, TLB, Multi Level Page Tables
PennOS Milestone 1 Due (Demo ~60% completion)
due @ 11:59 pm on Mon, Jul 14
L21 Tue, Jul 15 Virtual Memory: Page Replacement
Page Replacement, FIFO, LRU, Thrashing, Aging, Second Chance, Linux Version
L22 Wed, Jul 16 Memory Allocation
Malloc & Free Lists, Fragmentation
R05 Thu, Jul 17 Recitation05: Midterm Review
Everything up to 2/25

Week 27

Check-in07 Due ()
due @ 12:00 pm on Mon, Jul 21
L23 Mon, Jul 21 Memory Allocation
Garbage Collection, Arena Allocators, Buddy Algorithm, Slab Allocator
L24 Tue, Jul 22 Class Cancelled
More time to work on PennOS!
L25 Wed, Jul 23 Special Topics: Distributed Systems
Sockets and Distributed Systems intro
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
L26 Mon, Jul 28 Course Wrapup & Exam Review
Course Wrapup & Exam Review
L27 Tue, Jul 29 Exam Review
Exam Review
L28 Wed, Jul 30 Exam Review
Exam Review
R07 Thu, Jul 31 Recitation07: PennOS Intro: Milestone 0 and 1
Good to come back to once you start typing code

Week 29

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