Primerjalna tabela
Podlaga za primerjavo | Linker | Nakladalec |
---|---|---|
Osnovno | Ustvari izvršljiv modul izvornega programa. | Naloži izvršljiv modul v glavni pomnilnik. |
Vhod | Potreben je kot vhodni predmet objektna koda, ki jo ustvari asembler. | Potreben je izvršljiv modul, ki ga generira povezovalec. |
Funkcija | Združuje vse predmetne module izvorne kode za generiranje izvršljivega modula. | Naslove naslovi dodeli izvršitvenemu modulu v glavnem pomnilniku za izvedbo. |
Vrsta / pristop | Urejevalnik povezav, dinamični povezovalec. | Absolutna obremenitev, prestavljivo nalaganje in dinamično nalaganje. |
Opredelitev povezovalca
Assembler generira objektno kodo izvornega programa in jo preda povezovalcu. Povezovalec vzame to predmetno kodo in generira izvršljivo kodo programa in jo preda Loaderju.
Jezik na visoki ravni, programi imajo vgrajene knjižnice in datoteke z glavo . Izvorni program lahko vsebuje nekatere knjižnične funkcije, katerih definicija je shranjena v vgrajenih knjižnicah. Povezovalec te funkcije poveže z vgrajenimi knjižnicami. V primeru, da vgrajenih knjižnic ni mogoče najti, jih obvešča prevajalniku in prevajalnik nato generira napako.
Včasih se veliki programi delijo na podprograme, ki se imenujejo moduli . Zdaj, ko so ti moduli prevedeni in sestavljeni, se generirajo predmetni moduli izvornega programa. Povezovalec je odgovoren za združevanje / povezovanje vseh objektnih modulov za generiranje posamezne izvršljive datoteke izvornega programa. Imamo dve vrsti povezovalcev.
Urejevalnik povezav : To je povezovalec, ki generira prenosljiv, izvršljiv modul.
Dinamični povezovalec : odloži / odloži povezavo nekaterih zunanjih modulov, dokler se ne ustvari modul za nalaganje / izvršljiv modul. Tu se povezovanje izvaja v času nalaganja ali v času izvajanja.
Opredelitev nakladalnika
Ker mora biti program, ki ga je treba izvesti, trenutno v glavnem pomnilniku računalnika. Naloga nalagalnika, programa v operacijskem sistemu, je, da naloži izvedljivo datoteko / modul programa, ki ga generira povezovalec, v glavni pomnilnik za izvedbo. Dodeli pomnilniški prostor izvršilnemu modulu v glavnem pomnilniku.
Obstajajo tri vrste nakladalnih pristopov:
- Absolutna obremenitev
- Premestljivo natovarjanje
- Dinamično nalaganje v času izvajanja
Absolute loading : Ta pristop naloži izvršljivo datoteko programa v isto glavno pomnilniško mesto vsakič. Vendar ima nekaj slabosti, kot mora biti programer seznanjen s strategijo dodeljevanja za nalaganje modulov v glavni pomnilnik. V primeru, da je treba program spremeniti z vključitvijo in brisanjem v program, je treba spremeniti vse naslove programa.
Premestljivo nalaganje: Pri tem pristopu prevajalnik ali asembler ne ustvarja dejanskega glavnega pomnilnika . Proizvaja relativne naslove.
Dinamično nalaganje v času izvajanja : Pri tem pristopu se absolutni naslov za program ustvari, ko se dejansko izvede ukaz izvršljivega modula. Je zelo prilagodljiv, naložljiv modul / izvršljiv modul je mogoče naložiti v katerokoli področje glavnega pomnilnika . Izvajalni program se lahko prekine vmes in se ga lahko zamenja na disk in nazaj v glavni pomnilnik tokrat na drugem glavnem naslovu pomnilnika.
Ključne razlike med povezovalcem in nakladalcem
- Ključna razlika med povezovalcem in nalagalnikom je, da povezovalec generira izvedljivo datoteko programa, medtem ko nalagalnik naloži izvedljivo datoteko, ki jo dobi od povezovalca, v glavni pomnilnik za izvedbo .
- Povezovalec vnese objektni modul programa, ki ga generira sestavljalec. Vendar pa nalagalnik vnese izvršljiv modul, ki ga generira povezovalec.
- Povezovalec združuje vse predmetne module programa za ustvarjanje izvršljivih modulov, povezuje pa tudi funkcijo knjižnice v predmetnem modulu z vgrajenimi knjižnicami programskega jezika na visoki ravni. Na drugi strani nalagalnik dodeli prostor izvršilnemu modulu v glavnem pomnilniku.
- Povezovalec se lahko razvrsti kot urednik povezav, dinamični povezovalec pa se lahko razvrsti kot absolutni nakladalnik, prenosni nakladalnik in dinamični nalagalnik časa izvajanja .
Sklep:
Povezovalec prevzame predmetne module programa iz asemblerja in jih poveže skupaj, da generira izvršljiv modul programa. Izvedljivi modul se naloži z nalagalnikom v glavni pomnilnik za izvedbo.