Altre figure con tikz fornite da Alessio Frusciante
[gapil.git] / intro.tex
index 378dd843ac578f14bdde492969a44248c2b8375b..b7416dbfc21bc2fb6134ddd90f48fb0ddabb8ed6 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -66,7 +66,7 @@ porte di input/output).
 Una parte del kernel, lo \itindex{scheduler} \textit{scheduler}, si occupa di
 stabilire, ad intervalli fissi e sulla base di un opportuno calcolo delle
 priorità, quale ``\textsl{processo}'' deve essere posto in esecuzione (il
-cosiddetto \itindex{prehemptive~multitasking} \textit{prehemptive
+cosiddetto \itindex{preemptive~multitasking} \textit{preemptive
   multitasking}).  Questo verrà comunque eseguito in modalità protetta; quando
 necessario il processo potrà accedere alle risorse hardware soltanto
 attraverso delle opportune chiamate al sistema che restituiranno il controllo
@@ -174,7 +174,46 @@ fig.~\ref{fig:intro_sys_struct}.
 
 \begin{figure}[htb]
   \centering
-  \includegraphics[width=10cm]{img/struct_sys}
+%  \includegraphics[width=10cm]{img/struct_sys}
+  \begin{tikzpicture}
+    \filldraw[fill=black!20] (0,0) rectangle (7.5,1);
+    \draw (3.75,0.5) node {System Call Interface};
+    \filldraw[fill=black!35] (0,1) rectangle (7.5,4);
+    \draw (3.75,2.5) node {\huge{kernel}};
+    \filldraw[fill=black!20] (0,4) rectangle (2.5,5);
+    \draw (1.25,4.5) node {scheduler};
+    \filldraw[fill=black!20] (2.5,4) rectangle (5,5);
+    \draw (3.75,4.5) node {VM};
+    \filldraw[fill=black!20] (5,4) rectangle (7.5,5);
+    \draw (6.25,4.5) node {driver};
+
+    \draw (1.25,7) node(cpu) [ellipse,draw] {CPU};
+    \draw (3.75,7) node(mem) [ellipse,draw] {memoria};
+    \draw (6.25,7) node(disk) [ellipse,draw] {disco};
+
+    \draw[<->] (cpu) -- (1.25,5);
+    \draw[<->] (mem) -- (3.75,5);
+    \draw[<->] (disk) -- (6.25,5);
+
+    \draw (7.5,0) node [anchor=base west] {kernel space};
+    \draw (7.5,-1) node [anchor=west] {user space};
+
+    \draw (-1,-0.5) -- (8.5, -0.5);
+
+    \draw (0,-2) rectangle (7.5,-1);
+    \draw (3.75, -1.5) node {GNU C Library};
+    \draw[->] (1.25,-1) -- (1.25,0);
+    \draw[->] (3.75,-1) -- (3.75,0);
+    \draw[->] (6.25,-1) -- (6.25,0);
+
+    \draw (1.25,-3) node(proc1) [rectangle,draw] {processo};
+    \draw (3.75,-3) node(proc2) [rectangle,draw] {processo};
+    \draw (6.25,-3) node(proc3) [rectangle,draw] {processo};
+
+    \draw[->] (1.25,-2) -- (proc1);
+    \draw[->] (3.75,-2) -- (proc2);
+    \draw[->] (6.25,-2) -- (proc3);
+  \end{tikzpicture}
   \caption{Schema di massima della struttura di interazione fra processi,
     kernel e dispositivi in Linux.}
   \label{fig:intro_sys_struct}
@@ -349,9 +388,10 @@ sezioni successive.
     \file{malloc.h}&$\bullet$&         & Allocazione della memoria.\\
     \file{setjmp.h}&$\bullet$&         & Salti non locali.\\
     \file{signal.h}&         &$\bullet$& Gestione dei segnali.\\
-    \file{stdarg.h}&$\bullet$&         & .\\
+    \file{stdarg.h}&$\bullet$&         & Gestione di funzioni a argomenti
+                                         variabili.\\ 
     \file{stdio.h} &$\bullet$&         & I/O bufferizzato in standard ANSI C.\\
-    \file{stdlib.h}&$\bullet$&         & definizioni della libreria standard.\\
+    \file{stdlib.h}&$\bullet$&         & Definizioni della libreria standard.\\
     \file{string.h}&$\bullet$&         & Manipolazione delle stringhe.\\
     \file{time.h}  &         &$\bullet$& Gestione dei tempi.\\
     \file{times.h} &$\bullet$&         & Gestione dei tempi.\\
@@ -577,7 +617,7 @@ del nome \textit{Unix 98}, usato spesso anche per riferirsi allo standard.
 
 Lo sviluppo di BSD iniziò quando la fine della collaborazione fra l'Università
 di Berkeley e la AT\&T generò una delle prime e più importanti fratture del
-mondo Unix.  L'Università di Berkley proseguì nello sviluppo della base di
+mondo Unix.  L'Università di Berkeley proseguì nello sviluppo della base di
 codice di cui disponeva, e che presentava parecchie migliorie rispetto alle
 versioni allora disponibili, fino ad arrivare al rilascio di una versione
 completa di Unix, chiamata appunto BSD, del tutto indipendente dal codice
@@ -721,7 +761,7 @@ file.
 
 
 
-% LocalWords:  like kernel multitasking scheduler prehemptive sez swap is cap
+% LocalWords:  like kernel multitasking scheduler preemptive sez swap is cap
 % LocalWords:  everything bootstrap init shell Windows Foundation system call
 % LocalWords:  fig libc uClib glibc embedded Library POSIX username PAM Methods
 % LocalWords:  Pluggable Autentication group supplementary Name Service Switch