Сигналдар. Сигналдар механизмі бағдарламалық үзілістер механизмімен ортақ қасиеттерге ие. Ол да процестердің кейбір оқиғалар туралы хабарлай алуына арналған. Сигналдардың үзілістерден басты айырмашылығы, сигналдардың көмегімен операциялық жүйені емес, бір процесс екінші процеске хабарлайды. Үзілістерге қарағанда сигналдар тағайындалған нүктеге — қабылдаушы-процесіне ие болуы керек.
Қабылдаушы-процесс сигналды қабылдауға жауап ретінде, өзінің орындалуын тоқтатады жəне сигналды өңдеуші- бағдарламалық кодын орындауды бастайды. Өңдеушінің коды орындалуы аяқталғаннан соң, процесс өзінің орындалуын жалғастырады. Бұл жерде үзілістерден басты айырмашылығы, əр процесс өзінің сигналдар өңдеуші жинағына ие болуы керек, ал өңдеушінің бағдарламалық кодында орналасқан жады – процестің жады болып табылады. Қарапайым сигналдар өңдеушісі — бағдарлама денесінде анықталған функция. Сигналдарды қабылдау кезінде, осы функцияның шақырылуы орын алады.
Операциялық жүйе əр процесс үшін сигналдар өңдеуші кестесін өткереді. Онда əр сигналға сигнал өңдеушісінің мекенжай сəйкестігі қойылады. Мысалы, UNIX- тəрізді операциялық жүйелер 16 жəне одан көп түрлі сигналдарды сүйемелдейді. Сигналдар механизмі туралы нақтырақ əрі қарай қарастырылатын болады.
Хабарламалар. Хабарлама механизмі процестер арасында ақпарат алмасуға арналған. Ол үшін операциялық жүйе сүйемелдейтін хабарламалардың арнайы тізімі құрылады. Тізімде, процеспен
жазылатын ақпараттар жинақталады. Кезекте жинақталған ақпараттар басқа процеспен «оқылуы» мүмкін, осылайша бір процестен басқа процеске ақпараттар жіберу орын алады.
Операциялық жүйе кезекте сақталатын операциялық жадының арнайы саласын сүйемелдейді. Әдетте UNIX- тəрізді операциялық жүйе 1024 дейін хабарламалар кезегін сүйемелдейді. Хабарламаны қолданатын бірінші процесс, кезекті құру қажет, ал қалған процестер құрылған кезекке қолжеткізе алу қажет. Сигнал қабылданғаннан кейін басталатын өңдеушінің орындалуында, сигналдар көмегімен өзара əрекеттесудің айырмашылығы, кезектен ақпараттарды оқу, функция көмегімен қабылдаушы-процесс жүргізеді. Жөнелтуші процесс кезектің толып қалмауын қадағалау қажет (мысалы, қабылдаушы-процесс көптен бері ақпараттарды оқымаса), себебі бұл жіберілетін ақпараттардың жоғалуына əкелуі мүмкін.
Достарыңызбен бөлісу: |