logo

Operatsion tizimlari Xotirani Boshqarish

Загружено в:

08.08.2023

Скачано:

0

Размер:

23.5068359375 KB
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.

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.