1. A method of prioritizing the execution of applications by a computer, the method comprising: maintaining a remote database for computer applications requiring computing resources, the computer applications being associated with processes, the remote database being merged with at least one other database obtained from at least one other user computing device as a centralized execution priority database on a server, a common execution priority database being derivable from the centralized execution priority database based on the centralized execution priority database and distributable to at least one other user computing device to provide an initial execution priority database for the at least one other user computing device; programmatically monitoring and determining a user-specific usage pattern for each one of the computer applications, each of the user-specific usage patterns comprising at least one of: time of day when the computer application is used, duration for which the computer application is used, and usage frequency for the computer application during a specified time period; assigning, based on the determined user-specific usage patterns, an execution priority to (i) each one of the computer applications and (ii) each of the processes associated with each one of the computer applications, the execution priority assigned to at least one of the processes being higher than the execution priority assigned to the computer application with which it is associated, based on memory operations associated with the at least one process; updating the remote database with the assigned execution priorities; executing at least one of the computer applications in accordance with the assigned execution priorities; reassigning execution priorities to the at least one process and the computer application with which it is associated based on a time-based aspect of the determined user-specific usage patterns; and updating the remote database with the reassigned execution priorities.