Newsgroup: it.comp.os.linux.iniziare
Titolo: Sull'accesso concorrente - Linux lo gestisce di default?

 agli stessi file da parte di più utenti.
Non credo  sia implementato a  livello di SO, credo  tu lo debba  fare a
livello di applicazione.
-- 
                                                                     __
 __                                                              _  ///
| _        Student in Computer Science, Swiss Federal Institute  \\///
|__|iambo      of Technology - mailto:
ggia...@iiic.ethz.ch
       \X/

 concorrente agli stessi file da parte di più utenti.
Se devi solo LEGGERE non ci sono problemi, apri il file e leggilo. Se
devi SCRIVERE anche e' assai piu' complicato.
Su Linux esiste il tradizionale "file locking" UNIX, anche Perl ha la
funzione flock per accedervi. Questo pero' non e' 100% portabile per
ovvie differenze di gestione dei file attraverso tutti i sistemi
operativi su cui Perl gira.
Un ulteriore problema e' che' questo meccanismo e' discrezionale,
cioe' i programmi possono essere educati ed obbedire o maleducati e
fragarsene. Questo vuol dire che tutti i programmi che accedono in
scrittura ad un file devono essere scritti con l'accesso concorrente
in mente. 
Un altro meccnismo di locking da poveracci che e' 100% portabile, ma
funziona solo se la tua applicazione e' l'unica ad usare i file in
questione, e' di creare un file vuoto che e' usato come segnale che un
altro file e' in uso. Cioe' chi deve accedere al file prima controlla
se il file spia esiste, se si' aspetta ricontrollando periodicamente,
se no prima lo crea (in modo che gli altri sappiano) e poi fa quel che
deve fare, e quando ha finito rimuove il file spia.
Magari col tempo ti viene voglia di installare Linux+Apache anche a da
te cosi' puoi fare le prove in tranquillita'!
Ciao,
-- 
Stefano - Hodie quinto Nonas Martias MMI est

 mio server di hosting?
Invia piu` richieste contemporanee?
-- 
Chiusura di Windows in corso.  Sto dando fuoco al computer... _/Davide\_
Ora si puo` spegnere il computer!  Se ci riuscite...          \Alberani/
   Cinereview: La tigre e il dragone: Ang Lee si droga!!! Voto: 6-
Per contattarmi: 
http://digilander.iol.it/alberanid/

 wrote in message
877l27f...@rerumnatura.zool.su.se...

Pero' cosi' c'e' un problema:
ho due processi A e B
A vede che il file spia non c'e'
Il kernel fa cambio di contesto e passa al processo B
B vede che il file spia non c'e'
B crea il file spia e accede in scrittura
Altro cambio di contesto, si torna ad A
A crea crea il file spia e accede in scrittura
Il problema e quello del "test and set atomico". Cioe' il controllo del lock
e il set di un eventuale flag (come il tuo file spia) deve essere atomico,
cioe' senza che venga fatto il cambio di contesto.
Ciao
Jojoz

 Il problema e quello del "test and set atomico".
Annosa questione, da cui il "da poveracci". Per questo e' meglio
flock, se possibile!


 concorrente agli stessi file da parte di piu` utenti.
Il  locking e`  supportato a  livello  di filesystem,  ma il  protocollo
di  locking lo  devi  implementare tu  nell'applicazione. Ovvero la  tua
applicazione dovrebbe prima  controllare la presenza ed il  tipo di lock
presenti  su un  file ed  agire  di conseguenza. Nulla  vieta` pero`  ad
un'altra  applicazione  di accedere  allo  stesso  file, nonostante  sia
lockato, saltando i  controlli. In perl puoi usare le  funzioni lock() e
flock().
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La somma dell'intelligenza sulla terra e' una costante.
La popolazione e' in aumento.