Il disco rigido (Hard Disk) è costituito da una serie di piatti coassiali (Disk–Pack) che ruotano intorno ad un asse comune con velocità tipiche di 5400 g/m e 7200 g/min. Ogni piatto è composto di materiale plastico ed è ricoperto su entrambe le facce da uno strato sottile (qualche micron) di materiale ferromagnetico. Tale strato presenta sulla superficie milioni di areole che possono essere magnetizzate da un campo magnetico. Un’areola magnetizzata corrisponde ad un 1 logico, un’areola smagnetizzata ad uno 0 logico. In prossimità di ciascuna faccia di ogni piatto si affaccia una testina di lettura/scrittura che può muoversi in senso radiale mentre il disco ruota a velocità costante. Il compito della testina è leggere o scrivere dati sulla superficie dei ciascuna faccia. Quando la testina deve memorizzare (scrittura) un bit emette un campo magnetico impulsivo che magnetizza l’areola, mentre, quando deve acquisire (lettura)un bit, passa attraverso l’areola: se la trova magnetizzata, si produce una corrente impulsiva indotta sul circuito della testina e questo corrisponderà ad un 1, altrimenti si avrà assenza di corrente e ciò corrisponderà ad uno 0.
Ogni testina è individuata da un numero intero a partire da 0.
Ogni faccia a sua volta è suddivisa in tracce circolari concentriche il cui numero dipende dalla capacità del disco. Le tracce, come le testine, sono numerate in successione a partire da 0 che individua la traccia più periferica.
Ogni traccia inizia con una speciale sequenza di bit chiamata preambolo e termina con un’altra sequenza di bit chiamata postambolo.
Tutte le tracce con lo stesso numero giacciono su una superficie cilindrica ideale del disco e questo permette di far riferimento al numero di traccia o di cilindro indifferentemente.
Ogni traccia è suddivisa in blocchi di bit chiamati settori. Un settore contiene 512 bytes ed è individuato mediante un numero a partire da 1. Il numero di settori per traccia è tipicamente 63.
Il settore è la più piccola unità di lettura/scrittura. In altre parole la lettura e la scrittura vengono effettuate per blocchi non minori di 512 bytes.
Esistono due modi per individuare un settore.
Il primo consiste nel fornire una terna di numeri: il numero della testina, il numero di cilindro e quello del settore. Questa terna è chiamata indirizzo CHS (Cylinder Head Sector).
Il secondo utilizza un solo numero per individuare un settore. In questa tecnica i settori vengono numerati utilizzando la successione 0,1,2....Così i settori della prima traccia e testina (C=0,H=0) andranno da 0 a 62, quelli con C=1, H=0 saranno 63,64,65.....125
Questo tipo di indirizzamento prende il nome di LBA (Linear Block Addressing) ed è quello utilizzato dal sistema operativo.
Un parametro importante dell'HD è il tempo impiegato per accedere ad un determinato settore che non sia sotto la testina. Esso consta di due parti:
Le case costruttrici forniscono il tempo d’accesso medio in lettura e in scrittura
Esisttono diversi tipi di interfacce per HD/CD/DVD:
Nelle prime versioni ATA tutte le operazioni I/O venivano indirizzate prioritariamente al drive master (anche nel caso in cui esse sono dirette all’ unità slave è sempre il master che le indirizza verso slave ). Oggi questa distinzione non non esiste più.
La cache serve per velocizzare le operazioni e impedire il sovraccaricamento della CPU.
Le velocità dipendono dalla modalità di trasferimento e dalla versione
L'architettura
SATA è invece di tipo punto-punto. Ogni porta del controller SATA si connette
direttamente con un
dispositivo di memorizzazione e non c'è la divisione fra master e slave. Il
numero di dispositivi può essere maggiore di 4.
In figura è riportato uno schema.
Le prime quattro unità vengono indicate da Linux con i nomi riportati in tabella
hda | Primario Master |
hdb | Primario slave |
hdc | Secondario master |
hdd | Secondario slave |
L’unità primaria è quella in cui il BIOS si aspetta di trovare il settore di boot (MBR, Master Boot Record) cioè il settore in cui c’è il programma che avvia il trasferimento del sistema operativo in memoria.
In Windows l'unità primaria è indicata con C.
Una partizione è un area del disco composta da settori contigui. Distinguiamo 3 tipi di partizione
Per creare una o più partizioni logiche si deve prima creare una partizione estesa che le contenga
Una partizione primaria è attiva se è quella in cui il BIOS cerca il programma di bootstrap.
In un HD
Una partizione primaria non attiva è nascoste, cioè non è visibile da altre partizioni primarie. Ciò impedisce l'accesso ai dati ai sistemi operativi istallati nelle altre partizioni primarie.
Le partizioni vengono identificate diversamente in Windows e in Linux.
In Windows le partizioni (visibili) vengono identificate con le lettere dell'alfabeto a partire da C fino a Z senza nessun riferimento alle varie unità primarie o secondarie.
In Linux vengono identificate dal nome dell'unità, per es. hda seguita da un numero a partire da 1. Per le partizioni primarie o estese la numerazione va da 1 a 4. Per le partizioni dati la numerazione inizia con 5
Per es. se abbiamo una sola partizione primaria e una estesa con tre partizioni dati avremo:
hda1 | primaria |
hda2 | estesa |
hda5 | dati |
hda6 | dati |
hda7 | dati |
Le informazioni sulle partizioni presenti in un HD si trovano in una tabella chiamata Partition Table, allocata nel Master Boot Sector (MBR), il settore 0,0,1.
La tabella delle partizioni contiene per ogni partizione le seguenti informazioni: