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