Skip to main content
USENIX
  • Conferences
  • Students
Sign in
  • Overview
  • Conference Organizers
  • Technical Sessions
  • Co-located Workshops
  • Sponsorship
  • Students and Grants
  • Questions?
  • Help Promote!
  • For Participants
  • Call for Papers

twitter

Tweets by @usenix

usenix conference policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

You are here

Home » On Sockets and System Calls: Minimizing Context Switches for the Socket API
Tweet

connect with us

http://twitter.com/usenix
http://www.usenix.org/facebook
http://www.usenix.org/linkedin
http://www.usenix.org/gplus
http://www.usenix.org/youtube

On Sockets and System Calls: Minimizing Context Switches for the Socket API

Authors: 

Tomas Hruby, Teodor Crivat, Herbert Bos, and Andrew S. Tanenbaum, Vrije Universität Amsterdam

Abstract: 

Traditionally, applications use sockets to access the network. The socket API is well understood and simple to use. However, its simplicity has also limited its efficiency in existing implementations. Specifically, the socket API requires the application to execute many system calls like select, accept, read, and write. Each of these calls crosses the protection boundary between user space and the operating system, which is expensive. Moreover, the system calls themselves were not designed for high concurrency and have become bottlenecks in modern systems where processing simultaneous tasks is key to performance. We show that we can retain the original socket API without the current limitations. Specifically, our sockets almost completely avoid system calls on the "fast path". We show that our design eliminates up to 99% of the system calls under high load. Perhaps more tellingly, we used our sockets to boost NewtOS, a microkernel-based multiserver system, so that the performance of its network I/O approaches, and sometimes surpasses, the performance of the highly-optimized Linux network stack.

Tomas Hruby, Vrije Universität Amsterdam

Teodor Crivat, Vrije Universität Amsterdam

Herbert Bos, Vrije Universität Amsterdam

Andrew S. Tanenbaum, Vrije Universität Amsterdam

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@inproceedings {187030,
author = {Tomas Hruby and Teodor Crivat and Herbert Bos and Andrew S. Tanenbaum},
title = {On Sockets and System Calls: Minimizing Context Switches for the Socket {API}},
booktitle = {2014 Conference on Timely Results in Operating Systems (TRIOS 14)},
year = {2014},
address = {Broomfield, CO},
url = {https://www.usenix.org/conference/trios14/technical-sessions/presentation/hruby},
publisher = {USENIX Association},
month = oct,
}
Download
Hruby PDF
View the slides

Presentation Video 

Presentation Audio

MP3 Download

Download Audio

  • Log in or    Register to post comments

© USENIX

  • Privacy Policy
  • Contact Us