Vai alla Home Page About me Courseware Federica Living Library Federica Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Marco Lapegna » 9.Il S.O. Windows – parte seconda


Virtual Memory Manager (VMM)

Executive responsabile della gestione della memoria.

Le pagine di un processo sono divise tra la memoria centrale e il disco, in 16 strutture chiamate pagefile.

32 bit di indirizzamento : 4GB di spazio di indirizzamento virtuale:

  • 2 GB di spazio utente (usato per le pagine del processo);
  • 2 GB di spazio di sistema (usato per le tabelle delle pagine e altre strutture dati).

Frame di dimensione fissa di 4KB

VMM

Tabella delle pagine a due livelli

1. Elenco delle tabelle delle pagine:

  • Un elenco delle tabelle per processo;
  • Ogni elemento (Page Directory Entries) punta ad una tabella di secondo livello;
  • La posizione dell’elenco e’ memorizzata in un apposito registro della CPU durante il cambio di contesto.

2. Tabella delle pagine

  • Ogni elemento (Page Table Entries) punta ad un frame in memoria;

3. Frame in memoria

  • Contiene i dati delle pagine;

I registri associativi (TLB ) possono accelerare la traduzione degli indirizzi.

Elementi della tabella delle pagine

32 bit:

  • 5 bit per la protezione;
  • 20 bit per definire il frame in memoria;
  • 4 bit per definire il pagefile a cui fare riferimento;
  • 3 bit di stato della pagina.

Bit di protezione:

  • Read;
  • Write;
  • Execute;
  • Copy-on-write,
  • Eccezione nell’accesso.

Bit di stato:

  • Valida;
  • Modificata;
  • In transizione.

Stati delle pagine

Per tenere traccia dell’uso della memoria il sistema classifica i frame in 8 stati differenti e mantiene una lista per ogni stato.

Valido: la pagina memorizzata appartiene al working set di un processo;
Transizione: la pagina memorizzata sta per essere trasferita sul disco;
Modificato: la pagina memorizzata è stata rimossa dal w.s. di un processo ma non è ancora coerente con la copia sul disco;
In attesa: il frame contiene una pagina che è stata rimossa dal working set di un processo;
Modificato ma da non scrivere: la pagina è stata rimossa dal w.s. di un processo e non è coerente con la copia sul disco. Per motivi di coerenza del file system è necessario prima annotare la modifica;
Libero: il frame non contiene pagine valide;
Azzerata: il frame ha tutti i bit azzerati e non fa parte di nessun w.s.;
Bad: il frame ha generato un errore.

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.

Localized LRU

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 priorita’ la azzera e la sposta nella lista delle pagine azzerate.

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

Eccezioni nella sostituzione delle pagine

Non tutte le pagine possono essere rimosse dalla memoria. La memoria è divisa in due segmenti.

Memoria paginata:

  • Il VMM può rimuovere le pagine

Memoria non paginata:

  • Il VMM non può rimuovere le pagine
  • Usato per:
    • Driver dei dispositivi;
    • Parte del kernel;
    • Interrupt service routine.

Ottimizzazione dell’algoritmo LLRU

Il sistema impiega una paginazione su richiesta.

Gruppi di pagine sono memorizzati in cluster nei pagefile.

In caso di page fault, Windows carica in memoria tutto il cluster che contiene la pagina richiesta.

Principio di località spaziale (se serve una pagina, forse a breve serviranno anche quelle vicine).

Paginazione su richiesta clusterizzata.


File system

  • Driver di alto livello. Responsabile delle operazioni di protezioni, compressione, cifratura e deframmentazione;
  • Driver del file system. Responsabile della allocazione dei file e dell’organizzazione logica;
  • Driver del dispositivo hw. Responsabile dell’accesso al dispositivo (formato, scheduling,..).
Il file system di windows XP e’ diviso in tre livelli

Il file system di windows XP e' diviso in tre livelli


File system NTFS

Il primo file system di Windows era basato su una allocazione tabellare (File Allocation Table).

  • Una tabella con una entry per ogni blocco fisico del disco;

Principali problemi: frammentazione, inefficienza.

Esempio: disco di 32 Gbyte

  • blocchi “piccoli” da 2 KB _ oltre 16 milioni di blocchi _ 48Mb per la tabella _ inefficienza;
  • blocchi “grandi” da 1 MB _ frammentazione.

Nei s.o. Windows NT, 2000, XP e Vista, il file system principale è

New Technology File System = NTFS

FAT vs NTFS


Volumi

La struttura fondamentale di NTFS è il volume:

  • Partizionamento logico del disco (analogo alla partizione),
  • Creato dall’amministratore del sistema;
  • Puo’ occupare parte di un disco, un disco intero o comprendere piu’ dischi.

Nel caso di piu’ dischi e’ possibile utilizzare tecniche RAID per gestire il volume.


Cluster

NTFS utilizza i clusters come unità di allocazione del disco

  • Un cluster è un insieme di settori del disco di dimensione compresa tra 2 e 8 KB,
  • L’indice del cluster e’ chiamato Logical Cluster Number (LCN).

Poiche’ per dischi grandi la dimensione dei cluster e’ molto minore di quella della FAT (32KB), la frammentazione interna è ridotta.


Metafile

Tutti le informazioni che riguardano il volume, sono organizzati in 11 file regolari (metafile) che risiedono in una posizione prefissata (occupano i primi cluster, la MFT zone).

Metafile:

  • $MFT (elenco di tutti i file del file system compresi i metafile);
  • $MFTMIRR (copia di $MFT, usata quando $MFT si corrompe);
  • $LOGFILE (file che annota tutte le modifiche al file system);
  • $VOLUME (numero seriale, ora di creazione del volume,…);
  • $ATTRDEF (informazioni sugli attributi dei file);
  • $BITMAP (mappa dei cluster liberi);
  • . (informazioni sulla directory radice);
  • $BOOT (contiene informazioni sul boot del volume);
  • $BADCLUS (elenco dei cluster danneggiati);
  • $QUOTA (info sull’uso del file system da parte degli utenti);
  • $UPCASE (Tabella di conversione carattere unicode).

La MFT zone

Dato che la MFT è un file residente nel file system esso può ingrandirsi e rimpicciolirsi, e quindi frammentarsi.
Il programma di deframmentazione non può agire sui metafile.
Per evitare la frammentazione, NTFS crea una regione di cluster attorno alla fine della MFT dove file e directory normali non possono essere memorizzati (circa il 15% del disco).

il file $MFTMIRR è memorizzato al centro del volume.

$MFT Master file table

Composta da record di dimensione fissa (1 KB);
Ogni file è rappresentato da almeno un record nella tabella;
Le informazioni di un file sono organizzate in attributi:

Attributo = (intestazione ; dati)

Esempi di attributi:
nome del file, data di creazione, proprietario, dati del file


Attributi

Se il file è sufficientemente piccolo gli attributi del file sono memorizzati direttamente nei record della MFT

Attributi residenti

Se il file è molto grande opportuni attributi puntano ai cluster che contengono i dati del file

Attributi non residenti


NTFS usa quindi un tipo di allocazione indicizzata

Esempio


$LogFile

Tutte le modifiche alle strutture dati sono eseguite come transazioni:

  • Prima della modifica di una struttura dati, il sistema scrive in $LogFile un record con tutte le informazioni sull’operazione da eseguire;
  • Dopo la modifica della struttura dati il record nel file di log viene eliminato;
  • In caso di crash del sistema le strutture dati relative ad operazioni non completate possono essere ripristinate a partire dal record nel file di log;

Journaled file system

I materiali di supporto della lezione

Silberschatz , Galvin, Gagne – Sistemi Operativi 8a ed. Capitolo 22

Tanenbaum – Moderni sistemi operativi 3a ed. Capitolo 11

Deitel, Deitel, Choffnes - Sistemi operativi 3a ed. Capitolo 16

  • 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