Monday

Wednesday

Friday

#1: 1/16 - 1/20

Martin Luther King, Jr. Day

No Classes

System Programming

Dive into System programming

Prelecture: HW0. The lecture will assume you've made significant progress on this homework

How to crash in C

Dive into C programming

Prelecture: Intro to C Notes. The lecture will assume you've already reviewed and played with this material.

#2: 1/23 - 1/27

C Crash Course 2

man,asprintf,free,assert

C Crash Course 3

getenv, scanf, getline, fork

Fork and wait

fork and waitpid

#3: 1/30 - 2/3

Forking Processes

The fork-exec-wait pattern

Signals for Process Control

Introducing POSIX signals to suspend and kill child processes. SIGSTOP, SIGKILL, SIGINT

Thanks for the heap memory

How to build a memory allocator. Placement algorithms. Fragmentation.

#4: 2/6 - 2/10

Memory allocators I

Hone your pointer skills when writing malloc and free.

Memory allocators II

Memory allocators part 2.

Threads

Introducing pthreads. stacks. Concurrency programming gotchas.

#5: 2/13 - 2/17

Threads and mutex locks

Introducing pthreads. stacks, shared memory. creating and joining. Concurrency programming gotchas.

Mutexes and semaphores

Why we need Mutex locks and semaphores. Basic usage of pthread implementations. Common gotchas.

Condition Variables

Mutex and Condition Variable examples. How to implement a lock (The critical section problem).

#6: 2/20 - 2/24

Critical Section Problem

Incorrect attempts to solve the Critical Section Problem. Introduction to Condition Variables.

Condition Variables II

Condition Variables. Implementing a semaphore using a Condition Variable.

Reader Writer Problem

Implementing a barrier. Implementing the R/W Problem using Condition Variables.

#7: 2/27 - 3/3

Reader Writer Problem & Deadlock

Implementing Reader Write. Introduction to Deadlock.

Deadlock

Introduction to Deadlock. Coffman conditions.

See Deadlock.

Dining Philosophers

The Dining Philosophers problem

#8: 3/6 - 3/10

Page tables

Virtual memory

Pipes and Files

POSIX Pipes and random access files

No lecture

No lecture for EoH

#9: 3/13 - 3/17

Pipes, Files, VM II

POSIX Pipes, files, memory II

See Files

Errno. Networking Intro

Robust error handling. EINTR. Intro to TCP,UDP,IP

TCP

TCP/IP Header. IPv4 exhaustion. A web client

#10: 3/20 - 3/24

  • Spring Break: There will be no office hours or staff on piazza.

SPRING BREAK!

SPRING BREAK!

SPRING BREAK!

#11: 3/27 - 3/31

TCP Server

Passive sockets. The 4 server calls and what they do. Gotchas.

TCP Server II

Socket Programming Gotchas. Intro to scheduling

Scheduling

Scheduling examples

#12: 4/3 - 4/7

Scheduling-2

Scheduling simulator. epoll

See Scheduling.

Files-1

ext2/3/4 filesystem. inode

See Files.

Files-2

file meta data

See Files.

#13: 4/10 - 4/14

Files-3

Permissions

Files-4

Virtual f/s

See VFS.

Files-5

Memory mapped files

#14: 4/17 - 4/21

RPC

RPC

See RPC.

UDP

UDP

See UDP.

Misc

Misc O/S Concepts

See Everything.