The more complex the operating systems, the more it is expected to do on behalf of its users. Although its main concern is the execution of user programs, it also needs to take care of various system tasks that are better left outside the kernel it self. A system therefore consist of a collection of process: operating system processes executing system code and user processes executing user code. Potentially, all these processes can execute concurrently, with the CPU(or CPUs) multiple among them. By switching the CPU between processes, the operating system can make the computer more productive