Operatsion tizimlari Xotirani Boshqarish
Operatsion tizimlari Xotirani Boshqarish Reja: 1. Xotirani boshqarish 2. Xotirani boshqarishning asosiy vazifalari 3. Ruxsat etilgan bo'limlar bo'yicha xotirani taqsimlash
Xotira - bu operatsion tizim tomonidan ehtiyotkorlik bilan boshqarishni talab qiladigan muhim manba. Dastlabki operatsion tizimlarda xotirani boshqarish oddiygina dastur va uning ma’lumotlarini qandaydir tashqi xotira qurilmasidan (magnit lenta, magnit disk) xotiraga yuklashdan iborat edi. Ko'p dasturlashning paydo bo'lishi bilan OTga mavjud xotirani bir vaqtning o'zida bir nechta bajaruvchi dasturlar o'rtasida taqsimlash bilan bog'liq yangi vazifalar berildi. Xotirani boshqarishning barcha usullarini ikkita sinfga bo'lish mumkin: operativ xotira va disk o'rtasidagi jarayonlar harakatidan foydalanadigan usullar va foydalanmaydigan usullar. 1. Xotirani boshqarish xotirani boshqarish operatsion tizimi 1.1 Asosiy vazifalar boshqaruv xotira Asosiy xotira (aka RAM) muhim resurs bo'lib, undan samarali foydalanish tizimning umumiy ishlashiga qat'iy ta'sir qiladi. Bir vazifali operatsion tizimlar uchun xotirani boshqarish jiddiy muammo emas, chunki tizim o'z ehtiyojlari uchun egallamaydigan barcha xotiralar bitta foydalanuvchi jarayoniga berilishi mumkin. Xotirani boshqarish protseduralari quyidagi vazifalarni hal qiladi: foydalanuvchi jarayoni boshlanganda xotirani ajratish va jarayon tugashi bilan bu xotirani bo'shatish; ishga tushirilayotgan dasturni ajratilgan xotira manzillariga moslashtirishni ta'minlash; foydalanuvchi dasturining iltimosiga binoan ajratilgan xotira maydonlarini boshqarish (masalan, ishlab chiqarilgan jarayonni boshlashdan oldin xotiraning bir qismini bo'shatish). Ko'p vazifali operatsion tizimlarda vaziyat butunlay boshqacha. Tizimda bir vaqtning o'zida ishlaydigan barcha dasturlarning xotira hajmiga qo'yiladigan umumiy talablar, qoida tariqasida, mavjud asosiy xotira hajmidan oshadi. Bunday sharoitlarda OTda boshqa jarayonlarning ehtiyojlari uchun bo'shatilgan xotiradan
foydalanish uchun jarayonlarni yoki ularning qismlarini diskka navbatma-navbat surishdan tashqari, boshqa chiqish yo'li yo'q. Bunday imtiyozni muvaffaqiyatsiz amalga oshirish OS ishini deyarli butunlay muzlatib qo'yishi mumkin, bu ko'p vaqtni diskdan yozish va o'qishga sarflaydi. Ko'p vazifali OTning xotirani boshqarish quyi tizimi hal qilishi kerak bo'lgan asosiy vazifalarga quyidagilar qo'shiladi: jarayonlarni ish jarayonida qo'shimcha xotira maydonlarini olish va bo'shatish imkoniyati bilan ta'minlash; barcha ishlaydigan jarayonlarning ehtiyojlarini qondirish uchun cheklangan miqdordagi asosiy xotiradan samarali foydalanish, shu jumladan xotirani kengaytirish sifatida disklardan foydalanish; jarayon xotirasini izolyatsiyalash, bir jarayon tomonidan boshqa jarayon egallagan xotira sohalariga tasodifiy yoki ataylab ruxsatsiz kirishni istisno qilish; jarayonlarni umumiy xotira sohalari orqali muloqot qilish imkonini beradi. 2. Haqiqiy xotirani boshqarish 2.1 Tarqatish xotira belgilangan bo'limlar Tasodifiy xotirani boshqarishning eng oddiy usuli xotirani bo'limlar deb ataladigan qat'iy o'lchamdagi bir nechta mintaqalarga bo'lishdir. Bunday bo'linish operator tomonidan tizimni ishga tushirish yoki o'rnatish vaqtida qo'lda amalga oshirilishi mumkin. Shundan so'ng, bo'limlarning chegaralari o'zgartirilmaydi. Bajarish uchun kiritilgan navbatdagi yangi jarayon yoki umumiy navbatga (1.1-rasm, a), yoki ma'lum bir qism uchun navbatga (1.1-rasm, b) joylashtiriladi. Guruch. 1.1. Ruxsat etilgan bo'limlar bo'yicha xotirani taqsimlash: umumiy navbat bilan (a), alohida navbat bilan (b) Bunday holda, xotirani boshqarish quyi tizimi quyidagi vazifalarni bajaradi: Yangi kelgan jarayon uchun zarur bo'lgan xotira hajmini bo'sh bo'limlar hajmi bilan taqqoslaydi va tegishli bo'limni tanlaydi; Dasturni bo'limlardan biriga yuklashni va manzillarni o'rnatishni amalga oshiradi. Tarjima bosqichida, dasturni ishlab chiquvchisi uni bajarish kerak bo'lgan bo'limni belgilashi mumkin. Bu sizga ma'lum bir xotira maydoniga sozlangan
mashina kodini joyini o'zgartiruvchi yuklagichdan foydalanmasdan darhol olish imkonini beradi. Aniq afzallik bilan - amalga oshirish qulayligi, bu usul muhim kamchilikka ega - qattiqlik. Har bir bo'limda faqat bitta jarayon bajarilishi mumkinligi sababli, ko'p dasturlash darajasi bo'limlar soni bilan oldindan belgilanadi. Dasturning hajmidan qat'i nazar, u butun bo'limni egallaydi. Masalan, uchta bo'limli tizimda bir vaqtning o'zida uchtadan ortiq jarayonni bajarish mumkin emas, hatto ular juda kam xotira talab qilsa ham. Boshqa tomondan, xotirani qismlarga ajratish dasturlari biron bir bo'limga to'g'ri kelmaydigan, lekin bir nechta bo'limlarda etarli xotiraga ega bo'lgan jarayonlarning bajarilishini oldini oladi. Xotirani boshqarishning bu usuli dastlabki multidasturlash operatsion tizimlarida qo'llanilgan. Biroq, doimiy bo'limlar bo'yicha xotirani taqsimlash usuli, asosan, amalga oshirish xarajatlarining pastligi tufayli real vaqt tizimlarida hali ham qo'llaniladi. Haqiqiy vaqtda tizimlarning hisoblash jarayonining determinizmi (bajarilishi kerak bo'lgan vazifalar to'plami, ularning xotira talablari, ba'zan esa boshlash vaqtlari oldindan ma'lum) xotirani boshqarishning ushbu usulining moslashuvchanligi yo'qligini qoplaydi. 2.2 Tarqatish xotira dinamik bo'limlar Bunday holda, mashinaning xotirasi oldindan bo'limlarga bo'linmaydi. Birinchidan, barcha dastur xotirasi bo'sh. Jarayonni yaratish bosqichida bajarish uchun kiritilgan har bir yangi dasturga barcha kerakli xotira ajratiladi (agar xotira etarli bo'lmasa, u holda dastur bajarish uchun qabul qilinmaydi va unga jarayon yaratilmaydi). Jarayon tugagandan so'ng, xotira bo'shatiladi va bu joyga boshqa jarayonni yuklash mumkin. Shunday qilib, vaqtning ixtiyoriy momentida RAM ixtiyoriy o'lchamdagi egallangan va bo'sh maydonlarning (bo'limlarning) tasodifiy ketma-ketligidir. Shaklda. 2.1 dinamik ajratishdan foydalangan holda vaqtning turli nuqtalarida xotira holatini ko'rsatadi. Shunday qilib, t0 vaqtida xotirada faqat OT bo'ladi va t1 vaqtiga kelib xotira 5 ta jarayonga bo'linadi va P4 jarayoni tugatilib, xotirani tark etadi. T3 vaqtida kelgan P6 jarayoni P4 jarayonidan bo'shatilgan maydonga yuklanadi.
Dinamik bo'limlar bo'yicha xotirani ajratish Xotirani boshqarishning ushbu usulini amalga oshirish uchun mo'ljallangan operatsion tizim funktsiyalari quyida keltirilgan. Xotira maydonlarining boshlang'ich manzillari va o'lchamlarini ko'rsatadigan bo'sh va band bo'lgan joylar jadvallarini yuritish. Yangi jarayonni yaratishda - xotira talablarini tahlil qilish, bo'sh joylar jadvalini ko'rish va yangi jarayonning kodlari va ma'lumotlarini joylashtirish uchun etarlicha katta bo'limni tanlash. Bo'limni tanlash turli qoidalarga ko'ra amalga oshirilishi mumkin, masalan: "etarli o'lchamdagi birinchi mavjud bo'lim", "etarli o'lchamdagi eng kichik bo'lim" yoki "etarli darajada katta hajmga ega bo'lgan qism". Dasturni unga ajratilgan bo'limga yuklash va bo'sh va band bo'lgan joylar jadvallarini sozlash. Bu usul dastur kodi ish vaqtida harakat qilmasligini nazarda tutadi, ya'ni manzilni sozlash yuklash vaqtida bir vaqtning o'zida amalga oshirilishi mumkin. Jarayonni tugatgandan so'ng, bo'sh va ishg'ol qilingan joylar jadvallarini sozlash. Ruxsat etilgan bo'limlar bilan xotirani ajratish usuli bilan solishtirganda, bu usul ancha moslashuvchan, ammo u juda jiddiy kamchilikka ega - xotira parchalanishi. Parchalanish - ko'p sonli juda kichik, qo'shni bo'lmagan bo'sh xotira maydonlarining (fragmentlarning) mavjudligi. Shu qadar kichikki, yangi kelgan dasturlarning hech biri bo'limlarning birortasiga sig'maydi, garchi fragmentlarning umumiy miqdori muhim bo'lishi mumkin, bu kerakli xotira miqdoridan ancha oshadi.