X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=ipc.tex;h=6d0cb5db711bc11a64bc331ffb429fb4dfed5bba;hb=5ac64ab2753cbd2198e9b5b17119134b5ef63bc6;hp=d4ab6c2f14ef873cbfd5c71654405d1cfe34ad87;hpb=1e4d83a2fbb6ea0d957d96ebde4ebb486f69cd37;p=gapil.git diff --git a/ipc.tex b/ipc.tex index d4ab6c2..6d0cb5d 100644 --- a/ipc.tex +++ b/ipc.tex @@ -2834,12 +2834,12 @@ condivisa (la funzione si bloccherà automaticamente se qualche client sta leggendo), poi (\texttt{\small 44}) si cancellano i valori precedentemente immagazzinati nella memoria condivisa con \func{memset}, e si esegue (\texttt{\small 45}) un nuovo calcolo degli stessi utilizzando la funzione -\func{DirScan}; infine (\texttt{\small 46}) si sblocca il mutex con +\myfunc{dir\_scan}; infine (\texttt{\small 46}) si sblocca il mutex con \func{MutexUnlock}, e si attende (\texttt{\small 47}) per il periodo di tempo specificato a riga di comando con l'opzione \code{-p} con una \func{sleep}. Si noti come per il calcolo dei valori da mantenere nella memoria condivisa si -sia usata ancora una volta la funzione \func{DirScan}, già utilizzata (e +sia usata ancora una volta la funzione \myfunc{dir\_scan}, già utilizzata (e descritta in dettaglio) in sez.~\ref{sec:file_dir_read}, che ci permette di effettuare la scansione delle voci della directory, chiamando per ciascuna di esse la funzione \func{ComputeValues}, che esegue tutti i calcoli necessari. @@ -2851,10 +2851,10 @@ ciascuna voce, per ottenerne i dati, che poi utilizza per incrementare i vari contatori nella memoria condivisa, cui accede grazie alla \index{variabili!globali} variabile globale \var{shmptr}. -Dato che la funzione è chiamata da \func{DirScan}, si è all'interno del ciclo -principale del programma, con un mutex acquisito, perciò non è necessario -effettuare nessun controllo e si può accedere direttamente alla memoria -condivisa usando \var{shmptr} per riempire i campi della struttura +Dato che la funzione è chiamata da \myfunc{dir\_scan}, si è all'interno del +ciclo principale del programma, con un mutex acquisito, perciò non è +necessario effettuare nessun controllo e si può accedere direttamente alla +memoria condivisa usando \var{shmptr} per riempire i campi della struttura \struct{DirProp}; così prima (\texttt{\small 6--7}) si sommano le dimensioni dei file ed il loro numero, poi, utilizzando le macro di tab.~\ref{tab:file_type_macro}, si contano (\texttt{\small 8--14}) quanti ce @@ -4277,7 +4277,7 @@ prende un valore identico a quello usato per creare il semaforo stesso con il semaforo viene effettivamente cancellato dal sistema soltanto quando tutti i processi che lo avevano aperto lo chiudono. Si segue cioè la stessa semantica usata con \func{unlink} per i file, trattata in dettaglio in -sez.~\ref{sec:file_link}. +sez.~\ref{sec:link_symlink_rename}. Una delle caratteristiche peculiari dei semafori POSIX è che questi possono anche essere utilizzati anche in forma anonima, senza necessità di fare @@ -4609,7 +4609,7 @@ testo alla terminazione di quest'ultimo. % LocalWords: dtime lpid cpid nattac shmall shmmax SHMLBA SHMSEG EOVERFLOW brk % LocalWords: memory shmat shmdt void shmaddr shmflg SVID RND RDONLY rounded % LocalWords: SIGSEGV nattch exit SharedMem ShmCreate memset fill ShmFind home -% LocalWords: ShmRemove DirMonitor DirProp chdir GaPiL shmptr DirScan ipcs NFS +% LocalWords: ShmRemove DirMonitor DirProp chdir GaPiL shmptr ipcs NFS % LocalWords: ComputeValues ReadMonitor touch SIGTERM dirmonitor unlink fcntl % LocalWords: LockFile UnlockFile CreateMutex FindMutex LockMutex SETLKW GETLK % LocalWords: UnlockMutex RemoveMutex ReadMutex UNLCK WRLCK RDLCK mapping MAP