SmartOS: towards automated learning and user-adaptive resource allocation in operating systems