Differenza tra processo e thread

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 5 Maggio 2024
Anonim
Lezione03 - SISTEMI OPERATIVI - Processi e Thread
Video: Lezione03 - SISTEMI OPERATIVI - Processi e Thread

Contenuto


Il processo e il thread sono essenzialmente associati. Il processo è un'esecuzione di un programma mentre il thread è un'esecuzione di un programma guidato dall'ambiente di un processo.

Un altro punto importante che differenzia processo e thread è che i processi sono isolati tra loro mentre i thread condividono memoria o risorse tra loro.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoProcessiFilo
Di baseProgramma in esecuzione.Processo leggero o parte di esso.
Condivisione della memoriaCompletamente isolato e non condivide la memoria.Condivide la memoria tra loro.
Consumo di risorseDi PiùDi meno
EfficienzaMeno efficiente rispetto al processo nel concetto di comunicazione.Aumenta l'efficienza nel campo della comunicazione.
Tempo richiesto per la creazioneDi Più
Di meno
Con tempo di commutazioneRichiede più tempo.Consuma meno tempo.
Risoluzione incertaRisultati in perdita di processo.È possibile recuperare un thread.
Tempo richiesto per la risoluzioneDi PiùDi meno


Definizione di processo

Il processo consiste nell'esecuzione di un programma ed esegue le azioni pertinenti specificate in un programma oppure è un'unità di esecuzione in cui viene eseguito un programma. Il sistema operativo crea, pianifica e termina i processi per l'utilizzo della CPU. Gli altri processi creati dal processo principale sono noti come processo figlio.

Le operazioni di un processo controllate con l'aiuto di PCB (Process control Block) possono essere considerate il cervello del processo, che contiene tutte le informazioni cruciali relative a un processo come un ID processo, priorità, stato, PWS e contenuto Registro CPU .

PCB è anche una struttura di dati basata su kernel che utilizza i tre tipi di funzioni che sono la pianificazione, l'invio e il salvataggio.

  • programmazione - È un metodo per selezionare la sequenza del processo in parole semplici e sceglie il processo che deve essere eseguito per primo nella CPU.
  • dispacciamento - Imposta un ambiente per l'esecuzione del processo.
  • Con save - Questa funzione salva le informazioni relative a un processo quando viene ripreso o bloccato.

Ci sono alcuni stati inclusi in un ciclo di vita del processo come pronto, in esecuzione, bloccato e terminato. Gli stati del processo vengono utilizzati per tenere traccia dell'attività del processo in un istante.


Dal punto di vista del programmatore, i processi sono il mezzo per raggiungere l'esecuzione simultanea di un programma. Il processo principale di un programma concorrente crea un processo figlio. Il processo principale e il processo figlio devono interagire con ciascuno per raggiungere un obiettivo comune.

Le operazioni di interfogliatura dei processi aumentano la velocità di calcolo quando l'operazione di I / O in un processo si sovrappone a un'attività computazionale in un altro processo.

Proprietà di un processo:

  • La creazione di ciascun processo include le chiamate di sistema per ciascun processo separatamente.
  • Un processo è un'entità di esecuzione isolata e non condivide dati e informazioni.
  • I processi utilizzano il meccanismo IPC (comunicazione tra processi) per la comunicazione che aumenta significativamente il numero di chiamate di sistema.
  • La gestione dei processi consuma più chiamate di sistema.
  • Ogni processo ha la propria memoria stack, heap, istruzioni, dati e mappa di memoria.

Definizione di Discussione

Il thread è un'esecuzione del programma che utilizza le risorse del processo per eseguire l'attività. Tutti i thread all'interno di un singolo programma sono logicamente contenuti all'interno di un processo. Il kernel alloca uno stack e un thread control block (TCB) a ciascun thread. Il sistema operativo salva solo il puntatore dello stack e lo stato della CPU al momento del passaggio tra i thread dello stesso processo.

I thread sono implementati in tre modi diversi; questi sono thread a livello di kernel, thread a livello di utente, thread ibridi. I thread possono avere tre stati in esecuzione, pronti e bloccati; include solo lo stato computazionale e non l'allocazione delle risorse e lo stato di comunicazione che riduce il sovraccarico di commutazione.Migliora la concorrenza (parallelismo), quindi aumenta anche la velocità.

Il multithreading include anche demeriti, i thread multipli non creano complessità, ma l'interazione tra di loro lo fa.

Un thread deve avere la proprietà prioritaria quando sono attivi più thread. Il tempo impiegato per l'esecuzione rispetto ad altri thread attivi nello stesso processo è specificato dalla priorità del thread.

Proprietà di una discussione:

  • Solo una chiamata di sistema può creare più di un thread (processo leggero).
  • Le discussioni condividono dati e informazioni.
  • Thread condivide le istruzioni, le regioni globali e heap ma ha il proprio stack e registri individuali.
  • La gestione dei thread non consuma né meno chiamate di sistema poiché la comunicazione tra i thread può essere ottenuta utilizzando la memoria condivisa.
  • La proprietà di isolamento del processo aumenta il sovraccarico in termini di consumo di risorse.
  1. Tutti i thread di un programma sono logicamente contenuti all'interno di un processo.
  2. Un processo è pesante, ma un filo è leggero.
  3. Un programma è un'unità di esecuzione isolata mentre il thread non è isolato e condivide la memoria.
  4. Un thread non può avere un'esistenza individuale; è collegato a un processo. D'altra parte, un processo può esistere individualmente.
  5. Al momento della scadenza di un thread, è possibile ripristinare lo stack associato poiché ogni thread ha il proprio stack. Al contrario, se un processo muore, tutti i fili muoiono incluso il processo.

Conclusione

I processi vengono utilizzati per ottenere l'esecuzione di programmi in modo simultaneo e sequenziale. Mentre un thread è un'unità di esecuzione del programma che utilizza l'ambiente del processo quando molti thread utilizzano l'ambiente dello stesso processo, devono condividere il suo codice, i suoi dati e le sue risorse. Il sistema operativo utilizza questo fatto per ridurre il sovraccarico e migliorare il calcolo.