Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Antonino Mazzeo » 5.Gestione dei processi


Sommario

  • Definizione di processo
  • Stati di un processo
  • Descrittore di un processo
  • Code dei processi
  • Cambio di contesto

Definizione di un processo

Programma

  • E’ la codifica di un algoritmo in un opportuno linguaggio di programmazione che ne rende possibile l’esecuzione da parte di un elaboratore.
  • E’ una descrizione statica delle elaborazioni da eseguire.

Processo

  • E’ l’unità base di esecuzione del SO che identifica le attività dell’elaboratore relative ad una specifica esecuzione di un programma
  • Un processo è un programma in esecuzione.
    E’ una entità dinamica (programma + stato di esecuzione).

Processi differenti possono eseguire più istanze di uno stesso programma.

Stati di un processo

Durante la sua esecuzione, un processo è soggetto a transizioni di stato definite

  • dall’attività corrente del processo
  • da eventi esterni asincroni con la sua esecuzione

In prima approssimazione, un processo può essere caratterizzato da due stati.

Ma in un sistema monoprocessore risulta necessario distinguere tra processo pronto e processo in esecuzione (Modello a tre stati).
Se si considera anche la presenza di swapping si ha un Modello più generale.

Schema modello a due/tre stati

Schema modello a due/tre stati


Descrittore di un processo

Ad ogni processso è associata una struttura dati, denominata Descrittore del processo (PCB- Process Control Block).

I descrittori sono a loro volta organizzati in una tabella dei processi (Process Table).

Le informazioni da registrare nel descrittore possono essere così classificate:

  • Nome del Processo
  • Stato del processo
  • Modalità di servizio (ad es. priorità, deadline)
  • Informazioni sulla gestione della memoria
  • Contesto del processo (reg. del processore)
  • Utilizzo delle risorse
  • Identificatore del processo successivo

Code di processi

  • In un sistema monoprocessore ad ogni istante un solo processo è in esecuzione, mentre gli altri sono o bloccati o pronti per essere eseguiti
  • I processi presenti nella memoria principale che sono pronti per essere eseguiti sono organizzati in una (o più) code (code dei processi pronti)
  • Il componente del SO che è responsabile di selezionare un processo dalla coda dei processi pronti e di farlo transitare nello stato di esecuzione è denominato schedulatore di breve termine (BT) o schedulatore della CPU
Schema esplicativo (code)

Schema esplicativo (code)


Cambio di contesto

  • L’insieme di operazioni eseguite per il prerilascio di un processo in esecuzione a favore di un nuovo processo scelto nella coda dei processi pronti si chiama cambiamento di contesto (context switch).
  • Avviene a seguito di ….
    • Timeout, Interruzioni di I/O, Memory fault, Trap, System call
  • Il cambiamento di contesto è il risultato dell’esecuzione di tre procedure distinte del S.O..
    • Procedure Salvataggio_stato
    • Procedure Scheduling_CPU
    • Procedure Ripristino_stato

Prossima lezione

Gestione dei processi nei sistemi operativi Unix/Linux e Windows

I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap.2)

A. Silbershatz, G. Gagne, "Sistemi Operativi" (sesta edizione), Addison-Wesley (Cap. 4)

W. Stallings, “Operating Systems : Internals and Design Principles (5th Edition) ”, Prentice Hall (Cap. 3)

Gestione dei processi

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93