A Thread Is A Single Sequence Stream Within A Process
A Thread Is A Single Sequence Stream Within A Process
The process can be split down into so many threads. For example, in a browser, many tabs
can be viewed as threads. MS Word uses many threads - formatting text from one thread,
processing input from another thread, etc.
Thread is a sequential flow of tasks within a process. Threads in an operating system can
be of the same or different types. Threads are used to increase the performance of the
applications.
Each thread has its own program counter, stack, and set of registers. However, the threads of
a single process might share the same code and data/file. Threads are also termed
lightweight processes as they share common resources.
Eg: While playing a movie on a device the audio and video are controlled by different
threads in the background.
Abstract:
This research paper focuses on the topic of threads and multithreading in operating systems. The
paper begins by defining a thread as a single sequence stream within a process, also known as a
thread of execution or thread of control. Threads are used to increase the performance of
applications by allowing a process to be split into multiple threads, each with its own program
counter, stack, and set of registers. The paper also discusses the motivation for the development and
implementation of threads and multithreading and the history behind the same, different thread
models in operating systems, including user-level and kernel-level models, and their respective
advantages and disadvantages.
The paper then delves into the benefits of multithreading, such as responsiveness, resource sharing,
economy, scalability, better communication, and utilization of multiprocessor architecture.
Multithreading enhances concurrency on a multi-CPU machine and minimizes system resource
usage. The paper also highlights the disadvantages of multithreading, such as the complexity of
managing multiple threads and the potential for increased context-switching time.
The paper describes some of the more important implementations of multithreading and concludes
by summarizing the key points and emphasizing the importance of understanding threads and
multithreading in operating systems for efficient and effective application development.
Citations:
[1] https://www.geeksforgeeks.org/thread-models-in-operating-system/
[2] https://www.javatpoint.com/process-vs-thread
[3] https://learn.microsoft.com/en-us/windows/win32/procthread/processes-and-threads
[4] https://www.guru99.com/difference-between-process-and-thread.html
[5] https://www.javatpoint.com/benefits-of-multithreading
[6] https://byjus.com/gate/difference-between-process-and-thread/
[7] https://www.geeksforgeeks.org/benefits-of-multithreading-in-operating-system/
[8] https://www.multisoftvirtualacademy.com/articles/common-advantages-and-disadvantages-of-
multithreading-in-java-training-course
[9] https://www.tutorialspoint.com/operating_system/os_multi_threading.htm
[10] https://afteracademy.com/blog/what-is-the-concept-of-multithreading-in-os-and-what-are-its-
benefits/
[11] https://www.javatpoint.com/synchronization-in-java
[12] https://www.javatpoint.com/threads-in-operating-system
[13] https://www.geeksforgeeks.org/difference-between-process-and-thread/
[14] https://www.geeksforgeeks.org/thread-in-operating-system/
[15] https://www.youtube.com/watch?v=4rLW7zg21gI
[16] https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/
[17] https://www.linkedin.com/advice/0/how-do-you-compare-performance-scalability-1e
[18] https://www.scaler.com/topics/operating-system/threads-in-operating-system/
[19] https://www.youtube.com/watch?v=3QyeiwdymGU
[20] https://www.javatpoint.com/multithreading-models-in-operating-system