Log in

View Full Version : test_and_set_lock



Kith
18th September 2007, 16:09
Qualcuno mi sa spiegare la funzione di questo comando?

test_and_set lock
load $R1, a
add $R1, 1
store a, $R1
unset lock

evita la sovrascrittura da parte di altri thread/processi? boh...

Axet
18th September 2007, 16:26
Inerentemente a cosa?

Non penso tu stia ancora facendo assembler, se quidni è riguardo ai sistemi operativi potrebbe essere qualcosa tipo i semafori o cmq politiche di accesso a risorse condivise tra più processi.

Il comando di preciso non so che faccia, ma se stai studiando quanto descritto sopra allora si tratta di quello imo :nod:

Rise-the-Sky
18th September 2007, 16:28
Qualcuno mi sa spiegare la funzione di questo comando?
test_and_set lock
load $R1, a
add $R1, 1
store a, $R1
unset lock
evita la sovrascrittura da parte di altri thread/processi? boh...

Serve per gestire l'accesso concorrente di + processi alla stessa risorsa.

Test_and_set è un operazione atomica di gestione di un semaforo che controlla lo stato del semaforo, se è SIGNAL lascia proseguire l'esecuzione e setta il semaforo a Wait, se è wait attende che qualcuno sblocchi la situazione.
Perchè è importantissimo che test_and_set sia atomica?
Perchè non fosse così il sistema stesso non funzionerebbe, in quanto 2 processi potrebbero 'vedere il semaforo verde' e quindi passare entrambi.

Unset provvede a rilasciare il semaforo ed eventualmente a far ripartire uno dei processi in attesa.

Axet
18th September 2007, 16:30
Serve per gestire l'accesso concorrente di + processi alla stessa risorsa.
Test_and_set è un operazione atomica di gestione di un semaforo che controlla lo stato del semaforo, se è SIGNAL lascia proseguire l'esecuzione e setta il semaforo a Wait, se è wait attende che qualcuno sblocchi la situazione.
Perchè è importantissimo che test_and_set sia atomica?
Perchè non fosse così il sistema stesso non funzionerebbe, in quanto 2 processi potrebbero 'vedere il semaforo verde' e quindi passare entrambi.
Unset provvede a rilasciare il semaforo ed eventualmente a far ripartire uno dei processi in attesa.

Sono un genio :nod:

Kith
18th September 2007, 16:33
Serve per gestire l'accesso concorrente di + processi alla stessa risorsa.
Test_and_set è un operazione atomica di gestione di un semaforo che controlla lo stato del semaforo, se è SIGNAL lascia proseguire l'esecuzione e setta il semaforo a Wait, se è wait attende che qualcuno sblocchi la situazione.
Perchè è importantissimo che test_and_set sia atomica?
Perchè non fosse così il sistema stesso non funzionerebbe, in quanto 2 processi potrebbero 'vedere il semaforo verde' e quindi passare entrambi.
Unset provvede a rilasciare il semaforo ed eventualmente a far ripartire uno dei processi in attesa.

più chiaro di così non se pote :D grassie



ps protacchia hai scoperto l'acqua fredda :gha:

Axet
18th September 2007, 16:34
più chiaro di così non se pote :D grassie



ps protacchia hai scoperto l'acqua fredda :gha:

Ao io i processi concorrenti li avevo fatti alle superiori, all'uni mica li abbiam visti ancora :D

Kith
18th September 2007, 16:59
quest'anno li vedrai a manetta, e comincerai a odiarli :sneer:

Hador
18th September 2007, 21:41
io sistemi concorrenti lo ho dato durante il corso e quindi senza teoria, quella di sistemi operativi la ho passata per culo :nod:
gg le van

Kith
18th September 2007, 21:43
la fortuna del boyscout :D

Hador
18th September 2007, 21:54
28 concorrenti :nod:

Kith
18th September 2007, 21:56
allora cè anche un pizzico di nerdaggine nello studio

Hador
19th September 2007, 00:26
va cmq che ci mettono dentro una marea di esercizi stronzissimi, soprattutto su unix... tipo 6 righe di comandi dove in realtà l'unico che fa qualcosa è il primo e cose così