A self-study port of CMU 15-213 / 15-513's Shark File System lab. Complete three file APIs, then make them thread-safe.
Writeup · Starter · Offline handout
Linux or WSL. Read the writeup and handout README, then implement
sfs_getpos, sfs_seek, and sfs_rename in sfs-disk.c.
Run from the repository root:
make
make testThe starter fails tests until the APIs and synchronization are implemented. A single mutex and all 12 correctness traces complete the basic exercise. The concurrent traces make real parallel calls; ThreadSanitizer adds race diagnostics when available.
- Use
mainfor the basic lab. Thedeveloperbranch adds optional file sizing, directory growth, and Unix-style unlink. make -C sfslab grademeasures optional parallel speedup. Its local 22-point scale is not CMU's official grading scale.- Test runs use private
sfs-test.*directories and retain failure images.make cleanremoves build products, not disk images. - Extract the offline handout in a new directory with
tar xf sfslab-handout.tar, then runmakeinsidesfslab/. make pdf distrebuilds the writeup and handout. After a build,python3 tests/check_grader.pychecks the test infrastructure.
Keep completed student solutions private. This is an independent port; NOTICE.md records its provenance and the starter/solution boundary.