ACM Home Page
Please provide us with feedback. Feedback
Elyze: enabling safe parallelism in event-driven servers
Full text PdfPdf (218 KB)
Source Workshop on Program Analysis for Software Tools and Engineering archive
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering table of contents
Atlanta, Georgia
SESSION: Models of code behavior table of contents
Pages 15-21  
Year of Publication: 2008
ISBN:978-1-60558-382-2
Authors
Kiran Pamnany  Brown University
John Jannotti  Brown University
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 33,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1512475.1512479
What is a DOI?

ABSTRACT

It is increasingly necessary for applications to take advantage of concurrency in order to increase performance. Unfortunately, it is notoriously difficult to write correct concurrent applications as they are subject to a variety of subtle bugs that can be difficult to reproduce. We advocate an approach to developing these applications, particularly servers, in which a conservative static analysis determines when code segments may safely run in parallel, and a runtime scheduler respects these constraints, an approach that is safe by default.

We have built an analyzer for event-driven servers written in C that detects unsafe data sharing between event handlers. When the analysis determines that two event handlers might access the same data, whether through a global variable or through the request-specific data structure passed to the handlers, it produces a constraint on the concurrent execution of those handlers. We are building a complementary runtime system that will use these constraints to safely run event handlers concurrently.

We have analyzed thttpd, an event-driven web server, and show that our analyzer finds safe parallelism in this server, enabling increased performance without the hazards of threads and locks.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (DIKU report 94/19), May 1994.
2
 
3
4
 
5
6
7
8
 
9
H. K. E. M. Nystrom and W. Hwu. Bottom-up and top-down context-sensitive summary-based pointer analysis. In Proc. 11th Static Analysis Symposium, Aug. 2004.
10
11
12
13
14
 
15
C. Jesshope. Scalable instruction-level parallelism. Lecture Notes in Computer Science, 3133, 2004.
16
17
18
 
19
20
 
21
 
22
N. Provos. Libevent -- an asynchronous event notification library, 2000. http://www.monkey.org/~provos/libevent/.
23
24
 
25
thttpd -- tiny/turbo/throttling http server. http://www.acme.com/software/thttpd.
 
26
Tor: anonymity online. http://www.torproject.org/.
27
28
29
 
30
N. Zeldovich, A. Yip, F. Dabek, R. Morris, D. Mazières, and F. Kaashoek. Multiprocessor support for event-driven programs. In Proc. USENIX 2003 Annual Technical Conference, June 2003.

Collaborative Colleagues:
Kiran Pamnany: colleagues
John Jannotti: colleagues