Разлика између повезивача и утоваривача
Садржај
Линкер и Лоадер су услужни програми који играју главну улогу у извођењу програма. Изворни код програма пре извршења пролази кроз компајлер, асемблер, линкер, лоадер у одговарајућем редоследу. С једне стране, где је линкер уноси објектне кодове генериране од стране алата за комбиновање и комбинује их да би генерисао извршни модул. Са друге стране утоваривач учитава овај извршни модул у главну меморију ради извршавања. Разговарајмо о разлици између Линкер-а и лоадер-а уз помоћ упоредног графикона.
- Упоредни графикон
- Дефиниција
- Кључне разлике
- Закључак
Упоредни графикон
Основе за упоређивање | Линкер | Утоваривач |
---|---|---|
Основни | Он генерише извршни модул изворног програма. | Учитава извршни модул у главну меморију. |
Улазни | Као улаз узима објектни код који је генер саставио. | Потребан је извршни модул генерисан везником. |
Функција | Комбинује све објектне модуле изворног кода за генерисање извршног модула. | Он додељује адресе извршном модулу у главној меморији за извршење. |
Тип / приступ | Линк Едитор, динамички повезивач. | Апсолутно пуњење, премештање утовара и динамичко пуњење. |
Дефиниција Линкер-а
Ассемблер генерише објектни код изворног програма и предаје га повезивачу. Линкер узима овај објектни код и генерише извршни код за програм и предајте га утоваривачу.
Језик на високом нивоу, програми га имају уграђене библиотеке и датотеке заглавља. Изворни програм може садржавати неке функције библиотеке чија се дефиниција чува у уграђеним библиотекама. Линкер повезује ове функције са уграђеним библиотекама. У случају да нису пронађене уграђене библиотеке, он обавештава преводиоца, а затим преводилац генерише грешку.
Понекад се велики програми деле у подпрограме који се називају модула. Сада када се ти модули састављају и састављају, генерирају се објектни модули изворног програма. Линкер је одговоран за комбиновање / повезивање свих објектних модула како би створио једну извршну датотеку изворног програма. Имамо две врсте повезивача.
Линк Едитор: То је повезивач који генерише релокативни, извршни модул.
Динамиц Линкер: Одлаже / одлаже везу неких екстерних модула док се не генерише оптерећење / извршни модул. Овде се повезивање врши за време учитавања или времена рада.
Дефиниција утоваривача
Како се програм који се тренутно мора извести мора налазити у главној меморији рачунара. То је одговорност утоваривач, програм у оперативном систему за учитавање извршне датотеке / модула програма, генерисаног везом, у главну меморију за извршење. Он распоређује меморијски простор извршном модулу у главној меморији.
Постоје три врсте приступа утовару:
- Апсолутно пуњење
- Учитавање селидби
- Динамично учитавање времена извођења
Апсолутно пуњење: Овај приступ учитава извршну датотеку програма у иста главна меморијска локација сваки пут. Али има их недостаци као програмер мора бити свјестан стратегије додјељивања за учитавање модула у главну меморију. У случају да се програм модификује укључујући неко уметање и брисање у програму, тада све адресе програма морају бити измењене.
Учитавање: У овом приступу ради преводилац или преводилац не производи стварну главну меморијску адресу. Производи релативне адресе.
Динамичко учитавање радног времена: У овом приступу, апсолутна адреса за програм се генерише када се заправо изврши инструкција извршног модула. Врло је флексибилан, у њега се може убацити учитавајући модул / извршни модул било који регион главне меморије. Програм извршавања може се прекинути између и може се овај пут заменити на диск и вратити у главну меморију на другој главној адреси меморије.
- Кључна разлика између повезивача и утоваривача је у томе што линкер генерише извршни датотеку програма док, учитавач учитава извршну датотеку добијену од повезивача у главна меморија за извршење.
- Линкер узима оно објектни модул програма генерисаног од стране алата за састављање. Међутим, утоваривач прихвата извршни модул генерисано од везника.
- Линкер комбинује сав објектни модул програма за генерисање извршни модули такође повезује функција библиотеке у објектном модулу до уграђене библиотеке програмског језика високог нивоа. С друге стране, утоваривач додељује простор извршном документу модул у главној меморији.
- Линкер се може класификовати као уредник везе, и динамички повезивач док се утоваривач може класификовати као апсолутни утоваривач, утоваривач који се може померати и динамички утоваривач.
Закључак:
Линкер узима објектне модуле програма из алата и повезује их да би створио извршни модул програма. Извршни модул се затим учитава у учитавач у главну меморију за извршење.