In many embedded systems, existence of a data cache might influence the effectiveness of process scheduling policy significantly. Consequently, a scheduling policy that takes inter-process data reuse into account might result in large performance benefits. In this paper, we focus on array-intensive embedded applications and present a locality-conscious scheduling strategy where we first evaluate the potential data reuse between processes, and then, using the results of this evaluation, select an order for process executions. We also show how process codes can be transformed by an optimizing compiler for increasing inter-process data reuse, thereby making localityconscious scheduling more effective. Our experimental results obtained using two large, multi-process application codes indicate significant runtime benefits.
Ismail Kadayif, Mahmut T. Kandemir, Ibrahim Kolcu,