Vai alla Home Page About me Courseware Federica Virtual Campus 3D Gli eBook di Federica
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Marco Lapegna » 4.La rappresentazione dei processi


Sistemi operativi

La rappresentazione dei processi

Cosa è un processo?

  • Un sistema operativo esegue programmi di varia natura:
  • Compilatori, word processor, programmi utente, programmi di sistema,…
    • Processo = un programma in esecuzione;
  • L’esecuzione avviene in modo sequenziale.
  • Ad un programma possono corrispondere piu’ processi
  • Termini sinonimi: task, job

Processi

  • Un processo è una entità dinamica (il suo stato varia nel tempo)
  • Ad ogni processo il sistema operativo assegna un’area di memoria
    • area testo: contiene il codice eseguibile
    • area dati: contiene le variabili globali
    • area stack: contiene le variabili locali, e gli indirizzi di rientro delle subroutine
Schema esplicativo (aree)

Schema esplicativo (aree)


Stato del processo

In un sistema multiprogrammato, mentre viene eseguito un processo cambia stato:

  • New (nuovo): Il processo viene creato.
  • Running (in esecuzione): Le istruzioni vengono eseguite.
  • Waiting (in attesa): Il processo è in attesa di un evento.
  • Ready (pronto): Il processo è in attesa di essere assegnato ad un processore.
  • Terminated (terminato): Il processo ha terminato la propria esecuzione.

Diagramma degli stati di un processo

  • Sempre un solo processo running
  • Molti processi ready o waiting
  • La cpuè utilizzata a turno dai vari processi
Diagramma degli stati di processo

Diagramma degli stati di processo


Esempio: Linux

L’effettiva denominazione degli stati dipende dal sistema.

Schema esplicativo (Linux)

Schema esplicativo (Linux)


Come il S.O. gestisce i processi?

Per poter effettuare correttamente il passaggio tra gli stati di un processo, il sistema operativo deve salvare una serie di informazioni in un opportuna struttura dati conservata nel kernel:

Process Control Block

Il processo control block

  • Stato del process
  • Process id
  • Program counter
  • Registri della CPU
  • Puntatori alle code di stato
  • Gestione della memoria (registri base e limite)
  • Contabilizzazione delle risorse (numero job/account, tempo di CPU)
  • Stato di I/O (lista dispositivi/file aperti)
Schema esplicativo

Schema esplicativo


Campi del Process Control Block

La struttuta del PCB dipende dall’architettura e dal S.O. !!

Tabella del Process Control Block

Tabella del Process Control Block


Process table

Il sistema operativo mantiene un puntatore ad ogni PCB in opportune

Process table

Le process table sono di utente o generali per il sistema

Quando un processo è terminato, il sistema operativo rimuove il processo dalla Process Table e libera le risorse

Process table

In figura è mostrato lo schema di funzionamento della Process Table.

Schema esplicativo (process table)

Schema esplicativo (process table)


Code per lo scheduling di processi

In un sistema operativo (monoprocessore) c’è sempre un solo processo in esecuzione.

Gli altri processi sono conservati in opportune code.

Ready queue (Coda dei processi pronti) — Insieme di tutti i processi pronti ed in attesa di esecuzione, che risiedono i memoria centrale.

I/O queue (Coda dei dispositivi) — Insieme di processi in attesa per un dispositivo di I/O.

Le PCB dei processi si “spostano” fra le varie code.

Ready queue e code dei dispositivi

In figura è mostrato lo schema di funzionamento delle code dei dispositivi (queue).

Schema esplicativo (ready queue)

Schema esplicativo (ready queue)


Context Switch

Quando la CPU passa da un processo all’altro, il sistema deve salvare lo stato del vecchio processo e caricare lo stato precedentemente salvato per il nuovo processo.

Il sistema non lavora utilmente mentre cambia contesto.

Il tempo di context–switch è un sovraccarico per il sistema e dipende dal supporto hardware

Context switch

In figura è mostrato lo schema descrittivo del Context Switch.

Schema esplicativo (context switch)

Schema esplicativo (context switch)


Context switch

In figura è mostrato lo schema di funzionamento del Context Switch.

Schema di funzionamento

Schema di funzionamento


Quale processo deve usare la cpu?

Un opportuno programma decide quale tra i processi nella ready queue deve utilizzare la CPU

SCHEDULER

Scheduler a breve termine (o scheduler della CPU) :

  • Seleziona quale processo debba essere eseguito successivamente, ed alloca la CPU
  • Deve essere chiamato molto spesso (~ 50 msec)
  • Deve essere veloce (~ 1 msec)
  • E’ responsabile dei tempi di attesa

Scheduler a breve termine

In figura è illustrato lo schema di funzionamento dello scheduler a breve termine.

Schema esplicativo (breve termine)

Schema esplicativo (breve termine)


Tipi di scheduler

Scheduler a lungo termine (o scheduler dei job):

  • Seleziona quali processi devono essere portati dalla memoria di massa in memoria centrale
  • Controlla il numero di processi in un sistema
  • Puo’ essere chiamato ogni volta che si crea un nuovo processo (secondi o minuti)
  • Puo’ essere assente nei moderni S.O. (UNIX)

Tipi di scheduler

Scheduler a medio termine (swapper ):

  • Rimuove processi dalla memoria (e dalla contesa per la CPU) e riduce il grado di multiprogrammazione
  • E’ responsabile del numero di processi presenti in memoria e facilita il compito dello scheduler a breve termine
  • Assieme allo scheduler a lungo termine determina la composizione delle code dei processi

Interazione tra gli scheduler

In figura è illustrato lo schema di funzionamento e interrelazione tra scheduler a breve e medio termine.

Schema relativo all’interazione tra due scheduler

Schema relativo all'interazione tra due scheduler


Scheduler a medio/lungo termine

  • I processi possono essere classificati in:
  • Processi I/O–bound :
    • Impiegano più tempo effettuando I/O
    • In generale, molti burst di CPU di breve durata
    • Utilizzano prevalentemente le code dei dispositivi
  • Processi CPU–bound :
    • Impiegano più tempo effettuando elaborazioni
    • In generale, pochi burst di CPU di lunga durata.
    • Utilizzano prevalentemente la ready queue

Scheduler a medio/lungo termine

OBIETTIVO

Avere sempre processi presenti nelle code dei processi pronti e dei dispositivi

Prossima lezione

Operazioni sui processi

  • Creazione
  • Terminazione
  • Comunicazione tra processi
    • Memoria condivisa
    • Message passing
    • Segnali
  • 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