Yuklovchi va bog’lovchi programmalar


Download 31.9 Kb.
Sana04.02.2023
Hajmi31.9 Kb.
#1162100
Bog'liq
maruza 6


Yuklovchi va bog’lovchi programmalar.
Yuklagich- bu tizim programmasi bo’lib, u ob’ekt programmani mashina xotirasiga yuklash vazifasini amalga oshiradi. Aksariyat yuklagichlar bundan tashqari ko’chirish va bog’ashlarni ham amalga oshiradi. Odatda bog’lash funktsiyasi yuklash va ko’chirish vazifalaridan ajratiladi. Bog’lash- bog’lash programmasi (bog’lash tahriri) orqali, ko’chirish va yuklash - yuklagich orqali bajariladi.
Translyatorlar (assembler va komilyatorlar) har bir konkret tizimda biror standart shakldagi ob’ekt kodlarni yaratadilar. Shu sababli yuklagich va bog’lash programmalari uchun programma matni qaysi tilda yozilgan bo’lishi ahamiyatsiz.
Bu ma’ruzada yuklagichning asosiy vazifalaridan biri bo’lgan ob’ekt programmani operativ xotiraga yozish va uning bajariluvchi birinchi adresiga boshqaruvni uzatishni ko’rib chiqamiz. Yuklagichlar ikki turga bo’linadi: absolyut va bog’lovchi yuklagichlar.
Ob’ekt programmada translyatsiya qilingan komandalar berilganlar qiymati va ular joylashitshi kerak bo’lgan adreslar beriladi. Asosan 3 ta protsess bo’ladi:

  • yuklash

  • ko’chirish

  • bog’lash

Ko’p sistemalarda ko’chirish va bog’lash ham birgalikda ta’minlanadi. Yuklovchi va bog’lovchi programmalarning jarayoni bilan tanishamiz.
Yuklovchi programmaning asosiy vazifasi: ob’ekt programmani OZU ga joylashtirish va boshqarishni bir bajariladigan komandaga uzatish. Absolyut programmani joylashtirish quyidagicha bo’ladi:
Adres x-bo’sh joy

  1. xx. . . . . . . . . . . . .xx

. . . . . . . . . . . . . . . . . . .
0FF0 xx.. . . . . . . . . . . . .xx
1000 14103348 20390010 36281030 30101548
. . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 4600003

  1. xx . . . . . . . . . . . . . . . . . . . . . . . . . . xx . . . xx

. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2030 xx . . . . . . . . . . . . .. . . . . .xx041030 001030E0
. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2070 20103628 20644000 005xxxx xx . . . xx

Yuklovchi programmaning algoritmi quyidagicha:


Begin
Sarlavha yozuvini o’qish
Programmaning nomi va uzunligini tekshirish
Programma tanasining 1-yozuvini o’qish
While yozuv tipi < > 'E’ do
Begin
Ob’ekt kodini OZU ning berilgan joyiga yozish
Ob’ekt programmaning yozuvini o’qish
End
Oxirgi yozuvda ko’rsatilgan adres bo’yicha boshqarishni uzatish
End

Bog’lanishlar tahriri


Bog’lovchi yuklagich bog’lanishlarni o’rnatish, ko’chirish, kerak bo’lsa kutubxonadan avtomatik izlashlarni amalga oshirib, tayyor programmani bevosita operativ xotiraga yuklaydi.


Bog’lanishlar tahriri bog’lovchi yuklagichdan farqli ravishda tashqi bog’lanishlari hal qilingan programma variantlarini tayyorlab yuklanuvchi modul yoki bajariluvchi programmalarni yaratadi va ularni fayl ko’rinishida diskga yoki kutubxonalarga yozib qo’yadi. Bunday programmani yuklash uchun oddiy ko’chiruvchi yuklagichdan foydalanish mumkin. Yuklagichga barcha nisbiy adreslarga programma boshlang’ich adresini qo’shishi yetarli, ya’ni modifikatsiya qilinishi kerak bo’lgan barcha adreslar programma boshlang’ich adresiga nisbatan qiymat oladi va tashqi nomlar jadvaliga xojat qolmaydi.
Bog’lovchi yuklagich va bog’lanishlar tahriri o’rtasidagi farq quyidagi rasmda keltirilgan.

Bog’lanishlarni o’rnatishning shunday usuli borki, unda qismprogrammaga bog’lanish shu programmaga birinchi murojaat vaqtida amalga oshiriladi. Bunday bog’lanishga dinamik bog’lanish yoki dinamik yuklash deyiladi.


Yuklagich haqida gapirganda «Yuklagichning o’zi operativ xotiraga qanday yuklanadi?» savoli tug’ilishi mumkin. Agar yuklagich operatsion tizim tomonidan yuklanadi desak, operatsion tizimni nima yoki kim yuklaydi?
Bu savollarga javob variantlari quyidagicha: agar mashina xotirasi «bo’sh» deb hisoblasak, u holda ilk programmaning yuklanish adresi sifatida birorta o’zgarmas absolyut adresni olishimiz mumkin. Odatda bu programma sifatida OS bo’lib va u oldindan belgi­langan joyni egallaydi. Demak, bizga bu ishni amalga oshirish uchun absolyut yuklagich kerak.
Yuklagichning ob’ekt kodini operativ xotiraga operator tomonidan «qo’lda» kiritilishi mumkin, boshqa usulda absolyut yuklagich operativ xotirada doimiy ravishda rezident sifatida saqlanadi (doimiy xotira qurilmasi-DXQ).
Ma’lum bir signallar kelganda «tizim starti» ishga tushadi. Bunda DXQ dan absolyut yuklagich operativ xotiraga o’qiladi va ishga tushadi, yoki DXQni o’zida bajariladi. Absolyut yuklagich vazifasi tashqi qurilmadan bitta yozuvni o’qib boshqaruvni unga berishdir. Bu yozuvda yuklash jarayonini amalga oshiruvchi buyruqlar bo’ladi. Agar bu buyruqlar bitta yozuvga sig’masa har bir yozuvda keyingi yozuvni yuklash buyrug’i bo’ladi va hakozo. Birinchi yuklanuvchi yozuvni odatda o’rab oluvchi yuklagich deyiladi Bunday yuklagichlar bo’sh mashinada ishlashi mo’ljallangan har bir ob’ekt programma boshlanishida bo’lishi kerak. Odatda bunday programmalar sifatida operatsion sistemaning boshlang’ich yukligich programmalari bo’ladi.


Nazorat savollari

  1. Programmaning bajariluvchi modullari (EXE va COM turidagi fayllar) qanday hosil qilinadi?

  2. Har doim ham bog’lanishlar tahriri bog’lovchi yuklagichga nisbatan samaralimi? Javobingizni asoslab bering.

  3. Dinamik bog’lanish qaysi hollarda ma’qul hisoblanadi?

  4. O’rab oluvchi yuklagich amali ShEHMda qanday bajariladi?

Download 31.9 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling