1. A computer implemented method for system management, the computer implemented method comprising: responsive to receiving a set of application tasks from a registration module during application run-time, registering the set of application tasks and a set of system management tasks to form a schedule of tasks based on a set of policies stored in a policy database, wherein the set of policies comprises a type of a task, an importance of the task, and a probable time to complete the task, wherein the set of application tasks comprises a set of one or more sub-processes of an application to perform in order to execute the application, and wherein the set of system management tasks comprises a set of one or more tasks performed to maintain and manage system resources and facilitate operation of an operating system and the application; performing a feasibility analysis on the schedule of tasks to evaluate the schedule of tasks to: determine if the schedule of tasks can execute within constraints specified in the set of policies, and determine an order to execute the schedule of tasks by, identifying periods of decreased system activity, wherein the periods of decreased activity comprises of blocks of time within the schedule of tasks where no application task is currently scheduled to execute, within which to order the schedule of tasks to execute a system management task within the set of system management tasks; generating a prioritized schedule of tasks to execute in order based on the feasibility analysis that identifies an order for completing each task in the prioritized schedule of tasks; wherein priorities are assigned to each task in the prioritized schedule of tasks according to a scheduling policy; and wherein the set of system management tasks further comprises at least one of garbage collection and compiling.