Оқулық «Федералдық білім беруді дамыту институты»


СЕМАФОРЛАР  10.5.1. Негізгі түсінік



Pdf көрінісі
бет185/220
Дата25.02.2022
өлшемі2,22 Mb.
#26438
түріОқулық
1   ...   181   182   183   184   185   186   187   188   ...   220
СЕМАФОРЛАР 
10.5.1. Негізгі түсінік 
 
Процесс аралық өзара әрекеттесуі кезінде ең маңызды міндеттердің 
бірі — процесстердің орындалуын біріктіру. Біріктіруде бірінші болып, 
бірнеше  процестердің  паралельді  орындалуы  деп  түсіндіріледі,  қалған 
процестердің дайын болатын жағдайы келу сәтіне дейін кодтың нақты 
бөліктерінің орындалуы жүрмейді. 
 
Мысалы, 
матрицаларды 
минор 
бойынша 
анықтаушының 
параллельді  есептеуі  кезінде  әр  минор  өзінің  процесімен  есептеледі, 
минордың  үлкен  реттелуге  өтуі  барлық  процестер  өзінің  есептеулерін 
аяқтап және нәтиже алғаннан кейін мүмкін болады. Басқа процестердің 
дайындық  күйі  дайын  болуы  туралы  хабарламаны  жіберумен 
анықталады.  Біріктіруді талап ететін басқа мысал, бірнеше параллельді 
жұмыс істейтін процестердің бәрі бір бөлінбейтін ресурсқа қол жеткізуі 


 
222 
 
болып табылады. Бұл жағдайда, біріктірілу дегеніміз бір уақыт сәтінде 
ресурсқа қол жеткізуді тек бір процестің алуы. 
 
 
 
 
Біріктіру  механизмдерінің  ең  көп  қолданылатыны  —  семафорлар 
көмегімен біріктірілу.
 
Қарапайым семафор өзімен қолжетімділік тыйымына сәйкес келетін 
0 мәнді жалаушаны ұсынады, ал 1 — қолжетімділікке рұқсат.  Ресурсқа 
қол жеткізуден бұрын, процесс семафордың мәнін тексеру керек және 
егер  қолжеткізуге  рұқсат  болса,  ресурсқа  басқа  процестердің  қол 
жеткізуін  блоктау  үшін  семафорға  0  мәнін  орнату  қажет.  Ресурсты 
пайдалану аяқталған соң процес, қайтадан семафорға 0 мәнін орнатады. 
Мұндай семафор  «бинарлық семафор» деген атауға ие болды.
 
Бинарлы  семафордан  басқа,  семафор-есептегіштер  бар.    Мұндай 
семафорлардың  мәні  теріс  емес  бүтін  санды  ұсынады.  Мұндай 
семафорлардан екі операция анықталған. V операциясы (голл.Verhogen, 
жиі  wait  дегенді  білдіреді)  егер  оның  мәні  аз  немесе  нөлге  тең  болса, 
процесс  орындалуын  тоқтатады  немесе  қарсы  жағдайды  семафордың 
мәнін  бірлікке  азайтады.  Операция  P  (голл.  Prolagen,  post  дегенді 
білдіреді)  семафор  мәнін  бірлікке  арттырады  және  мәндерді  қайта 
тексеруді  шақыра  отырып,  мәндердің  артуынан  процестердің 
тоқталуын хабарлайды. 
 
Семафор-есептегіштер  бір  типті  ресурстардың  шектеулі  санына 
бірігіп,  қол  жеткізу  үшін  қызмет  етеді  мысалы  бір  компьютерге 
қосылған  теруші  құрылғылар  үшін.  Қолжетімді  құрылғылар  саны, 
семафор-есептегіштің бастапқы мәні ретінде жазылады. 
 
Құрылғыларды біреуін қолданбастан бұрын, процесс семафорларға 
V  операциясын  орындайды.  Егер  тек  бір  қолжетімді  құрылғы  қалған 
жағдайда,  есептегіштің  мәні  бірлікке  азаяды,  осылайша  қолжетімді 
құрылғының азайғанын бейнелейді. Егер бірде бір қолжетімді құрылғы 
қалмаған  болса,  процесс  құрылғы  босағанша  өзінің  орындалуын 
тоқтатады  және  есептегіш  мәні  оң  болмайды.  Себебі  құрылғылардың 
босауын  күтетін  процестер  бірнеше  болуы  мүмкін,  онда  олар  кезекті 
және  құрылғыға  қол  жеткізуді  ұйымдастырады,  есептегіш  мәнінің 
артуы кезінде, кезектегі алғашқы процесті алады. 
 
Ресурстардың  босатылуынан  кейін  (біздің  жағдайда  —  теруші 
құрылғы)  процесс  семафорға  P  операциясын  орындайды,  осылайша 
есептегіш мәнін бірлікке арттырады. 
 
 
 
 


223 
 
 
 
 
 
 
 
Семафор-есептегіштің  қалыпты  жағдайы  үшін    UNIX-жүйелерінде 
келесі шарттар орындалады: 
 
■ 
Семафордың  мәні  әртүрлі    процестерге  қолжетімді  болуы  керек, 
сондықтан процестің емес ОЖ ядросы мекенжай кеңістігінде болуы 
керек;
 
■ 
Тексеру  операциясы    және  семафор  мәнінің  өзгеруі,  басқа 
процестермен  үзілмейтін  бір  атомаралық  операция  түрінде  іске 
асуы қажет.  Әйтпесе, тексеріс пен семафор мәнін азайту арасында 
процестердің  тоқталуы  болуы  мүмкін,  бұл    семафорды  күтпеген 
жағдайға итермелеуі мүмкін.   
 
 
 


Достарыңызбен бөлісу:
1   ...   181   182   183   184   185   186   187   188   ...   220




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

    Басты бет