International Journal of Computer Science Issues
A multiprogramming operating system allows more than one process to be loaded into the executable memory at a time and for the loaded process to share the CPU using time-multiplexing. Part of the reason for using multiprogramming is that the operating system itself is implemented as one or more processes, so there must be a way for the operating system and application processes to share the CPU. The assignment of physical processors to processes allows processors to accomplish work. The problem of determining when processors should be assigned and to which processes is called CPU scheduling.