Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright © 1997 – 2014 Curt Hill Concurrent Execution of Programs An Overview.

Similar presentations


Presentation on theme: "Copyright © 1997 – 2014 Curt Hill Concurrent Execution of Programs An Overview."— Presentation transcript:

1 Copyright © 1997 – 2014 Curt Hill Concurrent Execution of Programs An Overview

2 Copyright © 1997 – 2014 Curt Hill MultiTasking Multitasking is the apparent execution of programs in parallel This supports parallel execution usually under one of these names –Tasks –Processes –Threads This can be accomplished with a single processor or with several processors

3 Copyright © 1997 – 2014 Curt Hill Definitions Process –An executable program to the OS –Sole possession of code and variable memory –Must communicate through the OS Thread –Independent execution within a process –Share code and variables within a process These work in Win32 and UNIX Tasks can be either

4 Copyright © 1997 – 2014 Curt Hill UniProcessing Single CPU, but apparent multiple tasks Permissive –Any system call allows the current task to be suspended and another started Preemptive –A task is suspended when it makes a system call that could require waiting –A time slice occurs

5 Copyright © 1997 – 2014 Curt Hill Multiple Processors MultiProcessing Real multiprocessing involves multiple CPUs Multiple CPUs can be executing different jobs They may also be in the same job, if the OS allows

6 Copyright © 1997 – 2014 Curt Hill Half Way: HyperThreading The Hyper Threading CPUs are a transitional form There is one CPU with two register sets The CPU alternates between registers in execution thus giving better concurrency than a uniprocessor Windows XP considers it two CPUs

7 Copyright © 1997 – 2014 Curt Hill Why is this important? The multi-core CPUs are here The heat problem: –Smaller means Faster means Hotter –Heat kills semiconductors More speed may be obtained with multiple cores Four slower CPUs on a chip will be faster and cooler than one –The multiple cores share memory

8 Copyright © 1997 – 2014 Curt Hill Manufacturer’s Offerings AMD and Intel both offered in 2005 –Initially targeted server and work stations –Client machines are now out –The Pentium Processor Extreme Edition –AMD Opteron Sun, IBM and others expected momentarily Microsoft changed its license to be per chip, so that a multi-core chip is considered one processor

9 Copyright © 1997 – 2014 Curt Hill Off to the Races Most programming languages are Sequential There are a number of kinds of errors that can occur when there are two simultaneously executing tasks that share anything When different results may be obtained by the same code and data because of time dependencies, this is called a race

10 Copyright © 1997 – 2014 Curt Hill Instruction Granularity With UniProcessing (and HyperThreading) most instructions are indivisible –The instruction that is started is finished before the time slice is allowed to interrupt the current task –Certain long instructions such as string operations may be interrupted and resumed without problem

11 Copyright © 1997 – 2014 Curt Hill Instruction Granularity With MultiProcessing even instructions are not indivisible –The memory could have been changed by the other CPU between the time the instruction started and the instruction ended A statement in a high level language is usually multiple machine language instructions

12 Copyright © 1997 – 2014 Curt Hill Race Example Consider two tasks that share an integer variable share Task A has –share = share + 2; Task B has –share = share + 5;

13 Copyright © 1997 – 2014 Curt Hill Racing Form ;share += 2 mov ax,share add ax,2 mov share,ax ;share += 5 mov ax,share add ax,5 mov share,ax There are three possible outcomes

14 Copyright © 1997 – 2014 Curt Hill Race Results If one task completes before the other starts share will have 7 added to it If A starts and is interrupted, then the add of two is kept and the add of five is lost If B starts first and is interrupted, then the add of five is kept and the add of two is lost

15 Copyright © 1997 – 2014 Curt Hill Classical Problems There are a number of problems that illustrate race errors The first is the producer and consumer problem One task fills a buffer and another empties it This problem is inside every file copy Consider the Producer and Consumer problem:

16 Copyright © 1997 – 2014 Curt Hill Producer and Consumer Problem Add point Remove point Length

17 Copyright © 1997 – 2014 Curt Hill A buffer exists char buf[80]; int len,strt,end; A process adds a char: if(len<80){ end=(end+1)%80; buf[end] = inchar; len=len+1; } A process empties: if(len>0) { strt = (strt+1)%80; outchar = buf[strt]; len=len-1; }

18 Copyright © 1997 – 2014 Curt Hill Producers and Consumers The critical thing here is the len variable What happens if they both try to store to that variable at the same time? The assignment statement is not a single machine language statement in all cases Caching only complicates things in a multi CPU system

19 Copyright © 1997 – 2014 Curt Hill The Experiment Two threads do this: –Increment count1 –Two assignments –Increment count2 Three threads compare count1 and count2 and stop if they are not equal Each thread sleeps for a short time Measurement is how many comparisons occur before a difference in the comparison is found

20 Copyright © 1997 – 2014 Curt Hill The participants Three machines: –A single Pentium –A hyper-threading Pentium –Dual Pentium The three different machines had three different operating systems and three different clock speeds While the program is running it appears to fully consume the CPU in all cases

21 Copyright © 1997 – 2014 Curt Hill The results UniProcHyper Thread Dual Chip Multi Core Mean compares 145.445.329.8170.3 Median compares 72419.513 Max compares 68811353295800 N 52 8457

22 Copyright © 1997 – 2014 Curt Hill Solutions In the producer and consumer problem what is needed is a serialization A Critical Section is a piece of code that has limitation as to how many processes can be in it A critical section is usually guarded by a Semaphore Consider the increment/decrement of len a critical section

23 Copyright © 1997 – 2014 Curt Hill Semaphore Named after communication flag It usually is a count of processes in the critical section When a task enters the section it increments the count and decrements it upon exit A task wanting to enter a critical section is either given access to the section or made to wait

24 Copyright © 1997 – 2014 Curt Hill Waiting If a semaphore prohibits entry the task must wait Two kinds of wait: –Busy wait - spin in a loop –Idle wait - suspended until later This wait time keeps a multi CPU system from reaching its true potential, especially while in the dispatcher

25 Copyright © 1997 – 2014 Curt Hill Wait Problems A critical section guarded by a semaphore is a special case of resource allocation In order for a task to complete it has to ask for and receive a resource –If it cannot, it is forced to wait This however allows for other problems

26 Copyright © 1997 – 2014 Curt Hill Deadlock Situation where tasks cannot get the resources they need Task A has resource 1 and is waiting for resource 2 Task B has resource 2 and is waiting for resource 1 Both are waiting for a situation that cannot be resolved

27 Copyright © 1997 – 2014 Curt Hill The Dining Philosophers Problem h

28 Copyright © 1997 – 2014 Curt Hill The Dining Philosophers Problem There is a round table with five philosophers, five plates of spaghetti and five forks A philosopher must have two forks to eat If at the same time they each reach out and take the fork nearest their right hand there is deadlock

29 Copyright © 1997 – 2014 Curt Hill Traffic Deadlock

30 Copyright © 1997 – 2014 Curt Hill Deadlock Is it a programmer problem or a operating system problem? Both.

31 Copyright © 1997 – 2014 Curt Hill Operating System Response Operating system should be able to detect a deadlock Usual solution is to cancel jobs until something can proceed Ability to reclaim a resource also required

32 Copyright © 1997 – 2014 Curt Hill Programmer Planning Programmer should avoid situations that might lead to it: Do not wait for a resource while holding a resource


Download ppt "Copyright © 1997 – 2014 Curt Hill Concurrent Execution of Programs An Overview."

Similar presentations


Ads by Google