Cos'è un processo?
- Elvis Informatico
- 23 nov 2020
- Tempo di lettura: 3 min
Aggiornamento: 24 giu 2022
Attenzione! Elvis ci ha appena scritto una mail, ci sta chiedendo aiuto! Vuole sapere cos'è un processo... Ok Elvis, te lo spieghiamo nel modo più semplice possibile!
Partiamo dal princìpio che un processo non è altro che un programma in esecuzione. prendiamo come esempio lo scenario in cui abbiamo Windows come sistema operativo, nel quale i programmi sono generalmente composti da un file eseguibile (.exe) e da una serie di librerie dinamiche chiamate DLL (Dynamic-Link Library). Tali file si trovano fisicamente sulla memoria secondaria del nostro computer, pronti per essere eseguiti, costituiscono pertanto un'entità statica ed immutabile, sono lì, in attesa che qualcuno decida di lanciarli. Quando l'utente lancia il programma, la CPU si occupa di prelevare i file (in sostanza le istruzioni) dalla memoria secondaria e di caricarli in quella primaria o RAM (Random Access Memory), solo in quest'ultima il programma può essere eseguito dal processore, dando appunto vita ad un processo. A differenza dei file sulla memoria secondaria, il programma in esecuzione rappresenta un'entità dinamica, in quanto la richiesta di RAM può variare durante il runtime (tempo in cui il programma è in esecuzione), unitamente al carico di lavoro richiesto alla CPU.

Quando il processo viene creato, il sistema operativo gli assegna un numero identificativo chiamato PID (Process IDentifier) e monitora costantemente l'utilizzo di RAM e CPU. Attraverso un programma chiamato Task Manager è possibile vedere tali informazioni, sia su sistemi operativi Windows che Unix (ma non solo). Un processo inoltre, appartiene sempre ad un utente, che sia una persona fisica o di sistema.

I programmi in esecuzione quindi, prendono il nome di processi, ma non è tutto qui, infatti ogni processo può attraversare diverse fasi, definite più precisamente stati, eccoli di seguito riportati:
- NUOVO: quando l'utente lancia un programma e la CPU lo carica nella RAM, in questa fase il processo viene di fatto creato
- PRONTO: Una volta creato, il processo è, per l'appunto, pronto all'esecuzione da parte dello scheduler del sistema operativo
- IN ESECUZIONE: una volta che il processo è pronto, lo scheduler comincia ad eseguirlo attraverso il processore, è una fase attiva in cui il programma sta effettivamente lavorando.
- TERMINATO: Quando il programma è stato eseguito, le risorse macchina utilizzate (RAM e CPU) vengono liberate e rese disponibili per altri task (attività)
- SOSPESO/BLOCCATO/IN ATTESA: in processo è di fatto fermo, in attesa di eventi che ne alterino lo stato corrente, può succedere a causa di errori o bug nel programma.
- KILLATO/CRASHATO: è un modo "brutale" di interrompere un processo, può avvenire per cause esterne al programma, o perché l'utente decide di killarlo (ucciderlo) con apposito comando. In entrambi i casi, tale stato può creare "danni" all'integrita del programma stesso, se non addirittura al sistema operativo.
Lo SCHEDULER è il componente del sistema operativo che si occupa di gestire lo stato dei processi, stabilendo un ordine temporale di accesso ed utilizzo delle risorse macchina, attraverso determinati algoritmi di scheduling.

Nei moderni sistemi operativi inoltre, i processi sono suddivisi in processi figli più piccoli, denominati THREAD. Prendiamo per esempio il famosissimo browser Chrome, quando l'utente decide di lanciare il programma, il sistema operativo crea un processo assegnandogli un PID ed una determinata quantità di RAM e CPU, tali informazioni prendono il nome di "informazioni di stato di un processo". Come anticipato, tale processo è costituito dai più piccoli thread, i quali devono condividere le stesse risorse del processo "padre", col vantaggio di non doverne richiedere di nuove (attività più onerosa rispetto all'utilizzo di risorse già "inizializzate"). I thread svolgono specifiche funzioni, granularizzando l'intera attività di un processo, nel caso del browser Chrome, vi sono thread delegati al donwload dei contenuti, altri all'upload ed altri ancora allo streaming (vedi immagine sottostante). Bene caro Elvis, speriamo questo articolo ti sia stato utile, se vuoi puoi vedere il nostro video tutorial sul Tubo o su Instagram, non esitare a farci ulteriori domande se ritieni, a presto :D

Comentarios