Διαφορά μεταξύ συνδέσμου και φορτωτή

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 3 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 8 Ενδέχεται 2024
Anonim
The Heart of Railway Transport: Marshalling Yards
Βίντεο: The Heart of Railway Transport: Marshalling Yards

Περιεχόμενο


Linker και Loader είναι τα προγράμματα κοινής ωφέλειας που διαδραματίζουν σημαντικό ρόλο στην εκτέλεση ενός προγράμματος. Ο κώδικας πηγής ενός προγράμματος περνά μέσω του μεταγλωττιστή, του assembler, του linker, του φορτωτή στην αντίστοιχη σειρά, πριν από την εκτέλεση. Από τη μία πλευρά, όπου το linker δέχεται τους κωδικούς αντικειμένων που παράγονται από τον assembler και τους συνδυάζει για να δημιουργήσει την εκτελέσιμη ενότητα. Από τα άλλα χέρια, το φορτωτής φορτώνει αυτήν την εκτελέσιμη μονάδα στην κύρια μνήμη για εκτέλεση. Ας συζητήσουμε τη διαφορά μεταξύ του Linker και του φορτωτή με τη βοήθεια ενός πίνακα σύγκρισης.

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςLinkerΦορτωτής
ΒασικόςΔημιουργεί την εκτελέσιμη ενότητα ενός προγράμματος προέλευσης.Φορτώνει την εκτελέσιμη μονάδα στην κύρια μνήμη.
ΕισαγωγήΠαίρνει ως είσοδο, τον κώδικα αντικειμένου που παράγεται από ένα συναρμολογητή.Παίρνει εκτελέσιμη λειτουργική μονάδα που παράγεται από συνδετήρα.
ΛειτουργίαΣυνδυάζει όλες τις ενότητες αντικειμένων ενός πηγαίου κώδικα για τη δημιουργία μιας εκτελέσιμης μονάδας.Εκχωρεί τις διευθύνσεις σε μια εκτελέσιμη μονάδα στην κύρια μνήμη για εκτέλεση.
Τύπος / ΠροσέγγισηΕπεξεργαστής σύνδεσης, δυναμικός σύνδεσμος.Απόλυτη φόρτωση, επανατοποθετήσιμη φόρτωση και δυναμική φόρτωση χρόνου εκτέλεσης.


Ορισμός του συνδέσμου

Το Assembler δημιουργεί τον κώδικα αντικειμένου ενός προγράμματος προέλευσης και το παραδίδει στον συνδετήρα. Ο σύνδεσμος παίρνει αυτόν τον κωδικό αντικειμένου και δημιουργεί το εκτελέσιμο κώδικα για το πρόγραμμα και παραδώστε το στο Loader.

Η γλώσσα υψηλού επιπέδου, τα προγράμματα έχουν κάποια ενσωματωμένες βιβλιοθήκες και αρχεία κεφαλίδας. Το πρόγραμμα προέλευσης ενδέχεται να περιέχει ορισμένες λειτουργίες βιβλιοθήκης, των οποίων ο ορισμός είναι αποθηκευμένος στις ενσωματωμένες βιβλιοθήκες. Ο σύνδεσμος συνδέει αυτές τις λειτουργίες με τις ενσωματωμένες βιβλιοθήκες. Σε περίπτωση που δεν βρεθούν οι ενσωματωμένες βιβλιοθήκες, ενημερώνει τον μεταγλωττιστή και ο μεταγλωττιστής τότε δημιουργεί το σφάλμα.

Μερικές φορές τα μεγάλα προγράμματα χωρίζονται στα υποπρογράμματα που καλούνται ενότητες. Τώρα, όταν αυτές οι μονάδες έχουν καταρτιστεί και συναρμολογηθεί, δημιουργούνται οι ενότητες αντικειμένων του προγράμματος προέλευσης. Ο σύνδεσμος έχει την ευθύνη του συνδυασμού / σύνδεσης όλων των ενοτήτων αντικειμένων για τη δημιουργία ενός μόνο εκτελέσιμου αρχείου του προγράμματος προέλευσης. Έχουμε δύο τύπους συνδέσμων.


Συντάκτης σύνδεσης: Είναι ένας συνδετήρας που δημιουργεί την επανατοποθετήσιμη, εκτελέσιμη μονάδα.

Δυναμική σύνδεση: Απομακρύνει / αναβάλλει τη σύνδεση ορισμένων εξωτερικών μονάδων μέχρι να δημιουργηθεί η ενότητα φορτίου / εκτελέσιμη μονάδα. Εδώ, η σύνδεση γίνεται κατά τη διάρκεια του χρόνου φόρτωσης ή του χρόνου εκτέλεσης.

Ορισμός του φορτωτή

Καθώς το πρόγραμμα που πρέπει να εκτελεστεί, πρέπει να βρίσκεται στην κύρια μνήμη του υπολογιστή. Είναι ευθύνη του φορτωτής, ένα πρόγραμμα σε ένα λειτουργικό σύστημα, για να φορτώσει το εκτελέσιμο αρχείο / ενότητα ενός προγράμματος, που δημιουργείται από το linker, στην κύρια μνήμη για εκτέλεση. Διαθέτει το χώρο μνήμης στην εκτελέσιμη μονάδα στην κύρια μνήμη.

Υπάρχουν τρία είδη προσεγγίσεων φόρτωσης:

  • Απόλυτη φόρτωση
  • Επαναφορτιζόμενη φόρτωση
  • Δυναμική φόρτωση χρόνου εκτέλεσης

Απόλυτη φόρτωση: Αυτή η προσέγγιση φορτώνει το εκτελέσιμο αρχείο ενός προγράμματος σε a ίδια θέση κύριας μνήμης κάθε φορά. Αλλά έχει κάποια μειονεκτήματα όπως ένας προγραμματιστής πρέπει να γνωρίζει τη στρατηγική εκχώρησης για τη φόρτωση των μονάδων στην κύρια μνήμη. Σε περίπτωση που το πρόγραμμα πρόκειται να τροποποιηθεί με κάποια εισαγωγή και διαγραφή στο πρόγραμμα, τότε όλες οι διευθύνσεις του προγράμματος πρέπει να τροποποιηθούν.

Μεταφερόμενη φόρτωση: Σε αυτήν την προσέγγιση, ο μεταγλωττιστής ή ο συναρμολογητής κάνει δεν παράγουν πραγματική κύρια διεύθυνση μνήμης. Παράγει τις σχετικές διευθύνσεις.

Δυναμική φόρτωση χρόνου εκτέλεσης: Σε αυτήν την προσέγγιση, η απόλυτη διεύθυνση για ένα πρόγραμμα παράγεται όταν εκτελείται πραγματικά μια εντολή μιας εκτελέσιμης μονάδας. Είναι πολύ ευέλικτο, μπορεί να φορτωθεί η φορτωτή ενότητα / εκτελέσιμη μονάδα οποιαδήποτε περιοχή της κύριας μνήμης. Το πρόγραμμα εκτέλεσης μπορεί να διακοπεί ενδιάμεσα και μπορεί να μετακινηθεί στο δίσκο και να επιστρέψει στην κεντρική μνήμη αυτή τη φορά σε διαφορετική κύρια διεύθυνση μνήμης.

  1. Η βασική διαφορά μεταξύ του συνδέσμου και του φορτωτή είναι ότι ο συνδετήρας δημιουργεί το εκτελέσιμο αρχείο ενός προγράμματος, ενώ ο φορτωτής φορτώνει το εκτελέσιμο αρχείο που αποκτάται από το linker κύρια μνήμη για εκτέλεση.
  2. Ο συνδετήρας δέχεται το αντικειμένων αντικειμένου ενός προγράμματος που παράγεται από τον συναρμολογητή. Ωστόσο, ο φορτωτής δέχεται το εκτελέσιμη ενότητα που δημιουργείται από τον συνδέτη.
  3. Ο σύνδεσμος συνδυάζει όλη την ενότητα αντικειμένων ενός προγράμματος για τη δημιουργία εκτελέσιμες μονάδες συνδέει επίσης το λειτουργία βιβλιοθήκης στην ενότητα αντικειμένου στο ενσωματωμένες βιβλιοθήκες της γλώσσας προγραμματισμού υψηλού επιπέδου. Από τα άλλα χέρια, φορτωτή εκχωρεί χώρο σε ένα εκτελέσιμο αρχείο στην κεντρική μνήμη.
  4. Ο σύνδεσμος μπορεί να ταξινομηθεί ως link editor, και δυναμικό linker ενώ ο φορτωτής μπορεί να ταξινομηθεί ως απόλυτος φορτωτής, μετακινούμενος φορτωτής και δυναμικό φορτωτή χρόνου εκτέλεσης.

Συμπέρασμα:

Ο σύνδεσμος παίρνει τις ενότητες αντικειμένων ενός προγράμματος από τον assembler και τις συνδέει μεταξύ τους για να δημιουργήσει μια εκτελέσιμη ενότητα ενός προγράμματος. Στη συνέχεια, το εκτελέσιμο στοιχείο φορτώνεται από τον φορτωτή στην κύρια μνήμη για εκτέλεση.