Sunday, October 02, 2011

Multi-Processing & Multi-Tasking


 Multi-Processing

  • Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system.
  • The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them.
  • There are many variations on this basic theme, and the definition of multiprocessing can vary with context, mostly as a function of how CPUs are defined (multiple cores on one die, multiple dies in one package, multiple packages in one system unit, etc.).
  • Multiprocessing sometimes refers to the execution of multiple concurrent software processes in a system as opposed to a single process at any one instant.
  • However, the terms multitasking or multiprogramming are more appropriate to describe this concept, which is implemented mostly in software.
Multi-Tasking
    • In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU.
    • In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for that task.
    • Multitasking solves the problem by scheduling which task may be the one running at any given time, and when another waiting task gets a turn. The act of reassigning a CPU from one task to another one is called a context switch.
    • When context switches occur frequently enough the illusion of parallelism is achieved. Even on computers with more than one CPU (called multiprocessor machines), multitasking allows many more tasks to be run than there are CPUs.

Add caption