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 » 6.Gestione dei processi nei sistemi operativi Unix/Linux e Windows


Sommario

Gestione dei processi nei S.O. Unix/Linux

  • Caratteristiche di un processo Unix
  • Stato di un processo Unix
  • PCB Unix
  • Scheduling in Unix

Gestione dei processi e dei thread nei S.O. Windows 2000

  • Caratteristiche dei processi e Thread in Windows
  • Risorse di un Processo e Stati di un Thread
  • Scheduling dei thread in Windows

Caratteristiche di un processo Unix

Unix è un sistema operativo multiprogrammato a divisione di tempo.

Processo pesante con codice rientrante

  • dati non condivisi
  • più processi possono condividere lo stesso codice

Funzionamento dual mode:

  • processi di utente (modo user)
  • processi di sistema (modo kernel)

Stati di un processo Unix

Lo stato Zombie

Stato in cui un processo ha terminato, ma non può essere ancora eliminato perché la sua immagine è ancora necessaria.

Esempio tipico: il processo figlio termina prima del padre. Il processo è zombie finché il padre non rileva lo stato di terminazione del figlio.

Stato zombie

Stato zombie


PCB Unix

Suddiviso in due parti: Process Structure e User Structure (U-Area)

  • Process Structure: contiene le informazioni indispensabili per la gestione del processo, anche se è in stato swapped.
  • U-Area: contiene le informazioni necessarie alla gestione del processo solo quando risiede in memoria (soggetta a Swap out)

Text Structure e Text Table

  • Il codice dei processi è rientrante, per cui il kernel gestisce una struttura dati globale, la text table, in cui ogni elemento contiene un puntatore all’area di memoria in cui è contenuto il codice
Process structure / U-Area

Process structure / U-Area


Scheduling in Unix

Obiettivo: privilegiare i processi interattivi

  • Scheduling feedback multilivello;
  • ad ogni processo è associato un livello di priorità: più grande è il valore, più bassa è la priorità;
  • Ad ogni livello è associata una coda, gestita con Round Robin;
  • Se un processo running non si blocca o termina in un secondo, viene revocato (preemption);
  • Priorità dinamiche, ricalcolate ogni secondo.

Calcolo della Priorità (a sinistra)

Calcolo della priorità

Calcolo della priorità


Processi e Thread

W2K è un S.O. multithread, time-sharing.

I processi W2K sono implementati secondo il paradigma object oriented:

  • Ogni processo è un oggetto (kernel object) che offre stato e funzionalità agli utenti attraverso dei riferimenti (handle)

Un processo contiene uno o più thread, che a loro volta sono dei kernel object.
La concorrenza è realizzata dai thread, per cui un processo W2K deve contenere almeno un thread per eseguire.

Stati di un Thread

Stati di un thread

Stati di un thread


Scheduling dei Thread in W2K

  • Politica di scheduling dei thread: intermedia tra la politica prioritaria e quella “round-robin”
  • Ad ogni thread viene associata una priorità assoluta che varia tra 0 e 31
  • Ad ogni classe viene assegnato un valore numerico nominale
  • Per ogni livello di priorità, lo scheduler mantiene una coda gestita con Round Robin, con quanto 10 ms
  • Meccanismo del dynamic priority boost: permette di ridurre il tempo di risposta dei thread interattivi

Prossima lezione

Esercitazione: Linux shell

I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap.7, Par. 7.4 – Cap. 8, Par. 8.2)

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

Gestione dei processi Unix/Linux e Windows

  • 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