vault backup: 2025-03-08 17:31:57

This commit is contained in:
Marco Realacci 2025-03-08 17:31:57 +01:00
parent cdf5feb6c3
commit 414e2ab154
2 changed files with 12 additions and 12 deletions

View file

@ -13,12 +13,12 @@
"state": {
"type": "markdown",
"state": {
"file": "Concurrent Systems/notes/Lezione1.md",
"file": "Concurrent Systems/notes/1 - CS Basics.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Lezione1"
"title": "1 - CS Basics"
}
}
]
@ -215,7 +215,7 @@
"Concurrent Systems/notes/images/Pasted image 20250304090207.png",
"Concurrent Systems/notes/images/Pasted image 20250304084901.png",
"Concurrent Systems/notes/images/Pasted image 20250304084537.png",
"Concurrent Systems/notes/Lezione1.md",
"Concurrent Systems/notes/1 - CS Basics.md",
"Concurrent Systems/slides/class 1.pdf",
"Data and Network Security/slides/2025 - DNS - Lecture 2.pdf",
"Concurrent Systems/notes/images/Pasted image 20250303093116.png",

View file

@ -6,26 +6,26 @@
- 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.
>[!note]
*"In a concurrent system there must be something shared"*
##### Advantages of concurrent systems:
#### Advantages of concurrent systems
- efficiency: can run different stuff in parallel
- 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
#### 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
- **Reliable** system: every process correctly executes its program.
- **Asynchronous:** no timing assumption (every process has its own clock, which are independent one from the other).
- **Shared medium:** A way is through a shared memory area, another way is through message passing.
**Asynchronous:** no timing assumption (every process has its own clock, which are independent one from the other)
>[!info] For this part of the course we assume that every process has a local memory but can access a shared part of the memory. We will assume that memory is split into registers (will see later).
**Shared medium:** A way is through a shared memory area, another way is through message passing.
For this part of the course we assume that every process has a local memory but can access a shared part of the memory. We will assume that memory is split into registers (will see later).
For now, we will assume that processes won't fail.
**For now, we will assume that processes won't fail.**
We also assume that we have one processor per process. But actually the processor can be a shared resource (more processes than processors).
### Synchronization: cooperation vs competition