Multitasking lets your computer do more than one thing at once, like duplicating a file in the background while you write a document. Windoze NT and Windoze 95 can pretend to multitask with preemptive multitasking. This is where each process gets a certain amount of processing time. MacOS does a better job of multitasking than Windoze, but doesn't do as well as UNIX and OS/2 (until OS X.)

In Computer Science, the execution by a single central processing unit of two or more programs at once, either by simultaneous operation or by rapid alternation between the programs.

If you play RPGS (namely, Whitewolf's Mage) , multitasking has a slightly different meaning. It's a Mind 1 effect originally created by Virtual Adepts (and stolen by every other Tradition shortly after) that allows the caster to simultaneously complete two different objectives at the same time, akin in many ways to its namesake in the real world. There are alternate forms incorporating other Spheres- Time, Correspondence, and higher levels of Mind- that allow the caster to customize the effects.

In Windows, there are two types of multitasking.

  • Cooperative Multitasking
    Cooperative multitasking is used by older 16-bit programs. A thread will run until it voluntarily gives up the processor. Each program declares when it will release the processor to the next task. If a program decides it will keep the thread going for a longer period of time, the other queued programs will sit and wait for the running program to finish. This makes the system appear to freeze or hang.

  • Preemptive Multitasking
    Preemptive multitasking is used by the newer 32-bit programs. Each thread is allocated a certain amount of processor time. At the end of the alloted time, the thread will release the processor to the next task. A single thread can dominate the processor, however, if it has a very high priority. All Win95 32-bit programs use preemptive multitasking. When running a 16-bit program under the 32-bit API, the 16-bit programs will cooperatively multitask, and that thread is then preemptively multitasked with the other 32-bit threads.
  • In the real world, notably similar to the computer science definition, multitasking refers to attempting to work towards multiple goals simultaneously. A simplistic example could be reading and talking at the same time or even the old clichĂ© of walking and chewing gum at the same time. A more complex example could be referred from child psychology and the concept of automaticity. A child cannot begin to draw a picture for an oral word problem until they have learned to listen and draw at the same time. Many of us eventually multitask without giving it a second thought while on other occasions we may find ourselves increasingly stressed as multitasking grows.

    Microsoft Windows has, and does, exhibit pretty much every kind of multitasking discipline there could be.

    Windows < 95 (Win16)

    Back in the old days windows did have full pre-emptive multi-tasking, but it was only applied to dos programs, which for obvious reasons had no concept of multiple processes, let alone multitasking.

    Bizzarely, the windows programs instead used co-operative multitasking, whereby each process chose the point at which to yield, and windows chose the next process to run.

    Windows 9x

    Dos programs continue to be pre-empted, but pre-emption is also introduced for new Windows programs ("Win32 programs"). Under this scheme, programs do not worry about yielding, they just run as if there were no multitasking. Win16 programs continue to yield, but may also be preempted.

    Windows NT

    Windows NT schedules threads, rather than processes; it gives dos and win16 programs their own single thread for each program to run inside a single process for each class, which continue to be provided with the same threading model as they are accustomed to. Meanwhile programs targetting the NT platform can make use of the fact that they may be multithreaded, and that threads can yield nominating their successor thread. The operating system will "normally" follow this suggestion, the justification being that threads will often know which threads - at least from their own program - are likely to be able to proceed, and which not; of course it may pre-empt threads arbitrarily, and choose their successor arbitrarily - threads cannot rely on getting their way. To see the benefits of this, imagine a producer-consumer system with n producers and n consumers: if the channel is filled by a producer, running any other producer would be a waste, while the consumers would be ready to go immediately.

    Log in or registerto write something here or to contact authors.