Materiale scritto a nizza
[gapil.git] / prochand.tex
index 7ce8852ff95dbc841d50d4c5eab1359f2ad4e263..50084035037e37f61c000910e8d81fd6114b93bf 100644 (file)
@@ -1,6 +1,6 @@
 %% prochand.tex
 %%
-%% Copyright (C) 2000-2007 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2009 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",
@@ -144,6 +144,9 @@ fig.~\ref{fig:proc_task_struct}.
   \label{fig:proc_task_struct}
 \end{figure}
 
+% TODO la task_struct è cambiata per qualche dettaglio vedi anche
+% http://www.ibm.com/developerworks/linux/library/l-linux-process-management/
+
 Come accennato in sez.~\ref{sec:intro_unix_struct} è lo \itindex{scheduler}
 \textit{scheduler} che decide quale processo mettere in esecuzione; esso viene
 eseguito ad ogni system call ed ad ogni interrupt,\footnote{più in una serie
@@ -161,7 +164,7 @@ periodico secondo la frequenza specificata dalla costante
 valore è espresso in Hertz.\footnote{a partire dal kernel 2.6.21 è stato
   introdotto (a cura di Ingo Molnar) un meccanismo completamente diverso,
   detto \textit{tickless}, in cui non c'è più una interruzione periodica con
-  frequenza prefissata, ma ad ogni chiamata del time viene programmata
+  frequenza prefissata, ma ad ogni chiamata del timer viene programmata
   l'interruzione successiva sulla base di una stima; in questo modo si evita
   di dover eseguire un migliaio di interruzioni al secondo anche su macchine
   che non stanno facendo nulla, con un forte risparmio nell'uso dell'energia
@@ -1235,7 +1238,10 @@ campi:
 \item[\var{si\_status}] con lo stato di uscita del figlio o con il segnale che
   lo ha terminato, fermato o riavviato.
 \item[\var{si\_code}] con uno fra \const{CLD\_EXITED}, \const{CLD\_KILLED},
-  \const{CLD\_STOPPED}, \const{CLD\_CONTINUED} (vedi tab.~\ref{xxx_si_code}).
+  \const{CLD\_STOPPED}, \const{CLD\_CONTINUED}, \const{CLD\_TRAPPED} e
+  \const{CLD\_DUMPED} a indicare la ragione del ritorno della funzione,
+  rispettivamente: uscita normale, terminazione da segnale, processo fermato,
+  processo riavviato, processo terminato in \textit{core dump}.
 \end{basedescript}
 
 %TODO mettere riferimento alla tabella giusta (vedere man credentials e man
@@ -2887,6 +2893,11 @@ fintanto che esso si trova in uno qualunque degli altri stati.
     \textbf{Zombie}\index{zombie} & \texttt{Z} & Il processo è terminato ma il
                                     suo stato di terminazione non è ancora
                                     stato letto dal padre. \\
+    \textbf{Killable}& \texttt{D} & Un nuovo stato introdotto con il kernel
+                                    2.6.25, sostanzialmente identico
+                                    all'\textbf{Uninterrutible Sleep} con la
+                                    sola differenza che il processo può
+                                    terminato (con \const{SIGKILL}). \\ 
     \hline
   \end{tabular}
   \caption{Elenco dei possibili stati di un processo in Linux, nella colonna