Volevo sapere come fa il disco fisso di un computer a leggere contemporanemente più file che magari si trovano in parti diverse (cioè, ad esempio, riprodurre musica mentre si salva o si apre altro). Grazie e complimenti

I sistemi operativi moderni funzionano in una modalità che viene chiamata multitasking,
ovvero hanno la possibilità di mantenere attivi molti programmi che appaiono
all’utilizzatore come se fossero eseguiti contemporaneamente.

In effetti, però, un comune computer che dispone di un unico processore
è in grado di effettuare una sola operazione alla volta e la contemporaneità dell’esecuzione
è solo apparente: il processore esegue un programma per un dato intervallo di tempo, poi lo sospende
per passare al successivo, e così via in sequenza1.

Ad esempio, nel caso dell’accesso ai file, le richieste di lettura da parte dei programmi vengono
suddivise in blocchi ed il processore risponde alle richieste di accesso ai blocchi via via che
le riceve dai diversi programmi.

Questo meccanismo è adeguato in molti casi, ma ci sono applicazioni (un esempio tipico
è la riproduzione
di musica) in cui è necessario avere un flusso di dati a velocità costante e questo non
è molto facile da ottenere quando il processore opera come descritto sopra. In questi casi si ricorre
alle tecniche dette di “memoria tampone” (in inglese buffer). La scheda audio ha al proprio interno
una adeguata quantità di memoria RAM (indipendente dalla memoria RAM del computer); la CPU
periodicamente scrive in questa memoria i blocchi letti dal file musicale, mentre la circuiteria della scheda
audio legge il contenuto della memoria alla velocità necessaria per la riproduzione del suono.
In questo modo la CPU può scrivere i blocchi di dati anche ad intervalli
irregolari, purché si faccia in modo che la memoria tampone non si svuoti mai del tutto.


Note:

  1. Attualmente stanno iniziando a diffondersi architetture a più
    proicessori, anche per i computer personali, ma il ragionamento rimane
    analogo: un sistema a due processori è in grado di eseguire due sole
    operazioni contemporaneamente, quindi al massimo ci saranno due
    processi attivi in ogni momento.