<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="it" lang="it">
<head>
<title>Processo (informatica)</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Processo_(informatica)"/>
<meta name="wx_page_id" content="27361"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Processo (informatica)" id="wxsec1"><h1 class="pagetitle" id="wx1">Processo (informatica)</h1>

<p id="wx2">In <a href="/wit/Informatica" title="Informatica" wx:linktype="known" wx:pagename="Informatica" wx:page_id="1681180" id="wx3">Informatica</a> per <b id="wx4">processo</b> si intende un' istanza di un programma in <a href="/wit/Esecuzione_%28informatica%29" title="Esecuzione (informatica)" wx:linktype="known" wx:pagename="Esecuzione_(informatica)" wx:page_id="91769" id="wx5">esecuzione</a> in modo sequenziale. Più precisamente è un'attività controllata da un programma che si svolge su un processore.</p>

<div id="wx_toc"/>

<a id="Programmi_e_processi" name="Programmi_e_processi"/>
<wx:section level="2" title="Programmi e processi" id="wxsec2"><h2 id="wx6">Programmi e processi</h2>

<p id="wx7">Un <a href="/wit/Programma_%28informatica%29" title="Programma (informatica)" wx:linktype="known" wx:pagename="Programma_(informatica)" wx:page_id="84194" id="wx8">programma</a> è costituito dal <a href="/wit/Codice_oggetto" title="Codice oggetto" wx:linktype="known" wx:pagename="Codice_oggetto" wx:page_id="87957" id="wx9">codice oggetto</a> generato dalla compilazione del <a href="/wit/Codice_sorgente" title="Codice sorgente" wx:linktype="known" wx:pagename="Codice_sorgente" wx:page_id="15812" id="wx10">codice sorgente</a>, ed è normalmente salvato sotto forma di uno o più file. Esso è un'entità statica, che rimane immutata durante l'esecuzione.</p>

<p id="wx11">Il processo è l'entità utilizzata dal <a href="/wit/Sistema_operativo" title="Sistema operativo" wx:linktype="known" wx:pagename="Sistema_operativo" wx:page_id="3917" id="wx12">sistema operativo</a> per rappresentare una specifica esecuzione di un programma. Esso è quindi un'entità dinamica, che dipende dai dati che vengono elaborati, e dalle operazioni eseguite su di essi. Il processo è quindi caratterizzato, oltre che dal codice eseguibile, dall'insieme di tutte le informazioni che ne definiscono lo stato, come il contenuto della memoria indirizzata, i thread, i descrittori dei <a href="/wit/File" title="File" wx:linktype="known" wx:pagename="File" wx:page_id="14505" id="wx13">file</a> e delle periferiche in uso.</p>

<p id="wx14">L'uso dell'<a href="/wit/Astrazione_%28informatica%29" title="Astrazione (informatica)" wx:linktype="known" wx:pagename="Astrazione_(informatica)" wx:page_id="654668" id="wx15">astrazione</a> dei processi è necessario al sistema operativo per realizzare la <a href="/wit/Multiprogrammazione" title="Multiprogrammazione" wx:linktype="known" wx:pagename="Multiprogrammazione" wx:page_id="292056" id="wx16">multiprogrammazione</a>.</p>

<a id="Processi_e_thread" name="Processi_e_thread"/>
</wx:section><wx:section level="2" title="Processi e thread" id="wxsec3"><h2 id="wx17">Processi e thread</h2>

<p id="wx18">Il concetto di processo è associato a quello di <b id="wx19">thread</b> (abbreviazione di <b id="wx20">thread of execution</b>, filo dell'esecuzione), con cui si intende l'unità granulare in cui un processo può essere suddiviso, e che può essere eseguito in parallelo ad altri thread. In altre parole, un thread è una parte del processo che viene eseguita in maniera concorrente ed indipendente internamente al processo stesso. Il termine inglese rende bene l'idea, in quanto si rifà visivamente al concetto di fune composta da vari fili attorcigliati: se la fune è il processo in esecuzione, allora i singoli fili che la compongono sono i thread.</p>

<p id="wx21">Un processo ha sempre almeno un thread (sè stesso), ma in alcuni casi un processo può avere più thread che vengono eseguiti in parallelo.</p>

<p id="wx22">Una prima differenza fra thread e processi consiste nel modo con cui essi condividono le risorse. Mentre i processi sono di solito fra loro indipendenti, utilizzando diverse aree di memoria ed interagendo soltanto mediante appositi meccanismi di comunicazione messi a disposizione dal sistema, al contrario i thread tipicamente condividono le medesime <a href="/wit/Informazioni_di_stato" title="Informazioni di stato" wx:linktype="known" wx:pagename="Informazioni_di_stato" wx:page_id="918054" id="wx23">informazioni di stato</a>, la memoria ed altre <a href="/wit/Risorse_di_sistema" class="new" title="Risorse di sistema" wx:linktype="unknown" wx:pagename="Risorse_di_sistema" id="wx24">risorse di sistema</a>.</p>

<p id="wx25">L'altra differenza sostanziale è insita nel meccanismo di attivazione: la creazione di un nuovo processo è sempre onerosa per il sistema, in quanto devono essere allocate le risorse necessarie alla sua esecuzione (allocazione di memoria, riferimenti alle periferiche, e così via, operazioni tipicamente onerose); il thread invece è parte del processo, e quindi una sua nuova attivazione viene effettuata in tempi ridottissimi a costi minimi.</p>

<p id="wx26">Le definizioni sono le seguenti:</p>

<ul id="wx27">
<li id="wx28">
<p id="wx29">Il <i id="wx30">processo</i> è l'oggetto del sistema operativo a cui sono assegnate tutte le risorse di sistema per l'esecuzione di un programma, tranne la CPU.</p>
</li>

<li id="wx31">
<p id="wx32">Il <i id="wx33">thread</i> è l'oggetto del sistema operativo o dell'applicazione a cui è assegnata la CPU per l'esecuzione.</p>
</li>
</ul>

<p id="wx34">In un sistema che non supporta i thread, se si vuole eseguire contemporaneamente più volte lo stesso programma, è necessario creare più processi basati sullo stesso programma. Tale tecnica funziona, ma è dispendiosa di risorse, sia perché ogni processo deve allocare le proprie risorse, sia perché per comunicare tra i vari processi è necessario eseguire delle relativamente lente chiamate di sistema, sia perché la commutazione di contesto tra thread dello stesso processo è più veloce che tra thread di processi distinti.</p>

<p id="wx35">Avendo più thread nello stesso processo, si può ottenere lo stesso risultato allocando una sola volta le risorse necessarie, e scambiando i dati tra i thread tramite la memoria del processo, che è accessibile a tutti i suoi thread.</p>

<p id="wx36">Un esempio di applicazione che può far uso di più thread è un <a href="/wit/Browser" title="Browser" wx:linktype="known" wx:pagename="Browser" wx:page_id="638" id="wx37">browser</a> Web, che usa un thread distinto per scaricare ogni immagine in una pagina Web che contiene più immagini.</p>

<p id="wx38">Un altro esempio è costituito dai processi server, spesso chiamati <i id="wx39">servizi</i> o <i id="wx40">daemon</i>, che possono rispondere contemporaneamente alle richieste provenienti da più utenti.</p>

<p id="wx41">In un sistema multiprocessore (<a href="/wit/Multiprocessore_simmetrico" title="Multiprocessore simmetrico" wx:linktype="known" wx:pagename="Multiprocessore_simmetrico" wx:page_id="40707" id="wx42">SMP</a>), si possono avere miglioramenti prestazionali, grazie al parallelismo fisico dei thread. Tuttavia, l'applicazione deve essere progettata in modo da suddividere tra i thread il carico di elaborazione. Tale progettazione è difficile e soggetta a errori, e il programma risultante, se eseguito su un sistema monoprocessore, potrebbe essere più lento di uno con un solo thread; pertanto oggi sono ancora pochi i software che usano i thread per sfruttare i sistemi SMP.</p>

<a id="Supporto_del_sistema_operativo" name="Supporto_del_sistema_operativo"/>
</wx:section><wx:section level="2" title="Supporto del sistema operativo" id="wxsec4"><h2 id="wx43">Supporto del sistema operativo</h2>

<p id="wx44">I sistemi operativi si classificano nel seguente modo in base al supporto che offrono a processi e thread:</p>

<ul id="wx45">
<li id="wx46">
<p id="wx47">Monotasking: non sono supportati né processi né thread; si può lanciare un solo programma per volta.</p>
</li>

<li id="wx48">
<p id="wx49">Multitasking cooperativo: sono supportati i processi, ma non i thread, e ogni processo mantiene la CPU finché non la rilascia spontaneamente.</p>
</li>

<li id="wx50">
<p id="wx51">Multitasking preventivo: sono supportati i processi, ma non i thread, e ogni processo mantiene la CPU finché non la rilascia spontaneamente o finché il sistema operativo sospende il processo per passare la CPU a un altro processo.</p>
</li>

<li id="wx52">
<p id="wx53">Multithreaded: sono supportati sia i processi, sia i thread.</p>
</li>

<li id="wx54">
<p id="wx55">Multitasking embedded: sono supportati i thread, ma non processi, nel senso che si può eseguire un solo programma per volta, ma questo programma può avere più thread (solitamente detti task).</p>
</li>
</ul>

<p id="wx56">Si noti inoltre che la mancanza di supporto ai thread da parte del sistema operativo non impedisce la programmazione parallela. Infatti il parallelismo tra thread può essere simulato da librerie di programmazione o anche dal supporto run-time del linguaggio di programmazione. In tal senso si parla di "thread del kernel" per indicare un thread gestito dal sistema operativo, e di "thread utente" per indicare un thread gestito da una libreria applicativa. Per esempio, alcune versioni di <a href="/wit/Unix" title="Unix" wx:linktype="known" wx:pagename="Unix" wx:page_id="4363" id="wx57">Unix</a> non supportano i thread, per cui si ricorre ai thread utente, altri (per esempio <a href="/wit/Linux" title="Linux" wx:linktype="known" wx:pagename="Linux" wx:page_id="2526" id="wx58">Linux</a>) supportano direttamente i thread a livello del kernel.</p>

<a id="Stati_di_un_thread" name="Stati_di_un_thread"/>
</wx:section><wx:section level="2" title="Stati di un thread" id="wxsec5"><h2 id="wx59">Stati di un thread</h2>

<div class="wx_image" wx:thumb="thumb" id="wx60"><a href="/wit/Immagine:Stati_di_un_processo.png" title="Stati di un thread." wx:linktype="image" wx:pagename="Immagine:Stati_di_un_processo.png" wx:page_id="91809" id="wx61"><img src="/wit/Immagine:Stati_di_un_processo.png" alt="Stati di un thread." width="250" id="wx62"/></a> 

<div class="thumbcaption" id="wx63">
<p id="wx64">Stati di un thread.</p>
</div>
</div>

<p id="wx65">In un sistema operativo <a href="/wit/Multitasking" title="Multitasking" wx:linktype="known" wx:pagename="Multitasking" wx:page_id="15686" id="wx66">multitasking</a>, ci sono più thread contemporaneamente in esecuzione. Di questi, al massimo un numero pari al numero di <a href="/wit/CPU" title="CPU" wx:linktype="known" wx:pagename="CPU" wx:page_id="23203" id="wx67">processori</a> può avere effettivamente il controllo di un processore. Quindi i diversi processi possono utilizzare il processore per un numero limitato di tempo, per questo motivo i processi vengono interrotti, messi in pausa e richiamati secondo degli algoritmi di <a href="/wit/Schedulazione" title="Schedulazione" wx:linktype="known" wx:pagename="Schedulazione" wx:page_id="634750" id="wx68">schedulazione</a>.</p>

<p id="wx69">Gli stati in cui un thread si può trovare sono:</p>

<ul id="wx70">
<li id="wx71"><b id="wx72">esecuzione</b>
<p id="wx73">(<b id="wx74">running</b>): il thread ha il controllo di un processore</p>
</li>

<li id="wx75"><b id="wx76">pronto</b>
<p id="wx77">(<b id="wx78">ready</b>): il thread è pronto ad essere eseguito, ed è in attesa che lo <a href="/wit/Scheduler" title="Scheduler" wx:linktype="known" wx:pagename="Scheduler" wx:page_id="1474472" id="wx79">scheduler</a> lo metta in esecuzione</p>
</li>

<li id="wx80"><b id="wx81">bloccato</b>
<p id="wx82">(<b id="wx83">suspended</b>): il thread ha eseguito una <a href="/wit/Chiamata_di_sistema" title="Chiamata di sistema" wx:linktype="known" wx:pagename="Chiamata_di_sistema" wx:page_id="26822" id="wx84">chiamata di sistema</a>, ed è fermo in attesa del risultato</p>
</li>
</ul>

<p id="wx85">Con <a href="/wit/Commutazione_di_contesto" title="Commutazione di contesto" wx:linktype="known" wx:pagename="Commutazione_di_contesto" wx:page_id="122062" id="wx86">commutazione di contesto</a> (<i id="wx87">Context switch</i>) si indica il meccanismo per cui un thread in esecuzione viene fermato (perché ha eseguito una chiamata di sistema o perché lo scheduler ha deciso di eseguire un altro thread), e un altro pronto viene messo in esecuzione.</p>

<a id="Genesi_di_processi_e_thread" name="Genesi_di_processi_e_thread"/>
</wx:section><wx:section level="2" title="Genesi di processi e thread" id="wxsec6"><h2 id="wx88">Genesi di processi e thread</h2>

<p id="wx89">Al <a href="/wit/Bootstrap" title="Bootstrap" wx:linktype="known" wx:pagename="Bootstrap" wx:page_id="311783" id="wx90">bootstrap</a> del sistema operativo ci sono in esecuzione uno o più processi creati dal sistema operativo stesso. Durante l'avvio del sistema, in base alla configurazione, possono essere creati numerosi processi. Durante la normale operatività, in base alle richieste degli utenti, possono essere creati nuovi processi e altri possono terminare.</p>

<p id="wx91">Quando il sistema operativo inizia l'esecuzione di un programma, crea un processo dotato di un solo thread. Durante l'esecuzione di tale thread, detto thread principale, il codice può creare altri thread o altri processi con apposite chiamate di sistema.</p>

<p id="wx92">La creazione di un processo differisce tra i vari sistemi operativi. In ambiente Windows, si usa la chiamata di sistema "CreateProcess", con cui si specifica il nome del file contenente il programma eseguibile; tale file viene caricato in memoria ed eseguito. In ambiente Unix, si usa la chiamata di sistema "fork" per creare un nuovo processo <i id="wx93">figlio</i> identico al chiamante eccetto che per il valore reso dalla chiamata stessa; e si usa poi la chiamata "exec" in uno dei due per caricare il codice eseguibile di un nuovo programma nel processo corrente, e mandarlo in esecuzione.</p>

<p id="wx94">La creazione di un thread invece, è più uniforme. Infatti, sia la chiamata di sistema "CreateThread" di Windows che la chiamata di sistema "thr_create" di Solaris (una variante di Unix) richiedono il passaggio dell'indirizzo di una routine, e della dimensione del nuovo stack, oltre ad altri parametri. La chiamata di sistema fa sì che venga eseguito il corpo della routine specificata, concorrentemente con il codice che il chiamante sta eseguendo.</p>

<p id="wx95">Nei sistemi <a href="/wit/Unix-like" title="Unix-like" wx:linktype="known" wx:pagename="Unix-like" wx:page_id="52709" id="wx96">Unix-like</a>, quando un processo termina, il sistema operativo provvede a liberarne le <a href="/wit/Risorsa_informatica" title="Risorsa informatica" wx:linktype="known" wx:pagename="Risorsa_informatica" wx:page_id="1063749" id="wx97">risorse</a> occupate, tranne il PID e il <a href="/wit/Process_Control_Block" title="Process Control Block" wx:linktype="known" wx:pagename="Process_Control_Block" wx:page_id="122302" id="wx98">Process Control Block</a> (PCB). Il PCB rimane nella tabella dei processi (process table) per permettere al <a href="/wit/Processo_padre" title="Processo padre" wx:linktype="known" wx:pagename="Processo_padre" wx:page_id="1371222" id="wx99">processo padre</a> del processo terminato la lettura dell'<a href="/wit/Exit_status" class="new" title="Exit status" wx:linktype="unknown" wx:pagename="Exit_status" id="wx100">exit status</a> tramite la <a href="/wit/Chiamata_di_sistema" title="Chiamata di sistema" wx:linktype="known" wx:pagename="Chiamata_di_sistema" wx:page_id="26822" id="wx101">chiamata di sistema</a> <code id="wx102"><a href="/wit/Wait_%28%29%28system_call%29" class="new" title="Wait ()(system call)" wx:linktype="unknown" wx:pagename="Wait_()(system_call)" id="wx103">wait()</a></code>. In seguito a tale chiamata anche il PID e il PCB vengono liberati per poter essere riutilizzati da altri processi. Fin quando non avviene tale chiamata il processo rimane nello stato di <a href="/wit/Processo_zombie" title="Processo zombie" wx:linktype="known" wx:pagename="Processo_zombie" wx:page_id="1574108" id="wx104">zombie</a>.</p>

<p id="wx105">Quando un processo termina prima di un proprio <a href="/wit/Processo_figlio" title="Processo figlio" wx:linktype="known" wx:pagename="Processo_figlio" wx:page_id="1371195" id="wx106">processo figlio</a>, quest'ultimo diviene un cosiddetto <a href="/wit/Processo_orfano" title="Processo orfano" wx:linktype="known" wx:pagename="Processo_orfano" wx:page_id="1602313" id="wx107">processo orfano</a> e, nei sistemi <a href="/wit/Unix-like" title="Unix-like" wx:linktype="known" wx:pagename="Unix-like" wx:page_id="52709" id="wx108">Unix-like</a>, viene automaticamente <a href="/wit/Adozione" title="Adozione" wx:linktype="known" wx:pagename="Adozione" wx:page_id="364536" id="wx109">adottato</a> dal processo di sistema speciale <a href="/wit/Init" title="Init" wx:linktype="known" wx:pagename="Init" wx:page_id="322504" id="wx110">init</a>.</p>

<a id="Strutture_dati_relative_a_processi_e_thread" name="Strutture_dati_relative_a_processi_e_thread"/>
</wx:section><wx:section level="2" title="Strutture dati relative a processi e thread" id="wxsec7"><h2 id="wx111">Strutture dati relative a processi e thread</h2>

<p id="wx112">Nel <a href="/wit/Sistema_operativo" title="Sistema operativo" wx:linktype="known" wx:pagename="Sistema_operativo" wx:page_id="3917" id="wx113">sistema operativo</a>, ciascun processo è identificato da un numero, detto <b id="wx114">PID</b> (<b id="wx115">P</b>rocess <b id="wx116">ID</b>entifier) oppure "process handle".</p>

<p id="wx117">Ad un processo sono associate le seguenti <a href="/wit/Struttura_dati" title="Struttura dati" wx:linktype="known" wx:pagename="Struttura_dati" wx:page_id="27972" id="wx118">strutture dati</a>:</p>

<ul id="wx119">
<li id="wx120">
<p id="wx121">Uno o più segmenti di <a href="/wit/Codice_oggetto" title="Codice oggetto" wx:linktype="known" wx:pagename="Codice_oggetto" wx:page_id="87957" id="wx122">codice</a>.</p>
</li>

<li id="wx123">
<p id="wx124">Uno o più segmenti di <a href="/wit/Memoria_%28informatica%29" title="Memoria (informatica)" wx:linktype="known" wx:pagename="Memoria_(informatica)" wx:page_id="154018" id="wx125">memoria</a> dati.</p>
</li>

<li id="wx126">
<p id="wx127">I descrittori di eventuali risorse in uso (file, finestre, periferiche, ecc.)</p>
</li>

<li id="wx128">
<p id="wx129">Uno o più thread.</p>
</li>
</ul>

<p id="wx130">L'insieme di tali informazioni è raccolto o indicizzato da una struttura, unica per ogni processo, detta <b id="wx131"><a href="/wit/Process_control_block" title="Process control block" wx:linktype="known" wx:pagename="Process_control_block" wx:page_id="122297" id="wx132">process control block</a></b> (abbreviata in <b id="wx133">PCB</b>). A loro volta, tutti i PCB sono elencati in una struttura detta <b id="wx134">process table</b>.</p>

<p id="wx135">Se il sistema operativo gestisce i thread, anche ciascun thread è identificato da un numero, detto <b id="wx136">TID</b> (<b id="wx137">T</b>hread <b id="wx138">ID</b>entifier) oppure "thread handle".</p>

<p id="wx139">Ad un thread sono associate le seguenti <a href="/wit/Struttura_dati" title="Struttura dati" wx:linktype="known" wx:pagename="Struttura_dati" wx:page_id="27972" id="wx140">strutture dati</a>:</p>

<ul id="wx141">
<li id="wx142">
<p id="wx143">Lo <a href="/wit/Stack" title="Stack" wx:linktype="known" wx:pagename="Stack" wx:page_id="27136" id="wx144">stack</a> delle chiamate di <a href="/wit/Funzione_%28informatica%29" title="Funzione (informatica)" wx:linktype="known" wx:pagename="Funzione_(informatica)" wx:page_id="66786" id="wx145">funzione</a>.</p>
</li>

<li id="wx146">
<p id="wx147">I registri del processore, tra cui il <a href="/wit/Program_counter" title="Program counter" wx:linktype="known" wx:pagename="Program_counter" wx:page_id="164290" id="wx148">program counter</a>.</p>
</li>
</ul>

<p id="wx149">Se il sistema operativo non gestisce i thread, le suddette informazioni fanno parte dello stato del processo.</p>

<a id="Voci_correlate" name="Voci_correlate"/>
</wx:section><wx:section level="2" title="Voci correlate" id="wxsec8"><h2 id="wx150">Voci correlate</h2>

<ul id="wx151">
<li id="wx152"><a href="/wit/Scheduler" title="Scheduler" wx:linktype="known" wx:pagename="Scheduler" wx:page_id="1474472" id="wx153">Scheduler</a></li>

<li id="wx154"><a href="/wit/Kernel" title="Kernel" wx:linktype="known" wx:pagename="Kernel" wx:page_id="2511" id="wx155">Kernel</a></li>

<li id="wx156"><a href="/wit/Multitasking" title="Multitasking" wx:linktype="known" wx:pagename="Multitasking" wx:page_id="15686" id="wx157">Multitasking</a></li>

<li id="wx158"><a href="/wit/Multithreading" title="Multithreading" wx:linktype="known" wx:pagename="Multithreading" wx:page_id="26324" id="wx159">Multithreading</a></li>
</ul>

<a id="Bibliografia" name="Bibliografia"/>
</wx:section><wx:section level="2" title="Bibliografia" id="wxsec9"><h2 id="wx160">Bibliografia</h2>

<ul id="wx161">
<li id="wx162"><i id="wx163">Architettura dei Sistemi di Elaborazione, volume 1</i>
<p id="wx164">(F. Baiardi, A. Tomasi e Marco Vanneschi, <a href="/wit/1988" title="1988" wx:linktype="known" wx:pagename="1988" wx:page_id="4675" id="wx165">1988</a>, <a href="/wit/Franco_Angeli_Edizioni" title="Franco Angeli Edizioni" wx:linktype="known" wx:pagename="Franco_Angeli_Edizioni" wx:page_id="1001354" id="wx166">Franco Angeli Edizioni</a>, <a href="/wit/index.php?title=Speciale:Booksources&amp;isbn=882042746X" class="internal" id="wx167">ISBN 882042746X</a>). Fondamenti, firmware, architetture parallele.</p>
</li>

<li id="wx168"><i id="wx169">Architettura dei Sistemi di Elaborazione, volume 2</i>
<p id="wx170">(F. Baiardi, A. Tomasi, Marco Vanneschi, <a href="/wit/1987" title="1987" wx:linktype="known" wx:pagename="1987" wx:page_id="4676" id="wx171">1987</a>, Franco Angeli Edizioni, <a href="/wit/index.php?title=Speciale:Booksources&amp;isbn=882042746X" class="internal" id="wx172">ISBN 882042746X</a>) Sistemi operativi, multiprocessore e distribuiti.</p>
</li>

<li id="wx173">
<p id="wx174">A.Tanenbaum, <i id="wx175">I moderni sistemi operativi</i>, Jackson Milano, 2002, pp.66-144</p>
</li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=Processo_%28informatica%29" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx176">Categoria</a>: <span dir="ltr" id="wx177"><a href="/wit/Categoria:Kernel" title="Categoria:Kernel" wx:linktype="known" wx:pagename="Categoria:Kernel" wx:page_id="1027203" id="wx178">Kernel</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://de.wikipedia.org/wiki/Prozess_%28Informatik%29" class="external" wx:linktype="interwiki" wx:pagename="de:Prozess_(Informatik)" id="wx179">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Process_%28computing%29" class="external" wx:linktype="interwiki" wx:pagename="en:Process_(computing)" id="wx180">English</a> | <a href="http://es.wikipedia.org/wiki/Proceso_%28inform%C3%A1tica%29" class="external" wx:linktype="interwiki" wx:pagename="es:Proceso_(informática)" id="wx181">Español</a> | <a href="http://fr.wikipedia.org/wiki/Processus_%28informatique%29" class="external" wx:linktype="interwiki" wx:pagename="fr:Processus_(informatique)" id="wx182">Français</a> | <a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9" class="external" wx:linktype="interwiki" wx:pagename="ja:プロセス" id="wx183">日本語</a> | <a href="http://nl.wikipedia.org/wiki/Proces_%28informatica%29" class="external" wx:linktype="interwiki" wx:pagename="nl:Proces_(informatica)" id="wx184">Nederlands</a> | <a href="http://no.wikipedia.org/wiki/Prosess_%28informatikk%29" class="external" wx:linktype="interwiki" wx:pagename="no:Prosess_(informatikk)" id="wx185">Norsk (bokmål)</a> | <a href="http://pl.wikipedia.org/wiki/Proces_%28informatyka%29" class="external" wx:linktype="interwiki" wx:pagename="pl:Proces_(informatyka)" id="wx186">Polski</a> | <a href="http://pt.wikipedia.org/wiki/Processos_da_ger%C3%AAncia_de_projetos" class="external" wx:linktype="interwiki" wx:pagename="pt:Processos_da_gerência_de_projetos" id="wx187">Português</a> | <a href="http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%28%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0%29" class="external" wx:linktype="interwiki" wx:pagename="ru:Процесс_(информатика)" id="wx188">Русский</a> | <a href="http://sk.wikipedia.org/wiki/Proces_%28informatika%29" class="external" wx:linktype="interwiki" wx:pagename="sk:Proces_(informatika)" id="wx189">Slovenčina</a> | <a href="http://sv.wikipedia.org/wiki/Process_%28dator%29" class="external" wx:linktype="interwiki" wx:pagename="sv:Process_(dator)" id="wx190">Svenska</a> | <a href="http://uk.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B8_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%83" class="external" wx:linktype="interwiki" wx:pagename="uk:Стани_процесу" id="wx191">Українська</a> | <a href="http://zh.wikipedia.org/wiki/%E8%A1%8C%E7%A8%8B" class="external" wx:linktype="interwiki" wx:pagename="zh:行程" id="wx192">中文</a></div>
</body>
</html>
