|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1338
|
Domande sullo sfruttamento dell multicore
Volevo sapere:
Basta che l'applicazine sia multithread perchè poi windows gestisca il carico su tutti i processori disponibili ? La memoria è una sola per tutti oppure a ciascun core ne è assegnata un po' ? Se tramite puntatore due thread in esecuzione su due diversi core cercano di accedere alla stessa area di memoria che succede ? |
![]() |
![]() |
![]() |
#2 | |||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
I processi però hanno spazi di indirizzamento diversi, separati. Mentre tutti i thread all'interno di un processo condividono lo stesso spazio di indirizzamento. Ogni core potrebbe anche avere delle memorie cache proprie. Quote:
Parlando in generale, l'accesso concorrente ad uno stato "mutabile" richiede una appropriata sincronizzazione tra i thread.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|||
![]() |
![]() |
![]() |
#3 | ||
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1338
|
Quote:
e il thread 2 usa un puntatore che punta alla stessa locazione di memoria. Sono sicuro che entrambi continuano a leggere in A lo stesso dato anche se il S.O. li ha messi su core differenti, giusto? Quote:
|
||
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Su Windows per la schedulazione dei thread ti puoi affidare allo scheduler del kernel oppure consigliargli di assegnare un dato thread ad un dato processore in modo da cercare di forzare la schedulazione dei thread (ad esempio in modo da modificarla in base alla quantità di processori presenti nel sistema). E' fondamentale quando si lavora sui thread conoscere buona parte della teoria su corse critiche, deadlock, mutua esclusione, semafori e le varie strutture che permettono una condivisione consistente dei dati fra thread. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:38.