Processo (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Collegamenti esterni: Creato la sezione e aggiunto il template "Collegamenti esterni" |
m →Altri progetti: Aggiunto il parametro "Wikizionario (italiano)" nel template "Interprogetto" |
||
(9 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
{{NN|informatica|gennaio 2024}}
Il '''processo''' in [[informatica]] è un'entità dinamica caricata su memoria [[Random Access Memory|RAM]] generata da un [[programma (informatica)|programma]]: identificato da un codice univoco chiamato PID, più precisamente, esso è una sequenza di attività (''task'') controllata da un programma ([[scheduler]]) che si svolge su un [[processore]] in genere sotto la gestione o supervisione del rispettivo [[sistema operativo]].
Riga 14 ⟶ 15:
=== Processi e thread ===
{{vedi anche|Thread (informatica)}}
Il concetto di processo è associato, ma comunque distinto da quello di [[Thread (informatica)|thread]] (abbreviazione di
Un processo ha sempre almeno un thread (se stesso), ma in alcuni casi un processo può avere più thread che vengono eseguiti in parallelo.
Una differenza sostanziale 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 di un processo tipicamente condividono le medesime [[informazioni di stato]], la memoria ed altre [[Risorsa informatica|risorse di sistema]].
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 ovvero assegnate risorse necessarie alla sua esecuzione (allocazione di memoria, riferimenti alle periferiche, e così via, operazioni tipicamente onerose); il thread invece è parte di un processo e quindi una sua nuova attivazione viene effettuata in tempi ridottissimi a costi minimi.
Riga 33 ⟶ 35:
=== Supporto del sistema operativo ===
{{
I sistemi operativi si classificano nel seguente modo in base al supporto che offrono a processi e thread:
Riga 46 ⟶ 48:
=== Thread e handle ===
Nel [[sistema operativo]], ciascun processo è identificato da un numero, detto
▲Nel [[sistema operativo]], ciascun processo è identificato da un numero, detto '''[[PID (Unix)|PID]]''' ('''P'''rocess '''ID'''entifier) oppure "process handle".
Ad un processo sono associate le seguenti [[struttura dati|strutture dati]]:
Riga 55 ⟶ 56:
* Uno o più thread.
L'insieme di tali informazioni è raccolto o indicizzato da una struttura, unica per ogni processo, detta
Se il sistema operativo gestisce i thread, anche ciascun thread è identificato da un numero, detto
Ad un thread sono associate le seguenti [[struttura dati|strutture dati]]:
Riga 71 ⟶ 72:
Gli stati in cui un processo si può trovare sono:
* ''esecuzione'' (''running''): il processo ha il controllo di un processore;
* ''pronto'' (''ready''): il processo è pronto ad essere eseguito, ed è in attesa che lo [[scheduler]] lo metta in esecuzione;
Riga 79:
=== Genesi di processi e thread ===
Al [[Boot|bootstrap]] 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. 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 [[chiamata di sistema|chiamate di sistema]].
Riga 99 ⟶ 98:
* [[Ciclo macchina]]
* [[Clock]]
* [[
* [[Interrupt request]]
* [[Multitasking]]
* [[Multithreading]]
* [[Oggetto (informatica)]]
* [[Thread (informatica)]]
* [[Unlocker]]
== Altri progetti ==
{{Interprogetto|preposizione=sul|wikt=processo}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|process|process}}
{{Controllo di autorità}}
|