Perplessità su multiThread

Pubblicità

gaiapuffo

Utente Attivo
Messaggi
310
Reazioni
7
Punteggio
39
Ciao sto frequentando il corso di sistemi operativi e siamo arrivati ai multithread e ho dei dubbi:

  • Economia Assegnare memoria e risorse per la creazione di nuovi processi è costoso poiché i thread condividono le risorse del processo a cui appartengono,è molto più conveniente creare thread e gestirne i cambi di contesto.


    Non ho capito cosa intende...sul libro inoltre vi è scritto I thread condividono
    la sezionedel codice,la sezione dei dati e altre risorse di sistema, come ifile aperti e i segnali.

    Ma cosa vuol dire..io so che condividono la stessa memoria dati ma la sezione di codice?Cioè i thread sono più programmi che condividono la stessa memoria dati...ma perchè dovrebbero essere più veloci da caricare?forse perchè nn si deve creare per ognuno la sezione dati?
 
Economia Assegnare memoria e risorse per la creazione di nuovi processi è costoso poiché i thread condividono le risorse del processo a cui appartengono,è molto più conveniente creare thread e gestirne i cambi di contesto.

dice che creare per ogni singolo core le risorse da gestire ed i processi da svolgere é piú lento che crearne uno e poi gestito da due thread

sul libro inoltre vi è scritto I thread condividono la sezionedel codice,la sezione dei dati e altre risorse di sistema, come ifile aperti e i segnali

questo chiarisce il concetto di prima.. il codice da usare per il processo e tutti i vari registri sono condivisi tra i thread.. altrimenti dovrebbero essere creati per ogni core e poi ad ogni modifica, modificarlo su tutti!

spero di aver chiarito qualcosina :)
 
Semplicemente perché la parte condivisa non va copiata in una nuova area di memoria (fork) ma viene, passami il termine, "linkata" al thread.
Usare i thread permette quindi di risparmiare memoria e facilita il controllo e lo scambio di informazioni col processo padre.
Il multithread permette di eseguire "simultaneamente" più operazioni su un medesimo dato/file con facilità. Fare lo stesso con i processo porta molte più complicazioni, una tra tutte potrebbe essere l'accesso al dato/file.
 
altrimenti dovrebbero essere creati per ogni core e poi ad ogni modifica, modificarlo su tutti!
attenzione, che di multithreading si può parlare anche in sistemi single-core. Pensa agli elaboratori di qualche anno fa...
Qua si parla di thread layer utente, perciò entra in gioco lo scheduler con la prelazione.

Quello di suddividere il lavoro su più core e di preoccuparsi su chi sta accedendo ad un file o meno (problemi di competizione) è un qualcosa di diverso, layer kernel e più affacciato sull'hardware :)
 
Ultima modifica da un moderatore:
a ok per adesso va bene cosi il prof ha fatto solo un introduzioni..io logicamente ho letto dal libro ma questo parte iniziale nn era tanto chiara..cmq ho compreso di più se incontro difficoltà vi farò sapere:))
 
Pubblicità
Pubblicità
Indietro
Top