М. З. Якубова техника ғылымдарының кандидаты, доцент



бет18/141
Дата26.09.2023
өлшемі3.68 Mb.
#478578
1   ...   14   15   16   17   18   19   20   21   ...   141
КОМПЬЮТЕРЛІК ЖҮЙЕЛЕР АРХИТЕКТУРАСЫ

Критикалық аймақтар
Процестерді синхрондаудың маңызды түсінігі критикалық аймақ – бұл бөлінетін мәліметтерге қол жетімділік іске асатын программа бөлігі.
35
13-сурет. Жарыс жағдайындағы ағындардың нәтижелері және қадам бойынша орындалуы
Бұл мәліметтер, сәйкесінше, критикалық мәліметтер деп ата- лады; олардың келісілмеген өзгеруі кезінде қажет емес әсерлер пайда болуы мүмкін. Жоғарыда келтірілген жарыс мысалында мұндай мәліметтер деректер қоры файлының жазбалары болып табылады. Әрбір ағынның критикалық секциялары 14-суретте берілген.
14-сурет. Ағындардың салыстырмалы жылдамдықтарының әсер етуі
15-суретте тосқауыл қоятын айнымалыны қолданатын про- цесс алгоритмінің үзіндісі көрсетілген. Критикалық секцияға кі- рудің алдында процесс ресурс D бос екендігін тексереді. Егер ол бос емес болса (F(D) = 0), тексеру циклді түрде қайталанады. Егер ресурс бос болса (F(D) = 1), F(D) айнымалысының мәні 0 болады және процесс критикалық секцияға кіреді. Процесс бөлі- нетін D ресурсымен барлық әрекетті орындағаннан кейін, F(D) айнымалысының мәні қайтадан 1-ге тең болады. Егер барлық процестер жоғарыда сипатталған келісімдерді пайдалана оты- рып жазылса, өзара ығыстыру орын алады. Сонымен қатар про- цестер кез келген уақытта және кез келген критикалық аймақта (секцияда) операциялық жүйенің басқаруымен үзілуі мүмкін. Айнымалыны тексеру нәтижесінде процесс ресурстың бос екен- дігін анықтасын, бірақ содан кейін бірден айнымалыны 0-ге ор- натуға үлгермей, үзіліп кетсін. Оның тоқтатылуы кезінде басқа процесс ресурсты алып қояды және өзінің критикалық сек- циясына кіреді, бірақ ол да бөлінетін ресурспен жұмысты аяқта- май үзіліп кетеді. Нәтижесінде бірінші процесс ресурсты екінші- сі алып қойған кезде бос деп есептеледі. Басқаруды бірінші про- цеске қайтару кезінде, ол ресурсты бос деп есептеп, бос еместік
36
Жалпы жағдайда әртүрлі ағындарда критикалық секция әр- түрлі командалар тізбегінен тұрады. Жарыс әсерін кейбір ресу- рстарға қатысты шығарып тастау үшін осы ресурспен байланыс- қан критикалық секциядағы әрбір уақытта тек бір ғана процесс болуын қамтамасыз ету қажет. Бұл тәсілді өзара шығару деп атайды. Қолданбалы программалармен туындайтын процестерді синхрондау барысында программист өз құрылғылары және тә- сілдерімен қатар жүйелік шақырулар түрінде берілетін опера- циялық жүйе құрылғыларын да пайдалана алады.
Соңғылары көп жағдайда ең тиімді болып табылады. Әрбір бөлінетін D ресурсымен екілік айнымалы F(D) байланысады, ол келесі мәндерді қабылдайды:


Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   141




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет