Qualcuno potrebbe spiegarmi il funzionamento e le differenze delle operazioni di cui sopra in multi-threading?confronta e sostituisci con test e imposta
risposta
test-and-set
modifica il contenuto di una posizione di memoria e restituisce il suo vecchio valore come una singola operazione atomica.
compare-and-swap
confronta atomicamente il contenuto di una locazione di memoria per un determinato valore e, solo se sono uguali, modifica il contenuto di quella locazione di memoria di un dato nuovo valore.
La differenza contrassegnata in grassetto.
Test e set opera su un bit, confronta e sostituisce su un campo a 32 bit.
Il sistema z/TPF favorisce l'utilizzo dell'istruzione di test e set (TS) perché spesso gli indicatori di blocco sono bit impostati per controllare l'accesso alle aree critiche del codice di sistema. L'istruzione test e set (TS) richiede meno registri rispetto all'istruzione di confronto e scambio (CS) e richiede meno tempo di esecuzione perché è necessario impostare solo un singolo byte.
e, ho trovato questi materiali da: http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html
si può imparare di più su TSL con il libro intitolato "sistema operativo moderno, Capitolo 2" ...
Dal 'compare-and-swap' fa più lavoro di 'test-and-set' ci vuole più tempo di' test-and-set'? – arunmoezhi
@arunmoezhi, dipende dall'implementazione. –
Potete per favore elaborare. Il motivo per cui sono interessato a questo è se test-and-set è più veloce allora posso modificare il mio algoritmo per usarlo invece di confrontare-e-swap – arunmoezhi