Opeartsion tizimlar
Download 1.08 Mb.
|
Xotirani taqsimlash bu jarayonga (uning ko\'rsatmalari va ma\'lumo
Birinchi Fit
Birinchi moslash usulida bepul ro'yxat so'ralgan o'lchamga ega bo'lgan birinchi bepul blokni topish uchun ketma-ket o'tkaziladi. Blok topilgach, quyida keltirilgan ikkita amaldan biri bajariladi: Agar o'lcham so'ralgan miqdorga teng bo'lsa, u bepul ro'yxatdan o'chiriladi. Aks holda, u ikki qismga bo'linadi. Bu erda birinchi qism ro'yxatda qoladi va ikkinchisi ajratiladi.Ikkinchi qismni ajratishning sababi shundaki, ro'yxatni yangilash operatsiyasidan faqat erkin tugun hajmini o'zgartirish orqali oldini olish mumkin. Keling, 200 baytni ajratishga harakat qilaylik va strukturaning qanday o'zgarishini tushunamiz. Ko'rinib turibdiki, xotira ikkinchi bo'limda ajratilgan, oldingi blok birinchi qismga ishora qiladi. Agar birinchi qism ishlatilgan bo'lsa, ikkinchi bo'limga ishora qilib, o'zgartirish ro'yxatda amalga oshirilishi kerak edi. Endi algoritmni ko'rib chiqamiz: p = freeblock; alloc = null; // pointer to store the allocated size n’s address q = null; // find the free node which can allocate the given size n while ( p != null && size(p) < n) { q = p; // previous node p = next(p); } // if there is block large enough found if ( p != null ) { s = size(p); alloc = p + s – n; // alloc contains the address of the desired block // if the block size matches the requested size, remove the block from the free list if ( s == n) { // if the match is found in the first block update the pointer of freeblock to point the next of free block if ( q == null ) { freeblock = next(p); } else { next(q) = next(p); } } else { size(p) = s – n; // adjust the size of the remaining free block } Hajmi belgilangan “n” o‘lchamidan kattaroq yoki unga teng bo‘lgan bepul bloklarning eng kichigi Best Fit yondashuvida tanlanadi. Eng yaxshi moslikni topish uchun ushbu algoritm to'liq ro'yxat bo'ylab ishlashi kerak. Keling, 200 bayt ajratishga harakat qilaylik va strukturadagi o'zgarishlarni qayd etamiz: Worst Fit texnikasidagi algoritm har doim eng katta bo'sh xotira blokining bir qismini ajratadi. Ushbu strategiyaning g'oyasi shundan iboratki, ko'pchilik so'rovlarga xizmat ko'rsatish uchun oz sonli juda katta bloklardan doimiy ravishda foydalanish orqali ko'plab kichik bloklar parchalanmagan bo'lib qoladi. Keling, 200 ni ajratishga harakat qilaylik va strukturaning qanday o'zgarishini ko'rib chiqaylik. XULOSA Ushbu mustaqil ishni bajarish davomida men quyidagilarni o’rgandim: 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 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