Guruch. 6.3. Xotirani ajratish imkoniyatlari
Ko'p dasturlashning paydo bo'lishi bilan bir vaqtning o'zida bir nechta bajariladigan dasturlar o'rtasida mavjud xotirani taqsimlash bilan bog'liq OT vazifalari sezilarli darajada murakkablashdi.
Ko'p dasturli tizimlarda xotirani boshqarish uchun OT funktsiyalari:
bo'sh va band bo'lgan xotirani kuzatish (hisoblash);
boshlang'ich va dinamik xotirani taqsimlash dastur jarayonlari va operatsion tizimning o'zi va jarayonlar tugashi bilan xotirani bo'shatish;
jismoniy xotiraning ma'lum bir sohasiga dastur manzillarini o'rnatish;
RAMning o'lchamlari barcha jarayonlarni joylashtirish uchun etarli bo'lmaganda, operativ xotiradan diskka kodlar va jarayonlar ma'lumotlarini to'liq yoki qisman ekstruziya qilish va ularni operativ xotiraga qaytarish;
jarayonga ajratilgan xotirani boshqa jarayonlarning mumkin bo'lgan aralashuvidan himoya qilish;
xotirani defragmentatsiya qilish.
Ro'yxatda keltirilgan funktsiyalar maxsus tushuntirishni talab qilmaydi, biz faqat dastur manzillarini OPga yuklanganda konvertatsiya qilish muammosiga to'xtalamiz.
Dasturning hayot aylanishining turli bosqichlarida o'zgaruvchilar va buyruqlarni aniqlash uchun ramziy nomlar, virtual (matematik, shartli, mantiqiy - bularning barchasi sinonimlar) va jismoniy manzillar ( guruch. 6.4).
Guruch. 6.4. Manzil turlari
Ramziy nomlar dasturni algoritmik tilda yoki assemblerda yozishda foydalanuvchi tomonidan beriladi. Virtual manzillar dasturni mashina tiliga tarjima qiluvchi tarjimon tomonidan hosil qilinadi. Tarjima paytida dasturning operativ xotiraga qayerga yuklanishi ma'lum bo'lmagani uchun tarjimon o'zgaruvchilar va buyruqlarga virtual (shartli) manzillarni tayinlaydi, sukut bo'yicha dasturning boshlang'ich manzili nolga teng bo'ladi deb faraz qiladi.
Jismoniy manzillar o'zgaruvchilar va buyruqlar haqiqatda joylashgan operativ xotira hujayralari soniga mos keladi.
Jarayonning virtual manzillari to'plami virtual manzil maydoni deb ataladi. Barcha jarayonlar uchun virtual maydon manzillari diapazoni bir xil va protsessor manzilining kengligi bilan belgilanadi (Pentium uchun manzil maydoni 2 32 bayt, manzil diapazoni 0000.0000 16 dan FFFF.FFFF 16 gacha).
Virtual manzillarni jismoniy manzillarga aylantirishning ikkita tubdan farq qiladigan yondashuvlari mavjud. Birinchi holda, bunday konvertatsiya dasturni xotiraga dastlabki yuklash vaqtida har bir jarayon uchun bir marta amalga oshiriladi. Transformatsiya harakatlanuvchi yuklovchi tomonidan dastur yuklanishi kerak bo'lgan jismoniy xotiraning boshlang'ich manzili haqidagi ma'lumotlarga, shuningdek, tarjimon tomonidan dasturning manzilga bog'liq elementlari to'g'risidagi ma'lumotlarga asoslanib amalga oshiriladi.
Ikkinchi usul - dastur virtual manzillarda xotiraga yuklanadi. Dasturni bajarish jarayonida, har safar xotiraga kirishda, operatsion tizim virtual manzillarni jismoniy manzillarga aylantiradi.