Multithreading
Hard Drive Recovery - Multithreading
Multithreading is the ability of CPU to execute multiple execution requests at the same time. Modern CPUs are capable of executing nearly one billion instructions every second. It allows the CPU to switch one program to another swiftly and manage multiple requests by the same/multiple user/s without having to have multiple copies of the program running in the computer. It is also possible to run multiple parts of a single program at the same time.
In multithreading, each user request for a program or system service is kept track of as a thread with a separate identity. As programs work on behalf of the initial request for that thread and are interrupted by other requests, the status of work on behalf of that thread is kept track of until the work is completed.
Multithreading has gained importance as the efforts to further exploit instruction level parallelism have stalled since the late 1990s. As a result, the concept of ‘Throughput Computing’ emerged from the more specialized field of transaction processing.
Multithreading computers have relevant hardware support to execute multiple threads. They are different from multiprocessing systems such as the multi-core systems in that the threads share the resources of a single core that consists of the computing units, the CPU caches and the translation lookaside buffer (TLB).
In multiprocessing systems that include multiple complete processing units, multithreading is used to increase utilization of a single core by leveraging thread-level as well as instruction-level parallelism. Both techniques are sometimes combined in systems with multiple multithreading CPUs and in CPUs with multiple multithreading cores.


