Storicamente, le unità erano controllate direttamente dal sistema operativo, che a sua volta era controllato dall'applicazione. In quel contesto, Theory 2 era il modo principale in cui i PC funzionavano. il sistema operativo ha specificato una posizione fisica in cui inserire i dati e aveva il pieno controllo di questo processo. Di conseguenza, i primi file system avevano una tabella "settore danneggiato", quindi dopo la perdita dei dati, il computer poteva dirti che i dati erano andati persi e contrassegnare il settore come inutilizzabile per evitare ulteriori perdite di dati. Le scansioni del disco e la deframmentazione erano all'ordine del giorno.
Tuttavia, dopo la fine del secolo, ci siamo spostati su LBA, quindi ora il sistema operativo farebbe semplicemente riferimento al blocco "logico" su cui voleva leggere o scrivere. Il disco rigido stesso ora aveva l'intelligenza di mescolare i dati alle spalle del sistema operativo senza accorgersene. Ciò significava una maggiore affidabilità, poiché i settori che non potevano essere verificati potevano essere semplicemente spostati in una nuova posizione fisica senza influire sulla conoscenza del sistema operativo in merito alla posizione di tali dati.
Nell'hardware moderno, le unità disco "piatto" in genere sovrascrivono qualsiasi cosa fosse prima con i nuovi dati in entrata e facoltativamente rimpiazza l'LBA se il settore sembra che potrebbe non conservare i dati (il settore è danneggiato o usurato). Le unità "Flash" in genere cancellano le vecchie celle e quindi scrivono i dati in nuove celle, un processo noto come livellamento dell'usura.
In entrambi i casi, ciò è possibile perché esiste sempre una capacità inutilizzata oltre il valore riportato. Questo overprovisioning consente all'unità di avere una vita utile più lunga rispetto alla tecnologia piuttosto inaffidabile della tecnologia del secolo precedente. La modalità LBA consente di estrarre il supporto fisico dal sistema operativo in modo che l'unità stessa possa prendere tutte le misure che l'unità ritiene necessarie per prevenire la perdita di dati.
A livello di applicazione, in genere si apre un file in modalità "WRITE", che indica al sistema operativo di cancellare il file ("eliminare" il contenuto, ma non il file stesso), quindi scrivere nuovi dati. Tutto questo viene bufferizzato a livello di sistema operativo, quindi "scaricato" sull'unità, che apporta le modifiche richieste.
Date queste informazioni, la teoria 1 è ciò che tecnicamente accade a livello di programmazione dell'applicazione, almeno per impostazione predefinita, poiché esiste anche una modalità di "scrittura con aggiunta" per evitare di cancellare il contenuto del file. Il sistema operativo stesso presenterà le modifiche da apportare più come Teoria 2, ma astratte tramite LBA. L'unità stessa probabilmente farà qualcosa che è un mix di Teoria 1 e Teoria 2.
Sì. È complicato e dipende in parte dal produttore / sviluppatore del sistema operativo / dipendente dallo sviluppatore dell'applicazione. Tuttavia, tutta questa complessità è volta a rendere più affidabile l'archiviazione dei dati migliorando al contempo il consumo di energia / la durata della batteria.