Preporučeno, 2024

Izbor Urednika

Razlika između Linkera i Loadera

Linker i Loader su uslužni programi koji igraju važnu ulogu u izvršavanju programa. Izvorni kod programa prolazi kroz prevodilac, asembler, povezivač, punjač u odgovarajućem redoslijedu, prije izvršenja. S jedne strane, gdje linker unosi objektne kodove generirane od strane asemblera i kombinira ih za generiranje izvršnog modula. S druge strane, punjač učitava ovaj izvršni modul u glavnu memoriju za izvršenje. Razgovarajmo o razlici između Linkera i Loadera pomoću usporedne tablice.

Tablica usporedbe

Osnova za usporedbulinkerUtovarivač
Osnovni, temeljniOn generira izvršni modul izvornog programa.Učitava izvršni modul u glavnu memoriju.
UlazniPotreban je kao ulaz, objektni kod generiran od strane asemblera.Potreban je izvršni modul koji generira linker.
FunkcijaKombinira sve objektne module izvornog koda za generiranje izvršnog modula.Dodjeljuje adrese izvršnom modulu u glavnoj memoriji za izvršenje.
Vrsta / pristupUrednik povezivanja, dinamički linker.Apsolutno opterećenje, premještanje i dinamičko učitavanje.

Definicija poveznika

Skupljač generira objektni kod izvornog programa i predaje ga linkeru. Linker uzima ovaj objektni kod i generira izvršni kod za program i predaje ga Loaderu.

Jezik na visokoj razini, programi imaju neke ugrađene knjižnice i datoteke zaglavlja . Izvorni program može sadržavati neke knjižnične funkcije čija se definicija pohranjuje u ugrađenim knjižnicama. Linker povezuje ove funkcije s ugrađenim knjižnicama. U slučaju da ugrađene knjižnice nisu pronađene, informira ih prevodilac, a kompajler generira pogrešku.

Ponekad se veliki programi dijele na podprograme koji se nazivaju moduli . Sada kada se ovi moduli kompiliraju i sastavljaju, generiraju se moduli objekta izvornog programa. Linker je odgovoran za kombiniranje / povezivanje svih modula objekta za generiranje jedne izvršne datoteke izvornog programa. Imamo dvije vrste poveznica.

Urednik povezivanja : To je linker koji generira izvršni modul koji se može preseliti.

Dinamički poveznik: Odgađa / odgađa povezivanje nekih vanjskih modula dok se ne generira modul opterećenja / izvršni modul. Ovdje se povezivanje obavlja tijekom vremena učitavanja ili vremena izvođenja.

Definicija utovarivača

Budući da se program koji treba izvršiti trenutno mora nalaziti u glavnoj memoriji računala. Odgovornost je punjača, programa u operativnom sustavu, da učita izvršnu datoteku / modul programa, generiranog od strane povezivača, u glavnu memoriju za izvršenje. Dodjeljuje memorijski prostor izvršnom modulu u glavnoj memoriji.

Postoje tri vrste pristupa učitavanja:

  • Apsolutno učitavanje
  • Preusmjeravanje opterećenja
  • Dinamičko vrijeme učitavanja

Apsolutno učitavanje : Ovaj pristup učitava izvršnu datoteku programa u isto glavno memorijsko mjesto svaki put. Ali ima neke nedostatke kao programer mora biti svjestan strategije dodjele za učitavanje modula u glavnu memoriju. U slučaju da se program modificira s nekim umetanjem i brisanjem u program, tada se sve adrese programa moraju izmijeniti.

Preusmjeravanje opterećenja: U ovom pristupu, prevodilac ili asembler ne proizvodi stvarnu glavnu memorijsku adresu . Ona proizvodi relativne adrese.

Dinamičko učitavanje vremena izvršavanja: U ovom pristupu, apsolutna adresa za program generira se kada se izvršava instrukcija izvršnog modula. Vrlo je fleksibilan, modul koji se može učitati / izvršni modul može se učitati u bilo koju regiju glavne memorije . Izvršni program može biti prekinut između i može se zamijeniti na disk i natrag u glavnu memoriju ovaj put na drugu glavnu memorijsku adresu.

Ključne razlike između povezivača i punjača

  1. Ključna razlika između povezivača i učitavača je da linker generira izvršnu datoteku programa dok punjač učitava izvršnu datoteku dobivenu od povezivača u glavnu memoriju za izvršenje .
  2. Linker unosi objektni modul programa generiranog od strane asemblera. Međutim, punjač unosi izvršni modul koji generira linker.
  3. Linker kombinira sve objektne module programa za generiranje izvršnih modula i povezuje knjižničnu funkciju u objektnom modulu s ugrađenim knjižnicama programskog jezika visoke razine. S druge strane, punjač dodjeljuje prostor izvršnom modulu u glavnoj memoriji.
  4. Linker se može klasificirati kao urednik povezivanja, a dinamički linker, dok se utovarivač može klasificirati kao apsolutni punjač, ​​prijenosni utovarivač i dinamički utovarivač za vrijeme izvođenja .

Zaključak:

Linker preuzima objektne module programa iz asemblera i povezuje ih zajedno kako bi generirao izvršni modul programa. Izvršni se modul zatim učitava u glavnu memoriju za izvršenje.

Top