Freymlarni ajratish Hozircha biz har bir jarayonga ajratilgan ma'lum miqdordagi freymlar uchun sahifalarni almashtirish algoritmlarini ko'rib chiqdik. Endi, freymlar ajratish strategiyasini ko'rib chiqamiz. Ularni ajratishda OT har bir jarayon minimal miqdordagi sahifalarni ajratishi kerakligidan kelib chiqadi.
Shu bilan birga, turli xil apparat platformalarining o'ziga xos xususiyatlari bor, ular ham e'tiborga olinishi kerak. Masalan, IBM 370 tizimida SS (Storage-Storage) formatidagi MOVE buyrug’ini qayta ishlash uchun 6 (!)ta sahifa talab etiladi. Darhaqiqat, buyruqning uzunligi 6 baytni tashkil qiladi, shuning uchun u ikkita qo'shni sahifaga joylashishi mumkin. Bundan tashqari, manbani qayta ishlash uchun maksimal ikki sahifa va maksimal ikki sahifa qabul qiluvchini qayta ishlash uchun talab qilinadi. Albatta, bunday hodisa RISC tizimlarida bo'lishi mumkin emas.
Operatsion tizimlarda freymlarni ajratish uchun ikkita asosiy sxema qo’llaniladi – fiksirlangan ajratish va ustivorligi bo’yicha ajratish sxemalari.
Freymlarni fiksirlangan ajratish. Oddiy variant - freymlarni jarayonlarga teng ravishda taqsimlash. Masalan, 100 ta freym va 5 ta jarayon mavjud bo’lsa, har bir jarayon uchun 20 tadan sahifa ajratiladi. Shuningdek, proportsional taqsimlash ham qo’llaniladi– freymlar quyidagi printsiplarga mos ravishda ajratiladi: agar freymlarning umumiy soni m, jarayon o’lchami – s, barcha jarayonlarning umumiy o’lchami esa – S ga teng bo’lsa, u holda jarayonlarga ajratilgan freymlarning umumiy soni quyidagicha bo’ladi:
a = m * (s / S).
Ustivorligi bo’yicha ajratish. Bu freymlarni taqsimlash printsipi quyidagicha: proportsional taqsimlash sxemasi qo’llaniladi, lekin bunda o’lcham emas, ustivorlik ishlatiladi. Agar jarayon sahifada nosozliklarni yuzaga keltirsa, unda almashtirish uchun quyi ustuvorlikka ega bo'lgan freym ajratiladi.
Global va lokal taqsimlash. Freymlarni global almashtirish - bu barcha jarayonlarning mavjud barcha freymlari orasidan almashtirish uchun jarayon freymni tanlashini anglatadi, ya’ni bitta jarayon boshqa jarayondan freym olishi mumkin. Aksincha, freymlarni lokal almashtirish har bir jarayon faqat unga ajratilgan freymlar orasidan almashtirish uchun freymni tanlashini ta'minlaydi.
Thrashing (siqish) Ushbu atama tom ma’noda uloqtirish, silkitishni anglatadi. Agar jarayonga yetarli miqdordagi sahifalar ajratilmagan bo'lsa, sahifaning diskka yuklanish koeffitsienti juda yuqori bo’ladi. Bu jarayonning sahifalarni diskka yuklash va xotiraga yuklash bilan band bo’lishiga olib keladi. Bunday holda, OT protsessorning past ishlashi haqida noto'g'ri xulosa chiqarishi mumkin va shuning uchun multidasturlash darajasini oshirishga qaror qiladi, ya’ni tizimga yangi jarayonni qo’shishadi.
Norasmiy, thrashing asosiy xotirada freymlarning halokatli yetishmovchiligini anglatadi. Amaliyotda foydalanuvchi uchun bu quyidagicha ko’rinadi: qattiq disk uzluksiz murojaatlar sababli “zo’riqishi” va bunda jarayon juda sekin bajariladi. Bu aynan Solaris OT da 32 megabaytli asosiy xotirada kuzatilishi mumkin. Bu esa Solaris tizimining yuqori ishonchli ekanligini bildiradi.
Boshqa bir real misolni – 512 megabaytli komp’yuterda Windows XP (Service Pack 3) OT da ko’rish mumkin. Shu bilan birga, deyarli bir xil hissiyot paydo bo'ladi - avvaliga qattiq disk noto'g'ri bo'lib tuyuladi, ammo keyin hamma narsa xotiraning yetishmasligi ekanligidan ekanligini tushunish mumkin: eng oddiy dasturlar Internet Explorer, Windows Explorer kabi va boshqlarni bir vaqtning o'zida chaqirganda (bu odatiy hol) asosiy xotirani to'ldiradi va operatsion tizimni foydalanuvchining har qanday qo'shimcha harakati uzluksiz ravishda diskka yuklash va xotiraga yuklashga majbur qiladi (hatto Windows Explorer-dagi fayl nomlari ustida aylantirish satrini oddiy harakatlantirish ham).
15-rasmda protsessorning multidasturlash koefitsientiga bog’liqligi grafigi keltirilgan. Juda ko'p miqdordagi jarayonlarni qayta ishlash vaqtida doimiy diskka yuklash va xotiraga almashtirish hisobidan protsessorning foydali ish koefitsienti keskin pasayadi. Bu aynan thrashing hisoblanadi