X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=thread.tex;h=8cc4facf0c65e0f0896284e964558fae976e8fe5;hp=87ed4d07fb4bd952da887b3a82297238442c6072;hb=193d612d40c5f81f5559ea6e11e70f6b6e51fb39;hpb=b2fde72b2f308cb35873f1fd050501af6a742bc0 diff --git a/thread.tex b/thread.tex index 87ed4d0..8cc4fac 100644 --- a/thread.tex +++ b/thread.tex @@ -1,6 +1,6 @@ %% thread.tex %% -%% Copyright (C) 2007 Simone Piccardi. Permission is granted to +%% Copyright (C) 2007-2011 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", @@ -19,7 +19,7 @@ Tratteremo in questo capitolo un modello di programmazione multitasking, quello dei \textit{thread}, alternativo al modello classico dei processi, 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 +tratteremo in dettaglio quella che è l'implementazione principale, che fa riferimento all'interfaccia standardizzata da POSIX.1e. @@ -27,7 +27,7 @@ riferimento all'interfaccia standardizzata da POSIX.1e. \label{sec:thread_intro} Questa prima sezione costituisce una introduzione ai \textit{thread} e -tratterà i concetti principali del relativo modello di programmazione, +tratterà i concetti principali del relativo modello di programmazione, esamineremo anche quali modelli sono disponibili per Linux, dando una breve panoramica sulle implementazioni alternative. @@ -41,12 +41,12 @@ panoramica sulle implementazioni alternative. % 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 +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 +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 @@ -57,12 +57,12 @@ dei processi: \end{itemize} - - \subsection{I \textit{thread} e Linux} \label{sec:linux_thread} +\subsection{La system call \func{clone}} +\label{sec:process_clone} @@ -80,9 +80,9 @@ dei processi: Tratteremo in questa sezione l'interfaccia di programmazione con i -\textit{thread} standardizzata dallo standard POSIX 1.c, che è quella che è +\textit{thread} standardizzata dallo standard POSIX 1.c, che è quella che è stata seguita anche dalle varie implementazioni dei \textit{thread} realizzate -su Linux, ed in particolare dalla \textit{Native Thread Posix Library} che è +su Linux, ed in particolare dalla \textit{Native Thread Posix Library} che è stata integrata con i kernel della serie 2.6 e che fa parte a pieno titolo delle \acr{glibc}. @@ -107,6 +107,14 @@ delle \acr{glibc}. +% 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