* Μειωμένες κλήσεις συστήματος: Το πιο σημαντικό πλεονέκτημα. Κάθε λειτουργία ανάγνωσης ή εγγραφής σε ένα αρχείο ή ένα δίκτυο περιλαμβάνει μια κλήση συστήματος, μια σχετικά δαπανηρή λειτουργία. Buffering Ομάδες πολλαπλές μικρές αιτήσεις I/O σε μεγαλύτερα μπλοκ. Αντί να πραγματοποιούν εκατοντάδες μικρές κλήσεις συστήματος, ένα ρυθμισμένο σύστημα I/O κάνει πολύ λιγότερες, μεγαλύτερες κλήσεις, μειώνοντας δραστικά τα γενικά έξοδα.
* Βελτιωμένη απόδοση: Η ομαδοποίηση των λειτουργιών I/O οδηγεί σε αυξημένη απόδοση. Αυτό οφείλεται στο γεγονός ότι ο μικρότερος χρόνος δαπανάται για τη διαχείριση μεμονωμένων αιτημάτων, επιτρέποντας τη μεταφορά περισσότερων δεδομένων σε δεδομένη χρονική περίοδο.
* Μειωμένη λανθάνουσα κατάσταση: Ενώ οι μεμονωμένες λειτουργίες εισόδου/εξόδου μπορεί να είναι ελαφρώς πιο αργές λόγω της ίδιας της διαδικασίας buffering (ειδικά γράφει, η οποία περιλαμβάνει την γενική έξοδο από την πλήρωση του buffer), η συνολική μείωση του αριθμού των κλήσεων του συστήματος μειώνει δραματικά τη συνολική * λανθάνουσα κατάσταση που βιώνει η εφαρμογή. Ο χρόνος που αποθηκεύεται από λιγότερες καλεί το σύστημα υπερβαίνει κατά πολύ την ελαφριά καθυστέρηση που εισάγεται από την αποχώρηση.
* Καλύτερη χρήση του δίσκου: Ιδιαίτερα σχετικές με το δίσκο I/O, το buffering επιτρέπει τη διαδοχική πρόσβαση σε δεδομένα, η οποία είναι πολύ πιο αποτελεσματική από την τυχαία πρόσβαση. Οι μονάδες δίσκου είναι μηχανικά βελτιστοποιημένες για διαδοχικές αναγνώσεις και γράφουν.
* Αποδοτικότητα δικτύου: Στο δίκτυο I/O, το buffering βοηθά στη βελτιστοποίηση της χρήσης του εύρους ζώνης δικτύου στέλνοντας μεγαλύτερα πακέτα. Αυτό ελαχιστοποιεί τα γενικά έξοδα του δικτύου που σχετίζεται με κάθε κιβώτιο ταχυτήτων.
Τύποι buffering και τις επιπτώσεις τους:
Τα συγκεκριμένα πλεονεκτήματα μπορούν να εξαρτώνται από τον τύπο του χρησιμοποιούμενου χρησιμοποιούμενου:
* Πλήρης αποτυχία: Ολόκληρο το buffer πρέπει να συμπληρωθεί πριν από τη λειτουργία εγγραφής. Αυτό μεγιστοποιεί την αποτελεσματικότητα αλλά εισάγει λανθάνουσα κατάσταση.
* buffering γραμμής: Ένας χαρακτήρας Newline ενεργοποιεί μια λειτουργία εγγραφής. Κατάλληλο για διαδραστικές εφαρμογές όπου απαιτείται άμεση ανατροφοδότηση.
* Απενεργοποιημένο I/O: Δεν χρησιμοποιείται buffering. Κάθε λειτουργία I/O είναι μια άμεση κλήση συστήματος. Αυτό οδηγεί σε σημαντικά γενικά έξοδα, αλλά αποφεύγει την καθυστέρηση που εισάγεται από το buffering. Γενικά χρησιμοποιείται μόνο όταν απαιτείται ακριβής έλεγχος επί του I/O (π.χ. προγράμματα οδήγησης συσκευών χαμηλού επιπέδου).
Συνοπτικά, ενώ υπάρχει μια μικρή επιβάρυνση που σχετίζεται με τη διαχείριση των buffer, η μείωση των κλήσεων του συστήματος και η βελτιωμένη απόδοση υπερβαίνουν σημαντικά τα μειονεκτήματα σε όλες σχεδόν τις περιπτώσεις, καθιστώντας τη ρύθμιση εισόδου/εξόδου μια κρίσιμη τεχνική βελτιστοποίησης στον προγραμματισμό.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα