Презентация на тему Operating system. Chapter 4: Threads

Презентация на тему Презентация на тему Operating system. Chapter 4: Threads, предмет презентации: Информатика. Этот материал содержит 24 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

Слайды и текст этой презентации

Слайд 1
Chapter 4: Threads
Текст слайда:

Chapter 4: Threads


Слайд 2
Chapter 4: ThreadsOverviewMultithreading ModelsThread Libraries
Текст слайда:

Chapter 4: Threads

Overview
Multithreading Models
Thread Libraries


Слайд 3
ObjectivesTo introduce the notion of a thread — a fundamental unit
Текст слайда:

Objectives

To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems

To discuss the APIs for the Pthreads, Win32, and Java thread libraries


Слайд 4
What’s in a process?A process consists of (at least):an address spacethe
Текст слайда:

What’s in a process?

A process consists of (at least):
an address space
the code for the running program
the data for the running program
an execution stack and stack pointer (SP)
traces state of procedure calls made
the program counter (PC), indicating the next instruction
a set of general-purpose processor registers and their values
a set of OS resources
open files, network connections, sound channels, …


Слайд 5
ConcurrencyImagine a web server, which might like to handle multiple requests
Текст слайда:

Concurrency

Imagine a web server, which might like to handle multiple requests concurrently
While waiting for the credit card server to approve a purchase for one client, it could be retrieving the data requested by another client from disk, and assembling the response for a third client from cached information
Imagine a web browser, which might like to initiate multiple requests concurrently
While browser displays images or text, it retrieves data from the network.

A word processor
For example, displaying graphics, responding to keystrokes from the user, and performing spelling and grammar checking in the background.


Слайд 6
What’s needed?In each of these examples of concurrency (web server, web
Текст слайда:

What’s needed?

In each of these examples of concurrency (web server, web browser, word processor):
Everybody wants to run the same code
Everybody wants to access the same data
Everybody has the same privileges (most of the time)
Everybody uses the same resources (open files, network connections, etc.)
But you’d like to have multiple hardware execution states:
an execution stack and stack pointer (SP)
traces state of procedure calls made
the program counter (PC), indicating the next instruction
a set of general-purpose processor registers and their values


Слайд 7
How could we achieve this?Given the process abstraction as we know
Текст слайда:

How could we achieve this?

Given the process abstraction as we know it:
fork several processes

This is really inefficient!!
Resource intensive? ex: space: PCB, page tables, etc.
Time consuming? creating OS structures, fork and copy address space, etc.

So any support that the OS can give for doing multi-threaded programming is a win


Слайд 8
Single-Threaded ExampleImagine the following C program:	main() {	  ComputePI(“pi.txt”);	  PrintClassList(“clist.text”);	}What
Текст слайда:

Single-Threaded Example

Imagine the following C program:
main() {
ComputePI(“pi.txt”);
PrintClassList(“clist.text”);
}
What is the behavior here?
Program would never print out class list, because “ComputePI” would never finish.


Слайд 9
Use of ThreadsVersion of program with Threads: main() {	CreateThread(ComputePI(“pi.txt”));	CreateThread(PrintClassList(“clist.text”));	}What does “CreateThread”
Текст слайда:

Use of Threads

Version of program with Threads:
main() {
CreateThread(ComputePI(“pi.txt”));
CreateThread(PrintClassList(“clist.text”));
}
What does “CreateThread” do?
Start independent thread running for a given procedure

What is the behavior here?
Now, you would actually see the class list
This should behave as if there are two separate CPUs


Слайд 10
Multithreaded server architectureRequest(3) Resume listening for additional client requests(2) Create new thread to service the request
Текст слайда:

Multithreaded server architecture


Request

(3) Resume listening for additional client requests

(2) Create new thread to service the request


Слайд 11
Threads and processesMost modern OS’s (NT, modern UNIX, etc) therefore support
Текст слайда:

Threads and processes

Most modern OS’s (NT, modern UNIX, etc) therefore support two entities:
the process, which defines the address space and general process attributes (such as open files, etc.)
the thread, which defines a sequential execution stream within a process

A thread
is a basic unit of CPU utilization; it comprises a thread ID, PC, a register set, and a stack.
Shares with other threads belonging to the same process its code and data sections, and other OS resources (ex: open files and signals)
Threads of the same process are not protected from each other.


Слайд 12
Single and Multithreaded Processes
Текст слайда:

Single and Multithreaded Processes


Слайд 13
Process address spacecode(text segment)static data(data segment)heap(dynamic allocated mem)thread 1 stackPC (T2)SP
Текст слайда:

Process address space

code
(text segment)

static data
(data segment)

heap
(dynamic allocated mem)


thread 1 stack

PC (T2)

SP (T2)


thread 2 stack


thread 3 stack

SP (T1)

SP (T3)

PC (T1)

PC (T3)

code
(text segment)

static data
(data segment)

heap
(dynamic allocated mem)


stack
(dynamic allocated mem)

PC

SP


Слайд 14
Benefits of multithreadedResponsiveness: A multithreaded interactive application allows a program to
Текст слайда:

Benefits of multithreaded

Responsiveness:
A multithreaded interactive application allows a program to continue running even if part of it is blocked or performing a lengthy operation. Thereby increasing responsiveness to the user.
Resource Sharing (code, data, files)
Threads share the memory and resources of the process to which they belong by default.
Sharing data between threads is cheaper than processes ? all see the same address space.

Economy
Creating and destroying threads is cheaper than processes.
Context switching between threads is also cheaper.
It’s much easier to communicate between threads.



Scalability
Multithreading can be greatly increased in a multiprocessor systems
Threads may be running in parallel on different processors.



Слайд 15
Benefits of multithreadedScalabilityMultithreading can be greatly increased in a multiprocessor systemsThreads
Текст слайда:

Benefits of multithreaded

Scalability
Multithreading can be greatly increased in a multiprocessor systems
Threads may be running in parallel on different processors.


Слайд 16
Multicore ProgrammingOn a single-core system, concurrency means that the execution of
Текст слайда:

Multicore Programming

On a single-core system, concurrency means that the execution of threads will be interleaved over time – executing only one thread at a time.

Parallel execution for threads on a multi-core system.


Слайд 17
User and Kernel ThreadsUser threads: are visible to the programmer and
Текст слайда:

User and Kernel Threads

User threads:
are visible to the programmer and unknown to the kernel.
thread management done by user-level threads library, without kernel support.

Kernel threads:
Most OS kernels are multi-threaded.
Several threads operate in the kernel, each performing a specific task.
Ex: managing devices, interrupt handling.
Supported and managed directly by the Kernel.
Examples: Windows XP/2000, Solaris, Linux, Tru64 UNIX, Mac OS X.

User-level threads are faster to create and manage than are kernel threads.
Why?
Because no intervention from the kernel is required.


Слайд 18
Multithreading ModelsA relationship must exist between user threads and kernel threads,
Текст слайда:

Multithreading Models

A relationship must exist between user threads and kernel threads, established by one of three ways:

Many-to-One
One-to-One
Many-to-Many


Слайд 19
Many-to-OneMany user-level threads mapped to single kernel thread:Thread management is done
Текст слайда:

Many-to-One

Many user-level threads mapped to single kernel thread:
Thread management is done by the thread library in user space ? efficient.
The entire process will block if a thread makes a blocking system call.
Because only one thread can access the kernel at a time, multiple threads are unable to run in parallel on multiprocessors.

Examples:
Solaris Green Threads
GNU Portable Threads


Слайд 20
One-to-OneEach user-level thread maps to kernel threadAdv : allows another thread
Текст слайда:

One-to-One

Each user-level thread maps to kernel thread
Adv : allows another thread to run when a thread makes a blocking system call ? more concurrency.
Adv : allows multiple threads to run in parallel on multiprocessors.
Dis : creating a user thread requires creating corresponding kernel thread ? can burden the applications performance.
Examples
Windows NT/XP/2000
Linux
Solaris 9 and later


Слайд 21
Many-to-Many ModelAllows many user level threads to be mapped to many
Текст слайда:

Many-to-Many Model

Allows many user level threads to be mapped to many kernel threads
Does not suffer from the shortcomings of the previous two models. How? read P159
Solaris prior to version 9


Слайд 22
Two-level ModelSimilar to M:M, except that it allows a user thread
Текст слайда:

Two-level Model

Similar to M:M, except that it allows a user thread to be bound to kernel thread
Examples
IRIX
HP-UX
Tru64 UNIX
Solaris 8 and earlier


Слайд 23
Thread LibrariesThread library provides programmer with API for creating and managing
Текст слайда:

Thread Libraries

Thread library provides programmer with API for creating and managing threads

Two primary ways of implementing a thread library:
Library entirely in user space (all code and data structures for the library in user space)
Invoking a function in the API ->local function call in user space and not a system call.
Kernel-level library supported by the OS (all code and data structures for the library in kernel space)
Invoking a function in the API -> system call to the kernel.

Three primary thread libraries:
POSIX Pthreads (maybe KL or UL), common in UNIX operating systems
Win32 threads (KL), in Windows systems.
Java threads (UL), in JVM.


Слайд 24
End of Chapter 4
Текст слайда:

End of Chapter 4


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика