Open In App

Benefits of Multithreading in Operating System

Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite –

Operating-System-Thread

The benefits of multi threaded programming can be broken down into four major categories:

  1. Responsiveness – Multithreading in an interactive application may allow a program to continue running even if a part of it is blocked or is performing a lengthy operation, thereby increasing responsiveness to the user. In a non multi threaded environment, a server listens to the port for some request and when the request comes, it processes the request and then resume listening to another request. The time taken while processing of request makes other users wait unnecessarily. Instead a better approach would be to pass the request to a worker thread and continue listening to port. For example, a multi threaded web browser allow user interaction in one thread while an video is being loaded in another thread. So instead of waiting for the whole web-page to load the user can continue viewing some portion of the web-page.
  2. Resource Sharing – Processes may share resources only through techniques such as-
    • Message Passing
    • Shared Memory

    Such techniques must be explicitly organized by programmer. However, threads share the memory and the resources of the process to which they belong by default. The benefit of sharing code and data is that it allows an application to have several threads of activity within same address space.

  3. Economy – Allocating memory and resources for process creation is a costly job in terms of time and space. Since, threads share memory with the process it belongs, it is more economical to create and context switch threads. Generally much more time is consumed in creating and managing processes than in threads. In Solaris, for example, creating process is 30 times slower than creating threads and context switching is 5 times slower.
  4. Scalability – The benefits of multi-programming greatly increase in case of multiprocessor architecture, where threads may be running parallel on multiple processors. If there is only one thread then it is not possible to divide the processes into smaller tasks that different processors can perform. Single threaded process can run only on one processor regardless of how many processors are available. Multi-threading on a multiple CPU machine increases parallelism.
  5. Better Communication System – To improve the inter-process communication, thread synchronization functions can be used. Also, when need to share huge amounts of data across multiple threads of execution inside the same address space then provides extremely high bandwidth and low communication across the various tasks within the application.
  6. Microprocessor Architecture Utilization – Every thread could be execute in parallel on a distinct processor which might be considerably amplified in a microprocessor architecture. Multithreading enhances concurrency on a multi CPU machine. Also the CPU switches among threads very quickly in a single processor architecture where it creates the illusion of parallelism, but at a particular time only one thread can running.
  7. Minimized system resource usage – Threads have a minimal influence on the system’s resources. The overhead of creating, maintaining, and managing threads is lower than a general process.
  8. Enhanced Concurrency – Multithreading can enhance the concurrency of a multi-CPU machine. This is because the multithreading allows every thread to be executed in parallel on a distinct processor.
  9. Reduced Context Switching Time – The threads minimize the context switching time as in Thread Context Switching, the virtual memory space remains the same.

References- Operating System concepts by Abraham Silberschatz, Peter B. Galvin& Greg Gagne


Last Updated : 29 Feb, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads