Perplessità su multiThread

gaiapuffo

Utente Attivo
310
7
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?
 

blest90

Utente Attivo
583
55
CPU
AMD Phenom II x6 - 1090t @3.6 + Hyper tx3
Scheda Madre
Asus m5a78l-m-lx
HDD
Samsung 830 64GB + Barracuda - 500GB
RAM
Corsair DDR3 - 4GB - 1333MHz
GPU
MSI - HD 6950 2GB
Audio
Ampli Onkyo + Diamond 10.4 - JBL Control One surround - Centrale autocostruito - Sub Onkyo
Monitor
LG 26" FullHD
PSU
Corsair - CX600
Case
Vento A8
OS
W7 - 64bit
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 :)
 

Xfire

UTENTE LEGGENDARIO
Utente Èlite
11,068
1,386
CPU
Intel i7 4790k
Scheda Madre
Asrock z97 extreme 9
HDD
7,5 TB di HD vari
RAM
G.Skill TridentX 2400MHz 16GB
GPU
R9 390X Strix OC
Audio
ALC1150
Monitor
Viewsonic XG2401
PSU
HX850
Case
HAF 932
OS
ArchLinux_customx64 - W10x64
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.
 

blest90

Utente Attivo
583
55
CPU
AMD Phenom II x6 - 1090t @3.6 + Hyper tx3
Scheda Madre
Asus m5a78l-m-lx
HDD
Samsung 830 64GB + Barracuda - 500GB
RAM
Corsair DDR3 - 4GB - 1333MHz
GPU
MSI - HD 6950 2GB
Audio
Ampli Onkyo + Diamond 10.4 - JBL Control One surround - Centrale autocostruito - Sub Onkyo
Monitor
LG 26" FullHD
PSU
Corsair - CX600
Case
Vento A8
OS
W7 - 64bit
Fare lo stesso con i processo porta molte più complicazioni, una tra tutte potrebbe essere l'accesso al dato/file.


esatto, spesso si crea una "coda" di comandi perché il file da modificare é in uso da un altro core
 
D

deleted_98961

Ospite
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:

gaiapuffo

Utente Attivo
310
7
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:))
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili