Estratto del documento

Cap 3: descrizione e controllo dei processi

Stati dei processi

Un SO deve soddisfare principalmente le seguenti richieste:

  • Intercalare l'esecuzione di diversi processi per massimizzare l'uso del processore, fornendo un tempo di risposta ragionevole
  • Allocare risorse ai processi, usando una specifica politica ed evitando lo stallo
  • Supportare la comunicazione tra processi e la loro creazione a livello utente

Un processore deve eseguire sequenzialmente istruzioni macchina, che risiedono nella memoria principale come programmi.

Per processo (o task) si intende un insieme di istanze di un programma in esecuzione completate in modo sequenziale. Esso è costituito dall'insieme di istruzioni e dai dati elaborati. Le prime possono essere elencate in una traccia che caratterizza il comportamento del singolo task.

Quando si hanno più processi rispetto ai processori, il SO consente l'esecuzione solo per un tot di tempo permettendo l'uso della CPU a tutti quanti. Così servendosi di un allocatore alterna più processi da completare, saltando quelli in attesa di un evento.

Per gestire al meglio il collegamento tra processi viene introdotto il concetto di stato:

Esistono vari modelli, il più semplice è il modello a due stati. Un processo può essere eseguito dal processore (RUNNING) o no (NOT-RUNNING).

Un processo viene creato e inserito nel gruppo dei processi not-running. Poi viene preso ed eseguito, lo stato passa a running. Esso potrebbe terminare o essere messo in pausa perché è finito il suo quanto di tempo o è in attesa di un evento I/O.

Già da questo facile schema si può capire che il SO deve conservare traccia del processo, incluso lo stato corrente e la locazione di memoria.

I processi non eseguiti sono memorizzati in qualche coda tramite puntatori oppure blocchi di dati. Essa può funzionare sia come FIFO (first in first out) sia come coda di priorità (il processo con priorità più alta viene selezionato).

Creazione di un processo

La creazione di un processo avviene tramite due azioni fatte dal SO:

  • Costruisce le strutture dati
  • Alloca lo spazio di indirizzamento

Le cause sono principalmente 4:

  • In ambiente non interattivo (batch) viene ricevuto un nuovo job batch (programmi dove non è richiesto l'intervento dell'utente)
  • Un nuovo utente si collega al sistema
  • Per svolgere una funzione per conto di un programma utente affinché non ci sia attesa (es. stampa)
  • A seguito di una richiesta di un processo (generazione di processo) per sfruttare il parallelismo

Terminazione dei processi

La terminazione dei processi può avvenire per molti più motivi. Essi sono:

  • Terminazione normale
  • Superamento del tempo massimo specificato
  • Memoria non disponibile
  • Violazione dei limiti di memoria

Cap 3: descrizione e controllo dei processi

Stati dei processi

Un SO deve soddisfare principalmente le seguenti richieste:

  • Intercalare l'esecuzione di diversi processi per massimizzare l'uso del processore, fornendo un tempo di risposta ragionevole
  • Allocare risorse ai processi, usando una specifica politica ed evitando lo stallo
  • Supportare la comunicazione tra processi e la loro creazione a livello utente

Un processore deve eseguire sequenzialmente istruzioni macchina, che risiedono nella memoria principale come programmi.

Per processo (o task) si intende un insieme di istanze di un programma in esecuzione completate in modo sequenziale. Esso è costituito dall'insieme di dati elaborati, le prime possono essere elencate in una traccia che caratterizza il comportamento di un singolo task.

Quando si hanno più processi rispetto ai processori, il SO consente l'esecuzione solo per un tot di tempo permettendo l'uso della CPU a tutti quanti. Così servendosi di un allocatore alterna più processi da completare, saltando quelli in attesa di un evento.

Per gestire al meglio il collegamento tra processi viene introdotto il concetto di stato.

Esistono vari modelli, il più semplice è il modello a due stati.

Un processo può essere eseguito dal processore (RUNNING) o no (NOT-RUNNING).

Un processo viene creato e inserito nel gruppo dei processi not-running. Poi viene preso ed eseguito, lo stato passa a running. Esso potrebbe terminare o essere messo in pausa perché è finito il suo quanto di tempo o è in attesa di un evento I/O.

Già da questo facile schema si può capire che il SO deve conservare traccia del processo, incluso lo stato corrente e la locazione di memoria.

I processi non eseguiti sono memorizzati in qualche coda tramite puntatori oppure blocchi di dati. Essa può funzionare sia come FIFO (first in first out) sia come coda di priorità (il processo con priorità più alta viene selezionato).

Creazione di un processo

La creazione di un processo avviene tramite due azioni fatte dal SO:

  • Costruisce le strutture dati
  • Alloca lo spazio di indirizzamento

Le cause sono principalmente 4:

  • In ambiente non interattivo (batch) viene ricevuto un nuovo job batch (programmi dove non è richiesto l'intervento dell'utente)
  • Un nuovo utente si collega al sistema
  • Per svolgere una funzione per conto di un programma utente affinché non ci sia attesa (es. stampa)
  • A seguito di una richiesta di un processo (generazione di processo) per sfruttare il parallelismo

Terminazione dei processi

La terminazione dei processi può avvenire per molti più motivi. Essi sono:

  • Terminazione normale
  • Superamento del tempo massimo specificato
  • Memoria non disponibile
  • Violazione dei limiti di memoria
  • Errore di protezione
  • Tempo scaduto
  • Fallimento di un'operazione di I/O
  • Istruzione non valida
Anteprima
Vedrai una selezione di 10 pagine su 98
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 1 Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 2
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 6
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 11
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 16
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 21
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 26
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 31
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 36
Anteprima di 10 pagg. su 98.
Scarica il documento per vederlo tutto.
Sistemi di Calcolo 2 (Teoria + Esempi + Esempi Codice) Pag. 41
1 su 98
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher leoma di informazioni apprese con la frequenza delle lezioni di Sistemi di calcolo e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Baldoni Roberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community