Nota rimasta indietro
[gapil.git] / prochand.tex
index 6b527b79dfce74df87f8e315c2f416ad71ec95eb..cd5c04bd7fa5b8a7f6b4b178ab3865b69e3fddb3 100644 (file)
@@ -631,7 +631,7 @@ comune dopo l'esecuzione di una \func{fork} 
 \item i limiti sulle risorse (vedi sez.~\ref{sec:sys_resource_limit});
 \item il valori di \textit{nice}, le priorità real-time e le affinità di
   processore (vedi sez.~\ref{sec:proc_sched_stand},
 \item i limiti sulle risorse (vedi sez.~\ref{sec:sys_resource_limit});
 \item il valori di \textit{nice}, le priorità real-time e le affinità di
   processore (vedi sez.~\ref{sec:proc_sched_stand},
-  sez.~\ref{sec:proc_real_time} e sez.\ref{sec:proc_sched_multiprocess});
+  sez.~\ref{sec:proc_real_time} e sez.~\ref{sec:proc_sched_multiprocess});
 \item le variabili di ambiente (vedi sez.~\ref{sec:proc_environ}).
 \end{itemize*}
 Le differenze fra padre e figlio dopo la \func{fork} invece sono:
 \item le variabili di ambiente (vedi sez.~\ref{sec:proc_environ}).
 \end{itemize*}
 Le differenze fra padre e figlio dopo la \func{fork} invece sono:
@@ -648,7 +648,6 @@ Le differenze fra padre e figlio dopo la \func{fork} invece sono:
   per il figlio vengono cancellati.
 \end{itemize*}
 
   per il figlio vengono cancellati.
 \end{itemize*}
 
-
 Una seconda funzione storica usata per la creazione di un nuovo processo è
 \func{vfork}, che è esattamente identica a \func{fork} ed ha la stessa
 semantica e gli stessi errori; la sola differenza è che non viene creata la
 Una seconda funzione storica usata per la creazione di un nuovo processo è
 \func{vfork}, che è esattamente identica a \func{fork} ed ha la stessa
 semantica e gli stessi errori; la sola differenza è che non viene creata la
@@ -666,8 +665,9 @@ venne introdotta in BSD per migliorare le prestazioni.
 
 Dato che Linux supporta il \itindex{copy~on~write} \textit{copy on write} la
 perdita di prestazioni è assolutamente trascurabile, e l'uso di questa
 
 Dato che Linux supporta il \itindex{copy~on~write} \textit{copy on write} la
 perdita di prestazioni è assolutamente trascurabile, e l'uso di questa
-funzione (che resta un caso speciale della system call \func{\_\_clone}) è
-deprecato; per questo eviteremo di trattarla ulteriormente.
+funzione, che resta un caso speciale della system call \func{clone} (che
+tratteremo in dettaglio in sez.~\ref{sec:process_clone}) è deprecato; per
+questo eviteremo di trattarla ulteriormente.
 
 
 \subsection{La conclusione di un processo}
 
 
 \subsection{La conclusione di un processo}
@@ -742,8 +742,6 @@ che sia cos
 terminato; si potrebbe avere cioè quello che si chiama un processo
 \textsl{orfano}. 
 
 terminato; si potrebbe avere cioè quello che si chiama un processo
 \textsl{orfano}. 
 
-% TODO verificare il reparenting
-
 Questa complicazione viene superata facendo in modo che il processo orfano
 venga \textsl{adottato} da \cmd{init}. Come già accennato quando un processo
 termina, il kernel controlla se è il padre di altri processi in esecuzione: in
 Questa complicazione viene superata facendo in modo che il processo orfano
 venga \textsl{adottato} da \cmd{init}. Come già accennato quando un processo
 termina, il kernel controlla se è il padre di altri processi in esecuzione: in
@@ -2096,8 +2094,6 @@ attivi.  In particolare prenderemo in esame i vari meccanismi con cui viene
 gestita l'assegnazione del tempo di CPU, ed illustreremo le varie funzioni di
 gestione.
 
 gestita l'assegnazione del tempo di CPU, ed illustreremo le varie funzioni di
 gestione.
 
-% TODO: rivedere alla luce degli aggiornamenti del 2.6 (man sched_setscheduler)
-
 \subsection{I meccanismi di \textit{scheduling}}
 \label{sec:proc_sched}
 
 \subsection{I meccanismi di \textit{scheduling}}
 \label{sec:proc_sched}
 
@@ -2172,7 +2168,8 @@ fintanto che esso si trova in uno qualunque degli altri stati.
                                     2.6.25, sostanzialmente identico
                                     all'\textbf{Uninterrutible Sleep} con la
                                     sola differenza che il processo può
                                     2.6.25, sostanzialmente identico
                                     all'\textbf{Uninterrutible Sleep} con la
                                     sola differenza che il processo può
-                                    terminato (con \const{SIGKILL}).\\ 
+                                    terminato con \const{SIGKILL} (usato per
+                                    lo più per NFS).\\ 
     \hline
   \end{tabular}
   \caption{Elenco dei possibili stati di un processo in Linux, nella colonna
     \hline
   \end{tabular}
   \caption{Elenco dei possibili stati di un processo in Linux, nella colonna
@@ -2181,8 +2178,6 @@ fintanto che esso si trova in uno qualunque degli altri stati.
   \label{tab:proc_proc_states}
 \end{table}
 
   \label{tab:proc_proc_states}
 \end{table}
 
-% TODO nel 2.6.25 è stato aggiunto TASK_KILLABLE, da capire dova va messo.
-
 Si deve quindi tenere presente che l'utilizzo della CPU è soltanto una delle
 risorse che sono necessarie per l'esecuzione di un programma, e a seconda
 dello scopo del programma non è detto neanche che sia la più importante (molti
 Si deve quindi tenere presente che l'utilizzo della CPU è soltanto una delle
 risorse che sono necessarie per l'esecuzione di un programma, e a seconda
 dello scopo del programma non è detto neanche che sia la più importante (molti
@@ -2893,8 +2888,8 @@ utilizzato per un compito importante (ad esempio per applicazioni real-time o
 la cui risposta è critica) e si vuole la massima velocità, con questa
 interfaccia diventa possibile selezionare gruppi di processori utilizzabili in
 maniera esclusiva.  Lo stesso dicasi quando l'accesso a certe risorse (memoria
 la cui risposta è critica) e si vuole la massima velocità, con questa
 interfaccia diventa possibile selezionare gruppi di processori utilizzabili in
 maniera esclusiva.  Lo stesso dicasi quando l'accesso a certe risorse (memoria
-o periferiche) può avere un costo diverso a seconda del processore (come
-avviene nelle architetture NUMA).
+o periferiche) può avere un costo diverso a seconda del processorecome
+avviene nelle architetture NUMA (\textit{Non-Uniform Memory Access}).
 
 Infine se un gruppo di processi accede alle stesse risorse condivise (ad
 esempio una applicazione con più \itindex{thread} \textit{thread}) può avere
 
 Infine se un gruppo di processi accede alle stesse risorse condivise (ad
 esempio una applicazione con più \itindex{thread} \textit{thread}) può avere
@@ -2976,6 +2971,18 @@ non avranno alcun risultato effettivo.
 \itindend{CPU~affinity}
 
 
 \itindend{CPU~affinity}
 
 
+%TODO trattare le priorità di I/O
+% vedi man ioprio_set e Documentation/block/ioprio.txt
+
+\subsection{Le priorità per le operazioni di I/O}
+\label{sec:io_priority}
+
+Una delle 
+
+
+%TODO trattare le funzionalità per il NUMA
+% vedi man numa e le pagine di manuale relative
+% vedere anche dove metterle...
 
 \section{Problematiche di programmazione multitasking}
 \label{sec:proc_multi_prog}
 
 \section{Problematiche di programmazione multitasking}
 \label{sec:proc_multi_prog}