9) La concorrenza.docx - Per questa lezione consigliabile lutilizzo in simultanea delle lezioni su unitelma messe a disposizione da g.corsi2 e dal suo

9) La concorrenza.docx - Per questa lezione consigliabile...

This preview shows page 1 - 3 out of 14 pages.

Per questa lezione è consigliabile l’utilizzo in simultanea delle lezioni su unitelma messe a disposizione da g.corsi2 e dal suo paninozzo3 Concorrenza Fin ora è stata ribadita l’importanza per un sistema operativo di supportare più processi in esecuzione e quindi, l’importanza di supportare: Multiprogrammazione Multiprocessamento (multiprocessing) Computazione distribuita Il problema principale di queste funzioni riguarda la gestione del modo in cui questi processi interagiscono, ed in questo caso possiamo distinguere due casi principali: Se c’è un solo processore : i processi si alternano nel suo uso (interleaving) Se c’è più di un processore : i processi si alternano (interleaving) nell’uso di un processore, e possono sovrapporsi nell0uso dei vari processori (overlapping) Durante l’esecuzione di questi processi è quasi inevitabile che vada a crearsi una forma di “Concorrenza”, che si manifesta in alcune occasioni: Applicazioni multiple (condivisioni di tempo di calcolo) Applicazioni strutturate per essere parallele (estensione della progettazione modulare) Struttura del sistema operativo (gli stessi Sistemi Operativi sono costituiti da svariati processi o thread in esecuzione parallela) Il programmatore per gestire in maniera ottimale queste concorrenze tra processi dovrà migliorare il sistema di condivisione ed allocazione delle risorse condivise, cosa non semplice in quanto il manifestarsi di errori potrebbe dipendere dallo scheduler e dagli altri processi presenti. Alcuni termini per comprendere meglio la gestione di queste concorrenze sono: Operazione atomica : Una sequenza indivisibile ed inarrestabile di comandi non visibili a nessun altro processo Sezione critica : Parte del codice di un processo in cui c’è un accesso esclusivo ad una risorsa condivisa (nessun altro processo può accedere in modo esclusivo alla stessa risorsa) Mutua esclusione : Requisito che impone che un solo processo sia in una data sezione critica (per risorsa condivisa) 58
Image of page 1
Per questa lezione è consigliabile l’utilizzo in simultanea delle lezioni su unitelma messe a disposizione da g.corsi2 e dal suo paninozzo3 Corsa critica (race condition) : Violazione della mutua esclusione (il risultato dipende dal modo in cui i processi si alternano). Si ottiene quando più processi o thread leggono e scrivono su una stessa risorsa condivisa e lo fanno in modo tale che lo stato finale della risorsa dipende dal loro ordine di esecuzione (il risultato dipende dal processo che finisce per ultimo). Stallo (deadlock) : Situazione nella quale due o più processi non possono procedere con la prossima istruzione, perché ciascun attende l’altro. Stallo attivo (livelock): Situazione nella quale due o più processi cambiano continuamente il proprio stato, l’uno in risposta all’altro, senza fare niente di utile Morte per fame (starvation): Un processo, pur essendo ready non viene mai accettato dallo scheduler Esempio di concorrenza : Programma che prende un carattere in input e lo conserva in una variabile che stamperà su schermo.
Image of page 2
Image of page 3

You've reached the end of your free preview.

Want to read all 14 pages?

  • Winter '18
  • Maselli
  • Sistema operativo, Processore, Destinatario

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes