13.1 - 13.1 Concurrency simultaneous execution at...

Info iconThis preview shows pages 1–8. Sign up to view the full content.

View Full Document Right Arrow Icon
1 13.1 Concurrency simultaneous execution at instructional level (2 or more machine instrs) not discussed further (no language design issues) at statement level (2 or more source code lines) at unit level (2 or more subprogram units) at program level (2 or more programs) also not discussed (same reason)
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 types of concurrency physical concurrency : subprograms running on separate processors logical concurrency : sharing one processor, but seeming concurrent
Background image of page 2
3 purpose increase programming flexibility originally in operating systems simulation of physical systems that have concurrent subsystems distributing data over multiple memories so that some statements can operate simultaneously (statement level concurrency)
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 13.1.1 Multiprocessor Architecture 1950's: one general-purpose processor and several peripheral processors for IO early 1960s: multiple complete processors for program-level concurrency mid-60s: several identical partial processors (such as ALUs) for machine level concurrency now: many different kinds of multiprocessor computers
Background image of page 4
5 SIMD SIMD: Single-Instruction-Mutiple-Data architecture have multiple processors that execute the same instruction simultaneously, each on different data each processor has its own local memory one processor controls the others no synchronization required typically used in vector processors
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
6 MIMD Multiple-Instruction-Multiple-Data: multiple processors that operate independently but whose operations can be synchronized each processor executes its own instruction stream => support for unit-level concurrency distributed-memory MIMD machines (each processor has its own memory) can be in one box or distributed shared-memory MIMD machines require synchronization to prevent memory clashes
Background image of page 6
7 13.2 Intro to Subprog.-level concur. task: unit of program that can be in concurrent execution with others can have one thread of control sometimes called process differs from subprogram in that can be implicitly started (i.e., without a “call”) the invoker need not wait for completion when task is completed, control need not return to the invoker
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 8
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 27

13.1 - 13.1 Concurrency simultaneous execution at...

This preview shows document pages 1 - 8. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online