|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5749
|
[UNIX] I-node e tabelle dei file.. come funziona?
Rieccomi con un altro problemuccio.
Sto cercando di risolvere questo esercizio sul funzionamento del file system unix. La prima parte mi risulta piuttosto facile, basta seguire le indicazioni date dagli i-node e si arriva a costruire la struttura delle directory. Poi è solo una questione seguire le inidcazioni al puntatore di ogni file. La seconda parte invece, quella delle tabelle proprio non mi è chiara. Sto leggendo la teoria da più fonti e appunti ma non ne esco proprio. Qualcuno mi spiega come si arriva al completamento, che poi dovrebbe essere una simulazione di come evolvono le tabelle dei file quando vengono usati dai processi. Codice:
int main ( ) { /* processo P */
/∗ dichiarazioni varie ∗/
fd1 = open ("/cat1/cat3/file1", O_RDONLY);
read (fd1, bufP1, 5);
fd2 = open ("/cat1/cat3/file2", O_RDONLY);
read (fd2, bufP2, 4);
pid = fork ( );
if (pid == 0) { /* processo Q */
read (fd2, bufQ, 6);
pid = fork ( );
if (pid == 0) { /* processo R */
fd3 = open ("/cat1/cat2/file3", O_RDONLY);
read (fd3, bufR3, 6);
close (fd1);
lseek (fd2, -2, 1);
/* 1 = riferimento relativo alla posizione corrente∗/
read (fd2, bufR2, 5);
exit (0);
} /∗ fine R ∗/
...
} /∗ fine Q ∗/
...
} /∗ fine P ∗/
• dopo l’esecuzione della prima fork è andato in esecuzione subito il processo Q • dopo l’esecuzione della seconda fork è andato in esecuzione subito il processo R • il processo R ha eseguito la seconda funzione read (ma non ha ancora eseguito la funzione exit) Il contenuto del volume durante l’esecuzione del processo è il seguente. Nota Bene: lo i-node associato alla directory radice ( / ) ha 0 come i-number; le directory contengono coppie <i-node, nome file>. Tab. i-node: <0,dir,8>,<3,dir,20>,<4,dir,12>,<5,dir,17>,<11,norm,75>,<18,norm,80>,<30,norm,90> Blocco 8: …< 1, dev >, < 3, cat1> … Blocco 12: …< 11, file1> … <18, file2>… Blocco 17: …< 30, file3> Blocco 20: …< 4, cat3 > … <5, cat2>… Blocco 75: ABCDEFGHI Blocco 80: AlfaBetaGammaDelta Blocco 90: PQRSTUVZ a) Indicare il contenuto, all’istante T, delle variabili seguenti: bufP1: ABCDE_____________ bufP2: Alfa______________ bufQ: BetaGa___________ bufR2: Gamma_______________ bufR3: PQRSTU_____________ Poi mi propone questo punto ![]() Grazieee
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5749
|
Nessuno mi sa aiutare, magari spiegandomi cosa succede alle tabelle quando un processo apre un file?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:50.




















