Rimaneggiamenti vari (e precisazioni sull'AIO).
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 16 Jul 2002 15:45:51 +0000 (15:45 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 16 Jul 2002 15:45:51 +0000 (15:45 +0000)
fileadv.tex

index 591f1494453baa0b6ea51d51d13f5c518dd8d0bf..d744a758905558b00fe24189ce811a6b41c9a064 100644 (file)
@@ -158,12 +158,12 @@ In Linux \func{select} modifica anche il valore di \param{timeout}, settandolo
 al tempo restante; questo è utile quando la funzione viene interrotta da un
 segnale, in tal caso infatti si ha un errore di \macro{EINTR}, ed occorre
 rilanciare la funzione; in questo modo non è necessario ricalcolare tutte le
-volte il tempo rimanente.\footnote{questo però può causare problemi di
-  portabilità sia quando si trasporta codice scritto su Linux che legge questo
-  valore, sia quando si usano programmi scritti per altri sistemi che non
-  dispongono di questa caratteristica e ricalcolano \param{timeout} tutte le
-  volte. In genere la caratteristica è disponibile nei sistemi che derivano da
-  System V e non disponibile per quelli che derivano da BSD.}
+volte il tempo rimanente.\footnote{questo può causare problemi di portabilità
+  sia quando si trasporta codice scritto su Linux che legge questo valore, sia
+  quando si usano programmi scritti per altri sistemi che non dispongono di
+  questa caratteristica e ricalcolano \param{timeout} tutte le volte. In
+  genere la caratteristica è disponibile nei sistemi che derivano da System V
+  e non disponibile per quelli che derivano da BSD.}
 
 Come accennato l'interfaccia di \func{select} è una estensione di BSD; anche
 System V ha introdotto una sua interfaccia per gestire l'\textit{I/O
@@ -362,7 +362,6 @@ immediatamente il file evitando completamente l'uso di funzioni come
 sistema mantiene una coda per \macro{SIGIO}, in modo che arrivi un segnale per
 ogni file attivo.
 
-
 Benché la modalità di apertura asincrona di un file possa risultare utile in
 varie occasioni (in particolar modo con i socket e gli altri file per i quali
 le funzioni di I/O sono system call lente), essa è comunque limitata alla
@@ -373,20 +372,14 @@ insieme di funzioni dedicate, completamente separato rispetto a quelle usate
 normalmente.
 
 In generale questa interfaccia è completamente astratta e può essere
-implementata sia direttamente nel kernel, che attraverso l'uso di thread. Al
-momento\footnote{fino ai kernel della serie 2.4.x sono presenti solo le due
-  alternative citate, nella serie 2.5.x è però iniziato un lavoro completo di
-  riscrittura di tutto il sistema di I/O, che prevede anche l'introduzione di
-  un nuovo layer per l'I/O asincrono.} sono disponibili due implementazioni,
-una in user space, che è integrata nelle \acr{glibc}, ed una ibrida, che si
-appoggia ad una estensione del kernel (il cosiddetto KAIO, non incluso nella
-versione ufficiale) prodotta da SGI. Quest'ultima ha funzionalità più limitate
-ma prestazioni nettamente superiori.
-
-Alle funzioni definite essa si può accedere includendo \file{unistd.h} e
-definendo la macro \macro{\_POSIX\_ASYNCHRONOUS\_IO}, mentre alla
-implementazione di KAIO si accede includendo \file{linux/aio.h}; ambedue però
-usano la stessa interfaccia di programmazione.
+implementata sia direttamente nel kernel, che in user space attraverso l'uso
+di thread. Al momento\footnote{fino ai kernel della serie 2.4.x, nella serie
+  2.5.x è però iniziato un lavoro completo di riscrittura di tutto il sistema
+  di I/O, che prevede anche l'introduzione di un nuovo layer per l'I/O
+  asincrono.} esiste una sola versione stabile, quella delle \acr{glibc}, che
+è realizzata completamente in user space; esistono comunque vari progetti
+(come il KAIO della SGI, o i patch di Benjamin La Haise) che prevedono un
+supporto diretto all'interno del kernel.