TLB.8.7.3 Tabella delle pagine invertita
Questo concetto visto in precedenza si sposa male con la paginazione. Nel caso di pagefault infatti si deve necessariamente far riferimento a una tabella della pagine esterna per ciascun processo, che forniscono le informazioni necessarie sullo spazio degli indirizzi logici di ciascun processo.
Fortunatamente queste tabelle sono necessarie solo quando avviene un page fault. C'è da considerare che un primo page fault può generarne un secondo quando viene caricata in memoria la tabella delle pagine esterna, problema che richiede un'accurata gestione da parte del kernel.
8.7.4 Struttura dei programmi
Abbiamo detto che la paginazione su richiesta deve essere trasparente ai programmi utenti; spesso essi non saranno nemmeno a conoscenza della natura paginata della memoria. Tuttavia, talvolta questa conoscenza può portare a scrivere programmi più efficienti.
Chapter 9 Parte Quinta, Capitolo 11: Memoria di massa 83
9.1 Struttura dei dispositivi
di memorizzazioneI dischi magnetici e i dispositivi NVM (non volatile memory) costituiscono i principalisupporti di memoria secondaria nei moderni computer. Andiamo a descriverne la strutturae in che modo i sistemi operativi riescano a tradurre le loro proprietà fisiche in memorialogica tramite la mappatura degli indirizzi.
9.1.1 Dischi rigidi
Concettualmente, la struttura di un disco rigido è abbastanza semplice: sono simili adei cd divisi in settori, a loro volta organizzati tracce. Se prendiamo tutte le traccecorrispondenti verticalmente, una per ogni disco, abbiamo un cilindro.
Le dimensioni del settore sono state per molto tempo di 512 byte, ma dal 2010 iproduttori hanno iniziato a migrare verso una soluzione di 4KB per settore.
Aspetto meccanico. Quando un disco è in funzione, un motore lo fa ruotare ad altavelocità, la quale è spesso espressa in termini di RPM, ossia giri al minuto, i quali pos-sono variare da 5400 a 15000. Un altro
Il aspetto relativo alle prestazioni è il tempo di posizionamento, composto dal tempo necessario a spostare il braccio del disco in corrispondenza del cilindro desiderato, e il tempo necessario affinché il settore desiderato si posi, tramite la rotazione, sotto la testina.
Il fenomeno dell'urto della testina avviene quando la testina danneggia il disco magnetico, e comporta la sostituzione dell'intera unità di memoria e la perdita dei dati.
9.1.2 Dispositivi NVM
I dispositivi NVM sono elettrici anziché meccanici, e questo permette delle performance e una durabilità maggiori rispetto a quelli classici. Una grande parte di essi sono costituiti da un controllore e da diversi chip di memoria a semiconduttore NAND flash. Esistono altre tecnologie ma sono molto meno popolari.
Questi dispositivi sono spesso inseriti in contenitori simili a unità disco, e per questo motivo vengono spesso chiamati dischi a stato solido, o SDD (solid state drive). In altri casi può assumere altre forme.
come le chiavette USB o un chip installato direttamente sulla scheda madre, come sugli smartphone. In ogni caso, possiamo discutere di questi dispositivi alla stessa maniera, in quanto si comportano allo stesso modo. Come abbiamo detto, questi dispositivi sono più efficienti delle controparti classiche in quanto non hanno bisogno di posizionamento meccanico, sono più resistenti ai guasti per lo stesso motivo e consumano meno energia. D'altro canto sono più costosi e tendono ad avere una capacità minore. Questi fattori sono tuttavia in costante miglioramento col passare degli anni. In funzione dell'alta velocità di trasferimento di questi dispositivi, l'interfaccia bus può costituire un bottleneck non indifferente al throughput, e quindi alcuni dispositivi NVM si connettono direttamente al bus di sistema. Le caratteristiche dei semiconduttori NAND portano tuttavia nuove sfide: nonostante sia possibile eseguire scritture a livello di pagina, non è possibile.sovrascrivere dati, e quindi occorre eseguire una cancellazione (operazione molto costosa, anche perché si verifica a livello di blocchi di diverse pagine) prima di riscrivere. In una certa misura ciò è limitato da un certo livello di parallelismo offerto da questi dispositivi, grazie ai molti datapath di cui dispongono.
Inoltre l'usura dei dispositivi NVM dipende dall'utilizzo: in media un semiconduttore NAND si deteriora e diventa inutilizzabile dopo 100.000 cicli, e la durata di un tale dispositivo non viene espressa in anni ma in base al numero di scritture al giorno.
Queste limitazioni hanno portato allo sviluppo di algoritmi di miglioramento che fortunatamente non sono a carico del sistema operativo ma del dispositivo, rendendolo dunque più intelligente.
9.2 Gestione delle unità di memoria secondaria
Il sistema operativo è responsabile di alcuni aspetti della gestione delle unità di memoria a disco: discutiamo in questo paragrafo l'inizializzazione del dispositivo,
l’avviamento del sistema dal dispositivo e la gestione di blocchi difettosi.859.2.1 Formattazione del disco, partizioni e volumi
Un dispositivo di memorizzazione nuovo non contiene nulla, ma deve essere inizializzato e diviso in settori che possano essere scritti o letti dal controllore, processo chiamato formattazione di basso livello o formattazione fisica. Essa riempie il dispositivo con una speciale struttura dati per ogni locazione di memorizzazione, la quale consiste tipicamente di un'intestazione, un'area per i dati e una coda. La prima e l'ultima contengono informazioni usate dal controllore del disco come per esempio il numero del settore e un codice per la correzione di errori.
La formattazione fisica è spesso parte del processo di produzione dell'hardware, in maniera che il produttore possa testare il disco. Una delle scelte fatte in questa fase è la dimensione dei settori, spesso ristretta a poche opzioni come 512 byte e 4 Kb.
maggioredimensione di settori implica la presenza di meno settori per ogni striscia, ma anche unaminor quantità di code e intestazioni, e quindi in definitiva più spazio di archiviazione.
Prima di usare il disco come contenitore per i file, il sistema operativo deve primaregistrare le sue strutture dati sullo stesso, cosa che fa in tre passi:
- Suddividere il disco in uno o più blocchi di blocchi, dette partizioni. Il sistema puòtrattare ogni partizione come se fosse un dispositivo a sé, e infatti spesso ciò avvienenella misura in cui viene installato un intero sistema operativo su ogni partizione.
- Creazione e gestione del volume. A volte ciò è implicito, come quando un file systemviene inserito direttamente in una partizione la quale è poi pronta a essere montatae usata, altre volte è esplicito.
- La formattazione logica, ossia la creazione del file system; il sistema operativoregistra nel dispositivo le strutture dati iniziali relative al file system.
Le quali possono includere descrizioni dello spazio libero, dello spazio occupato e una cartella iniziale vuota.
Alcuni sistemi operativi permettono a certi programmi di impiegare una partizione del disco come un grande array sequenziale di blocchi logici, non contenente alcuna struttura dati relativa al file system. Questo array è detto disco di basso livello (raw disk). Il relativo I/O si chiama I/O di basso livello. Una tale struttura può per esempio essere usata come spazio di swap. Nonostante alcuni programmi potrebbero essere più efficienti tramite un tale tipo di accesso, la maggior parte preferisce usare il file system fornito anziché farsi carico della gestione dei dati.
9.2.2 Blocco d'avviamento
Affinché un computer possa entrare in funzione, all'avvio o riavvio, è necessario che esegua un programma iniziale. Di solito questo bootstrap è piuttosto semplice. Esso è spesso memorizzato nel firmware ed è posizionato su una memoria NVM sulla scheda madre.
emappato su una locazione di memoria nota.
Il piccolo programma di avviamento del bootstrap, il bootstrap loader, è capace di caricare il bootstrap completo, il quale a sua volta è più complesso e può caricare tutto il sistema operativo e inizializzare ogni aspetto del computer.
9.2.3 Blocchi difettosi
Le unità a disco sono strutturalmente soggette a guasti, a causa delle varie parti meccaniche mobili. Alcuni di questi possono portare a errori irreparabili, e causare quindi il cambio dell’intera unità, ma possiamo anche trovare blocchi difettosi (bad blocks). Ciòè cosı̀ comune che la maggior parte delle unità messe in commercio già contengono blocchi difettosi.
Se si trovano blocchi difettosi durante la formattazione, essi possono essere marcati come non utilizzabili. Se un blocco diviene difettoso durante l’uso del disco, deve essere lanciato un programma specifico che li individua. Spesso il suo contenuto viene perso.
Unità a disco più complesse hanno
strategie più raffinate per trattare i blocchi difettosi: li individua e li lista già in fase di produzione, e questa lista viene tenuta aggiornata per tutta la durata operativa dell'unità. Inoltre viene tenuta una lista di blocchi nascosti che possono essere sostituiti logicamente a quelli difettosi. Quest'ultima strategia è nota come accantonamento dei settori (sector sparing o forwarding).
Questo potrebbe inficiare sulle prestazioni, e infatti molti dischi tengono blocchi di riserva per ogni cilindro, in maniera tale da non dover riposizionare la testina. Un'alternativa è la traslazione dei settori, o sector slipping: se il blocco 10 è mal-funzionante e il primo blocco di riserva libero è il 140, tutti i settori dal 10 al 139 vengono spostati in avanti di una posizione.
In generale, un errore è reversibile quando possiamo in qualche modo recuperare il contenuto del blocco, mentre è irreversibile quando ciò non si può fare e dobbiamo quindi ricorrere a
un backup, operazione da eseguire manualmente. Anche i dispositivi NVM possono avere pagine difettose, ma in questo caso la soluzione non incide sul tempo di riposizionamento, e quindi gli algoritmi sono più semplici ed efficienti.9.3 Gestione dell'area di avvicendamento (swap space)
Abbiamo già parlato dello swapping: nel momento in cui ci siano troppi processi e la memoria si riempia, le prestazioni degradano e diventa necessario fare lo swap in di processi per permettere a nuovi processi di entrare in memoria; nella pratica ciò è molto raro, in quanto fare lo swap out di interi processi è inutile e dispendioso. Si manda in area di avvicendamento piuttosto una parte di un processo espressa in pagine, combinando quindi questo concetto con tecniche di memoria virtuale. La gestione dell'area di swap è un altro compito di basso livello del sistema operativo. Siccome come area di swap viene spesso usata un'unità a disco, il suo uso riducenotevScarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Sistemi operativi - Appunti
-
Sistemi operativi - Appunti
-
Appunti Fondamenti di Informatica teoria - sistemi di operativi
-
Appunti di Sistemi operativi