6-Mavzu. Jarayonlar va resurslar. Reja Resurslarni taqsimlash Jarayonlar bajarilishini rejalashtirish
Download 148.14 Kb.
|
6-Mavzu. Jarayonlar va resurslar.
Dinamik xotirani taqsimlashDinamik xotirani o‘lchovi kompilyatsiya bosqichida noma’lum bo‘lgan sababli, uni taqsimlash ancha qiyinchiliklar tug‘adi. Bunday xotirani taqsimlash uchun kompilyator programma ichiga, dinamik xotira ajratuvchi va olib tashlovchi mahsus funksiyalarni qo‘yadi. Ko‘pincha dinamik xotira sohasi bilan ko‘rsatkich va sinf struktorlariga bog‘liq. Dinamik ob’ektlarni xotira maydonlariga dinamik bog‘lash kerak bo‘ladi. Dinamik xotira sohasida foydalanuchi uchun xotira ajratiladi va kompilyator uchun ham ajratiladi, lekin bu ajratishlar programma bajarilish jarayonida qilinadi. Foydalanuvchi, dinamik xotira sohasini ajratish va ozod qilishi mumkin. Buning uchun u mahsus operatorlarni qo‘llaydi (new va dispose Paskalda, malloc() va free() Sida, new va delete C++da). Bu operator va funksiyalar, o‘z navbatida operatsion tizim imkoniyatlaridan foydalanishi mumkin yoki mustaqil ravishda katta statik ajratilgan xotira sohasida taqsimlashi mumkin. Qaysi usul ishlatishdan qat’iy nazar, foydalanuvchi javobgarlikni to‘liq o‘z ustiga oladi. Kompilyator tamondan ham dinamik xotira sohasi ajratilishi mumkin. Masalan satrlarni ulash amali qo‘shimcha xotira talab qiladi. Bu amalni bajarish uchun kompilyator kerakli uzunlikda dinamik xotira ajratish va uni bo‘shatish komandalarni programmada tashkil qilishi kerak. Alohida sohalarni xotirada joylashtirish umumiy tuzimi: Bu rasmdan ko‘rinib turibdiki no’malum hajmdagi ikki dinamik sohalarga umumiy maydon ajratib, ularni qarama qarshi yo‘nalishda joylashtirilgan. Ikki hona uzunligi noma’lum bo‘lgan sababli operatsion tizim doimo ularni kesishmasligini nazorat qilib turadi. Download 148.14 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling