Skip to content

Concurrent Processing

2.1.5 Thinking concurrently · Paper 2 · 2 flashcards · 1 question

Definition
Concurrent processing means that more than one task is in progress at the same time: one task starts before another has finished. On a single core each task is given a slice of processor time in turn, which gives the appearance of the tasks running simultaneously. With more than one core, different tasks can be executed by different cores at the same instant.

Concurrent vs Parallel Processing

Key Point
FeatureConcurrent processingParallel processing
Hardware basisOne core is enough, shared by time-slicing; several cores can be used as wellNeeds more than one core or processor
Execution styleTasks overlap in time; on one core the processor switches rapidly between themTasks are executed at the same instant
SimultaneityApparent on one core, real across severalReal
Typical benefitResponsiveness with limited hardwareHigher throughput for independent workloads
Worked Example
Worked Example: Multitasking Computer

Tasks: browser, music player, software update.
Time slice (single core)BrowserMusicUpdate
1RunningWaitingWaiting
2WaitingRunningWaiting
3WaitingWaitingRunning
4RunningWaitingWaiting
Result (concurrent): each task progresses via rapid switching.
Core (multi-core)Assigned task
Core 1Browser
Core 2Music player
Core 3Software update
Result (parallel): tasks run truly simultaneously on different cores. This is still concurrent processing: running tasks in parallel is one way of achieving it.