You are on page 1of 7

Principles of concurrency

By Goup2
Introduction?

What is concurrency?
Concurrency is an application performance technique that
encompasses the ability to load and execute multiple runnable
programs. Each of these programs may be an application process
that does not necessarily execute on the central processing unit
(CPU) at the same instance; even their runtimes may overlap
(Gregg, 2021).
A concurrent system supports more than one (1) task by allowing
all the tasks to make progress. Concurrency involves an array of
design issues, including process communication, accessing and
sharing of resources, synchronization of activities of multiple
processes, and allocation of processor time to different processes.
Concurrency can be viewed based on the following contexts:
1. Multiple applications 2. Structured
applications

3. Operating system structure


The important terminologies related to concurrency

• Atomic operation – It is a function or an action implemented as a


sequence of one (1) or more instructions that appear to be
indivisible, wherein no other process can see an intermediate state
or interrupt the operation. In this operation, the sequence of
instruction is guaranteed to execute as a group, or not execute at all,
having no visible effect on the system state. Note that the concept
of atomicity guarantees isolation from concurrent processes.
• Critical section – It is a section of code within a process that requires
access to shared resources, and must not be executed while other
process is in a corresponding section of code. Atomic operation Critical section
• Race condition – It is a situation in which multiple threads or
processes read and write a shared data item, and the final result
depends on the relative timing of their execution.
• Starvation – It is a situation in which a runnable process is
overlooked indefinitely by the scheduler. Although the process is
able to proceed, it is never chosen.

Race condition Starvation


In a single-processor multiprogramming system, processes are interleaved in time to
yield the appearance of simultaneous execution. Even actual parallel processing is
not achieved, and there is an overhead in switching back and forth between
processes, interleaved execution provides a major benefit in processing efficiency
and program structuring.
It is possible to classify how processes interact based on the degree of their
awareness about the other existing processes (Stallings, 2018).
• Competition: Processes unaware of each other – This comprises independent
processes that are not intended to work together, which can either be batch jobs,
interactive sessions, or a mixture of both. Some of the potential control problems in
this process interaction set-up are mutual exclusion, deadlock, and starvation. The
best example of this situation is the multiprogramming of multiple independent
processes. • Cooperation by sharing: Processes indirectly aware of each other – This
involves processes that are not necessarily aware of each other by their respective
process identifications but shares access to some objects. The result of one (1)
process may depend on the information obtained from the other processes. Some of
the potential control problems in this process interaction set-up are mutual
exclusion, deadlock, starvation, and data coherence.
• Cooperation by communication: Processes directly aware of each other – This
encompasses processes that are able to communicate with each other by process
identification and that are designed to work jointly on some activity. Some of the
potential control problems in this process interaction set-up are deadlock and
starvation.
The operating system (OS) concerns that are raised by
the existence of concurrency (Stallings, 2018):

1. The OS must be able to keep track of the various processes through the
utilization of process control blocks.
2. The OS must allocate and deallocate different resources for each active
process.
3. The OS must protect the data and physical resources of each process against
unintended interference by other processes.
4. The operation of a process, and the output it produces, must be independent
of the speed at which its execution is carried out relative to the speed of
other concurrent processes.
Group 2
• AGUANTA,REDEN MARCK JEFFERSON GENERALE
• CAGAOAN,FRANCIS LORENZO SALAVE
• FLORES,ADRIANNE CARL JALA
• LOREJO,JOMREY GISULGA
• PINERA,ABE KAREV GOODWYN TALHA
• GONZALES,CESAR ANDREW ACHARON

You might also like