0% found this document useful (0 votes)
63 views13 pages

Operating Systems: Suad Alaofi

This document outlines key concepts about threads and threading models in operating systems. It discusses threads, their uses and benefits, as well as multicore processors and multithreading. Finally, it describes three common threading models: many-to-one, one-to-one, and many-to-many. The many-to-one model maps many user threads to one kernel thread, while the one-to-one model maps each user thread to its own kernel thread. The many-to-many model multiplexes user threads to kernel threads to balance parallelism and overhead.

Uploaded by

Amal Fahad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views13 pages

Operating Systems: Suad Alaofi

This document outlines key concepts about threads and threading models in operating systems. It discusses threads, their uses and benefits, as well as multicore processors and multithreading. Finally, it describes three common threading models: many-to-one, one-to-one, and many-to-many. The many-to-one model maps many user threads to one kernel thread, while the one-to-one model maps each user thread to its own kernel thread. The many-to-many model multiplexes user threads to kernel threads to balance parallelism and overhead.

Uploaded by

Amal Fahad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Operating Systems

Lecture 7

Suad Alaofi 1
Outlines

 Threads
 Threads Uses
 Threads Benefits
 Multicore Processor
 Multithreading Models

2
Threads

 A thread is the smallest unit of instructions that can be managed


independently by a scheduler.
 It shares with other threads belonging to the same process its
code section, data section, and other operating-system resources,
such as open files and signals.
 One process may contain multiple threads. So, it can perform
more than one task at a time.
 The process that has one thread called single-threaded process.
 The process that has multiple threads called multithreaded
process
3
Single Vs. Multi threaded process

4
Threads Uses

 Many software packages that run on modern desktop PCs are


multithreaded.
 Most operating system kernels are now multithreaded; several
threads operate in the kernel, and each thread performs a specific
task.
 Web browser might have one thread display images or text while
another thread retrieves data from the network, for example.
 A word processor may have a thread for responding to keystrokes
from the user, and another thread for performing spelling and
grammar checking in the background.
5
Threads Benefits

 1. Responsiveness:
 Multithreading an interactive application may allow a program to
continue running even if part of it is blocked or is performing a
lengthy operation, thereby increasing responsiveness to the user.
 For instance, a multithreaded Web browser can allow user
interaction in one thread while an image is being loaded in
another thread.
 2. Resource sharing:
 Threads share the memory and the resources of the process to
which they belong by default.
6
Cont.

 3. Economy:
 Allocating memory and resources for process creation is costly.
 Because threads share the resources of the process to which they
belong, it is more economical to create and context-switch
threads.
 4. Scalability:
 Multithreading on amulti- CPU machine increases parallelism.
 A single-threaded process can only run on one processor,
regardless how many are available.

7
Multicore Processor

 Multicore Processor is a processor that has multiple cores on a


single chip. Each of these cores appears as a separate processor to
the operating system.
 Multithreaded programming provides a mechanism for more efficient
use of multiple cores and improved concurrency.
 Concurrency means that the threads can run in parallel, because
the system can assign a separate thread to each core.
 The trend toward multicore systems has placed pressure on system
designers as well as application programmers to make better use of
the multiple computing cores.
8
Challenges with multicore systems

 Challenges in programming for multicore systems:


1. Dividing activities
2. Balance
3. Data splitting
4. Data dependency
5. Testing and debugging

9
Multithreading Models

 Support for threads may be provided either at the user level, for
user threads, or by the kernel for kernel threads.
 User threads are supported above the kernel and are managed
without kernel support.
 kernel threads are supported and managed directly by the operating
system.
 A relationship must exist between user threads and kernel threads.
 There are three common models of relationships:
1. Many-to-One Model
2. One-to-One Model
3. Many-to-Many Model 10
Many-to-One Model

 The many-to-one model maps


many user-level threads to one
kernel thread.
 Because only one thread can
access the kernel at a time,
multiple threads are unable to run
in parallel on multiprocessors

11
One-to-One Model

 The one-to-one model maps each user


thread to a kernel thread.
 It provides more concurrency than the
many-to-one model by allows multiple
threads to run in parallel on
multiprocessors.
 The drawback to this model is the overhead
of creating kernel threads can reduce the
performance of an application.
 The number of user threads is restricted.
12
Many-to-Many Model

 The many-to-many model multiplexes many


user-level threads to a smaller or equal
number of kernel threads.
 Developers can create as many user threads
as necessary,
 and the corresponding kernel threads can run
in parallel on a multiprocessor.

13

You might also like