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

Marco Lapegna » 22.Esercitazione 3: Windows


Windows : Scheduling dei thread

Scheduling basato su priorità con prelazione
32 livelli di priorità:

  • 0 = priorità minore;
  • 31 = priorità maggiore.

32 ready queue (una per ogni priorità)

Ogni coda gestita round robin.

Due classi di thread

  1. Thread real time (priorità statiche 16 → 31)
  2. Thread normali (priorità dinamiche 0 → 15)

Scheduling dei thread

I thread normali sono divisi in classi di priorità.

Es. proc di sistema o processi utente

All’interno di ogni classe la esistono livelli di priorità.

Es. background/foreground


Scheduling dei thread (segue)

I thread normali hanno una priorità dinamica.

Finestra che riceve input da tastiera
→ aumento della priorità +2

Completamento I/O, ottenimento di una risorsa,
→ aumento della priorità +1

Scadenza del quanto
→ riduzione della priorità -1

Comunque mai sopra highest o sotto lowest

Esercizio

3 processi in classe normal.
Highest = 10 ….. Lowest = 6

  • Incremento di 1 dopo completamento di I/O.
  • Decremento di 1 dopo esaurimento del quanto di tempo.
  • Quanto di tempo q=2.

Determinare il diagramma di Gantt.


Soluzione

A regime la cpu e’ schedulata in base alle necessita’ di P3.

A regime la cpu e' schedulata in base alle necessita' di P3.


Sostituzione delle pagine

Windows XP utilizza un modello ibrido di sostituzioine delle pagine: Working set + Localized Least recently used (LLRU)

Vengono assegnati ad ogni processo:

  • working set minimo;
  • working set massimo;
  • tali valori dipendono dal carico del sistema.

Quando un processo richiede più pagine del working set massimo il VMM sposta una pagina sul disco secondo la politica LLRU.

Localized → politica focalizzata sul singolo processo.

Windows: sostituzione delle pagine

Elimina tutte le pagine che eccedono la dimensione del working set massimo
Le pagine eliminate sono dette anche ridotte
Le pagine ridotte vengono spostate nella:

  • lista delle pagine in attesa;
  • lista delle pagine modificate;
  • lista delle pagine modificate ma da non scrivere.

La pagina viene spostata nuovamente nella lista delle pagine valide in caso di nuovi riferimenti (soft fault).
La pagina viene spostata nella lista delle pagine libere se non viene più referenziata per un certo periodo di tempo.
Un thread di sistema a bassa priorità la azzera e la sposta nella lista delle pagine azzerate.

Le pagine per i nuovi processi vengono prese dalla lista delle pagine azzerate.

Esercizio

Working set massimo = 3 (costante)
Tempo di permanenza nella lista delle pagine in attesa = max 3 u.t.
Si considerino solo gli stati attivo, attesa e azzerato
Sequenza di riferimento:

1, 2, 3, 4, 2, 5, 1, 6, 2, 2, 1, 5, 4, 6, 3, 1

Determinare il numero di page faults
Determinare il numero di soft faults

Soluzione


In conclusione

Linux e Windows adottano strategie ibride per lo scheduling dei processi e per la sostituzione delle pagine.
Linux

  • Scheduling CPU: priorità dinamiche + round robin + starvation limit
  • Sost. Pagine: FIFO seconda chance a 2 livelli

Windows

  • Scheduling CPU: priorità dinamiche + round robin
  • Sost. Pagine: working set + LLRU

Entrambi cercano di privilegiare (mediante le priorità dinamiche) i processi interattivi.
Entrambi non rimuovono subito dalla memoria le pagine “poco” refernziate.

  • 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