| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  24-07-2006, 08:22 | #1 | 
| Senior Member Iscritto dal: Apr 2000 Città: Strada in Chianti, Firenze 
					Messaggi: 12998
				 | 
				
				[PROGRAMMAZIONE CONCORRENTE] - Critical section con SWAP
			 
		Ciao ragazzi, un aiuto per un esame universitario... programmazione per modo di dire insomma. Praticamente devo implementare una sezione critica usando una funzione di swap Codice: (EX(V1,V2) Codice: <tmp := V1; V1 := V2; V2 := tmp> Io ho una soluzione ma il professore dice che è sbagliata. Chi mi aiuta?  Grazie!   
				__________________  | 
|   |   | 
|  24-07-2006, 09:52 | #2 | |
| Senior Member Iscritto dal: Dec 2000 Città: bologna 
					Messaggi: 1309
				 | Quote: 
   | |
|   |   | 
|  24-07-2006, 10:40 | #3 | |
| Senior Member Iscritto dal: Apr 2000 Città: Strada in Chianti, Firenze 
					Messaggi: 12998
				 | Quote: 
 Codice: int ts(k)
{
int ris = 1;
EX(ris, K);
return(ris);
}Il problema è che il professore mi dice che non si riesce a garantire che le istruzioni all'interno della graffa, sono atomiche. (ancora devo capire se si riferisce solo alla prima o a tutte, ma credo tutte visto che un'assegnamento è atomico a livello hw). Grazie. 
				__________________  | |
|   |   | 
|  24-07-2006, 11:48 | #4 | 
| Senior Member Iscritto dal: Apr 2000 Città: Strada in Chianti, Firenze 
					Messaggi: 12998
				 | 
		Insomma: secondo voi la soluzione sopra è corretta o no?   Un'altra possibile, trovata sul web, è questa: Codice: 
boolean lock = false;
boolean key;
process Pi {
while (true) {
key = true;
while (key = = true) 
     swap(lock,key);
CS
lock = false;
NCS
}
}
				__________________  | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 00:47.









 
		 
		 
		 
		






 
  
 



 
                        
                        










