Skip to main content
1 of 2
rwong
  • 17.2k
  • 3
  • 38
  • 82

In general, the approaches can be classified (conceptually) into two types:

  • Preemptive multi-tasking.
  • Cooperative multi-tasking.

The details for both can be found in the question which Charles E. Grant has commented on your question.

There is a further classification under cooperative multi-tasking:

  • The applications needs to periodically call back an OS function, to allow the OS to perform its work, without benefit to the application itself. Typically this is termed yielding.
  • The application may request some services from the OS by making an OS call, such as opening/reading/writing a chunk of a file, or reading from a port or network. The OS could take this opportunity to perform additional work of its own.
rwong
  • 17.2k
  • 3
  • 38
  • 82