[PLUTO-ildp] suggerimento traduzione SMP

CM contardm a gmail.com
Gio 29 Mar 2007 22:03:50 CEST


 > vi chiedo  cosa sia il .... "fine grain locked" ....

Ciao,

  il "fine grain locked" probabilmente lo si potrebbe tradurre in "lock 
a granularità fine".
 

Chiedo venia, ma per spiegarne il funzionamento anche stavolta ci scappa 
il "maestrino mode on":

qui si sta parlando di SMP (ovvero di processi elaborati in 
contemporanea), di gestione dei segnali, di interrupt e di "cose legate 
all'I/O" dove uno dei più grossi problemi è quello di garantire la 
consistenza e la coesistenza dei processi elaborati in contemporanea. 
Inoltre, "a naso", si sta parlando del caso in cui sono elaborati da un 
solo processore su di un Linux 2.2 (quindi ancora in "età puberale"), il 
multiprocessing simmetrico imporrà poi delle scelte radicalmente differenti.
   
Molto rozzamente, il lock funziona come una specie di semaforo: con lock 
attivo il processo aspetta il suo turno, altrimenti il processo può 
essere eseguito.

Di conseguenza, i programmatori possono scegliere tra due approcci:

- il "coarse grain lock" (coarse=grossolano, rozzo,), nel quale si 
blocca tutto all'inizio del codice, si eseguono tutte le istruzioni che 
servono e solo alla fine si rilascia il lock. E' facile e veloce da 
implementare, risolve a priori tutti i problemi di concorrenza, ma ha 
l'effetto di bloccare tutti gli altri processi per un tempo anche molto 
lungo.

- il "fine grain lock", nel quale si cerca il più possibile di limitare 
il numero di linee di codice per ogni singolo lock ed eventualmente 
moltiplicando il numero dei punti in cui i lock viene attivato, con 
tutte le implicazioni che questa scelta impone: codice più studiato e 
lineare, migliore progettazione di dove mettere i lock, ecc... ciò 
impone un maggiore rigore ed una maggiore cura del codice, ma il 
risultato è un funzionamento più fluido dell'intero sistema.


Scusate per la spiegazione molto di massima, per la quale in molte parti 
servirebbero delle puntualizzazioni, spero però di aver reso l'idea del 
concetto che vi sta alla base. Per una migliore comprensione del 
meccanismo questo è un ottimo link: 
http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/performance/chapter_4_section_3.html


Un saluto,

  Cont.



Maggiori informazioni sulla lista pluto-ildp