PDA

View Full Version : [C] pid dei processi in sistemi diversi


Unrue
11-07-2008, 23:45
Ciao a tutti,
ho un dubbio sui pid dei processi. Sto lavorando su due macchine che hanno stesso sistema operativo (Linux), ma un disco condiviso. In queste due macchine ci sono dei processi che devono scrivere coccorrentemente in un file su tale disco. La domanda è questa: se io implemento il lock dei processi con la fnctl ad esempio, secondo me non ho la garanzia che due processi , uno su una macchina ed uno sull'altra, abbiano pid diverso. Il lock agirebbe solo sui processi che girano su quel sistema operativo, ma non su quelli dell'altra macchina.

In questo caso, come faccio a fare un lock a livello di entrambe le macchine? Grazie. :)

cavay
15-07-2008, 22:19
scusa ma non ho capito bene qual'è il problema...o almeno credo:
Il problema è il seguente?
2 processi su 2 macchine differenti scrivono in modo concorrenziale sullo stesso file(avendo il disco in comune). Bisogna gestire la concorrenza in modo tale che se il processo1 sta scrivendo ed il processo2 vorrebbe scrivere, il secondo deve attendere che il primo termina e viceverasa? Quindi gestire la concorrenza del tipo....data una parola composta da vocali e consonanti uno scrive le vocali e l'altro le consonanti sincronizzandosi?

ilsensine
16-07-2008, 09:20
Ciao a tutti,
ho un dubbio sui pid dei processi. Sto lavorando su due macchine che hanno stesso sistema operativo (Linux), ma un disco condiviso. In queste due macchine ci sono dei processi che devono scrivere coccorrentemente in un file su tale disco. La domanda è questa: se io implemento il lock dei processi con la fnctl ad esempio, secondo me non ho la garanzia che due processi , uno su una macchina ed uno sull'altra, abbiano pid diverso. Il lock agirebbe solo sui processi che girano su quel sistema operativo, ma non su quelli dell'altra macchina.

In questo caso, come faccio a fare un lock a livello di entrambe le macchine? Grazie. :)
Il pid è significativo solo nel pidspace corrente. Un advisory lock posto su un file viene onorato anche se sulla seconda macchina il processo ha accidentalmente lo stesso pid di chi esegue il lock.
Nota che questa evenienza può verificarsi su alcuni sistemi anche su una macchina singola, se vengono usati differenti namespace per i pid.