projects
/
gapil.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rilettura e correzioni prima parte.
[gapil.git]
/
prochand.tex
diff --git
a/prochand.tex
b/prochand.tex
index 1a51f3c1644942f73aaa027d123ea9ac4159d0dc..fc5e47746ad46a1fbb237faa2d368bee530d915c 100644
(file)
--- a/
prochand.tex
+++ b/
prochand.tex
@@
-1,6
+1,6
@@
%% prochand.tex
%%
%% prochand.tex
%%
-%% Copyright (C) 2000-201
5
by Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-201
8
by 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",
%% 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",
@@
-1325,7
+1325,7
@@
Tratteremo nei dettagli la struttura \struct{siginfo\_t} ed il significato dei
suoi vari campi in sez.~\ref{sec:sig_sigaction}, per quanto ci interessa qui
basta dire che al ritorno di \func{waitid} verranno avvalorati i seguenti
campi:
suoi vari campi in sez.~\ref{sec:sig_sigaction}, per quanto ci interessa qui
basta dire che al ritorno di \func{waitid} verranno avvalorati i seguenti
campi:
-\begin{basedescript}{\desclabelwidth{
2.0
cm}}
+\begin{basedescript}{\desclabelwidth{
1.8
cm}}
\item[\var{si\_pid}] con il \ids{PID} del figlio.
\item[\var{si\_uid}] con l'\textsl{user-ID reale} (vedi
sez.~\ref{sec:proc_perms}) del figlio.
\item[\var{si\_pid}] con il \ids{PID} del figlio.
\item[\var{si\_uid}] con l'\textsl{user-ID reale} (vedi
sez.~\ref{sec:proc_perms}) del figlio.
@@
-2142,10
+2142,10
@@
si ottengono i privilegi necessari per accedere ai file, mantenendo quelli
originari per quanto riguarda tutti gli altri controlli di accesso, così che
l'utente non possa inviare segnali al server NFS.
originari per quanto riguarda tutti gli altri controlli di accesso, così che
l'utente non possa inviare segnali al server NFS.
-Le due funzioni di sistema usate
per cambiare questi identificatori sono
-\funcd{setfsuid} e \funcd{setfsgid}, ed ovviamente sono specifiche di Linux e
-non devono essere usate se si intendono scrivere programmi portabili; i loro
-prototipi sono:
+Le due funzioni di sistema usate
appositamente per cambiare questi
+identificatori sono \funcd{setfsuid} e \funcd{setfsgid} ovviamente sono
+specifiche di Linux e non devono essere usate se si intendono scrivere
+pro
grammi portabili; i loro pro
totipi sono:
\begin{funcproto}{
\fhead{sys/fsuid.h}
\begin{funcproto}{
\fhead{sys/fsuid.h}
@@
-2864,8
+2864,8
@@
errore \errcode{EINVAL}, questo valore infatti non ha niente a che vedere con
la priorità dinamica determinata dal valore di \textit{nice}, che deve essere
impostato con le funzioni viste in precedenza.
la priorità dinamica determinata dal valore di \textit{nice}, che deve essere
impostato con le funzioni viste in precedenza.
-Lo standard POSIX.1b prevede
inoltre che l'intervallo dei valori delle
-
priorità
statiche possa essere ottenuto con le funzioni di sistema
+Lo standard POSIX.1b prevede
che l'intervallo dei valori delle priorità
+statiche possa essere ottenuto con le funzioni di sistema
\funcd{sched\_get\_priority\_max} e \funcd{sched\_get\_priority\_min}, i cui
prototipi sono:
\funcd{sched\_get\_priority\_max} e \funcd{sched\_get\_priority\_min}, i cui
prototipi sono:
@@
-2962,8
+2962,8
@@
corrente. Benché la funzione sia utilizzabile anche con processi sottoposti a
politica ordinaria essa ha senso soltanto per quelli \textit{real-time}, dato
che per i primi la priorità statica può essere soltanto nulla. La
disponibilità di entrambe le funzioni può essere verificata controllando la
politica ordinaria essa ha senso soltanto per quelli \textit{real-time}, dato
che per i primi la priorità statica può essere soltanto nulla. La
disponibilità di entrambe le funzioni può essere verificata controllando la
-macro \macro
d{\_POSIX\_PRIORITY\_SCHEDULING} che è definita
-
nell'\textit{header
file} \headfiled{sched.h}.
+macro \macro
{\_POSIX\_PRIORITY\_SCHEDULING} che è definita nell'\textit{header
+
file} \headfiled{sched.h}.
Se invece si vuole sapere quale è politica di \textit{scheduling} di un
processo si può usare la funzione di sistema \funcd{sched\_getscheduler}, il
Se invece si vuole sapere quale è politica di \textit{scheduling} di un
processo si può usare la funzione di sistema \funcd{sched\_getscheduler}, il
@@
-3065,7
+3065,7
@@
una risorsa contesa con altri processi, e si vuole dare agli altri una
possibilità di approfittarne mettendoli in esecuzione, ma chiamarla senza
necessità, specie se questo avviene ripetutamente all'interno di un qualche
ciclo, può avere invece un forte impatto negativo per la generazione di
possibilità di approfittarne mettendoli in esecuzione, ma chiamarla senza
necessità, specie se questo avviene ripetutamente all'interno di un qualche
ciclo, può avere invece un forte impatto negativo per la generazione di
-\
itindex{contest~switch} \textit{contes
t switch} inutili.
+\
textit{contex
t switch} inutili.
\subsection{Il controllo dello \textit{scheduler} per i sistemi
\subsection{Il controllo dello \textit{scheduler} per i sistemi
@@
-3967,6
+3967,9
@@
Introdotta a partire dal kernel 2.4.21, solo su PowerPC.
% codice e dati, stack, brack pointer ecc. vedi
% http://git.kernel.org/linus/f606b77f1a9e362451aca8f81d8f36a3a112139e
% codice e dati, stack, brack pointer ecc. vedi
% http://git.kernel.org/linus/f606b77f1a9e362451aca8f81d8f36a3a112139e
+% TODO documentare ARCH_SET_CPUID e ARCH_GET_CPUID, introdotte con il kernel
+% 4.12, vedi https://lwn.net/Articles/721182/
+
\label{sec:prctl_operation}
\end{basedescript}
\label{sec:prctl_operation}
\end{basedescript}
@@
-4194,6
+4197,10
@@
elenco, che illustra quelle attualmente disponibili:\footnote{si fa
% \item[\constd{CLONE\_NEWPID}]
% \item[\constd{CLONE\_NEWUTS}]
% \item[\constd{CLONE\_NEWPID}]
% \item[\constd{CLONE\_NEWUTS}]
+
+% TODO trattare CLONE_NEWCGROUP introdotto con il kernel 4.6, vedi
+% http://lwn.net/Articles/680566/
+
\item[\constd{CLONE\_PARENT}]
\item[\constd{CLONE\_PARENT\_SETTID}]
\item[\constd{CLONE\_PID}]
\item[\constd{CLONE\_PARENT}]
\item[\constd{CLONE\_PARENT\_SETTID}]
\item[\constd{CLONE\_PID}]
@@
-4237,6
+4244,10
@@
elenco, che illustra quelle attualmente disponibili:\footnote{si fa
% http://lwn.net/Articles/531498/
% http://lwn.net/Articles/531498/
+% TODO trattare le funzioni di protezione della memoria pkey_alloc, pkey_free,
+% pkey_mprotect, introdotte con il kernel 4.8, vedi
+% http://lwn.net/Articles/689395/ e Documentation/x86/protection-keys.txt
+
%TODO trattare kcmp aggiunta con il kernel 3.5, vedi
% https://lwn.net/Articles/478111/
%TODO trattare kcmp aggiunta con il kernel 3.5, vedi
% https://lwn.net/Articles/478111/
@@
-4302,6
+4313,8
@@
elenco, che illustra quelle attualmente disponibili:\footnote{si fa
%TODO trattare membarrier, introdotta con il kernel 4.3
% vedi http://lwn.net/Articles/369567/ http://lwn.net/Articles/369640/
% http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5b25b13ab08f616efd566347d809b4ece54570d1
%TODO trattare membarrier, introdotta con il kernel 4.3
% vedi http://lwn.net/Articles/369567/ http://lwn.net/Articles/369640/
% http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5b25b13ab08f616efd566347d809b4ece54570d1
+% vedi anche l'ulteriore opzione "expedited" introdotta con il kernel 4.14
+% (https://lwn.net/Articles/728795/)
\section{Problematiche di programmazione multitasking}
\label{sec:proc_multi_prog}
\section{Problematiche di programmazione multitasking}
\label{sec:proc_multi_prog}
@@
-4477,8
+4490,8
@@
parte del programmatore.
In genere le funzioni di libreria non sono rientranti, molte di esse ad
esempio utilizzano variabili statiche, la \acr{glibc} però mette a
In genere le funzioni di libreria non sono rientranti, molte di esse ad
esempio utilizzano variabili statiche, la \acr{glibc} però mette a
-disposizione due macro di compilatore, \macro
d
{\_REENTRANT} e
-\macro
d
{\_THREAD\_SAFE}, la cui definizione attiva le versioni rientranti di
+disposizione due macro di compilatore, \macro{\_REENTRANT} e
+\macro{\_THREAD\_SAFE}, la cui definizione attiva le versioni rientranti di
varie funzioni di libreria, che sono identificate aggiungendo il suffisso
\code{\_r} al nome della versione normale.
varie funzioni di libreria, che sono identificate aggiungendo il suffisso
\code{\_r} al nome della versione normale.