Идэвхгүй хуулбар процесс

Чөлөөт нэвтэрхий толь — Википедиагаас
Jump to navigation Jump to search

Зарим үйлдлийн системд идэвхгүй хуулбар процесс (системд ямар нэг зүйл ачааллагдаагүй байхад дараалалд бэлэн болсон кеисүүдийг хянах)-ыг ашигладаг. Тэдгээр кеисүүдийг нэг бүрчлэн хянахын оронд идэвхгүй хуулбар процессоор хуваарилдаг. Өөрөөр хэлвэл системд ямар нэгэн зүйл ачааллагдах хүртэл хүчний зарцуулалтыг ашигтай байлгахын тулд идэвхгүй байдлыг үүсгэж байгаа хэрэг юм.

OpenEfos-ийн сургалтын хувилбарт ихэвчлэн идэвхгүй хуулбар процессыг implement-ийн хамт ашигладаг ба үүнийг ямар нэгэн өөр хуулбар процесс дараалалд бэлэн болоогүй бол ажиллахгүй байх процесс гэж ч нэрлэдэг. Энэ нь доор үзүүлсэн suspend() методтой төстэй юм.

 1. if(!_ready.empty())
 2.           switch_threads(old,new);
 3. else
 4.           idle();

Харин idle() функц нь:

 1. void Thread :: idle()
 2. {
 3.           CPU :: int_enable();
 4.           CPU :: halt();
 5. }

ийм байна.

Энэ нь идэвхгүй байгаа implement-ийг сайжруулдаг ч хуулбар процессууд нь зөвхөн хуваарилагдсан буюу бусад хуулбар процессуудтайгаа зэрэг ажиллахгүй. Энэ нь зарим нэг бэрхшээлүүдийг арилгаж өгдөг. Үүнд: түр зогссон процессийг дахин сэргээх нь хугацааны зохицуулалттай ажиллах үед тохиромжгүй байдаг гэх мэт.

Ашигласан материал:

 - Abraham Silberschatz. Operating system concepts, 7th edition
 - “Operating Systems – A modern perspective”, Garry Nutt, ISBN 0-8053-1295-1