A method comprising: receiving , in an operating system (202; 810), one or more workloads (602-612) from an application (204-210; 308; 812), including receiving with each of the one or more workloads associated completion deadline information indicating a time by which the application expects the workload to be completed and execution metadata representing execution guidance about the processing power needed to process the workload; generating , by an operating system power management layer in the operating system, using a performance model, a processor performance adjustment suggesting an operating frequency for processing each of the one or more workloads, the processor performance adjustment based on the completion deadline information and the execution metadata for each of the one or more workloads; communicating , from the operating system, each of the one or more received workloads and its corresponding generated processor performance adjustment to a processor subsystem , each of the processor performance adjustments instructing the processor subsystem to adjust the operating frequency of the processor subsystem when executing the associated workload; executing each of the one or more received workloads by the processor subsystem using the adjusted operating frequency suggested by the processor performance adjustment, wherein execution of each received workload completes at an execution completion time; updating the performance model based on the completion deadline information and the execution completion time for each workload, the update being responsive to completion of execution of each workload; and generating a new processor performance adjustment in the operating system for a new workload having the same completion deadline information and execution metadata as the one or more workloads using the updated performance model. receiving , in an operating system (202; 810), one or more workloads (602-612) from an application (204-210; 308; 812), including receiving with each of the one or more workloads associated completion deadline information indicating a time by which the application expects the workload to be completed and execution metadata representing execution guidance about the processing power needed to process the workload; generating , by an operating system power management layer in the operating system, using a performance model, a processor performance adjustment suggesting an operating frequency for processing each of the one or more workloads, the processor performance adjustment based on the completion deadline information and the execution metadata for each of the one or more workloads; communicating , from the operating system, each of the one or more received workloads and its corresponding generated processor performance adjustment to a processor subsystem , each of the processor performance adjustments instructing the processor subsystem to adjust the operating frequency of the processor subsystem when executing the associated workload; executing each of the one or more received workloads by the processor subsystem using the adjusted operating frequency suggested by the processor performance adjustment, wherein execution of each received workload completes at an execution completion time; updating the performance model based on the completion deadline information and the execution completion time for each workload, the update being responsive to completion of execution of each workload; and generating a new processor performance adjustment in the operating system for a new workload having the same completion deadline information and execution metadata as the one or more workloads using the updated performance model. <EOS>