Bizda xotirani ajratishning ikki turi mavjud yoki ikkita bog'lash usuli, statik va dinamik bog'lanishni aytishimiz mumkin.
Xotirani taqsimlash turlari
1. Statik xotirani ajratish
Statik xotira ajratish kompilyator dasturni kompilyatsiya qilganda va obyekt fayllarini hosil qilganda amalga oshiriladi. Bog'lovchi ushbu barcha ob'ekt fayllarini birlashtiradi va bitta bajariladigan faylni yaratadi. Yuklovchi ushbu bitta bajariladigan faylni bajarish uchun asosiy xotiraga yuklaydi. Statik xotirani taqsimlashda jarayon uchun zarur bo'lgan ma'lumotlar hajmi jarayon boshlanishidan oldin ma'lum bo'lishi kerak. Agar jarayonni amalga oshirishdan oldin ma'lumotlar o'lchamlari ma'lum bo'lmasa, ularni taxmin qilish kerak. Agar taxmin qilingan ma'lumotlar hajmi talab qilinganidan kattaroq bo'lsa, bu xotiraning isrof bo'lishiga olib keladi. Agar taxmin qilingan o'lcham kichikroq bo'lsa, bu jarayonning noto'g'ri bajarilishiga olib keladi. Statik xotirani ajratish usuli jarayonni bajarish jarayonida xotirani ajratish operatsiyasini talab qilmaydi. Jarayon uchun zarur bo'lgan barcha xotira ajratish operatsiyalari jarayon boshlanishidan oldin amalga oshiriladi. Shunday qilib, bu jarayonning tezroq bajarilishiga olib keladi.
Statik xotira taqsimoti dinamik xotira ajratish bilan solishtirganda ko'proq samaradorlikni ta'minlaydi.
2. Dinamik xotira taqsimoti
Dinamik xotira ajratish dastur bajarilayotgan vaqtda amalga oshiriladi. Bu erda xotira dasturning ob'ektlari dastur ishlayotgan vaqtda birinchi marta foydalanilishi kerak bo'lganda ajratiladi. Kerakli ma'lumotlarning haqiqiy hajmi ish vaqtida ma'lum bo'ladi, shuning uchun u dasturga aniq xotira maydonini ajratadi va shu bilan xotirani isrof qilishni kamaytiradi. Dinamik xotira taqsimoti dasturni bajarish uchun moslashuvchanlikni ta'minlaydi. Chunki u dastur uchun qancha xotira maydoni talab qilinishini hal qilishi mumkin. Agar dastur etarlicha katta bo'lsa, unda hozirda foydalaniladigan dasturning turli qismlarida dinamik xotira taqsimoti amalga oshiriladi. Bu xotira sarfini kamaytiradi va tizimning ish faoliyatini yaxshilaydi. Xotirani dinamik ravishda taqsimlash tizim ustidan ortiqcha yuk hosil qiladi. Ba'zi taqsimlash operatsiyalari dasturning bajarilishi davomida qayta-qayta bajariladi, bu esa dasturning sekin bajarilishiga olib keladi. Dinamik xotirani ajratish operatsion tizimdan maxsus yordamni talab qilmaydi. Dinamik xotirani taqsimlash usulidan foydalanish uchun dasturni loyihalash dasturchining zimmasida. Shunday qilib, dinamik xotira taqsimoti moslashuvchan, lekin statik xotira taqsimotiga qaraganda sekinroq.
Do'stlaringiz bilan baham: |