Processes and threads. (Chapter 6) презентация

Processes and Threads
 Processes and their scheduling
 Multiprocessor scheduling
 Threads
 DistributedProcesses: Review
 Multiprogramming versus multiprocessing
 Kernel data structure: process control blockProcess Behavior
 Processes: alternate between CPU and I/O
 CPU bursts
 MostProcess Scheduling
 Priority queues: multiples queues, each with a different priority
Processes and Threads
 Traditional process
 One thread of control through aThreads 
 Each thread has its own stack, PC, registers
 ShareWhy use Threads?
 Large multiprocessors need many computing entities (one perWhy Threads?
 Single threaded process: blocking system calls, no parallelism
 Finite-stateMulti-threaded Clients Example : Web Browsers
 Browsers such as IE areMulti-threaded Server Example
 Apache web server: pool of pre-spawned worker threads
Thread Management
 Creation and deletion of threads
 Static versus dynamic
 CriticalUser-level versus kernel threads
 Key issues:
 Cost of thread management
 MoreUser-level Threads
 Threads managed by a threads library
 Kernel is unawareUser-level threadsKernel-level threads
 Kernel aware of the presence of threads
 Better schedulingLight-weight Processes
 Several LWPs per heavy-weight process
 User-level threads package
 Create/destroyLWP ExampleThread Packages
 Posix Threads (pthreads)
 Widely used threads package
 Conforms to



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Processes and Threads Processes and their scheduling Multiprocessor scheduling Threads Distributed Scheduling/migration


Слайд 2
Описание слайда:
Processes: Review Multiprogramming versus multiprocessing Kernel data structure: process control block (PCB) Each process has an address space Contains code, global and local variables.. Process state transitions Uniprocessor scheduling algorithms Round-robin, shortest job first, FIFO, lottery scheduling, EDF Performance metrics: throughput, CPU utilization, turnaround time, response time, fairness

Слайд 3
Описание слайда:
Process Behavior Processes: alternate between CPU and I/O CPU bursts Most bursts are short, a few are very long (high variance) Modeled using hyperexponential behavior If X is an exponential r.v. Pr [ X <= x] = 1 – e-x E[X] = 1/ If X is a hyperexponential r.v. Pr [X <= x] = 1 – p e-x -(1-p) e-x E[X] = p/ p)/ 

Слайд 4
Описание слайда:
Process Scheduling Priority queues: multiples queues, each with a different priority Use strict priority scheduling Example: page swapper, kernel tasks, real-time tasks, user tasks Multi-level feedback queue Multiple queues with priority Processes dynamically move from one queue to another Depending on priority/CPU characteristics Gives higher priority to I/O bound or interactive tasks Lower priority to CPU bound tasks Round robin at each level

Слайд 5
Описание слайда:
Processes and Threads Traditional process One thread of control through a large, potentially sparse address space Address space may be shared with other processes (shared mem) Collection of systems resources (files, semaphores) Thread (light weight process) A flow of control through an address space Each address space can have multiple concurrent control flows Each thread has access to entire address space Potentially parallel execution, minimal state (low overheads) May need synchronization to control access to shared variables

Слайд 6
Описание слайда:
Threads Each thread has its own stack, PC, registers Share address space, files,…

Слайд 7
Описание слайда:
Why use Threads? Large multiprocessors need many computing entities (one per CPU) Switching between processes incurs high overhead With threads, an application can avoid per-process overheads Thread creation, deletion, switching cheaper than processes Threads have full access to address space (easy sharing) Threads can execute in parallel on multiprocessors

Слайд 8
Описание слайда:
Why Threads? Single threaded process: blocking system calls, no parallelism Finite-state machine [event-based]: non-blocking with parallelism Multi-threaded process: blocking system calls with parallelism Threads retain the idea of sequential processes with blocking system calls, and yet achieve parallelism Software engineering perspective Applications are easier to structure as a collection of threads Each thread performs several [mostly independent] tasks

Слайд 9
Описание слайда:
Multi-threaded Clients Example : Web Browsers Browsers such as IE are multi-threaded Such browsers can display data before entire document is downloaded: performs multiple simultaneous tasks Fetch main HTML page, activate separate threads for other parts Each thread sets up a separate connection with the server Uses blocking calls Each part (gif image) fetched separately and in parallel Advantage: connections can be setup to different sources Ad server, image server, web server…

Слайд 10
Описание слайда:
Multi-threaded Server Example Apache web server: pool of pre-spawned worker threads Dispatcher thread waits for requests For each request, choose an idle worker thread Worker thread uses blocking system calls to service web request

Слайд 11
Описание слайда:
Thread Management Creation and deletion of threads Static versus dynamic Critical sections Synchronization primitives: blocking, spin-lock (busy-wait) Condition variables Global thread variables Kernel versus user-level threads

Слайд 12
Описание слайда:
User-level versus kernel threads Key issues: Cost of thread management More efficient in user space Ease of scheduling Flexibility: many parallel programming models and schedulers Process blocking – a potential problem

Слайд 13
Описание слайда:
User-level Threads Threads managed by a threads library Kernel is unaware of presence of threads Advantages: No kernel modifications needed to support threads Efficient: creation/deletion/switches don’t need system calls Flexibility in scheduling: library can use different scheduling algorithms, can be application dependent Disadvantages Need to avoid blocking system calls [all threads block] Threads compete for one another Does not take advantage of multiprocessors [no real parallelism]

Слайд 14
Описание слайда:
User-level threads

Слайд 15
Описание слайда:
Kernel-level threads Kernel aware of the presence of threads Better scheduling decisions, more expensive Better for multiprocessors, more overheads for uniprocessors

Слайд 16
Описание слайда:
Light-weight Processes Several LWPs per heavy-weight process User-level threads package Create/destroy threads and synchronization primitives Multithreaded applications – create multiple threads, assign threads to LWPs (one-one, many-one, many-many) Each LWP, when scheduled, searches for a runnable thread [two-level scheduling] Shared thread table: no kernel support needed When a LWP thread block on system call, switch to kernel mode and OS context switches to another LWP

Слайд 17
Описание слайда:
LWP Example

Слайд 18
Описание слайда:
Thread Packages Posix Threads (pthreads) Widely used threads package Conforms to the Posix standard Sample calls: pthread_create,… Typical used in C/C++ applications Can be implemented as user-level or kernel-level or via LWPs Java Threads Native thread support built into the language Threads are scheduled by the JVM


Скачать презентацию на тему Processes and threads. (Chapter 6) можно ниже:

Похожие презентации