Jarayonning o'zaro ta'siri turlari O'zaro ta'sir turi
hamkorlik jarayonlari:
biri ma'lumotlarni uzatadigan, ikkinchisi esa ularni qabul qiladigan faqat aloqa kanalini baham ko'radigan jarayonlar;
o'zaro sinxronizatsiyani amalga oshiradigan jarayonlar: biri ishlaganda, ikkinchisi o'z ishining tugashini kutadi (odatda bir qator texnologik jarayonlarni boshqaruvchi dasturlar uchun);
Raqobat jarayonlari:
umumiy resursdan foydalanadigan jarayonlar;
muhim bo'limlar yordamida jarayonlar;
o'zaro istisnolardan foydalanadigan jarayonlar.
Ta'rif. Muhim bo'lim - bu joriy jarayon (topshiriq) tomonidan resurslardan eksklyuziv foydalanishni ta'minlash uchun vazifalarni almashtirish taqiqlangan dasturning bo'limi. Barcha RTOS "tanqidiy qismga kirish" va "tanqidiy bo'limni tark etish" tizim qo'ng'iroqlarini ta'minlaydi. E'tibor bering, "oddiy" operatsion tizimlar foydalanuvchi dasturlariga bunday imkoniyatni bermaydi. Jarayonning (topshiriqning) muhim bo'limda bo'lish vaqti imkon qadar qisqa bo'lishi kerak , chunki aks holda tashqi hodisalarga reaktsiya tezligi bo'yicha vaqt chegaralarini buzish mumkin. Yaxshi RTOS, hatto tanqidiy bo'limda bo'lsa ham, "kechiktirilgan" uzilishlar qatoriga uzilishlarni to'plashi va muhim bo'lim chiqqanda ularni qayta ishlashi kerak.
Ta'rif. O'zaro istisno(mutex) - umumiy doimiy muhim resursdan foydalanadigan parallel jarayonlarni (vazifalarni) sinxronlashtirish usuli. Agar resurs band bo'lsa, "resursni tortib olish" tizimi qo'ng'irog'i jarayonni (topshiriqni) ishlayotgan holatdan kutish holatiga o'tkazadi. Resurs "erkin resurs" tizimi chaqiruvi orqali bo'shatilganda, bu jarayon (topshiriq) ishlaydigan holatga qaytadi va o'z ishini davom ettiradi. Resurs "band" holatiga o'tadi.
Agar jarayonlar mustaqil bo'lsa (umumiy resurslar bo'lmasa), unda ularning ishlarini sinxronlashtirish talab qilinmaydi. Agar jarayonlar umumiy manbadan foydalansa, ularning faoliyati sinxronlashtirilishi kerak. Misol uchun, umumiy xotira blokidan foydalanganda, bir jarayon (topshiriq) faqat ma'lumotlarni o'qisa, ikkinchisi esa faqat yozsa ham muammolar paydo bo'lishi mumkin.
Vazifalarni sinxronlashda siz 3 ta muammoni hal qilishingiz kerak:
"lokavt":
jarayon (topshiriq) hech qachon chiqarilmaydigan resursni kutmoqda,
"tusiq" ("tusiq"):
ikkita jarayon (vazifa) har biri resursga ega va boshqa jarayonga (topshiriq) tegishli bo'lgan resursning chiqarilishini kutmoqda;
"turg'unlik" ("ochlik"):
jarayon (topshiriq) protsessorni monopoliyaga oldi.
Ushbu muammolarni minimallashtirish uchun quyidagi fikrlar qo'llaniladi.
Resurslar soni cheklangan, shuning uchun bajarish uchun resurslar etarli bo'lmagan vazifalarni yaratishga yo'l qo'ymaslik kerak.
Vazifalar guruhlarga bo'lingan:
passiv resurslar etarli bo'lmagan faol bo'lmagan vazifalar va voqealarni kutayotgan vazifalar ; bunday vazifalarga faol resurs (protsessor) umuman berilmaydi;
barcha kerakli passiv resurslarga ega, lekin protsessorsiz tayyor vazifalar; protsessor chiqarilgan taqdirda uni olish uchun nomzodlar;
barcha kerakli passiv resurslar va protsessorga ega bo'lgan ishlaydigan vazifalar.