Процесс төлөвлөлт

Нэг дор олон процессд ажиллах боломж бүрдэх үед, үйлдлийн систем аль процессыг нь эхэлж гүйцэтгэхээ шийдэх хэрэгтэй болдог. Энэ шийдвэрийг гаргадаг үйлдлийн системийн хэсгийг Диспетчер гэх ба тооцоолдог алгоритмыг төлөвлөлтийн алгоритм гэнэ. Зэрэглэлд суурилсан төлөвлөлтийн үед процесс бүрд зэрэглэл оноох ба хамгийн өндөр зэрэглэлтэй процесс түрүүлж биелнэ.

Богино хугацааны төлөвлөлт[засварлах | кодоор засварлах]

Дараагийн ээлжинд ямар процессыг сонгож ажиллуулахыг шийдэх төлөвлөлтийг богино хугацааны төлөвлөлт гэж нэрлэнэ. Энэ төлөвлөлт нь секундэд хэд хэдэн удаа явагддаг. Өөрөөр хэлбэл процесс удирдлага шилжүүлэх бүрд дараа нь аль процессыг ажиллуулах вэ гэдгийг шийдэж байдаг.

Урт хугацааны төлөвлөлт[засварлах | кодоор засварлах]

Анх процес системд орж ирэхэд түүнд ажиллах боломж олгох эсэхийг шийдэх хэрэгтэй. Өөрөөр хэлбэл процессыг яг одоо ажиллуулах эсвэл тодорхой нөхцөл биелтэл түр хүлээхийг энэ шатанд төлөвлөнө. Цаашид аль процессуудыг зэрэгцээ ажиллуулах, аль процесыг нөхцөл биелтэл түр зогсолтын төлөвт оруулах зэргийг урт хугацааны төлөвлөлт шийддэг.

Төлөвлөлтийн аргууд[засварлах | кодоор засварлах]

Нэгэн зэрэг хамтран эзэмших нөөцөд хандах хүсэлт явуулах үед төлөвлөлтийн арга хэрэглэн дараалал тогтоох замаар зохицуулалт хийдэг. Үйлдлийн системд CPU-ны үр ашигтай ажиллагааг дээшлүүлэх зорилгоор хэрэглэгддэг бол мөн бусад удирдлагатай системүүдэд, жишээ нь Роүтэрүүдэд паккет чиглүүлэхэд, гадаад санах ойн төхөөрөмжүүдэд оролт гаралт зохицуулахад, принтерүүдэд зургийг цөөн явалтаар хэвлэх зэрэгт ашиглагддаг. Хэдийгээр бүгд л зээрэгцээ хандалтыг зохицуулах зориулалттай боловч хэрэгцээ шаардлагаас хамааран өөр өөр аргууд хэрэгжүүлдэг. Сүлжээний төхөөрөмжүүдэд "Эхэнд ирсэн нь эхэнд үйлчлүүлэх" гэх алгоритм тохиромжтой бол олон бодлогын горимт үйлдлийн системд "Зэрэглэл бүхий тасалдалтай төлөвлөлт" ашиглах нь тохиромжтой байдаг.

Эхэнд ирсэн нь эхэнд үйлчлүүлэх – (FIFO)[засварлах | кодоор засварлах]

Хамгийн энгийн төлөвлөлтийн алгоритм FIFO нь процессуудыг хүсэлт илгээсэн дарааллаар нь биелүүлнэ.

  • Процессыг хооронд нь сэлгэх шаардлага зөвхөн яг одоо ажиллаж буй процесс дуусах үед л тохиолдох учир хүлээх төлөвт байгаа процессуудыг шинэ дараалалд оруулах шаардлагагүй.
  • Удаан ажиллах процесс байсан ч дуустал нь хүлээх учир үр дүн багатай.
  • Удаан процесс боловсруулж буй үед хэрэглэгчид удаан хариу үйлдэл үзүүлэх магадлалтай.
  • Хэзээ дуусахыг нь тооцоолдоггүй учир зэрэглэл тогтоох боломжгүй.
  • Процесс богино хугацаанд ажиллаад дуусах үед гачигдал үүсэхгүй байж болох ч, урт хугацаанд ажиллах процесс боловсруулах үед гачигдал үүснэ.
Богино хугацаа шаардагдах нь эхэнд - (SJF)[засварлах | кодоор засварлах]

Хамгийн бага хугацаа шаардах процессуудыг хамгийн түрүүнд биелүүлэх замаар төлөвлөх стратеги. Тухайн процессуудыг дуусах хүртлээ хэр хугацаа зарцуулах талаар дэлгэрэнгүй мэдээлэл шаарддаг.

  • Яг одоо гүйцэтгэж буй процессоос богино хугацаанд ажиллах процессын хүсэлт ирвэл ажиллаж буй процессыг түр зогсоож хүсэлт ирсэн богино процессыг ажиллуулна. Диспетчер үүнийг зохицуулах ба үүнээс гадна хүсэлт илгээсэн процессуудыг ажиллах хугацаагаар нь жагсаан дараалалд оруулах шаардлага гардаг учир нэмэлт тооцооллууд их хийгддэг.
  • Хамгийн их бүтээмж шаардсан нөхцөлд хэрэглэгддэг.
  • Ажиллах хугацааг тооцолохдоо зарцуулах хүчин чадал болон, хүлээгдэх хугацааг тооцон дараалал үүсгэдэг учраас удаан ажиллах процессууд бүр ч удах магадлалтай. Гэвч нэгэнт эхэлсэн удаан процессыг хүлээх шаардлагагүй учраас ерөнхий хүлээх хугацаа FIFO-той харьцуулахад бага.
  • Олон богино процесс байнга ажиллах системд гачигдал үүсэх боломжтой.
Зэрэглэл бүхий тасалдалтай төлөвлөлт -(FPPS)[засварлах | кодоор засварлах]

Үйлдлийн систем процесс бүрд урьдчилал зэрэглэл оноох ба уг зэрэглэл дээр үндэслэн Диспетчер процессуудыг дараалалд оруулна. Зэрэглэл багатай процессууд өндөр зэрэглэлтэй процессуудын нөлөөгөөр тасалдалд орно.

  • Нэмэлт тооцоолол бага биш, гэвч их ч биш.
  • FIFO-той харьцуулахад бүтээмжийн хувьд тийм ч хол зөрүүтэй биш.
  • Хүлээх хугацаа зэрэглэлээс шууд хамаарна.
  • Эцсийн хугацаа тавьж өгөх боломжтой.
  • Өндөр зэрэглэлтэй процессууд олноороо ирсэн тохиолдолд гачигдал үүсэх боломжтой.
Эргэх цагираг -(RR)[засварлах | кодоор засварлах]

Процесс бүрт дараалан тодорхой хугацаа олох замаар ахин дахин давтана.

  • Бага хугацаанд биелэгдэх олон процесс ачаалагдсан үед нэмэлт тооцолол их шаарддаг.
  • FCFS болон SJF хоёртой харьцуулахад дундаж бүтээмж үзүүлэх ба, богино процессууд FCFS-ээс хурдан, удаан биелэгдэх процессууд SJF-ээс хурдан биелнэ.
  • Хүлээх хугацаа нь процессын тооноос шалтгаална.
  • Хүлээх хугацаа урт байж болох учраас биелэгдэх эцсийн хугацаа тавьж өгөх боломжгүй.
  • Зэрэглэл гэж байхгүй учраас гачигдал үүсэхгүй. Оноох хугацаа нь анх хүсэлт илгээсэн үеийн нөхцөлөөс хамаарна.
Динамик зэрэглэлт төлөвлөлт -(MQS)[засварлах | кодоор засварлах]

Процессуудыг ангилан хувааж болохуйц үед ашиглагдана. Ерөнхий тохиолдолд үйлдлийн системд процессуудыг интерактив(foreground) болон интерактив бус(background) гэж ангилдаг. Өөр ангиллын процессуудад хүлээгдэх цаг, төлөвлөлтийн шаардлага өөр байна гэж үзээд тус тусад нь өөр төлөвлөлтийн арга ашиглана. Ижил нөөцийг хуваан ашиглах үед үр дүнтэй.

Тойм харьцуулалт[засварлах | кодоор засварлах]

Процесс төлөвлөлт CPU Нэмэлт тооцоолол Үр ашиг Эргэх чанар Хүлээх хугацаа
Эхэнд ирсэн нь эхэнд үйлчлүүлэх Бага Бага Өндөр Бага
Богино хугацаа шаардагдах нь эхэнд Дундаж Өндөр Дундаж Дундаж
Зэрэглэл бүхий тасалдалтай төлөвлөлт Дундаж Бага Өндөр Өндөр
Эргэх цагираг Өндөр Дундаж Дундаж Өндөр
Динамик зэрэглэлт төлөвлөлт Өндөр Өндөр Дундаж Дундаж