X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=177155d436192e9a36ea0584c709041277243a59;hp=5ec846efa855957d1f1568cd3eb272c70f388746;hb=9f5fac5abf66c3a2fe782ecc17d63b62af2485ef;hpb=bdf6e88eeb9b3aef06d57930ec8b89083639e56d diff --git a/prochand.tex b/prochand.tex index 5ec846e..177155d 100644 --- a/prochand.tex +++ b/prochand.tex @@ -1,6 +1,6 @@ %% prochand.tex %% -%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 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 "Prefazione", @@ -143,7 +143,6 @@ seguito incontreremo a pi \label{fig:proc_task_struct} \end{figure} - Come accennato in \secref{sec:intro_unix_struct} è lo \textit{scheduler}\index{scheduler} che decide quale processo mettere in esecuzione; esso viene eseguito ad ogni system call ed ad ogni @@ -167,13 +166,12 @@ esecuzione fino alla successiva invocazione. \subsection{Una panoramica sulle funzioni fondamentali} \label{sec:proc_handling_intro} -I processi vengono creati dalla funzione \func{fork}; in molti unix questa è -una system call, Linux però usa un'altra nomenclatura, e la funzione -\func{fork} è basata a sua volta sulla system call \func{\_\_clone}, che viene -usata anche per generare i \textit{thread}. Il processo figlio creato dalla -\func{fork} è una copia identica del processo processo padre, ma ha un nuovo -\acr{pid} e viene eseguito in maniera indipendente (le differenze fra padre e -figlio sono affrontate in dettaglio in \secref{sec:proc_fork}). +In un sistema unix-like i processi vengono sempre creati da altri processi +tramite la funzione \func{fork}; il nuovo processo (che viene chiamato +\textsl{figlio}) creato dalla \func{fork} è una copia identica del processo +processo originale (detto \textsl{padre}), ma ha un nuovo \acr{pid} e viene +eseguito in maniera indipendente (le differenze fra padre e figlio sono +affrontate in dettaglio in \secref{sec:proc_fork}). Se si vuole che il processo padre si fermi fino alla conclusione del processo figlio questo deve essere specificato subito dopo la \func{fork} chiamando la @@ -541,11 +539,11 @@ i processi figli. Quello che succede è che quando lo standard output del padre viene rediretto, lo stesso avviene anche per tutti i figli; la funzione \func{fork} infatti ha -la caratteristica di duplicare (allo stesso modo in cui lo fa la funzione -\func{dup}, trattata in \secref{sec:file_dup}) nei figli tutti i file -descriptor aperti nel padre, il che comporta che padre e figli condividono le +la caratteristica di duplicare nei figli tutti i file descriptor aperti nel +padre (allo stesso modo in cui lo fa la funzione \func{dup}, trattata in +\secref{sec:file_dup}), il che comporta che padre e figli condividono le stesse voci della \textit{file table} (per la spiegazione di questi termini si -veda \secref{sec:file_sharing}) e fra cui c'è anche la posizione corrente nel +veda \secref{sec:file_sharing}) fra cui c'è anche la posizione corrente nel file. In questo modo se un processo scrive sul file aggiornerà la posizione corrente @@ -1845,6 +1843,19 @@ compila con il flag \cmd{-ansi}, scrivere codice portabile. +% +% Da fare !!! +% insieme alla risistemazioni dei titoli delle sezioni precedenti +% (accorpare il materiale) qualosa tipo: +% le funzioni di controllo +% estenzioni di Linux +% +%\subsection{La gestione delle capabilities} +%\label{sec:proc_capabilities} + + + + \section{La gestione della priorità di esecuzione} \label{sec:proc_priority}