Resource allocation (computer)
In computing, resource allocation is necessary for any application to be run on the system. When the user opens any program this will be counted as a process, and therefore requires the computer to allocate certain resources for it to be able to run. Such resources could have access to a section of the computer's memory, data in a device interface buffer, one or more files, or the required amount of processing power.
A computer with a single processor can only perform one process at a time, regardless of the amount of programs loaded by the user (or initiated on start-up). Computers using single processors appear to be running multiple programs at once because the processor quickly alternates between programs, processing what is needed in very small amounts of time. This process is known as multitasking or time slicing. The time allocation is automatic, however higher or lower priority may be given to certain processes, essentially giving high priority programs more/bigger slices of the processor's time.
On a computer with multiple processors different processes can be allocated to different processors so that the computer can truly multitask. Some programs, such as Adobe Photoshop and YafRay, which can require intense processing power, have been coded so that they are able to run on more than one processor at once, thus running more quickly and efficiently.
This method is generally suitable for multiprogramming environments.