Skip to Main Content
Embedded services and applications that interact with the real world often,over time, need to run on different kinds of hardware (low-costmicrocontrollers to powerful multicore processors). It is difficult to writeone program that would work reliably on such a wide range of devices. This isespecially true when the application must be temporally predictable and robust,which is usually be the case since the physical world works in real-time.Thus, any application interacting with such a system, must also work inreal-time.In this paper we introduce a representation of the temporal behavior ofdistributed real-time applications as colored graphs that capture the timingof temporally continuous sections of execution and dependencies between them,creating a partial order. We then introduce a method of extracting the graphfrom existing applications using a combination of analysis techniques. Once thegraph has been created, we introduce a number of graph transformations thatextract ``meaning'' from the graph. The knowledge thus gained, can be utilizedfor scheduling and for adjusting the level of parallelism suitable to the specifichardware, for identifying hot spots, false parallelism, or even candidates foradditional concurrency. The importance of these contributions is evident whenwe see that such graphs can be sequentialized to our partiture model andcan then be used as input for offline, online, or even distributed real-timescheduling. Finally we present results from analysis of a complete TCP/IP stackin addition to smaller test applications which show that our use of differentanalysis models result in a reduction of the complexities of graphs. Animportant outcome is that increasing the expression of concurrency can reducethe level of parallelism required, saving memory on deeply embedded platforms,while keeping the program parallelizable whenever complete serializability isnot required. We also show that applications which were previously consideredto be too complex for- - characterization of their worst-case behavior are nowanalyzable due to the combination of analysis techniques that we utilize.