Swappa : Uni / Sistemi Operativi
Creative Commons License

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 1 Thread

Pag 1

Sommario

Ciò che si farà in questa lezione sarà vedere i flussi di esecuzione in modo diverso, in particolare quando questi sono fortemente correlati.

Pag 2

Motivazioni

Tra le attività tipiche di un'applicazione ricordiamo:

In applicazioni ad alta disponibilità di servizio e basso tempo di risposta (ad esempio server web), la richiesta di esecuzioni di più flussi di controllo nello stesso processo per attività simili (magari anche da utenti diversi) potrebbe rappresentare - e spesso lo rappresenta - un problema.

Una soluzione semplice potrebbe essere attivare tanti processi che erogano il servizio quante sono le richieste dello stesso. Gli svantaggi sono evidenti:

Sarebbe dunque bello se operazioni similari su dati diversi operassero in modo più correlato, magari su un'area di memoria centrale condivisa.

Concetto di thread (1)

Sappiamo già che un processo è un flusso di esecuzione che ha un suo preciso spazio nella memoria centrale. Il thread è invece un gruppo di flussi di controllo autonomo sullo stesso programma che accedono alla stessa porzione di memoria centrale.

I processi possono essere dunque suddivisi in:

Pag 3

Concetto di thread (2)

Pur avendo in comune lo stesso codice, due thread diversi hanno comunque contesti specifici su cui operare (quindi registri e stack separati), in modo da poter eseguire operazioni diverse prese da parte diverse del codice. Se utilizzassero stesso stack e registri ovviamente eseguirebbero le stesse cose nello stesso momento.

La condivisione la porzione di dati del processo garantisce quella proprietà di memoria condivisa presupposta nel concetto stesso di thread. Occorre però una sincronizzazione tra i vari flussi, per evitare che leggano dati inconsistenti (perché ad esempio modificati da altri).

Benefici

Pag 4

Supporti di gestione

...


Torna alla pagina di Sistemi Operativi

(Printable View of http://www.swappa.it/wiki/Uni/SO-Mod3-2-Lez1)