Opeartsion tizimlar
Statik va dinamik xotira ajratishning afzalliklari
Download 1.08 Mb.
|
Xotirani taqsimlash bu jarayonga (uning ko\'rsatmalari va ma\'lumo
- Bu sahifa navigatsiya:
- Eslatma: Ushbu blogda biz faqat First Fit algoritmini korib chiqamiz, garchi bu usullarning har biri oz foydalanish holatlariga ega. Umuman olganda, birinchi moslamaga ustunlik beriladi.
Statik va dinamik xotira ajratishning afzalliklari
Statik xotirani taqsimlash Statik xotira taqsimoti xotirani jarayonga tayinlashning samarali usulini ta'minlaydi.Barcha xotira tayinlash operatsiyalari bajarish boshlanishidan oldin amalga oshiriladi. Shunday qilib, dasturni bajarish vaqtida xotirani taqsimlash operatsiyalari uchun qo'shimcha xarajatlar yo'q. Statik xotirani taqsimlash tezroq bajarilishini ta'minlaydi, chunki bajarilish vaqtida dasturga ajratilgan xotirada vaqtni yo'qotish shart emas. Dinamik xotirani taqsimlash Dinamik xotira taqsimoti xotirani jarayonga belgilashning moslashuvchan usulini ta'minlaydi. Dinamik xotira taqsimoti xotira sarfini kamaytiradi, chunki u ushbu dasturni bajarish jarayonida jarayonga xotirani tayinlaydi. Shunday qilib, u dastur tomonidan talab qilinadigan aniq xotira hajmidan xabardor. Agar dastur katta bo'lsa, dinamik xotira ajratish dasturning turli qismlarida amalga oshiriladi. Xotira dasturning hozirda ishlatilayotgan qismiga biriktirilgan. Bu shuningdek, xotira isrofgarchiligini kamaytiradi va haqiqatan ham tizim ish faoliyatini yaxshilaydi. Statik va dinamik xotira ajratishning kamchiliklari Statik xotirani taqsimlash Statik xotirani taqsimlashda tizim dasturning xotira talabini bilmaydi. Shunday qilib, u dastur uchun zarur bo'lgan xotirani taxmin qilishi kerak. Statik xotira taqsimoti xotirani yo'qotishga olib keladi. Chunki u dastur tomonidan talab qilinadigan xotira hajmini taxmin qiladi. Shunday qilib, agar taxminiy o'lcham kattaroq bo'lsa, bu xotirani yo'qotishga olib keladi, aks holda taxminiy o'lcham kichikroq bo'lsa, dastur noto'g'ri ishlaydi. Dinamik xotirani taqsimlash Dinamik xotirani taqsimlash usuli xotirani jarayonga uni bajarish vaqtida tayinlash uchun qo'shimcha xarajatlarga ega. Ba'zan dasturni bajarish jarayonida xotirani ajratish harakatlari bir necha marta takrorlanadi, bu esa qo'shimcha xarajatlarga olib keladi. Amalga oshirish vaqtida xotirani taqsimlashning qo'shimcha xarajatlari ma'lum darajada bajarilishini sekinlashtiradi. Xotirani ajratish dastur yoki jarayon uchun xotira manzilini belgilaydi. Xotirani taqsimlashda statik xotira ajratish va dinamik xotira ajratishning ikkita usuli mavjud. Statik xotirani taqsimlash samaradorlikni ta'minlaydi, chunki u xotirani bajarilishi boshlanishidan oldin jarayonga tayinlaydi. Shunday qilib, dasturni bajarish paytida xotirani ajratish operatsiyasi uchun ortiqcha yuk yo'q, bu dasturning tezroq bajarilishiga olib keladi. Statik xotirani ajratishda kerakli xotira hajmi dastur bajarilishidan oldin ma'lum bo'lishi kerak. Statik xotira ajratish jarayonga taxminiy xotira maydonini belgilaydi, chunki u dastur tomonidan talab qilinadigan xotira hajmini bilmaydi. Bu xotirani behuda sarflashga olib keladi. Dinamik xotirani ajratish dasturni bajarish vaqtida amalga oshiriladi. Shunday qilib, u xotirani isrof qilishdan saqlaydigan dasturga aniq xotira miqdorini ajratadi. Dinamik xotira taqsimoti dasturning bajarilishini sekinlashtiradigan dasturni bajarish paytida xotirani taqsimlash operatsiyasining qo'shimcha xarajatlariga ega. Dinamik xotira ajratish xotirani taqsimlashda moslashuvchanlikni ta'minlaydi, go'yo dastur etarlicha katta bo'lsa, u dasturlarning turli qismlarida xotirani ajratish operatsiyalarini bajaradi va xotirani isrof qilishni kamaytiradi. Operatsion tizim samarali va moslashuvchan bajarish uchun statik va dinamik xotira ajratishning eng yaxshi aralashmasini olishi mumkin. Dinamik xotirani boshqarish muntazam xotira ajratish va bo'sh joyni bo'shatishni talab qiladi. Ushbu maqolada x otirani ajratish uchun ishlatilishi mumkin bo'lgan bir nechta usullar keltirilgan. Malloc (xotirani ajratish) yoki bo'sh funksiyani chaqirish, ajratilgan xotira manziliga havolaga olib keladi yoki u har safar chaqirilganda boshqalar foydalanishi uchun xotirani bo'shatadi. Dinamik xotirani boshqarish muntazam xotira ajratish va bo'sh joyni tozalashni talab qiladi. Bo'shatilgan bo'sh joy bilan bir qatorda ishlatilgan joy bilan nima qilish kerak? Keyingi malloc qo'ng'irog'i uchun qaysi manzillar/uyalardan foydalanish kerakligini qanday aniqlaymiz? Xotirani boshqarishning uchta usuli mavjud, biz ushbu savollarni hal qilishda foydalanishimiz mumkin, biz ularni batafsil muhokama qilamiz. Quyidagi jadval 1024 baytlik bitta katta xotira blokining joriy holatini ko'rsatadi. Xotirani ajratish uchun har bir usul uni qanday ishlatishini ko'rib chiqamiz. Eslatma: Ushbu blogda biz faqat First Fit algoritmini ko'rib chiqamiz, garchi bu usullarning har biri o'z foydalanish holatlariga ega. Umuman olganda, birinchi moslamaga ustunlik beriladi. Download 1.08 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling