Τι είναι το USB syncing?

Pistiolis Konstantinos kpistiolis at hellug.gr
Wed Mar 15 22:27:32 EET 2006


Την Wed, 15 Mar 2006 15:23:04 +0200,ο(η) Theodore Lytras  
<aspirin at myrealbox.com> έγραψε/wrote:

> Δηλαδή αν κατάλαβα καλά μου λέει οτι έγραψε τα αρχεία χωρίς να τα έχει  
> γράψει?
> Και αν πατήσω umount γράφει και τα υπόλοιπα με το πάσο του και μετά κάνει
> umount? Δε νομίζω να είναι αυτό, για 2 λόγους:
> (1) Βλέπω από το φωτάκι του flash drive οτι σταματά να γράφει ακριβώς τη
> στιγμή που μου λέει το linux οτι τελείωσε την εγγραφή. Αν μετά αφαιρέσω  
> εγώ ο
> ίδιος το drive (άλλωστε υποτίθεται οτι είναι hotplugged) και γράψω σε  
> άλλο
> υπολογιστή τα αρχεία, δεν παρατηρώ κάποιο εμφανές data corruption.
> (2) Στα Window$ η εγγραφή γίνεται με ταχύτητα παρόμοια με αυτή του linux  
> χωρίς
> αυτό το USB syncing (άρα μάλλον εκεί το syncing πρέπει να είναι off by
> default). Αν αμέσως μετά του πεις να κάνει unmount (Safely Remove  
> Hardware),
> υπακούει αμέσως, χωρίς καθυστέρηση.
>
Κοίτα, το sync δε σημαίνει απαραίτητα ότι θα γραφτούν τα δεδομένα σου  
αμέσως,
αλλά μάλλον ότι το πρόγραμμα που γράφει θα μπλοκάρει μέχρι να ολοκληρωθεί
η εγγραφή. Αυτό ώστε να είναι σίγουρο (το πρόγραμμα) ότι τα δεδομένα  
γράφτηκαν
όταν πάει στην επόμενη εντολή. Δε θα «σκοτωθεί» κιόλας το λειτουργικό να
γράψει αμέσως, επειδή εσύ ζήτησες ένα sync.

Το φυσιολογικό είναι να μην περιμένει, για διάφουρους λόγους (caching  
δεδομένων,
φόρτος συστήματος και κυρίως η χαμηλη ταχύτητα του φυσικού μέσου).

Πάντως κι εγώ το έχω προσέξει, ότι τα δεδομένα γράφονται αμέσως συνήθως,
αλλά αυτό είναι λογικό αφού υπό κανονικές συνήθως το σύστημα δεν είναι
και τόσο απασχολημένο, οπότε έχει διαθέσιμο χρόνο να γράψει αμέσως.
Επίσης ο συγχρονισμός μπορεί να ζητηθεί κι από το πρόγραμμα που κάνει την
εγγραφή (πχ. μπορεί η τελευταία εντολή του cp να είναι fflush() )

Τέλος πάντων, το ότι βλέπεις ότι τα δεδομένα σου γράφτηκαν άμεσα δεν  
αποτελεί
απόδειξη ότι ισχύει ή ότι δεν ισχύει κάτι. Μπορεί απλά υπό τις συνθήκες  
αυτές
ο αλγόριθμος συγχρονισμού συστήματος αρχείων του πυρήνα να συμπεριφέρεται  
έτσι.
Αλλά πρέπει να πάς με τις προδιεγραφές για να είσαι σίγουρος ότι δε θα  
χάσεις
δεδομένα.
Όπως είπώθηκε ήδη, το flash drive είναι hot-plugged, όχι hot-unplugged!

Φιλικά,
Κώστας




More information about the Linux-greek-users mailing list