Computer Science

Common Types CPU Threads

A thread is a basic unit of CPU utilization. It is also called a lightweight process. CPU threads share the code section, data section, and any operating system resources with its peer threads in a particular task which are vacant for the job.

In this article, you will be able to learn about a thread, different types of threads, their advantages and disadvantages, major differences between process and threads, etc. Let’s read it further.

CPU Threads

A thread is a basic unit of CPU utilization. It is also called a lightweight process. It is a sequence of instructions within a process. A CPU thread behaves like a process within a process but it does not have its own PCB. Usually, multiple threads are created within a process.

CPU threads

The multiple CPU threads in a process allow multiple executions. It can be used to improve application through parallelism. Threads consist of the following:

  • Thread ID
  • Program Counter
  • Register Set
  • Stack

A thread shares the following with its peer threads in a particular task: Thread is a sequence of instructions within a process.  It behaves like a process within a process but it does not have its own PCB. Types:Kernel-Level & User-Level

  • Code Section
  • Data Section
  • Any operating system resources, which are vacant for the job

Benefits of CPU Threads

Some important benefits of threads are as follows:

  • Threads share common data and do not require to make use of inter-process communication.
  • Threads can get an advantage of multiprocessors
  • There is a higher throughput when multiple threads collaborate in a single job. The entire process does not stop if one thread must wait.
  • Threads are cheap to create as they only need a stack and storage for register
  • Threads use very little resources of an operating system. They do not need new address space, global data, program code or operating system resources
  • Context switching becomes fast when working with threads.

Difference B/w Process And Thread

The difference between processes and threads are as follows:

Thread Process
A thread is a lightweight entity A process is a heavyweight entity
A thread cannot exist without a process There must be at least one thread in a process
If a thread ends, the process may still run. If a process ends, all threads in it also end
A thread has no data segment or heap A process has a code, data and heap segments
The communication among threads occurs via memory The communication among processes occurs via the operating system and data copying
The creation of threads and context switching is inexpensive The creation of processes and context switching is expensive.

Types of CPU Threads

Threads may be handled at different levels. There are two types of CPU threads to manage in a modern system. One is called user thread and 2nd is the kernel thread.

  • Kernel-Level Thread
  • User-Level Thread

CPU threads

Kernel-Level Threads

Kernel-level threads are supported within the kernel of the operating system. All modern operating systems support kernel-level threads. They allow the kernel to perform multiple tasks and to service multiple kernel system calls simultaneously.

Advantages

Different advantages of kernel-level threads are as follows:

  • The kernel has full knowledge of all threads. Therefore the scheduler may decide to give more time to process with a large number of threads than the process having a small number of threads.
  • Kernel-level threads are especially good for applications that are blocked frequently.

Disadvantages

Different disadvantages of kernel-level CPU threads are as follows:

  • The kernel-level threads are slow and incompetent
  • The kernel must manage and schedule threads as well as the processes. It requires a full thread control block (TCB) for each thread to maintain information about threads. There is significant overhead and increases the kernel complexity.

User Level Threads

User-level threads are implemented in user-level libraries instead of systems calls. The thread switching does not need to call the operating system. It does not cause interrupts to the kernel. The kernel knows nothing about user-level CPU threads. It manages these threads as single-threaded processes. The user-level threads are very fast.

Advantages

Different advantages of user-level threads are as follows:

  • The user-level threads are fast and efficient
  • They can be implemented on an operating system that does not support threads
  • They are simple to manage. The switching between threads can be done without a kernel

Disadvantages

Different disadvantages of user-level threads are as follows:

  • There is a lack of coordination between threads and the operating system kernel. The process gets a single time slice even if it has a large number of threads in it.
  • A multi-threaded application with pure user-level threads cannot take advantage of multiprocessing. The kernel assigns only one process to a processor at a time.

 

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also

Close
Back to top button
Close