ДӘРІС 3
ПРОЦЕСТЕР АРАСЫНДАҒЫ ҚАРЫМ-ҚАТЫНАС.
Процестер арасындағы қарым-қатынас.
Процесиердің қарым-қатынасқа түсуіне тура келетін жағдайлар:
Бір процестен екінші процеске ақпарт беру.
Процестер қызметін басқару (мысалы:олар бір ресурс үшін күрескен кезде)
Процестердің ерекшеліктерінің келісімге келуі ( мысалы: бір процесс берілгендермен
қамтамасыз
етіп тұрса, ал екіншісі оларды баспаға шығарғанда.Егер келісімділік
болмаса, онда екінші процесс берілгендер келмей тұрып
баспаға шығаруды ертерек
бастауы мүмкін)
Екі екінші жағдай ағымдарға да қатысты. Бірінші жағдайда ағымдарда (потоки) проблема
жоқ, өйткені олар ортақ адрестік кеңістікті қолданады.
3.1.1. Бір процестен басқа процеске ақпаратты беру.
Ақпаратты беру бірнеше әдіс арқылы жүзеге асуы мүмкін:
Бөлінетін (таратылатын) жады.
Арналар (құбырлар),
бұл оған бір процесс жазып, ал басқа процесс одан оқитын
псевдофайл.
Сокеттер-
бұл бір компьютерде, сондай-ақ желіде де процестердің біркелкі қарым-
қатынас жасауын қамтамасыз ететін және ортаның
ерекшеліктерін жасыратын,
ядроның қамтамасыз ететін механизмі.
Пошталық жәшіктер (Windows-та ғана), бірбағытты,
жалпыға таратып жіберу
мүмкіншілігі.
«Алыстағы» (қашықтағы) процедураны шақыру, А
процессі В процесінлегі
процедураны шақырып алып, берілгендерді кері ала алады.
3.1.2. Жарыстың күйі.
Жарыстың күйі- бір уықытта бірнеше процестерді берілгендерді оқитын енмесе жазатын
(жадыға немесе файлға) жағдай.
Екі процесс файлды баспаға шығаруға ұмтылған жағдайды қарастырайық. Ол үшін
оларға
файл атын баспа спулеріне, бос сегментке орналастыруы қажет.
In- келесі бос сегментті көрсететін айнымалы
Out- баспаға шығаруға арналған келесі файлдың атын көрсететін айнымалы.
Оқиғаларды пунктер бойынша жазып шығайық:
1. А процесі in (7-ге тең) айнымалысын оқып, оны өзінің next_free_slot айнымалысына сақтайды.
2. Таймер бойынша үзіліс болады да процессор В процесіне ауысады.
3. В прцесі in (7-ге тең) айнымалысын оқып, оны өзінің next_free_slot айнымалысына сақтайды.
4. В процесі файл атын 7 сегментінде сақтайды.
5. В процесі next_free_slot айнымалысын 1-ге арттырып (next_free_slot+1), іп мәнін 8-ге өзгертеді.
6. Басқару А процесіне ауысып, қай жерге тоқтады, сол жрден жалғастырады.
7. А процесі 7 сегментінде В процесінің файлының атын өшіре отырады файл атын сақтайды.
8. А процесі next_free_slot айнымалысын бірге арттырып (next_free_slot+1), іп мәнін 8-ге өзгертеді.
Осы жағдайдан көріп отырғанымыздай, В процесінің файлы баспаға шықпай қалады.
Достарыңызбен бөлісу: