Schedule

Week 1: [08/25/2019] - [08/29/2019]

1. System Programming

1. Dive into System programming

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

2. How to crash in C

2. Dive into C programming

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

3. C Crash Course 2

3. man,asprintf,free,assert

Week 2: [09/01/2019] - [09/05/2019]

No class

Labor day

4. A day at the C side: C Crash Course 3

4. getenv, scanf, getline, fork

5. Fork and wait

5. fork and waitpid

Week 3: [09/08/2019] - [09/12/2019]

6. Forking Processes

6. The fork-exec-wait pattern

7. Signals for Process Control

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

8. Signals 2

8. Advanced Signals

Week 4: [09/15/2019] - [09/19/2019]

9. Thanks for the heap memory

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

10. Memory allocators I

Hone your pointer skills when writing malloc and free.

11. Memory allocators II

Memory allocators part 2.

Week 5: [09/22/2019] - [09/26/2019]

12. Threads

Introducing pthreads. stacks. Concurrency programming gotchas.

13. Threads, memory and mutex locks

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

14. Mutexes and semaphores

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

Week 6: [09/29/2019] - [10/03/2019]

15. Condition Variables

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

16. Critical Section Problem

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

17. Condition Variables II

Condition Variables. Implementing a semaphore using a Condition Variable.

Week 7: [10/06/2019] - [10/10/2019]

18. Reader Writer Problem

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

19. Dining Philosophers

The Dining Philosophers problem

20. Deadlock

Introduction to Deadlock. Coffman conditions.

See Deadlock.

Week 8: [10/13/2019] - [10/17/2019]

21. Page tables and IPC

Virtual memory

22. Pipes and seeking

Moving data using pipes, seekable streams, named pipes, behavior with fork

23. Scheduling

Scheduling examples

Week 9: [10/20/2019] - [10/24/2019]

24. Scheduling-2

Scheduling simulator. epoll

See Scheduling.

25. Pipes and Files

POSIX Pipes and random access files

26. Pipes, Files, VM II

POSIX Pipes, files, memory II

See Files

Week 10: [10/27/2019] - [10/31/2019]

27. Errno. Networking Intro

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

28. Files-1

ext2/3/4 filesystem, index nodes (inodes), superbocks, ZFS / BtrFS

See Files.

No lecture

No lecture

Week 11: [11/03/2019] - [11/06/2019]

29. Files-3

Symbolic links, hard links, directory searching, intro to permissions

30. Files-4

File permissions, directories, file globbing, intro to RAID

31. Files-5

Redundant Array of Inexpensive Disks (RAID), the various RAID levels

Week 12: [11/09/2019] - [11/13/2019]

32. TCP

TCP/IP Header. IPv4 exhaustion. A web client

33. TCP Server

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

34. TCP Server II

Socket Programming Gotchas. Intro to scheduling

Week 13: [11/16/2019] - [11/20/2019]

35. UDP

UDP

See UDP.

36. RPC

RPC

See RPC.

37. Protocols

TCP handshakes, QUIC, HTTP/1.1

See RPC.

Week 14: [11/23/2019] - [11/27/2019]

No lecture

Fall Break - Piazza responses limited

No lecture

Fall Break - Piazza responses limited

No lecture

Fall Break - Piazza responses limited

Week 15: [11/30/2019] - [12/04/2019]

38. Mmap

Memory mapped files

39. VFS

Virtual filesystems

See VFS.

40. Web servers and scheduling

Intro to select, poll, and epoll

Week 16: [12/07/2019] - [12/11/2019]

41. Network Review

Overview

42. Advanced signals

Signal sets, checking pending signals, sigaction vs. signal

See Signals from the coursebook.

43. Security and System Programming

See Security chapter of coursebook.

Week 17: [12/14/2019] - [12/18/2019]

44. Finals review

See finals schedule in the Course Explorer