CPU scheduling decisions may take place under the following four circumstances:
1.When a process switches from the running state to the waiting state(for I/O request or invocation of wait for the termination of one of the child processes).
2.When a process switches from the running state to the ready state (for example, when an interrupt occurs).
3.When a process switches from the waiting state to the ready state(for example, completion of I/O).
4.When a process terminates.
-> In circumstances 1 and 4, there is no choice in terms of scheduling. A new process(if one exists in the ready queue) must be selected for execution. There is a choice, however in circumstances 2 and 3.
-> When Scheduling takes place only under circumstances 1 and 4, we say the scheduling scheme is non-preemptive; otherwise the scheduling scheme is preemptive.
Non-Preemptive Scheduling
Under non-preemptive scheduling, once the CPU has been allocated to a process, the process keeps the CPU until it releases the CPU either by terminating or by switching to the waiting state.
->This scheduling method is used by the Microsoft Windows 3.1 and by the Apple Macintosh operating systems.
->It is the only method that can be used on certain hardware platforms, because It does not require the special hardware(for example: a timer) needed for preemptive scheduling.
Preemptive Scheduling
In this type of Scheduling, the tasks are usually assigned with priorities. At times it is necessary to run a certain task that has a higher priority before another task although it is running. Therefore, the running task is interrupted for some time and resumed later when the priority task has finished its execution.
1.When a process switches from the running state to the waiting state(for I/O request or invocation of wait for the termination of one of the child processes).
2.When a process switches from the running state to the ready state (for example, when an interrupt occurs).
3.When a process switches from the waiting state to the ready state(for example, completion of I/O).
4.When a process terminates.
-> In circumstances 1 and 4, there is no choice in terms of scheduling. A new process(if one exists in the ready queue) must be selected for execution. There is a choice, however in circumstances 2 and 3.
-> When Scheduling takes place only under circumstances 1 and 4, we say the scheduling scheme is non-preemptive; otherwise the scheduling scheme is preemptive.
Non-Preemptive Scheduling
Under non-preemptive scheduling, once the CPU has been allocated to a process, the process keeps the CPU until it releases the CPU either by terminating or by switching to the waiting state.
->This scheduling method is used by the Microsoft Windows 3.1 and by the Apple Macintosh operating systems.
->It is the only method that can be used on certain hardware platforms, because It does not require the special hardware(for example: a timer) needed for preemptive scheduling.
Preemptive Scheduling
In this type of Scheduling, the tasks are usually assigned with priorities. At times it is necessary to run a certain task that has a higher priority before another task although it is running. Therefore, the running task is interrupted for some time and resumed later when the priority task has finished its execution.