Coordinated management of multiple interacting resources in chip multiprocessors: A machine learning approach