Processo (informatica)
In Informatica per processo si intende, intuitivamente, un programma in esecuzione. Non esiste una definizione rigorosa di processo. Un programma è costituito dal codice oggetto generato dalla compilazione del codice sorgente. Esso è un'entità statica, che rimane immutata. Un processo, invece, è un'entità dinamica, che dipende dai dati che vengono elaborati, dalle operazioni eseguite ecc. Il processo, quindi, oltre al codice oggetto è l'insieme di tutte le informazioni necessarie a definirne lo stato, come il programm counter, lo stack, il contenuto dei registri del processore, i file e le periferiche in uso.

Un processo può generare, attraverso apposite chiamate al Sistema operativo, un processo figlio. Capita spesso, quindi, che un solo programma dia l'avvio a più processi.
La creazione di un processo figlio può essere bloccante, ovvero il processo padre blocca la propria esecuzione fino a che non riceve dal Sistema operativo un segnale che lo informa che il processo filgio è terminato, indicando il codice d'uscita, in genere un valore numerico, necessario per verificare se il processo figlio ha concluso l'esecuzione correttamente oppure risalire all'errore generato.
Altrimenti il processo padre può proseguire la propria esecuzione concorrentemente con il figlio. Questo può comportare, in architetture multiprocessore (SMP), miglioramenti prestazionali grazie alll'esecuzione contemporanea dei processi.
Thread
Per consentire ad un processo di eseguire contemporaneamente più compiti è stato introdotto il thread. Un thread è formato da una sequenza di istruzioni, da un programm counter, dai registri. Condivide con gli altri thread dello stesso processo tutti gli altri dati che sono in comune, quale ad esempio la lista dei file allocati o delle periferiche, e la memoria. L'uso dei thread rende i programmi più responsivi per l'utente. Possiamo prendere ad esempio i browser. Un browser inizia il download di una pagina web ed inizia a visualizzarla. Quando trova un'immagine avvia un nuovo thread che si occupa di farne il rendering, mentre il thread principale continua a scaricare e visualizzare il testo.