RANT : Cooperative Multitasking : Zerro Below

All opinions on this site are those of the author alone.
No warranty of any kind is provided.   All information herein is provided as is without any warranty of any kind.


Cooperative Multitasking:

Many seem to believe that Preemptive Multitasking is the way to go, the end of the problems with Multitasking. This is simply not true, there are advantages to both Cooperative Multitasking and Preemptive Multitasking, and disadvantages to both. In irony some of the problems people think will be solved with Preemptive Multitasking are better solved with Cooperative Multitasking.

With preemptive multitasking you always have the overhead of the scheduler being called regularly, even if there is nothing for it to do, it must check at regular intervals. With Cooperative Multitasking the applications decide how often to call the task scheduler.

With preemptive Multitasking systems people are more likely to accept an application that is poorly written and goes too long unresponsive, because they can do something else while they wait. With cooperative Multitasking systems it is less likely to see programs that become unresponsive in normal usage, as people will not accept there computer being unusable so programmers are compelled to write better more responsive programs.

In a Preemptive Multitasking system, when you need to do something that is best done by a task that is ran singletasking (not allowing anything else to run until the task is done) may not be possible, or may require jumping through unreasonable hoops to make happen. In a cooperative multitasking system this is usually fairly simple to accomplish, as most cooperative multitasking systems allow for programs to take complete control without complaining. On any system it is still a good practice to warn the user if you are going to suspend all other tasks and run singletasking.

Most Cooperative Multitasking Systems provide a means for the user to kill an errant task, even if it has completely taken over. Thus there is no advantage to the multitasking model for this issue.

Despite what some think, the memory protection model has nothing to do with the Multitasking Model of the system. There exist Cooperative Multitasking systems with good memory protection between tasks, and there exist Preemptive Multitasking systems that do not provide any form of memory protection at all. The same goes for memory mapping (and mass-storage (disk) paged memory by extension), there are good Cooperative Multitasking Systems that have good memory mapping facilities (and even good mass-storage (disk) paged memory support), and there are good Preemptive Multitasking Systems that do not support this.

Coming Soon:

This document is a WIP.

This site hosted by NEOCITIES
© 2022 David Cagle