Lines Matching refs:la
26 Il problema con la concorrenza
91 la stessa corsa critica. In questo caso, il thread che si avvicenda
92 nell'esecuzione potrebbe eseguire anch'esso la sezione critica.
140 non c'è la necessità di avere un *lock*.
143 allora gli spinlock disabilitano la prelazione; questo è sufficiente a
145 la prelazione equivalente ad un sistema multi-processore senza preoccuparci
148 Dovreste verificare sempre la sincronizzazione con le opzioni ``CONFIG_SMP`` e
154 per la sincronizzazione fra processi in contesto utente.
166 Per esempio: ``net/netfilter/nf_sockopt.c`` permette la registrazione
168 usando la funzione :c:func:`nf_register_sockopt()`. La registrazione e
169 la rimozione vengono eseguite solamente quando il modulo viene caricato
171 e la lista delle funzioni registrate viene consultata solamente quando
181 e secondo, la sezione critica potrebbe essere eseguita da un altro
195 (``include/linux/interrupt.h``), la quale impedisce ai softirq d'essere
229 in un tasklet ed avete la garanzia che nessun altro verrà eseguito sullo
244 delle prestazioni abbastanza da giustificarne la complessità aggiuntiva.
271 un'interruzione hardware, e secondo, la sezione critica potrebbe essere
286 (``include/asm/smp.h``), la quale impedisce a softirq/tasklet/BH d'essere
293 già disabilitate) e in un softirq (dove la disabilitazione delle interruzioni
299 :c:func:`spin_lock_irqsave()` è la funzione di sincronizzazione più generica
329 La tabella seguente illustra i requisiti **minimi** per la sincronizzazione fra
331 da un processore per volta, quindi non ci sono requisiti per la
334 la sincronizzazione è necessaria).
355 Table: Tabella dei requisiti per la sincronizzazione
369 Table: Legenda per la tabella dei requisiti per la sincronizzazione
405 Questo significa che possiamo usare i mutex per proteggere la nostra memoria
504 aggiungiamo, rimuoviamo od ispezioniamo la memoria: sia la struttura
521 Qui di seguito troverete la modifica nel formato *patch*: le righe ``-``
606 rende la sincronizzazione più complicata dato che non avviene più in un unico
817 di riferimenti) non cambino mai dopo la loro creazione. Se vogliamo permettere
827 - Si può decidere che ``cache_lock`` protegge solo la memoria stessa, ed
828 un altro *lock* è necessario per la protezione del nome.
833 - un *lock* che protegge l'infrastruttura (la lista ``cache`` di questo
936 tenterà di trattenere lo stesso *lock* due volte. Secondo, se la stessa
976 Gli stalli sono un problema, ma non così terribile come la corruzione dei dati.
1046 la velocità d'esecuzione di un pezzo di codice che necessita di
1047 sincronizzazione. La prima è la concorrenza: quante cose rimangono in attesa
1072 tempo possibile potrebbe richiedere la divisione in più *lock* per diverse
1084 Sia gli spinlock che i mutex hanno una variante per la lettura/scrittura
1096 nella pratica l'uso di ``rwlock_t`` non ne vale la pena.
1109 lettura significa che uno scrittore potrebbe cambiare la lista sotto al naso
1120 scritture. Questa garantisce che la prima operazione (impostare l'elemento
1122 prima che venga eseguita la seconda operazione (che sarebbe quella di mettere
1142 questo (la versione normale corrompe il vecchio oggetto, e non vogliamo che
1158 aspettare finché tutti i lettori che stanno attraversando la lista abbiano
1161 terminato. In alternative, potrebbe essere usata la funzione
1163 non terminano di ispezionare la lista.
1166 il seguente: innanzi tutto i lettori accedono alla lista solo fra la coppia
1167 :c:func:`rcu_read_lock()`/:c:func:`rcu_read_unlock()` che disabilita la
1169 la lista.
1173 dedurre che un qualsiasi lettore che abbia consultato la lista durante la
1174 rimozione abbia già terminato, quindi la *callback* viene eseguita. Il vero
1257 potrebbe essere quella di rendere la variabile ``atomic_t``, ma per l'uso
1261 Il risultato è che la funzione :c:func:`cache_find()` non ha bisogno di alcuna
1273 la prelazione, un chiamante che ha sempre la prelazione disabilitata fra le
1276 esporre la funzione :c:func:`__cache_find()` dichiarandola non-static,
1288 Un'altra tecnica comunemente usata per evitare la sincronizzazione è quella
1295 e quindi non sarebbe più necessaria la mutua esclusione. Vedere
1299 Il tipo di dato ``local_t``, la funzione :c:func:`cpu_local_inc()` e tutte
1341 spinlock o avete la prelazione disabilitata, mai. Questo significa che
1372 che la sua implementazione non è sicura in quel contesto.
1407 - ``Documentation/locking/spinlocks.txt``: la guida di Linus Torvalds agli
1416 per capire la sincronizzazione nei sistemi multi-processore.
1442 cambiati per disabilitare la prelazioni, anche su sistemi monoprocessore.
1459 identificare il processo con la macro ``current``. Da non confondere
1487 Un'interruzione software registrabile dinamicamente che ha la garanzia