Xotirani boshqarish shaklidir resurslarni boshqarish uchun qo'llaniladi kompyuter xotirasi. Xotirani boshqarishning muhim talabi shundan iboratki, dasturlarga ularning talabiga binoan xotira qismlarini dinamik ravishda taqsimlash va kerak bo'lmaganda uni qayta ishlatish uchun bo'shatish. Bu bitta kompyuterdan ko'proq bo'lgan har qanday rivojlangan kompyuter tizimi uchun juda muhimdir jarayon har qanday vaqtda bo'lishi mumkin. Xotirani boshqarish samaradorligini oshiradigan bir necha usullar ishlab chiqilgan. Virtual xotira tizimlar ajratib turadi xotira manzillari protsessni ajratish va hajmini oshirishga imkon beradigan haqiqiy jismoniy manzillardan jarayon tomonidan foydalaniladi virtual manzil maydoni mavjud miqdordan tashqari RAM foydalanish xotira yoki almashtirish ikkilamchi saqlash. Virtual xotira menejerining sifati umumiy tizimga katta ta'sir ko'rsatishi mumkin ishlash. Ba'zi operatsion tizimlarda, masalan, DOS / 360 va vorislari, OS / 360 va vorislari,manzil maydonida saqlashni ajratish operatsion tizim tomonidan amalga oshiriladi; masalan, Unixga o'xshash operatsion tizimlar, ichida ajratish manzil maydoni dastur darajasida. Manzil maydonidagi xotirani boshqarish odatda avtomatik ravishda boshqarishni o'z ichiga olgan avtomatik xotira boshqaruvi deb tasniflanadi axlat yig'ish, yoki xotirani qo'lda boshqarish. Ajratish haqidagi so'rovni bajarish vazifasi etarli hajmdagi foydalanilmagan xotira blokini topishdan iborat. Deb nomlangan katta xotira fondidan qismlarni ajratish orqali xotira talablari qondiriladi uyum yoki bepul do'kon Har qanday vaqtda, uyumning ba'zi qismlari ishlatilmoqda, ba'zilari esa "bepul" (foydalanilmayapti) va shu bilan kelajakda ajratish uchun mavjud. Kabi bir nechta muammolar amalga oshirishni murakkablashtiradi tashqi parchalanish ajratilgan xotira bloklari orasida juda ko'p kichik bo'shliqlar mavjud bo'lganda paydo bo'ladi, bu ularni ajratish so'rovi uchun ishlatilishini bekor qiladi. Ajratuvchi metadata kichik ajratmalar hajmini ham ko'paytirishi mumkin. Bu ko'pincha tomonidan boshqariladi. Xotirani boshqarish tizimi bir-birining ustma-ust tushmasligi va hech qachon xotira "yo'qolmasligi" (ya'ni, yo'qligi) uchun ularni ajratib turishini ta'minlashi kerak.) Xotirani statik va dinamik taqsimlash o‘rtasidagi asosiy farq quyidagilar:
Statik ob’yektlar nomlangan o‘zgaruvchilar bilan belgilanadi. Shu sababli bunday ob’yektlar ustida amallar bevosita ularning nomlarini ishlatish orqali amalga oshiriladi. Dinamik ob’yektlar shaxsiy nomga ega bo‘lmaydi, ular ustidagi amallar bilvosita, ya’ni ko‘rsatkichlar yordamida bajariladi;Statik ob’yektlar uchun xotira ajratish va bo‘shatish kompilyator tomonidan avtomatik ravishda bajariladi. Dasturchining bu haqda bosh qotirishi shart emas.Dinamik ob’yektlar uchun xotira ajratish va bo‘shatish butunligicha dasturchining zimmasiga tushadi. Bu esa hal qilishda xatoga yo‘l qo‘yish mumkin bo‘lgan murakkab masaladir.Dinamik ajratilgan xotira bilan ish ko‘rish uchun new va delete
buyruqlaridan foydalaniladi.Shu paytgacha barcha misollarda xotirani statik ajratish usulidan foydalanilib kelindi.Agar ajratilgan xotirani bo‘shatishni unutsak, u bo‘shga sarflanadi, ishlatilmaydi. Agar unga bo‘lgan ko‘rsatkich o‘z qiymatini o‘zgartirgan bo‘lsa uni tizimga qaytarish ham mumkin emas. Bunday xodisa xotiraning oqib ketishi degan maxsus nom olgan. Oxir oqibatda dastur xotira etmasligi sababli halokatli (avariyali) to‘xtaydi.Amalga oshirilgan maxsus dinamik xotirani taqsimlash algoritmi ishlashga sezilarli ta'sir ko'rsatishi mumkin. Tomonidan 1994 yilda o'tkazilgan tadqiqot Raqamli uskunalar korporatsiyasi tasvirlaydi qo'shimcha xarajatlar turli xil ajratuvchilar uchun jalb qilingan. O'rtacha eng past ko'rsatkich ko'rsatma yo'lining uzunligi bitta xotira uyasini ajratish uchun talab qilingan 52 (ko'rsatma darajasi bilan o'lchanganidek) profiler turli xil dasturiy ta'minotlarda).
Ajratishning aniq joyi oldindan ma'lum bo'lmaganligi sababli, xotiraga bilvosita, odatda a orqali kirish mumkin ko'rsatgich ma'lumotnoma. Xotira maydonini tashkil qilish va qismlarni ajratish va taqsimlash uchun ishlatiladigan o'ziga xos algoritm. Bilan o'zaro bog'liq yadrova quyidagi usullardan birini qo'llashi mumkin:Aniq o'lchamdagi bloklarni taqsimlash, shuningdek xotira havzasini ajratish deb nomlanadi bepul ro'yxat xotiraning doimiy o'lchamdagi bloklari (ko'pincha barchasi bir xil o'lchamda). Bu oddiy uchun yaxshi ishlaydi o'rnatilgan tizimlar bu erda katta ob'ektlarni ajratish kerak emas, lekin zarar ko'radi parchalanish, ayniqsa, uzoq xotira manzillari bilan. Biroq, sezilarli darajada kamaytirilgan qo'shimcha xarajatlar tufayli ushbu usul tez-tez ajratish / ajratishni talab qiladigan va ko'pincha ishlatiladigan ob'ektlar uchun ishlashni sezilarli darajada yaxshilashi mumkin.
Buddy bloklari 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. 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.
Do'stlaringiz bilan baham: |