vault backup: 2025-03-03 08:47:47

This commit is contained in:
Marco Realacci 2025-03-03 08:47:47 +01:00
parent 2a916e0bfc
commit 7fc8767934

View file

@ -2,4 +2,20 @@ A **sequential algorithm** is the formal description of the behavior of an *abst
A **program** is a sequential algorithm written in a programming language.
A **process** is a program executed on a *concrete* machine, characterized by its *state* (values of the registers). If the process follows one single control flow
A **process** is a program executed on a *concrete* machine, characterized by its *state* (values of the registers). If the process follows one single control flow (i.e. one program counter) then it is a **sequential process**, or thread.
A set of sequential state machines that run simultaneously and interact through shared memory through a *shared medium* is called **concurrency**.
In a concurrent system there must be something shared.
##### Advantages of concurrent systems:
- efficiency: run in parallel different stuff
- simplification of the logic by dividing the task in simpler tasks, running them in different processes and combining the results together.
### Features of a concurrent system
We can assume many features:
- Reliable vs Unreliable
- Synchronous vs Asynchronous
- Shared memory vs Channel-based communication
**Reliable** system: every process correctly executes its program
**Async**