6-Mavzu. Jarayonlar va resurslar. Reja Resurslarni taqsimlash Jarayonlar bajarilishini rejalashtirish
Dinamik xotirani taqsimlash texnologiyasi
Download 148.14 Kb.
|
6-Mavzu. Jarayonlar va resurslar.
Dinamik xotirani taqsimlash texnologiyasi.Xotirani dinamik boshqaruv usullarini amalga oshirilishi foydalanuvchining talablariga bog‘liqdir. Foydalanuvchining oshkor ravishda bo‘lgan xotiraga talablari bo‘yicha xotira teng bloklar ko‘rinishiga ajratiladi. Bunday bloklarni bo‘shatish borgan sari bo‘sh bloklar ro‘yhati tuziladi. Xotiraga bo‘lgan keyingi talablar bo‘yicha, shu ro‘yhatdagi bo‘sh bloklardan ajratiladi. Bu usulda yagona qiyinchilik bu bitta elementar blokni o‘lchovini aniqlashdir. Ikkinchi usul bo‘yicha bloklar o‘lchovi fiksirlangan bo‘lmasdan, har gal talablar parametrlariga asosan tanlanadi va blok ichida saqlanadi: Bu usulda xotira ajratishda muommo bo‘lmaydi, lekin xotirani bo‘shatish va qayta ajratish murakkablashadi. Bo‘shatishda va qayta ajratishda qo‘shni bloklarni birlashtirish, qolaversa zichlash kerak bo‘ladi, yani siljish kerak bo‘lgan bloklar ichidagi ob’ektlarga bo‘lgan ko‘rsatkichlarni ( manzillarni) o‘zgartirish lozim bo‘ladi. Agar programmada xotirani taqsimlash operatorlari ishlatilmasa kompilyator tomondan avtomatik ravishda xotira taqsimlanadi va oshkormas ravishda bo‘shatiladi. Bunday holatlarda “ahlat yig‘uvchi” protsedura ishlatiladi, uning vazifasi xotirada bo‘shatilgan sohalarni qidirib ularni qayta ishlatishga tayorlash. Agar oshkor ravishda taqsimlanadigan xotirani ajratishda muomma bo‘lmasa, aksincha oshkormas ravishda bu katta muommodir. Ajratiladigan xotira bloki foydalanuvchiga kerakli o’lchovda bo‘lmasligi mumkin.Oshkormas ravishda ajratilgan bloklar uchun, unga bog‘liq bo‘lgan ko‘rsatkichlar soni saqlovchi, qo‘shimcha mahsus sanag‘ichni kiritish mumkin yoki blokni bo‘shligini belgilovchini kiritish lozim. Oshkarmas ravishda ajratiladigan yoki bo‘shatiladigan bloklar bilan ishlashda, uning bandligini aniqlash algoritmiga nisbatan, har hil bo‘ladi. Sanag‘ich orqali blokni bandligini aniqlashda, doimo shu blokda joylashgan ob’ektlarga murojaat qilgan ko‘rsatkichlar sonini nazorat qilishga to‘g‘ri keladi. Bunday usul barcha p = q, bunda p va q dinamik yaratilgan ob’ektlarga ko‘rsatkichlari, qiymat berish operatorlarni nazorat qilish bilan bog‘liq. Bu holda qiymat berish operatorini bajarishdan oldin p ko‘rsatkich murojaat qilgan blokning sanag‘ichi bittaga kamayadi, va birdaniga q ko‘rsatkich murojaat qilgan blokning sanag‘ichi bittaga oshadi va bundan keyin operator bajariladi. Agar sanag‘ichni qiymati nolga teng bo‘lsa, blok bo‘sh deb hisoblanadi. Bu usulda siklik muroja-atlarni (uzuk) qayta ishlashda muammo tug‘iladi, chunki bunday uzuk ro‘yhatga hech qaysi tashqi ko‘rsatkich murojaat qilmasligi mumkin, va bu holda xotirani bo‘shatishda katta qiyinchilik tug‘iladi. Bloklarni bandligini aniqlovchi nishon orqali yuqori muammo uchramaydi. Agar biror bir ob’ektga xotira kerak bo‘lsa, “ahlat yig‘uvchi” mexanizm ishga tushadi, uning algoritmi quyidagicha: • barcha oldin ajratilgan bloklar bo‘sh deb belgilanadi; programmadagi barcha ko‘rsatkichlar murojaat qilgan bloklar band deb belgilanadi; band blok ichidagi ob’ektlar maydoni sifatida ishlatilgan ko‘rsatkichlar murojaat qilgan bloklar ham band deb belgilanadi, va bu jarayon yangi band bo‘lgan bloklar tugamaguncha doimiy qaytariladi; ko‘rsatkichlar murojaat qilmagan barcha bloklar bo‘sh qoladi va ular zichlanadi, zichlash jarayonida ko‘rsatkichlarni qiymati o‘zgartiriladi. “Ahlat yig‘uvchi” jarayon xotirani boshqaruv tizim tamonidan har qanday vaqtda bajarilishi mumkin. Bu mexanizmni effektivligi, tizimli programmalashni muxim harakteristikasiga kiradi. Download 148.14 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling