X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=6bbc00ce4c3889d033cf12e84a2c7adfb7c48a89;hp=5cdcf4285eb3be4889d213677f5c9be41ccc14cf;hb=c6998e1daad18f2bf10b0dbff8c7441139a27795;hpb=19a767ff841eb36a696db253f1c3cc26c1b2f3a2 diff --git a/fileadv.tex b/fileadv.tex index 5cdcf42..6bbc00c 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -1,6 +1,6 @@ %% fileadv.tex %% -%% Copyright (C) 2000-2017 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2018 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Un preambolo", @@ -1567,8 +1567,8 @@ sono state in discussione altre interfacce con le quali effettuare lo stesso tipo di operazioni; \textit{epoll} è in grado di operare sia in modalità \textit{level triggered} che \textit{edge triggered}. -La prima versione di \textit{epoll} prevedeva l'apertura di uno speciale file -di dispositivo, \texttt{/dev/epoll}, per ottenere un file descriptor da +La prima versione di \textit{epoll} prevedeva l'uso di uno speciale file di +dispositivo, \texttt{/dev/epoll}, per ottenere un file descriptor da utilizzare con le funzioni dell'interfaccia ma poi si è passati all'uso di apposite \textit{system call}. Il primo passo per usare l'interfaccia di \textit{epoll} è pertanto quello ottenere detto file descriptor chiamando una @@ -2192,9 +2192,9 @@ tal caso qualora vi fossero segnali pendenti questi resteranno tali, e potranno essere ricevuti normalmente una volta che si rimuova il blocco imposto con \func{sigprocmask}. -Oltre che con le funzioni dell'\textit{I/O multiplexing} l'uso del file -descriptor restituito da \func{signalfd} cerca di seguire la semantica di un -sistema unix-like anche con altre \textit{system call}; in particolare esso +Oltre a poter essere usato con le funzioni dell'\textit{I/O multiplexing}, il +file descriptor restituito da \func{signalfd} cerca di seguire la semantica di +un sistema unix-like anche con altre \textit{system call}; in particolare esso resta aperto (come ogni altro file descriptor) attraverso una chiamata ad \func{exec}, a meno che non lo si sia creato con il flag di \const{SFD\_CLOEXEC} o si sia successivamente impostato il @@ -2221,7 +2221,7 @@ successivo con \func{fcntl}. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{0.90\textwidth} + \begin{minipage}[c]{0.95\textwidth} \includestruct{listati/signalfd_siginfo.h} \end{minipage} \normalsize @@ -2251,8 +2251,8 @@ ad eventuali più segnali pendenti, fino al numero massimo di strutture \label{fig:fiforeporter_code_init} \end{figure} -Il contenuto di \struct{signalfd\_siginfo} ricalca da vicino quella della -analoga struttura \struct{siginfo\_t} (illustrata in +Il contenuto di \struct{signalfd\_siginfo} ricalca da vicino quella +dell'analoga struttura \struct{siginfo\_t} (illustrata in fig.~\ref{fig:sig_siginfo_t}) usata dall'interfaccia ordinaria dei segnali, e restituisce dati simili. Come per \struct{siginfo\_t} i campi che vengono avvalorati dipendono dal tipo di segnale e ricalcano i valori che abbiamo già @@ -4110,6 +4110,9 @@ file. % TODO trattare MAP_HUGETLB introdotto con il kernel 2.6.32, e modifiche % introdotte con il 3.8 per le dimensioni variabili delle huge pages +% TODO trattare MAP_FIXED_NOREPLACE vedi https://lwn.net/Articles/751651/ e +% https://lwn.net/Articles/741369/ + L'argomento \param{flags} specifica infine qual è il tipo di oggetto mappato, le opzioni relative alle modalità con cui è effettuata la mappatura e alle modalità con cui le modifiche alla memoria mappata vengono condivise o @@ -4909,7 +4912,9 @@ descriptor (si ricordi quanto visto in sez.~\ref{sec:file_adv_func}) con delle chiamate a \func{lseek}. % TODO trattare preadv2() e pwritev2(), introdotte con il kernel 4.6, vedi -% http://lwn.net/Articles/670231/ ed il flag RWF_HIPRI +% http://lwn.net/Articles/670231/ ed il flag RWF_HIPRI, anche l'aggiunta del +% flag RWF_APPEND a pwritev2 con il kernel 4.16, vedi +% https://lwn.net/Articles/746129/ \subsection{L'I/O diretto fra file descriptor: \func{sendfile} e