ORGANIZZAZIONE DEL DISCO RIGIDO

 

 

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:

L’interfaccia per i dischi rigidi comprende il controller e la cache. Il controller ha quattro porte alle quali si possono collegare fino a quattro unità a disco, (HD o CD/DVD ). Le quattro unità vengono indicate con : primaria master, primaria slave, secondaria master, secondaria slave.

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.

 

   

Partizioni

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: