Migliore risposta
Programma , Processo e Thread sono tre concetti di base dei sistemi operativi su cui ogni ingegnere informatico deve avere familiarità . Qui spiegherò di cosa tratta ciascuno di essi e come differiscono luno dallaltro.
Che cosè un programma?
Il programma è un file eseguibile contenente il set di istruzioni scritte per eseguire un lavoro specifico sul tuo computer. Ad esempio, notepad.exe è un file eseguibile contenente il set di istruzioni che ci aiutano a modificare e stampare i file di testo.
Programmi non vengono archiviati nella memoria principale del computer. Sono archiviati su un disco o una memoria secondaria del computer. Vengono letti nella memoria primaria ed eseguiti dal kernel. A volte un programma viene chiamato entità passiva poiché risiede su una memoria secondaria.
Cosè un processo?
Il processo è unistanza in esecuzione di un programma. Ad esempio, quando fai doppio clic su unicona del blocco note sul tuo computer, viene avviato un processo che eseguirà il programma del blocco note.
A volte un processo viene chiamato entità attiva in quanto risiede nella memoria primaria e lascia la memoria se il sistema viene riavviato. Diversi processi possono essere correlati allo stesso programma. Ad esempio, puoi eseguire più istanze di un programma di blocco note. Ogni istanza viene definita processo.
Che cosè un thread ?
Il thread è la più piccola unità eseguibile di un processo. Ad esempio, quando esegui un programma di blocco note, il sistema operativo crea un processo e avvia lesecuzione del thread principale di quel processo.
Un processo può avere più thread. Ogni thread avrà la propria attività e il proprio percorso di esecuzione in un processo. Ad esempio, in un programma di blocco note, un thread prenderà gli input dellutente e un altro thread stamperà un documento.
Tutti i thread dello stesso processo condividono la memoria di quel processo. Poiché i thread dello stesso processo condividono la stessa memoria, la comunicazione tra i thread è veloce.
Riassumendo …
A questo punto spero che tu sia chiaro con le differenze tra programma, processo e thread e che tu abbia anche scoperto la relazione tra loro … In caso contrario, scoprilo sotto.
Il programma è un super insieme di processi, mentre processo è un super set di thread.
Buon apprendimento !!!
Immagine per gentile concessione: www.google.com
Risposta
- Programma : Il programma non è altro che linsieme di tutte le istruzioni che richiedono per eseguire un lavoro specifico, prima di essere eseguite devono essere convertite in codici binari che dovrebbero essere compresi dal sistema operativo del sistema operativo del caricatore. come il file EXE memorizzato in Portable Executable (PE) Formatta su memoria secondaria Come un disco rigido. Un processo è solitamente definito come unistanza di un Programma in esecuzione e consiste di due componenti: 1) Un oggetto kernel che il sistema operativo utilizza per gestire il processo. Loggetto kernel è anche il luogo in cui il sistema conserva le informazioni statistiche sul processo. 2) Uno spazio indirizzo che contiene tutto il codice e i dati del modulo eseguibile o DLL. Contiene anche allocazioni di memoria dinamica come stack di thread e allocazioni di heap. I processi sono inerti. Affinché un processo possa eseguire qualsiasi cosa, deve avere un thread che viene eseguito nel suo contesto, questo thread è responsabile dellesecuzione del codice contenuto nello spazio degli indirizzi del processo. In effetti, un singolo processo potrebbe contenere diversi thread, che eseguono tutti codice “simultaneamente” nello spazio degli indirizzi del processo. Per fare ciò, ogni thread ha il proprio set di registri della CPU e il proprio stack. Ogni processo ha almeno un thread che esegue il codice nello spazio degli indirizzi del processo. Se non ci fossero thread che eseguono codice nello spazio degli indirizzi del processo, non ci sarebbe motivo per il processo di continuare a esistere e il sistema distruggerebbe automaticamente il processo e il suo spazio degli indirizzi.
- Processo : ogni processo fornisce le risorse necessarie per eseguire un programma. Un processo ha uno spazio degli indirizzi virtuale, codice eseguibile, handle aperti per gli oggetti di sistema, un contesto di sicurezza, un identificatore di processo, variabili di ambiente, una classe di priorità, dimensioni minime e massime del working set e almeno un thread di esecuzione. Ogni processo viene avviato con un singolo thread, spesso chiamato thread primario, ma può creare thread aggiuntivi da uno qualsiasi dei suoi thread .
- Thread : un thread è unentità allinterno di un processo che può essere pianificata per lesecuzione. Tutti i thread di un processo condividono lo spazio degli indirizzi virtuali e le risorse di sistema. Inoltre, ogni thread mantiene gestori di eccezioni, una priorità di pianificazione, archiviazione locale del thread, un identificatore di thread univoco e un insieme di strutture che il sistema utilizzerà per salvare il contesto del thread fino a quando non viene pianificato. Il contesto del thread include il set di registri della macchina del thread, lo stack del kernel, un blocco dellambiente del thread e uno stack utente nello spazio degli indirizzi del processo del thread. I thread possono anche avere il proprio contesto di sicurezza, che può essere utilizzato per impersonare i client.