Runtime Resource Management in Heterogeneous System Architectures: The SAVE Approach