Labs
Lab sheets from the 2018 offering, in order. Most labs were held on Wednesdays; each sheet is named after the date of its session. Code written for some of the labs is in the labs/ folder on GitHub.
| Date | Lab | Material |
|---|---|---|
| – | Lab 1: Unix process commands (ps, watch) and the process API programs from OSTEP chapter 5 | Sheet (PDF) |
| 12 Sep | Kernel modules and strace, demonstrated by the TAs; OSTEP chapter 21, questions 1–7 | Sheet |
| 15 Sep | Same exercises as 12 Sep | Sheet |
| 19 Sep | Threads and the Chrome process model: ps, top, pstree, /proc and strace; a first threaded program | Sheet |
| 26 Sep | The pthreads API: creating and joining threads, passing arguments, a shared counter | Sheet, code |
| 17 Oct | Multithreading in practice, locks from load–store, C11 atomics, pthread mutexes and xchg | Sheet, code |
| 24 Oct | Lock-based concurrent data structures (OSTEP chapter 29) | Sheet, code |
| 7 Nov | Multithreading and multiprocessing in Python | Sheet |
| 14 Nov | Files and directories (OSTEP chapter 39) | Sheet |
Programs used in lectures are in the code folder.