14) Quali sono le principali caratteristiche di Sprite?
Sprite è un sistema operativo distribuito sperimentale basato su workstation con alta capacità di memoria e cache (ma spesso senza disco locale)
Necessità di caricare e mantenere in memoria interi file system (ipotesi 500Mbyte di memoria)
Si usa un’unica struttura UNIX: trasparenza dell'allocazione mantenendo efficienza dell’implementazione
Lo Sprite kernel realizza l’integrazione della memoria virtuale con il FS
memoria virtuale realizzata con file (backing file)
uso di thread come processi leggeri
per ottenere il bilanciamento uso di migrazione dei processi e dei file
Naming a parziale condivisione: c’è un unico file system logico suddiviso su più domini, ossia sottoalberi memorizzati interamente su più server
Ogni macchina mantiene mappa dei server, prefix table, per raggiungere la directory di più alto livello di ogni domain
Il client seleziona il server dalla propria tabella; se la richiesta fallisce, il client manda un messaggio broadcast con il nome del file
Il server con il file risponde con il proprio prefix, ed il client aggiorna la table
in generale
uso di hint rappresentato dalla tabella
uso di messaggi broadcast
limiti di scalabilità
Semantiche di condivisione UNIX
metodo ibrido per convalida cache
l’apertura in scrittura incrementa la versione del file
Il client confronta la propria versione con il server: se differenti, il client aggiorna il file e lo ricarica dal server
server di tipo stateful
se il server ha memorizzato un file obsoleto, aperto in scrittura da un utente che non ha ancora aggiornato la copia, forza il flushing