Networking, multimedia and dataflow applications
are at their core all operations on sequential
streams of data (input/output, or I/O).
Network applications encompass servers, clients and core elements. The first generally handle large numbers of
small streams, the second a few large streams and the third ordinarily process
stateless traffic.
Illustrative examples are DNS servers, email clients and IPv4 routers.
All encompass device, generic I/O and task-specific software processing.
Multimedia applications produce or consume streaming audio and video
content. Music players,
Internet phones and digital television sets come to mind.
Again, all consist of a combination of software processes and block, network,
audio and graphics device logic.
Dataflow processing is a generic term encompassing all applications whose
tasks consist of operations on externally generated streams of data.
Intrusion detection in network streams, fraud detection in financial
streams and text mining in conversations are examples.
Firewalls that perform content analysis can also be included in this category, as can high performance
computing (HPC) applications that operate on live streams,
such as live astronomical observations [ACK+02,RBvM+06].
false
streaming I/O, throughputOur aim is to identify and remove
structural bottlenecks in operating system I/O.
To limit the problem space,
we initially focus on network applications. Disk, graphics and audio
processing are discussed in as far as they affect network applications.
Disk I/O, for instance, is a critical factor in web serving.
We target dedicated workstations and servers
(as opposed to multi-user time-sharing systems),
because these are
predominant today.
While Streamline
offers Unix-equivalent isolation, we
demonstrate that performance can increase further
when a reduction in isolation is accepted.
Our primary measure of performance (and hence success)
is throughput.
Subsections
willem
2010-02-03