Skip to main content

Partial I/O, retries and descriptor contracts

This required 18–26-hour package replaces the former two-hour write-all exercise: lessons and prediction 5–7, implementation and evidence 8–12, assessment and delayed repair 5–7. Original processes, mappings, threads, synchronization, sockets and debugging practice remains required. See the reconciled semester workload.

Learning sequence​

  1. Progress contracts.
  2. Retries and stalls.
  3. Descriptor ownership.
  4. Prediction practice, runnable lab, then IO1–IO6.

Use Module 1’s status distinctions and Module 2’s ownership reasoning, while recognizing that external output is not rollback-safe like an uncommitted local allocation.

Resources and scope​

Start with K&R chapter 8 selections, then write(2), close(2) and pipe(7). Linux man-pages are maintained primary implementation documentation; verify your own platform when behavior differs. Sources checked on 2026-10-23; Open Group pages were unavailable during this check. No purchase or book conversion required.

The original lab uses POSIX C and deterministic fake schedules plus a tiny real pipe. It does not implement deadlines, cancellation, event loops, SIGPIPE policy, durability or transactional output. A call budget cannot bound time inside a blocking call. Independent review and learner timing pilots remain pending.