when the process WAITS (typically for I-o), the process is put on a que of waiting-tasks and another is found on a different que of ready-to-run tasks. This is a "heavy weight" process switch (ie lots of work). The multithreading implementations is a much "lighter weight" switch.how the processor is switched among different program?