On Jul 4, 2007, at 8:18 AM, Zhifeng Lai wrote:

Dear all,

I have some confusion on David and Philip’s PLDI paper, “The nesC Language: A Holistic Approach to Networked Embedded Systems”:

(1) What is the exact meaning of “whole program analysis”? Does it mean the compiler can take all the interleavings into account?
It means you're not compiling individual object files and linking them later (as you typically do in C, Java, etc.). Instead, you're compiling them all at once. This basically means that you can resolve all of the symbols. When you compile individual object files, the compiler cannot optimize across object file boundaries, because it does not know what is on the other side.

(2) Could some data race situations escape the race-free invariant (any update to shared state is either not a data race condition (SC only), or occurs within an atomic section)? If so, could you give me an example?
If you did something in an atomic block which broke its atomicity. For example, if you enabled interrupts within an atomic block by writing to the interrupt control register.

Phil



_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to