Yuklovchi va bog’lovchi programmalar
Download 31.9 Kb.
|
maruza 6
- Bu sahifa navigatsiya:
- Nazorat savollari
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 xx. . . . . . . . . . . . .xx . . . . . . . . . . . . . . . . . . . 0FF0 xx.. . . . . . . . . . . . .xx 1000 14103348 20390010 36281030 30101548 . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 4600003 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 tahririBog’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 belgilangan 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 Programmaning bajariluvchi modullari (EXE va COM turidagi fayllar) qanday hosil qilinadi? Har doim ham bog’lanishlar tahriri bog’lovchi yuklagichga nisbatan samaralimi? Javobingizni asoslab bering. Dinamik bog’lanish qaysi hollarda ma’qul hisoblanadi? 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
ma'muriyatiga murojaat qiling