Kirish Xotirada jarayonlarni joylashtirishning asosiy qoidalari
Download 197.82 Kb.
|
15-16
- Bu sahifa navigatsiya:
- (linker and loader)
- (dymanically linked libraries)
1-rasm. Foydalanuvchi dasturlarini ko’pbosqichli qayta ishlash sxemasi.
Yuqori darajali dasturlash tillaridagi yoki assemblerdagi dasturning kirish kodi (matnli fayl shaklidagi) kompiliyator yoki assemblerda binar bajariluvchi mashina buyrug’ini saqlovchi ob’ekt moduli va ushbu kod modulida qo’llaniladigan va aniqlangan belgilar jadvaliga aylantiriladi. Ushbu bosqich kompilyatsiya vaqti deb ataladi. Biroq ob’ektli modul bevosita bajarilishi mumkin emas, chunki u tashqi modul va uning komponentlariga ruxsat etilmagan ulanishni saqlab turadi. Dasturni qayta ishlashning keyingi bosqichi – bog’lanishni taxrirlash deyiladi. Bog’lanish taxrirlovchisi (linker) – tizimli dastur bo’lib, kirishda bir yoki bir necha ob’ekt modullarini qabul qiladi, chiqishda esa yuklovchi modul - ikkilik kodni beradi, har bir belgi uchun – barcha modullararo bog’lanishga ruxsat beruvchi bir nechta ob’ekt modullariga akslantirilgan kodlar, berilgan ob’ektli modul A uchun tashqi, mos belgi (protsedura, o’zagruvchi va boshq.) boshqa A modul bog’langan B dan topiladi va mos ravishda kod taxrirlanadi, ya’ni tashqi belgini to’g’ri adreslaydi. Yuklab olish modulini boshqa tizim dasturi - yuklovchi (loader) moduli va dastur tomonidan ishlatiladigan tizim kutubxonalarining ikkilik kodlari bo'lgan fayllarni kirish sifatida qabul qiladigan yuklovchi yordamida bajarilishi uchun xotiraga yuklash mumkin. Dastur kodi bilan tizim kutubxonasi jamlanmasi - yuklovchi xotirada dasturning binar shaklini hosil qiladi. Bog’lash redaktori va yuklovchini chaqirish bosqichi birgalikda yuklash vaqti deb nomlanadi. Ko’pgina OTlarda bog’lash redaktori va yuklovchi tizimda dasturni qayta ishlash vaqtini tejash maqsadida, bitta tizimli dasturga birlashtiriladi – yuklovchi va bog’lash redaktori (linker and loader). Masalan, UNIX tizimida bog’lash redaktori va yuklovchi ld (Linker and loaDer) deb ataladi. Ob'ekt modullari ro'yxati va kutubxonalar ro'yxati birlashtirilgan yuklovchi va bog'lovchiga kirish sifatida uzatiladi va natijada u bajariladigan kodni hosil qiladi. Yuklash va bog’lanishni taxrirlash bosqichi ba’zan dasturchilar tilida bog’lovchi (linking) deb ataladi. Keyingi o’rinlarda ushbu qisqa atamadan foydalanamiz. UNIX tizim buyruqlari nuqtai nazaridan dasturni qayta ishlash bosqichlari ketma-ketligiga misol: ss –c program.c // kirish kodini Si tiliga kompilyatsiya qilish. // ishchi katologda program.o ob’ektli modul hosil bo’ladi. ld program.o mylibrary.a // yuklash va aloqani tahrirlash // ishchi katologda bajariluvchi kod fayli a.out hosil bo’ladi. a.out // bajariluvchi dastur // standart chiqishga (jimlik holatida konsolga) dastur natijasi chiqariladi. Keltirilgan misolda program.c Si dasturlash tilidagi mylibrary.a kutubxonasidan kutubxona funktsiyalarinidan foydalanuvchi dasturning kirish kodini saqlaydigan fayl deb qaraladi. UNIX tizimi qoidalari asosida fayllar kengaytmalari quyidagilarni anglatadi: .c – Si tilidagi kirish kodi, .o – ob’ektli modul’, .a – statik kutubxonaga ulangan binar fayl (archive atamasining qisqartmasidan olingan). UNIX tizimida bajariluvchi kod (executable) standart kengaytmaga ega emas, lekin to’liq nomi jimlik holatida a.out kabi bo’ladi (bu asembler output atamasining qisqartmasi sifatida qo’llaniladi). Windows tizimlarida esa fayl nomidagi kengaytmalar biroz boshqacha bo’ladi: .obj – ob’ekt moduli, .exe – bajariluvchi kod, .lib – statik kutubxonaga ulangan fayl. Ob'ekt modulini yuklash modulidan farqlash juda oddiy: ular hajmi jihatidan juda katta farq qiladi. Bu yuklash moduli to'liq yoki qisman statik bog'langan kutubxonalar kodini, shuningdek ob'ektlar modulidan ancha kattaroq belgilar jadvalini o'z ichiga olganligi bilan izohlanadi, bu jadvalda kutubxonalarning barcha belgilari va bitta bajariladigan faylga bog'langan boshqa ob'ekt modullari mavjud dastur saqlanadi. Ish paytida, dasturdan birinchi marta murojaat bo’lganda, xotiraga dinamik bog’langan kutubxonalar (dymanically linked libraries) yuklanadi. Barcha zamonaviy operatsion tizimlarda joriy qilingan ushbu turdagi kutubxonalar, bajariladigan kod tasvirini egallagan xotirani tejashga imkon beradi, bu esa kutubxonalar bilan statik bog'langanda juda katta bo'ladi. Mantiqiy va fizik adreslar maydoni Fizik adreslar maydoniga mosligi bilan bog’langan mantiqiy adreslar maydoni kontseptsiyasi xotirani boshqarish uchun asosiylaridan biri hisoblanadi. Download 197.82 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling