AmigaCori ha scritto:@ShInKuro
Scusa, ma la procedura di montaggio/smontaggio e' necessaria a livello di filesystem?, cioe', teoricamente si potrebbe evitare?, io non capisco come si potrebbe evitare dato che staccare una periferica senza che l'OS lo sappia prima equivale ad un malfunzionamento di quest'ultima.
Cioe', l'OS o chi per lui (DMA, I/O processor, ecc) sa' che esiste sul BUS quella periferica, ci scambia dati, ad un certo punto sparisce...quell'indirizzo di periferica non c'e' iu'...cosa accade?, a me la prima cosa che viene in mente e' che c'e' un errore perche' si e' venuta a creare una situazione anomala, "mancano dei pezzi".
Diversamente e' se l'OS, tramite lo smount, viene avvertito dall'utente che quella periferica mi serve, l'OS provvedera' a "segnarsi" che il traffico dati vada interrotto e che l'indirizzo della periferica non vada piu' "preso in considerazione".
Da quello che ho capito la rimozione "bruta" non puo' essere gestita in maniera coerente e sicura dall'OS,
No, nessuno ha detto questo. E' questo il bello di AmigaOS, non ha bisogno di simili procedure perchè dovrebbe fare tutto automaticamente "mettendosi d'accordo con l'hw" (vedi sotto).
Vado a logica e da quello che conosco di AmigaOS e dalle cose che ho capito spiegate nei testi più a basso livello relativi ad AmigaOS:
Il filesystem fa capo ad AmigaDOS, mentre AmigaDOS interagisce con i dispositivi I/O attraverso i device. Un device è sostanzialmente un driver con una propria porta di comunicazione, quando vai ad aprire un device interagisci con esso attraverso lo scambio messaggi, dunque stai in ascolto su una porta. Quando viene inserito/tolto un disco viene generato un interrupt catturato dal sistema che potrebbe avvisare il programma utente (anche il filesystem su AmigaOS è un programma utente) attraverso un messaggio alla porta in ascolto.
Quindi il problema del mount/dismount è solo a livello di dispositivo e relativo filesystem (implementazione del fs):
Alcuni dispositivi fisici non sono in grado di avvertire il sistema operativo che l'utente ha cambiato il disco in essi contenuto. In tal caso sta all'utente segnalare all'AmigaDOS che il cambio è avvenuto, mediante il comando DiskChange per esempio.
Il mio dubbio riguardava l'USB1 (ma leggendo la documentazione di SirionUSB si deduce che il driver stesso si occupi delle situazioni anomale che invece su USB2 sono gestite a livello hw) e filesystem tipo FAT o FFS. Va da se che se stai scrivndo qualcosa e rimuovi la penna il sistema viene avvisato dell'accaduto e interrompe la scrittura senza problemi, ma in ogni caso non potrai mai sapere in che stato di incoerenza siano i tuoi dati su usb che non hanno completato il passaggio. Ma questo dipende dal filesystem. Ora siccome qui Amiga c'entra poco, FAT è quello che è... per questo una procedura manuale sulle pendrive sarebbe preferibile...