1. Processi:
- Ogni processo ha il proprio spazio, dati e risorse di indirizzi.
- Sono entità indipendenti e comunicano attraverso meccanismi come tubi, prese e memoria condivisa.
- Il kernel UNIX passa rapidamente tra i processi, dando l'illusione dell'esecuzione parallela.
2. Discussioni:
- I thread sono processi leggeri che condividono lo stesso indirizzo e le stesse risorse.
- Offrono un modo più efficiente per implementare la concorrenza rispetto ai processi, poiché hanno meno sovraccarico.
- I thread possono essere creati e gestiti utilizzando librerie come i thread POSIX (PThread).
Concetti chiave:
- Time Affection: La CPU assegna una piccola fetta di tempo a ciascun processo o thread, passando rapidamente tra di loro.
- multiplexing: Il kernel gestisce molteplici attività interleassando la loro esecuzione, dando l'impressione di esecuzione parallela.
- Sincronizzazione: Meccanismi come mutex, semafori e variabili di condizione vengono utilizzati per coordinare l'accesso alle risorse condivise tra compiti simultanei.
- comunicazione inter-Process (IPC): Metodi come tubi, prese e memoria condivisa consentono i processi di scambiare dati e sincronizzare le loro operazioni.
Vantaggi della concorrenza in Unix:
- Resavività migliorata: Gli utenti possono interagire con il sistema mentre altre attività sono in esecuzione.
- Aumento della throughput: Più attività possono essere eseguite contemporaneamente, migliorando le prestazioni complessive del sistema.
- Condivisione delle risorse: Multiple attività possono condividere le stesse risorse, riducendo le spese generali di memoria e migliorando l'efficienza.
Esempi di concorrenza in Unix:
- Processi di fondo: Attività come la stampa o il download di file possono essere eseguiti in background mentre l'utente interagisce con altre applicazioni.
- Server Web: Più richieste client possono essere gestite contemporaneamente da un singolo processo del server Web.
- Sistemi di database: Le transazioni concomitanti assicurano che l'integrità dei dati venga mantenuta mentre più utenti accedono al database.
Nota: Mentre la concorrenza in Unix fornisce l'illusione dell'esecuzione parallela, il vero parallelismo richiede più CPU.
sistemi © www.354353.com