The correct answer is C. Pre-emption.

Pre-emption is a task swap method that allows the operating system to take control of a running task and switch to another task at any time. This is in contrast to cooperative multitasking, where the operating system relies on the running task to voluntarily relinquish control. Pre-emption is necessary for real-time applications, which have strict deadlines that must be met.

A schedule algorithm is a set of rules that the operating system uses to determine which task should run next. There are many different schedule algorithms, each with its own advantages and disadvantages.

A time slice is a fixed amount of time that a task is allowed to run before the operating system switches to another task. Time slicing is a common technique used to implement pre-emption.

Cooperative multitasking is a task swap method that relies on the running task to voluntarily relinquish control. This means that the running task must periodically check to see if there are any other tasks that need to run. If there are, the running task will yield control to the operating system, which will then switch to the next task in the queue. Cooperative multitasking is simple to implement, but it can lead to problems if a task does not yield control when it is supposed to. This can cause other tasks to become blocked, and it can even cause the system to crash.

Pre-emption is a more robust task swap method than cooperative multitasking. With pre-emption, the operating system can take control of a running task at any time, even if the task is not ready to yield control. This prevents tasks from becoming blocked, and it ensures that all tasks have a fair chance to run. However, pre-emption is more complex to implement than cooperative multitasking.

The choice of task swap method depends on the specific needs of the system. For real-time applications, pre-emption is essential. For other applications, cooperative multitasking may be sufficient.