/
Concurrency Issues Concurrency Issues

Concurrency Issues - PowerPoint Presentation

debby-jeon
debby-jeon . @debby-jeon
Follow
409 views
Uploaded On 2016-03-06

Concurrency Issues - PPT Presentation

Motivation Problems Directions Dennis Kafura CS 5204 Operating Systems 1 Dennis Kafura CS 5204 Operating Systems 2 Reasons for Concurrency multitasking parallelism performance coordination ID: 245100

systems operating kafura dennis operating systems dennis kafura 5204 threads concurrency user thread kernel order context bugs switch semantics

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Concurrency Issues" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Concurrency Issues

Motivation, Problems, Directions

Dennis Kafura - CS 5204 - Operating Systems

1Slide2

Dennis Kafura - CS 5204 - Operating Systems

2

Reasons for Concurrency

multitasking

parallelism

performance

coordinationSlide3

Moore’s Law

Dennis Kafura - CS 5204 - Operating Systems

3

Gordon E. Moore,

Co-founder,

Intel Corporation.

“Transistor density on integrated circuits doubles about every two years.” Slide4

Hitting the wall…

Dennis Kafura - CS 5204 - Operating Systems

4Slide5

Thermal Density

Dennis Kafura - CS 5204 - Operating Systems

5

2005

(cooler

alone

)

1993 (CPU and cooler

)Slide6

Dennis Kafura - CS 5204 - Operating Systems

6

Rise of Multi-/Many- Core Technologies

Intel: 80 core experimental system

Sun: 8 core chip

Intel: Quad CoreSlide7

Dennis Kafura - CS 5204 - Operating Systems

7

Context

Support for concurrent and parallel programming

conform to application semantics

respect priorities of applications

no unnecessary blocking

fast context switch

high processor utilization

concurrent

parallel

functionality

performance

relative importanceSlide8

Dennis Kafura - CS 5204 - Operating Systems

8

“Heavyweight” Process Model

. . .

user

kernel

simple, uni-threaded model

security provided by address space boundaries

high cost for context switch

coarse granularity limits degree of concurrencySlide9

Dennis Kafura - CS 5204 - Operating Systems

9

“Lightweight” (User-level) Threads

. . .

user

kernel

thread semantics defined by application

fast context switch time (within an order of magnitude of

procedure call time)

system scheduler unaware of user thread priorities

unnecessary blocking (I/O, page faults, etc.)

processor under-utilizationSlide10

Dennis Kafura - CS 5204 - Operating Systems

10

Kernel-level Threads

thread semantics defined by system

overhead incurred due to overly general implementation and cost of

kernel traps for thread operations

context switch time better than process switch time by an order of

magnitude, but an order of magnitude worse than user-level threads

system scheduler unaware of user thread state (e.g, in a critical region)

leading to blocking and lower processor utilization

. . .

user

kernelSlide11

Dennis Kafura - CS 5204 - Operating Systems

Threads are Bad

Difficult to program

Synchronizing access to shared state

Deadlock

Hard to debug (race conditions, repeatability)

Break abstractions

Modules must be designed “thread safe”

Difficult to achieve good performance

simple locking lowers concurrencycontext switching costs

OS support inconsistent semantics and tools vary across platforms/systemsMay not be right model

Window events do not map to threads but to events

11Slide12

Lee’s Crticisms of Threads

Dennis Kafura - CS 5204 - Operating Systems

12

Threads are not

composable

Inteference

via shared resources

Difficult to reason about threads

Everything can change between steps

Threads are “wildly nondeterministic”

Requires careful “pruning” by programmer

In practice, difficult to program correctly

Experience and examplesSlide13

Dennis Kafura - CS 5204 - Operating Systems

Ousterhout’s conclusions

13Slide14

Resilience of Threads

Widely supported in mainstream operating systems

even if semantics differDirect kernel/hardware supportvia kernel threads and multi-core

shared address spaces

Ability to pass complex data structures efficiently via pointers in shared memory

Programmability

standard interfaces defined (e.g., POSIX)

construct in some languages (e.g., Java)

widely delolyed/understood (even if misused)

Dennis Kafura - CS 5204 - Operating Systems

14Slide15

Concurrency Errors in Practice

Characterization study

Four large, mature, open-source systems105 randomly selected currency errorsExamined bug report, code, corrections

Classified bug patterns, manifestation, fix strategy

Dennis Kafura - CS 5204 - Operating Systems

15Slide16

Concurrency Error Patterns

Dennis Kafura - CS 5204 - Operating Systems

16

Finding (1)

: Most (72 out of 74) of the examined non-deadlock concurrency bugs are covered by two simple patters:

atomicity-violation

and

order-violation

.

atomicity-violation

: interference with a sequence of steps intended to be performed as a unit

A

B

order-violation

: failure to perform steps in the intended order Slide17

Concurrency Bug Manifestations

Dennis Kafura - CS 5204 - Operating Systems

17

Finding (3)

: The manifestation of most (101 out of 105) examined concurrency bugs involves no more than two threads.

Other findings

: most (66%) non-deadlock concurrency bugs involved only one variable and most (97%) of deadlock concurrency bugs involves at most two resources.. Slide18

Concurrency Bug Fix Strategies

Dennis Kafura - CS 5204 - Operating Systems

18

Finding (9)

: Adding or changing locks is

not

the major fix strategy.

COND

: Condition check

Switch

: Code switchDesign: algorithm change

Lock: add or change lock

Another finding: transactional memory (TM) can help avoid many (41 or 105) concurrency bugs.Slide19

Solutions to thread problems

New models of concurrent computation

MapReduceLarge-scale dataHighly distributed, massively parallel environment

Concurrent Collections (CnC)

General concurrent programming vehicle

Multicore architectures

Thread-per-process models

Communicating Sequential Processes

GraceSammati

Dennis Kafura - CS 5204 - Operating Systems19