Разлика између повезивача и утоваривача

Аутор: Laura McKinney
Датум Стварања: 3 Април 2021
Ажурирати Датум: 7 Може 2024
Anonim
Imt 540 najosnovniji podaci
Видео: Imt 540 najosnovniji podaci

Садржај


Линкер и Лоадер су услужни програми који играју главну улогу у извођењу програма. Изворни код програма пре извршења пролази кроз компајлер, асемблер, линкер, лоадер у одговарајућем редоследу. С једне стране, где је линкер уноси објектне кодове генериране од стране алата за комбиновање и комбинује их да би генерисао извршни модул. Са друге стране утоваривач учитава овај извршни модул у главну меморију ради извршавања. Разговарајмо о разлици између Линкер-а и лоадер-а уз помоћ упоредног графикона.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеЛинкерУтоваривач
ОсновниОн генерише извршни модул изворног програма.Учитава извршни модул у главну меморију.
УлазниКао улаз узима објектни код који је генер саставио.Потребан је извршни модул генерисан везником.
ФункцијаКомбинује све објектне модуле изворног кода за генерисање извршног модула.Он додељује адресе извршном модулу у главној меморији за извршење.
Тип / приступЛинк Едитор, динамички повезивач.Апсолутно пуњење, премештање утовара и динамичко пуњење.


Дефиниција Линкер-а

Ассемблер генерише објектни код изворног програма и предаје га повезивачу. Линкер узима овај објектни код и генерише извршни код за програм и предајте га утоваривачу.

Језик на високом нивоу, програми га имају уграђене библиотеке и датотеке заглавља. Изворни програм може садржавати неке функције библиотеке чија се дефиниција чува у уграђеним библиотекама. Линкер повезује ове функције са уграђеним библиотекама. У случају да нису пронађене уграђене библиотеке, он обавештава преводиоца, а затим преводилац генерише грешку.

Понекад се велики програми деле у подпрограме који се називају модула. Сада када се ти модули састављају и састављају, генерирају се објектни модули изворног програма. Линкер је одговоран за комбиновање / повезивање свих објектних модула како би створио једну извршну датотеку изворног програма. Имамо две врсте повезивача.

Линк Едитор: То је повезивач који генерише релокативни, извршни модул.


Динамиц Линкер: Одлаже / одлаже везу неких екстерних модула док се не генерише оптерећење / извршни модул. Овде се повезивање врши за време учитавања или времена рада.

Дефиниција утоваривача

Како се програм који се тренутно мора извести мора налазити у главној меморији рачунара. То је одговорност утоваривач, програм у оперативном систему за учитавање извршне датотеке / модула програма, генерисаног везом, у главну меморију за извршење. Он распоређује меморијски простор извршном модулу у главној меморији.

Постоје три врсте приступа утовару:

  • Апсолутно пуњење
  • Учитавање селидби
  • Динамично учитавање времена извођења

Апсолутно пуњење: Овај приступ учитава извршну датотеку програма у иста главна меморијска локација сваки пут. Али има их недостаци као програмер мора бити свјестан стратегије додјељивања за учитавање модула у главну меморију. У случају да се програм модификује укључујући неко уметање и брисање у програму, тада све адресе програма морају бити измењене.

Учитавање: У овом приступу ради преводилац или преводилац не производи стварну главну меморијску адресу. Производи релативне адресе.

Динамичко учитавање радног времена: У овом приступу, апсолутна адреса за програм се генерише када се заправо изврши инструкција извршног модула. Врло је флексибилан, у њега се може убацити учитавајући модул / извршни модул било који регион главне меморије. Програм извршавања може се прекинути између и може се овај пут заменити на диск и вратити у главну меморију на другој главној адреси меморије.

  1. Кључна разлика између повезивача и утоваривача је у томе што линкер генерише извршни датотеку програма док, учитавач учитава извршну датотеку добијену од повезивача у главна меморија за извршење.
  2. Линкер узима оно објектни модул програма генерисаног од стране алата за састављање. Међутим, утоваривач прихвата извршни модул генерисано од везника.
  3. Линкер комбинује сав објектни модул програма за генерисање извршни модули такође повезује функција библиотеке у објектном модулу до уграђене библиотеке програмског језика високог нивоа. С друге стране, утоваривач додељује простор извршном документу модул у главној меморији.
  4. Линкер се може класификовати као уредник везе, и динамички повезивач док се утоваривач може класификовати као апсолутни утоваривач, утоваривач који се може померати и динамички утоваривач.

Закључак:

Линкер узима објектне модуле програма из алата и повезује их да би створио извршни модул програма. Извршни модул се затим учитава у учитавач у главну меморију за извршење.