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.