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 » 7.Il S.O. Linux – parte seconda


Algoritmo di paginazione

Caratteristiche generali:

  • Quando le pagine sono lette in memoria sono inserite in una cache;
  • Per migliorare le prestazioni, le pagine sporche sono copiate periodicamente (5-10sec) sul disco (write back caching).

Due tipi di pagine:

  • Attive (referenziate di recente);
  • Inattive (candidate all’eleminazione).

L’algoritmo di paginazione è una variante del FIFO seconda chance:

  • FIFO seconda chance a 2 livelli.

Algoritmo di paginazione


swapping

Quando i frame iniziano a scarseggiare si eliminano le pagine meno utilizzate:

  • Obiettivo: avere sempre frame liberi

kswapd è il demone del kernel che:

  • Periodicamente copia le pagine sporche sul disco;
  • Elimina le pagine dalla coda della inactive list.

Una pagina non può essere eliminata immediatamente se:

  • La pagina è condivisa tra processi;
  • La pagina è modificata;
  • La pagina è bloccata (in attesa di I/O).

File system

Ogni particolare file system determina come sono memorizzati i file:

Il kernel di Linux supporta oltre 40 file systems:

  • File system generici (ext2, FAT, …);
  • File system di rete (NFS, …);
  • File system residenti in memoria centrale (procfs, sysfs, …).

Problema
Come e’ possibile gestire piu’ file system contemporaneamente?

File syste virtuale (VFS)

Il VFS rappresenta tutti i file e le directory del system come un singolo albero.

Gli utenti possono accedere a ogni file 
senza sapere in quale file system e’ memorizzato.

Gli utenti possono accedere a ogni file senza sapere in quale file system e' memorizzato.


File system virtuale

Il VFS usa degli oggetti chiamati inode per accedere ai file e le directory dei vari file system.

Gli inode contengono informazioni sul:

  • File system che contiene il file:
  • Inode che identifica univocamente il file nel suo file system.

Superblocco del VFS

Contiene informazioni sui file system montati:

  • Tipo del file system;
  • Inode della directory principale;
  • Informazioni per proteggere l’integrita’ del F.S.

Creato quando il VFS è montato ed è residente in memoria centrale.


Second Extended File System (ext2fs)

Principale FS dei sistemi Linux.

Obiettivi: performance e robustezza.

Basato su inode e directory (UNIX-like).

Nuove funzionalità rispetto a BSD file system (es. recupero file).

Dimensione dei blocchi: 1KB (tipica), 2KB, 4KB o 8 KB.

5% dei blocchi riservati all’amministratore.

Inode di ext2fs


File System Proc

Ext2fs è un file system per la memorizzazione permanente di dati sul disco.

File system Proc:

  • Creato per fornire, in tempo reale, informazioni sullo stato del kernel e dei processi;
  • Permette ai processi utenti di accedere alle informazioni del sistema attraverso il contenuto della directory /proc;
  • Non è associato ad un dispositivo di memorizzazione secondario:
    • Esiste solo in memoria centrale;
    • I dati sono creati “on demand”;
    • Permette agli utenti di inviare dati al kernel.

Scheduler del disco

  • L’algoritmo è una variante del LOOK algorithm
    Esempio : 75, 81, 99, 61, 50, 40, 33, 19, 5

Poiché il file system ext2 cerca di memorizzare i dati di un file in blocchi contigui, il kernel prova a fondere richieste a blocchi adiacenti in un’unica richiesta.


Un problema

P1 deve scrivere 200 MB di dati (circa 200000 blocchi da 1KB).

P2 deve visualizzare sul terminale il contenuto di un file (lettura dal disco e scrittura sul terminale).

Il processo P2 rimane bloccato a causa della
posticipazione indefinita per le richieste di lettura
(read starvation).

Il processo P2 rimane bloccato a causa della posticipazione indefinita per le richieste di lettura (read starvation).


Scheduler per deadline

Oltre all’algoritmo LOOK, il kernel utilizza un algoritmo per deadline per prevenire la read starvation:

  • Assegna una deadline ad ogni richiesta (default 500ms) e assicura che tutte le operazioni di lettura siano eseguite entro la deadline.

Esempio:

  • Deadline di 450 ms;
  • Ogni richiesta di 15 ms.

Dopo 30 richieste per il processo P1 si passa alle richieste di P2

Implementazione: 2 strutture dati


Interruzioni

Dispositivi e kernel interagiscono attraverso le interruzioni:

  • Quando il kernel riceve una interruzione da un particolare dispositivo passa il controllo a un gestore delle interruzioni;
  • Per motivi di efficienza i processi relativi al gestore delle interruzioni non possono essere schedulati, prelazionati o produrre a loro volta altre interruzioni;
  • Necesità di routine di servizio che elaborino le interruzioni il più velocemente possibile.

Interruzioni

Per migliorare l’efficienza il kernel divide il codice delle routine di servizio in due parti:

  • Meta’ superiore: gestisce solo l’accettazione dell’interruzione e viene eseguita come descritto prima. Passa subito il controllo alla meta’ inferiore;
  • Meta’ inferiore: esegue la maggior parte delcodice (es. gestisce la manipolazione delle strutture dati) e può essere schedulata successivamente;
  • Durante l’esecuzione della metà superiore sono disabilitate le interruzioni.

La metà superiore può prelazionare quella inferiore ma non viceversa

I materiali di supporto della lezione

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

Tanenbaum – Moderni sistemi operativi 3a ed. Capitolo 10

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

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