Sistema operativo - Processi

Processi

Un processo è fondamentalmente un programma in esecuzione. L'esecuzione di un processo deve procedere in modo sequenziale.

Un processo è definito come un'entità che rappresenta l'unità di lavoro di base da implementare nel sistema.

Per dirla in termini semplici, scriviamo i nostri programmi per computer in un file di testo e quando eseguiamo questo programma, diventa un processo che esegue tutte le attività menzionate nel programma.

Quando un programma viene caricato in memoria e diventa un processo, può essere diviso in quattro sezioni: stack, heap, testo e dati. L'immagine seguente mostra un layout semplificato di un processo all'interno della memoria principale:

SN Componente e descrizione
1

Stack

Lo Stack di processo contiene i dati temporanei come parametri di metodo / funzione, indirizzo di ritorno e variabili locali.

2

Heap

Questa è la memoria allocata dinamicamente a un processo durante il suo tempo di esecuzione.

3

Text

Ciò include l'attività corrente rappresentata dal valore di Program Counter e il contenuto dei registri del processore.

4

Data

Questa sezione contiene le variabili globali e statiche.

Programma

Un programma è un pezzo di codice che può essere una singola riga o milioni di righe. Un programma per computer viene solitamente scritto da un programmatore di computer in un linguaggio di programmazione. Ad esempio, ecco un semplice programma scritto in linguaggio di programmazione C -

#include <stdio.h>

int main() {
   printf("Hello, World! \n");
   return 0;
}

Un programma per computer è una raccolta di istruzioni che esegue un'attività specifica quando viene eseguita da un computer. Quando confrontiamo un programma con un processo, possiamo concludere che un processo è un'istanza dinamica di un programma per computer.

Una parte di un programma per computer che esegue un'attività ben definita è nota come algorithm. Una raccolta di programmi per computer, biblioteche e dati correlati è denominata filesoftware.

Ciclo di vita del processo

Quando un processo viene eseguito, passa attraverso stati diversi. Queste fasi possono differire nei diversi sistemi operativi e anche i nomi di questi stati non sono standardizzati.

In generale, un processo può avere uno dei seguenti cinque stati alla volta.

SN Stato e descrizione
1

Start

Questo è lo stato iniziale quando un processo viene avviato / creato per la prima volta.

2

Ready

Il processo è in attesa di essere assegnato a un processore. I processi pronti sono in attesa di avere il processore assegnato loro dal sistema operativo in modo che possano essere eseguiti. Il processo può entrare in questo stato dopoStart stato o durante l'esecuzione ma interrotto dallo scheduler per assegnare la CPU a qualche altro processo.

3

Running

Una volta che il processo è stato assegnato a un processore dallo scheduler del sistema operativo, lo stato del processo viene impostato su running e il processore esegue le sue istruzioni.

4

Waiting

Il processo passa allo stato di attesa se deve attendere una risorsa, ad esempio attendere l'input dell'utente o attendere che un file diventi disponibile.

5

Terminated or Exit

Una volta che il processo termina la sua esecuzione, o è terminato dal sistema operativo, viene spostato nello stato terminato dove attende di essere rimosso dalla memoria principale.

Blocco di controllo del processo (PCB)

Un blocco di controllo del processo è una struttura di dati mantenuta dal sistema operativo per ogni processo. Il PCB è identificato da un ID di processo intero (PID). Un PCB conserva tutte le informazioni necessarie per tenere traccia di un processo come elencato di seguito nella tabella -

SN Informazioni e descrizione
1

Process State

Lo stato corrente del processo, ovvero se è pronto, in esecuzione, in attesa o altro.

2

Process privileges

Ciò è necessario per consentire / impedire l'accesso alle risorse di sistema.

3

Process ID

Identificazione univoca per ogni processo nel sistema operativo.

4

Pointer

Un puntatore al processo genitore.

5

Program Counter

Program Counter è un puntatore all'indirizzo della prossima istruzione da eseguire per questo processo.

6

CPU registers

Vari registri della CPU in cui il processo deve essere memorizzato per l'esecuzione per lo stato di esecuzione.

7

CPU Scheduling Information

Priorità del processo e altre informazioni di pianificazione necessarie per pianificare il processo.

8

Memory management information

Ciò include le informazioni della tabella delle pagine, dei limiti di memoria, della tabella dei segmenti a seconda della memoria utilizzata dal sistema operativo.

9

Accounting information

Ciò include la quantità di CPU utilizzata per l'esecuzione del processo, i limiti di tempo, l'ID di esecuzione ecc.

10

IO status information

Ciò include un elenco di dispositivi I / O assegnati al processo.

L'architettura di un PCB dipende completamente dal sistema operativo e può contenere informazioni diverse in sistemi operativi diversi. Ecco uno schema semplificato di un PCB:

Il PCB viene mantenuto per un processo per tutta la sua durata e viene eliminato al termine del processo.