Skip to main content

Blocking, Non-blocking, and select / poll / epoll

This generated surface maps a learner-facing curriculum unit to its canonical source routes.

Curriculum surface

  • Open learner-facing unit
  • Curriculum path: content/curriculum/systems/semester-05-os-networking/module-04-file-systems-io/concepts/cluster-05-io-models-and-the-syscall-path/13-blocking-non-blocking-and-select-poll-epoll-primary.md
  • App: systems
  • Semester: semester-05-os-networking
  • Module: module-04-file-systems-io
  • Unit kind: concept
  • Curation level: module_curated

Learning objectives

  • Explain Blocking, Non-blocking, and select / poll / epoll as part of the full syscall-to-storage path rather than as an isolated filesystem fact.
  • Reason about correctness, crash behavior, and performance tradeoffs that appear when Blocking, Non-blocking, and select / poll / epoll is used in real programs.
  • Use unix-network-programming to connect the learner page to concrete APIs, on-disk structures, and I/O debugging evidence.

Prerequisites

  • Comfort with processes, memory, and the syscall boundary from the earlier OS modules.

Source books

  • unix-network-programming

Source routes

Unix Network Programming

  • /books/unix-network-programming via UNP: Advanced polling (part 1), UNP: Advanced polling (part 2), UNP: I/O models, UNP: pselect function, UNP: select function (part 1), UNP: select function (part 2), UNP: select function (part 3)

Supporting curriculum routes

No supporting curriculum routes linked yet.

External enrichment

  • man 2 open (official_docs_companion) - Grounds file-descriptor and file-opening concepts in the system call interface itself.
  • man 2 read (official_docs_companion) - Useful when learners need to connect filesystem ideas to concrete blocking, partial-read, and error behavior.

AI companion modes

  • Explain simply
  • Socratic tutor
  • Quiz me
  • Diagnose my confusion
  • Generate extra practice

Source-of-truth note

This teaching unit is learner-facing guidance. Its canonical source backbone is the referenced book unix-network-programming, and outside material should only clarify or strengthen that backbone.