next up previous contents index return to home!
Next: Supporto di Sistema Up: Sistemi Multiprogrammati Previous: Sistemi Multiprogrammati   Indice   Indice analitico

Concetti Fondamentali

Come accennato, un sistema concorrente permette l'esecuzione contemporanea di varie attività tramite multiprocessing o multithreading: andiamo allora a capire cosa si intende con questi concetti.

Si definisce algoritmo il procedimento logico seguito per risolvere un determinato problema. Tale algoritmo può essere descritto tramite un opportuno formalismo (chiamato linguaggio di programmazione), in modo da poter essere eseguito su un elaboratore. Tale codifica di un algoritmo, espressa tramite un linguaggio di programmazione è detta programma.

L'esecuzione di un programma può essere di tipo sequenziale, oppure può essere composta da più attività che eseguono in parallelo. In questo secondo caso (programma concorrente), le varie attività che eseguono in parallelo devono essere opportunamente sincronizzate fra loro e necessitano di comunicare e cooperare al fine di portare a termine il proprio scopo. Il modo in cui tali attività concorrenti cooperano e comunicano le distingue fra processi e thread.

I processi sono caratterizzati da un insieme di risorse private, fra cui gli spazi di memoria, per cui un processo non può accedere allo spazio di memoria di un altro per comunicare con esso. Per questo motivo, i processi si sincronizzano e comunicano fra loro tramite scambio di messaggi. Viceversa i thread condividono varie risorse, fra cui lo spazio di memoria, per cui possono comunicare tramite memoria comune, e sincronizzarsi tramite semafori.


next up previous contents index
Next: Supporto di Sistema Up: Sistemi Multiprogrammati Previous: Sistemi Multiprogrammati   Indice   Indice analitico
Giuseppe Lipari 2002-10-27