20Maggio_Nicolazzo

Transcript

20Maggio_Nicolazzo
FONDAMENTI DI INFORMATICA
Lezione del 20/05/2014
GERARCHIA DI MEMORIA
Size
[Byte]
TeraByte
ON DEMAND
PetaByte
MEMORIA DI MASSA
EptaByte
ON LINE
ms
(millisecondi)
GigaByte
MEMORIA CENTRALE
5-10 ns
(nanosecondi)
MegaByte
MEMORIA CACHE
h-m
(ore o minuti)
Distanza
dalla CPU
[t]
REGISTRI
-
Ciò che deve essere accessibile rapidamente alla CPU deve essere di dimensione piccola.
Se un ciclo di Clock dura 1miliardesimo di secondo, un segnale in un ciclo riesce a percorrere circa
30cm.
Più la memoria è grande
-
Più c’è spazio
Più i segnali impiegano tempo per trovare un bit fra tanti.
Per questo motivo vicino al processore vi è una memoria integrata molto veloce ma piccola e, man
mano che ci si allontana dal processore la quantità di memoria aumenta.
MEMORIE:
Registri: costituiscono la CPU (Una CPU con 16 registri lavora meglio rispetto a una con solo 3 registri);
Memoria Cache: è una memoria “nascosta”, che non è possibile vedere;
Memoria Centrale: è una memoria abbastanza grande, la quale però per questo motivo è più lenta;
Memorie di Massa: Si distinguono in:
Memorie ON LINE -> Disco o SSD connessi a un computer in
funzione 24/24h;
Memorie ON DEMAND-> Sono memorie offline che quando servono
sono prese e messe a disposizione del computer;
USB DRIVE
M
P
I/O
DISKS
TAPES
Questa versione della macchina di Von Neumann non prevede un accesso diretto alle memorie cache, ma
consente un accesso alle informazioni mediante un meccanismo di indirizzamento a PAROLE DI MEMORIA.
Si identifica con i termini PAROLA DI MEMORIA o WORD la dimensione nativa dei dati usati da
un computer. Una word è semplicemente un gruppo di bit di una determinata dimensione che sono gestiti
come unità dalla CPU. La dimensione (o lunghezza) della word è un'importante caratteristica
dell'architettura di un computer che dipende direttamente dalla dimensione del BUS.
Tale metodo consente un accesso più rapido ed efficiente ai dati ma fa sorgere problemi di natura differenti
relativi all’indicizzazione di grandi quantità di dati, le quali richiederebbero una elevata quantità di memoria
per essere memorizzati con il conseguente esaurimento della stessa. Per ovviare a tale problema è stato
introdotto un metodo di indirizzamento che prevede la suddivisione dei dati in GRANULI o BLOCCHI, insiemi
di più parole di memorie accessibili allo stesso indirizzo. Il concetto di GRANULARITÀ DELLE INFORMAZIONI
è direttamente legato al volume di dati memorizzati (information overload) e, di conseguenza, alle
prestazioni del sistema e della memoria considerata (memorie più vicine alla CPU presentano una
granularità inferiore).
A sua volta questo metodo dà vita ad un processo definito frammentazione della memoria che si verifica
quando si inseriscono e si rimuovono processi dalla memoria centrale, oppure file da una memoria di
massa. Dato che la memoria è, a livello logico, una sequenza contigua di spazi (celle o settori) atti a
contenere unità elementari di dati, e che normalmente un oggetto da memorizzare (un programma o
un file) si compone di numerose unità elementari contigue, l'organizzazione di tali sequenze in memoria
deve seguire una qualche regola che consenta di aggiungere e rimuovere tali oggetti con accesso casuale.
Infatti, ripetute aggiunte o rimozioni di sequenze di dati di dimensioni eterogenee comportano una
"frammentazione" dello spazio libero disponibile, che quindi non risulta più essere contiguo. In tal caso, in
memorie secondarie come i dischi la ricostruzione della sequenza originale dei dati memorizzati è fatta in
modo inefficiente, con cali di prestazioni; qualunque disco rigido, infatti, lavora alle massime prestazioni
solo qualora debba scrivere o leggere dati memorizzati in posizioni contigue: il "salto" fisico della testina di
lettura del disco da un settore ad un altro posto in diversi cilindri introduce dei rallentamenti che, in casi
particolari, possono raggiungere livelli critici.
CONTRO
SIZE OF BLOCK
BASSA VELOCITÀ
512 Byte
:
:
ALTA VELOCITÀ
8192 Byte
PRO
BASSA FRAMMENTAZIONE
:
ALTA FRAMMENTAZIONE
Esempio
1
2
: Generica quantità di dati di dimensione x
: Generica quantità di dati di dimensione y
: Celle di memoria libere o meno
: Celle di memoria libere
: Generica quantità di dati di dimensione z (con z<x)
Si suppone di avere in memoria un blocco di dati di dimensione x. L’eventuale cancellazione di tale blocco
di dati comporta la liberazione di una quantità di spazio pari ad x (Fase 1). L’inserimento di un blocco di dati
di dimensione z (con z<x) fa sì che una piccola porzione di memoria (troppo piccola per essere occupata)
resti libera (e non occupabile).
La formattazione di una memoria prevede la suddivisione di questa in tracce e settori, utilizzati quali coppia
di coordinate per definire un blocco di memoria. L’insieme di blocchi contigui o non forma un cluster.
: Delimitatore Settore
: Delimitatore Traccia
: Blocco
: Cluster (con blocchi contigui)
: Cluster (con blocchi non contigui)
Tale gestione della memoria organizzata da particolari meccanismi chiamati File System, memorizzati al
centro del disco o all’esterno (per garantirne l’integrità).
Tra i File System più noti vi sono:
- FAT, la File Allocation Table.
Il più grande problema del File System FAT è la frammentazione. Quando i file vengono eliminati, creati o
spostati, le loro varie parti si disperdono sull'unità, rallentandone progressivamente la lettura e la
scrittura. Una soluzione a questo inconveniente è la deframmentazione, un processo che riordina i file
sull'unità. Questa operazione può durare anche diverse ore e deve essere eseguita periodicamente per
mantenere le prestazioni dell'unità. Esistono varie versioni di questo file system, in base a quanti bit sono
allocati per numerare i cluster del disco: FAT12, FAT16, FAT32. Esiste anche una versione del FAT16 detta
VFAT, che è virtuale cioè non registrato fisicamente sull'hard disk, ma gestito da un software specifico.
- NTFS (sigla di New Technology File System)
Le performance di NTFS sono invece leggermente inferiori a quella di FAT e di FAT32. A partire da
Windows 2000, è inoltre possibile montare un volume NTFS come sottodirectory di un altro volume NTFS.
NTFS permette inoltre di utilizzare trasparentemente delle opzioni di compressione (il rapporto di
compressione è mediocre, meno di ZIP, ma permette l'accesso immediato a qualunque punto del file) e di
crittografia (chiamato anche EFS).
In NTFS sono stati aggiunti i cosiddetti punti di reparse, ovvero dei meccanismi che consentono le
giunzioni (junctions) tra directory, altrimenti impossibili per la struttura del file system.
MAGGIO JACOPO
NICOLAZZO JACOPO