« Erdős Number | Main | ACM SIGCOMM 2007 »

Protothreads and ACM SenSys 2006

I was a visiting researcher at SICS (Sweden) last fall where I had an amazing time working with Thiemo Voigt and Adam Dunkels. Adam's work on Protothreads recently got accepted at ACM SenSys 2006 and I am listed as a co-author on the paper.

If you don't know what SenSys is then you can try reading the Wikipedia article on SenSys. In short SenSys is the SIGCOMM of sensor networks, so I am more than glad about the Protothreads work being accepted at SenSys. :-)

acm-logo-small.png
"Threads vs. Event-Driven Programming" is an age-old debate in computer systems research. The late Roger Needham (Cambridge) tried to settle this debate with the "duality argument" in 1979 (essentially saying that threads and events are inter-convertible and are the same thing), but the Threads vs. Events remained a hot debatable topic e.g. Ousterhout (creator of the Tcl scripting language) made strong arguments against Threads in his "Why Threads Are A Bad Idea" invited talk at 1996 USENIX Technical Conference. An example of arguments in favour of Threads could be Eric Brewer's (UC Berkeley) "Why Events Are A Bad Idea" HotOS IX (2003) paper.

Protothreads are extremely lightweight stackless threads designed for severely memory constrained systems. One way to think about Protothreads is that they are a proof-of-concept of the 1979 Roger Needham "duality" argument. They are "something in-between" threads and event-driven programming. Maintaining state-machines makes event driven programming hard, but threads take too much memory to make them feasible on memory-constrained systems (e.g. sensor networks). Protothreads reduce/eliminate the need for maintaining explicit state-machines (the main argument against event-driven programming) while keeping the memory overhead very low (the main argument against threads). Protothreads (unlike traditional threads) are stack-less and their memory overhead is very small (only two bytes per protothread).

For more details, you can read the Protothreads SenSys 2006 paper ..... here

You can download and use the protothreads library ... here

Protothreads are already gaining some popularity, Google lists some 13,300 results for Protothreads; here are a few interesting links:

Comments

congratulations on reaching your zenith in publishing. Keep up the good work..

ofcourse, google microsoft interviews and tashfeen, my blog comes up on the first page :P...

Gaining popularity indeed: there are 30,600 results for protothreads on google now...

well its 59,700 now... within one month ... gaining popularity indeed :)

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)