Chapter 63: Alternative I/O Models

This chapter discusses three alternatives to the conventional file I/O model that we have employed in most programs shown in this book:
  • I/O multiplexing (the select() and poll() system calls);
  • signal-driven I/O; and
  • the Linux-specific epoll API.
63 Alternative I/O Models
63.1 Overview
        63.1.1 Level-triggered and Edge-triggered Notification
        63.1.2 Employing Nonblocking I/O with Alternative I/O Models
63.2 I/O Multiplexing
        63.2.1 The select() System Call
        63.2.2 The poll() System Call
        63.2.3 When Is a File Descriptor Ready?
        63.2.4 Comparison of select() and poll()
        63.2.5 Problems with select() and poll()
63.3 Signal-driven I/O
        63.3.1 When Is "I/O Possible" Signaled?
        63.3.2 Refining the Use of Signal-driven I/O
63.4 The epoll API
        63.4.1 Creating an epoll Instance: epoll_create()
        63.4.2 Modifying the epoll Interest List: epoll_ctl()
        63.4.3 Waiting for Events: epoll_wait()
        63.4.4 A Closer Look at epoll Semantics
        63.4.5 Performance of epoll Versus I/O Multiplexing
        63.4.6 Edge-triggered Notification
63.5 Waiting on Signals and File Descriptors
        63.5.1 The pselect() System Call
        63.5.2 The Self-pipe Trick
63.6 Summary
63.7 Exercises

No comments:

Post a Comment