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


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



Pdf көрінісі
бет131/158
Дата01.07.2023
өлшемі3.83 Mb.
#475485
түріОқулық
1   ...   127   128   129   130   131   132   133   134   ...   158
операциялық жуйелер

СЕМАФОРЛАР 
10.5.1. Негізгі түсінік 
Процесс аралық өзара әрекеттесуі кезінде ең маңызды міндеттердің 
бірі — процесстердің орындалуын біріктіру. Біріктіруде бірінші болып, 
бірнеше процестердің паралельді орындалуы деп түсіндіріледі, қалған 
процестердің дайын болатын жағдайы келу сәтіне дейін кодтың нақты 
бөліктерінің орындалуы жүрмейді. 
Мысалы, 
матрицаларды 
минор 
бойынша 
анықтаушының 
параллельді есептеуі кезінде әр минор өзінің процесімен есептеледі, 
минордың үлкен реттелуге өтуі барлық процестер өзінің есептеулерін 
аяқтап және нәтиже алғаннан кейін мүмкін болады. Басқа процестердің 
дайындық күйі дайын болуы туралы хабарламаны жіберумен 
анықталады. Біріктіруді талап ететін басқа мысал, бірнеше параллельді 
жұмыс істейтін процестердің бәрі бір бөлінбейтін ресурсқа қол жеткізуі 


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


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


Достарыңызбен бөлісу:
1   ...   127   128   129   130   131   132   133   134   ...   158




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

    Басты бет