Answer:
The explantion of this question is given below in the explanation section.
Explanation:
Parallelism means that an application is split into smaller subtasks that can be processed in parallel on multiple CPU at the same time. Parallelism is related to application handling individual tasks on multiple CPUs. To achieve true parallelism your application must have more than one thread running, schedule the task into other threads, graphics cards, and CPU, etc.
It is noted that parallelism is a concept while multiple threading in computer programing is its implementation. Some operating systems provide a multiple threading that combined the user-level thread and kernel-level thread facility. In such a system, multiple threads within the same application can run in parallel on multiple CPU or processors
There are three types of Multithreading Model
• Many to many relationships.
• Many to one relationship.
• One to one relationship.
Many to many relationship
This model multiplexes any number of user threads onto an equal or smaller number of kernel threads. However, this model provides the best accuracy to concurrency. However, using this model, true parallelism can be achieved, if the system has multiprocessor.
Many to One model
This model maps the user-level threads to one kernel-level thread and its management is done in userspace by the thread library. In this model, only one thread can access the Kernal at a time, so multiple threads are unable to run on multiple CPU in parallel.
One to one relationship
This model provides one to one relationship between the user and kernel-level thread. This model is better than the many-to-one model. It allows another thread to execute when a thread makes a blocking system call. However, it supports multiple threads to execute in parallel on the microprocessor. This model provides true parallelism.