Mavzu: O’rnatilgan operatsion tizimlarda xotirani boshqarish


Do'stlar xotirasini ajratish


Download 342.7 Kb.
Pdf ko'rish
bet8/12
Sana24.12.2022
Hajmi342.7 Kb.
#1062086
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
3-mustaqil ishi

Do'stlar xotirasini ajratish - Ushbu tizimda xotira bittasi o'rniga bir nechta xotira 
havzalariga ajratilgan, bu erda har bir hovuz ma'lum bir xotiraning bloklarini aks 


ettiradi ikkitasining kuchi kattaligi yoki boshqa qulay o'lchamdagi bloklar. Muayyan 
o'lchamdagi barcha bloklar tartiblangan holda saqlanadi bog'langan ro'yxat yoki 
daraxt va ajratish paytida hosil bo'lgan barcha yangi bloklar keyinchalik foydalanish 
uchun tegishli xotira havzalariga qo'shiladi. Agar mavjud bo'lganidan kichikroq 
hajm talab qilinsa, mavjud bo'lgan eng kichik o'lcham tanlanadi va bo'linadi. 
Olingan qismlardan biri tanlanadi va jarayon so'rov tugaguniga qadar takrorlanadi. 
Blok ajratilganda, blokirovkalash keraksiz bloklardan saqlanish uchun eng kichik 
etarlicha katta blokdan boshlanadi. Blok bo'shatilganda, uning do'sti bilan 
taqqoslanadi. Agar ularning ikkalasi ham bepul bo'lsa, ular birlashtirilib, mos 
ravishda kattaroq hajmdagi do'stlar bloklari ro'yxatiga joylashtiriladi.
Plitalarni ajratish - Ushbu xotirani taqsimlash mexanizmi ma'lum turdagi yoki 
o'lchamdagi moslamalarga mos keladigan xotira qismlarini oldindan taqsimlaydi.[4] 
Ushbu qismlar keshlar deb ataladi va ajratuvchi faqat bo'sh keshlar ro'yxatini 
kuzatishi kerak. Ob'ektni qurish bepul kesh uyalaridan birini ishlatadi va ob'ektni 
yo'q qilish, bo'sh keshlar ro'yxatiga bo'sh joyni qo'shadi. Ushbu texnik xotira 
parchalanishini engillashtiradi va samaralidir, chunki xotiraning tegishli qismini 
qidirishning hojati yo'q, chunki har qanday ochiq uyasi etarli bo'ladi.
Stekka asoslangan xotirani ajratish - Ko'pchilik Unixga o'xshash tizimlar
shuningdek Microsoft Windows deb nomlangan funktsiyani amalga oshirish alloka 
stack xotirani uyumga o'xshash tarzda dinamik ravishda taqsimlash uchun malloc. 
Odatda kompilyator uni stack ko'rsatgichi bilan ishlaydigan chiziqli ko'rsatmalarga 
tarjima qiladi.[5] Garchi bu tarzda ajratilgan xotirani qo'lda bo'shatishga hojat 
bo'lmasa ham, u chaqirilgan funktsiya avtomatik ravishda bo'shatiladi alloka qaytib 
keladi, toshib ketish xavfi mavjud. Va alloka an maxsus kengayish ko'plab 
tizimlarda kuzatilgan, ammo hech qachon POSIX yoki C standartlarida ishlamaydi, 
stack overflow holatida uning harakati aniqlanmagan.
Allokaning xavfsiz versiyasi 
deb nomlangan _malloca, xatolar haqida xabar beradigan, Microsoft Windows-da 
mavjud. Buning ishlatilishini talab qiladi _freea.[6] gnulib SEH istisnoini toshib 
yuborish o'rniga, ekvivalent interfeysni taqdim etadi, kattalashtirilgan kattalik 
aniqlanganda malloc-ga vakolat beradi.[7] Shunga o'xshash xususiyatni qo'lda 
hisobga olish va o'lchamlarini tekshirish yordamida taqlid qilish mumkin, masalan 
alloca_account glibc-da.

Download 342.7 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling