%% thread.tex
%%
-%% Copyright (C) 2007 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2007-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",
\chapter{I thread}
\label{cha:threads}
+
+\itindbeg{thread}
+
Tratteremo in questo capitolo un modello di programmazione multitasking,
quello dei \textit{thread}, alternativo al modello classico dei processi,
-tipico di Unix. Ne esaminiremo le caratteristiche, vantaggi e svantaggi, e le
+tipico di Unix. Ne esamineremo le caratteristiche, vantaggi e svantaggi, e le
diverse realizzazioni che sono disponibili per Linux; nella seconda parte
tratteremo in dettaglio quella che è l'implementazione principale, che fa
-riferimento all'interfaccia standardizzata da POSIX.1e.
+riferimento all'interfaccia standardizzata da POSIX.1e.
\section{Introduzione ai \textit{thread}}
Questa prima sezione costituisce una introduzione ai \textit{thread} e
tratterà i concetti principali del relativo modello di programmazione,
-esamineremo anche queli modelli sono disponibili per Linux, dando una breve
+esamineremo anche quali modelli sono disponibili per Linux, dando una breve
panoramica sulle implementazioni alternative.
% http://math.arizona.edu/~swig/documentation/pthreads/
% http://www.humanfactor.com/pthreads/
+Il modello classico dell'esecuzione dei programmi nei sistemi Unix, illustrato
+in sez.~\ref{cha:process_interface}, è fondato sui processi. Il modello nasce
+per assicurare la massima stabilità al sistema e prevede una rigida
+separazione fra i diversi processi, in modo che questi non possano disturbarsi
+a vicenda.
+
+Le applicazioni moderne però sono altamente concorrenti, e necessitano quindi
+di un gran numero di processi; questo ha portato a scontrarsi con alcuni
+limiti dell'architettura precedente. In genere i fautori del modello di
+programmazione a \texttt{thread} sottolineano due problemi connessi all'uso
+dei processi:
+\begin{itemize}
+\item
+\item
+\end{itemize}
+
\subsection{I \textit{thread} e Linux}
\label{sec:linux_thread}
+
+\subsection{La system call \func{clone}}
+\label{sec:process_clone}
+
+
+
\subsection{Implementazioni alternative}
\label{sec:thread_other}
\section{Posix \textit{thread}}
-\label{sec:thread_intro}
+\label{sec:thread_posix_intro}
Tratteremo in questa sezione l'interfaccia di programmazione con i
\label{sec:pthread_cond}
+\itindend{thread}
+
+
+
+% TODO troppe cose, ma segue list di notizie correlate
+% aggiunta rt_tgsigqueueinfo con il kernel 2.6.31
+
+
+% TODO trattare tkill e tgkill per l'invio di segnali a thread, fare un
+% capitolo apposito su thread e segnali
+
+
+% LocalWords: thread multitasking POSIX sez Posix Library kernel glibc mutex
+
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "gapil"
%%% End:
+