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



Pdf көрінісі
бет118/158
Дата01.07.2023
өлшемі3.83 Mb.
#475485
түріОқулық
1   ...   114   115   116   117   118   119   120   121   ...   158
операциялық жуйелер

Жалпы жады. Жалпы жадтың механизмі адрестік кеңістік 
процесттерінде операциялық жүйеге бағытталған бір физикалық жадын 
көрсетуден тұрады. Жалпы жадының осы бөлігін пайдалана отырып, 
операциялық жүйенің ядросынсыз ақпараттармен алмасуға болады, бұл 
жұмыс жылдамдығын әлдеқайда арттырады. 
Семафор. Жалпы жадын қолдану кезіндегі негізгі проблемалардың 
бірі бір уақытта қолжетімді шиеленіскен жағдайлардың алдын-алу 
болып табылады. Мұндай жағдай бірнеше процеспен, жадының бір 
бөлігіне, бір уақытта ақпарат жазу кезінде орын алуы мүмкін. Бұл 
жағдайда жады, процесте соңғы жазылған ақпаратты құрайды
қалғандары жоғалады. Басқа шиеленіскен жағдай, басқа процеспен 
жетілдірілген жады саласынан ақпараттарды бір процеспен оқуы 


184 
кезінде пайда болады. Бұл жағдайда оқылған ақпараттар көнелеу де, 
ішінара жаңартылған деректерді де құрауы мүмкін. 
Шиеленіскен жағдайлардың алдын алу үшін семафорлар 
қолданылады —жадының қандай да бір бөлігін қолдану мүмкіндігін 
көрсететін арнайы жалаушалар. Жадыға жазу кезінде процесс семафор 
қойылады — бұл жадының «бос емес» екендігін білдіреді; ал жазу 
аяқталғаннан соң оны алып тастайды, бұл жадының босатылғанын 
білдіреді. Басқа процестер ақпараттарды жазу немесе оқудың алдында 
семафордың жағдайын тексереді және жазу мүмкін емес жағдай арнайы 
өңделеді. Мұндай жағдайда, процес өзінің орындалуын семафорды 
алғанға дейін тоқтата тұрады немесе ақпараттарды өзінің ішкі 
буферінде жинайды және семафорды алғанда буферден ақпараттарды 
жазып алады. 
Семафор механизмі тек жалпы жады пайдаланғанда ғана ыңғайлы 
емес, кез келген біріккен ресурстардың қолданысында пайдаланылуы 
мүмкін.
СИГН
АЛДАР 
10.3.1. Жалпы түсінік 
UNIX - жүйелерінің көбісі сүйемелдейтін процесс аралық өзара 
әрекеттесушінің көп таралған механизмі — сигналдар арқылы өзара 
әрекеттесу. Процесс аралық (пайдаланушының немесе жүйелік) 
сигналдардың алмасуы оларға орындаушы процесс үшін маңызды 
басқа оқиғалардың орын алуы туралы ақпараттармен алмасуға 
мүмкіндік береді. 
Процеске сигналды беруге ықпал етуші операциялық жүйенің 
ядросы (мысалы, 0-ге бөлінген жағдайда ядро процеске сигнал береді
ядро төтенше жағдайларды хабарлайды), пайдаланушы (мысалы, 
үзілістер кезінде, [Ctrl+C] батырмасымен процес орындалуы кезінде, 
бұл комбинацияға сәйкес келетін процеске сигнал беріледі) немесе 
басқа процесс болып табылады. 
Жалпы кез келген процесс онымен параллелді орындалатын басқа 
процеске сигнал бере алады. Сигналды беру үшін жіберуші-процесс екі 
параметрді анықтау қажет: PID қабылдаушы-процесс сигналы және 
жіберілетін сигналдың нөмірі. UNIX-жүйелері сигналдар түрлерінде 
шектеулі санды сүйемелдейді, әдетте 30 шамасында. 10.1- кестеде 
негізгі сигнал түрлерінің қысқаша сипаттамасы берілген. 


185 
Әр сигнал түрі, тіркеу нөмірі және SIGALRM түрінде 
мнемоникалық мәндерін иеленеді, SIG — сигналдар мнемонигінің 
жалпы мәні; ALRM — берілген сигнал түрінің жіберілуіне байланысты 
пайда болған оқиғалардың мәні.
Қабылдаушы-процеске сигналдарды жеткізу операциялық жүйемен 
орындалады. Қабылдаушы-процесс қабылдауға жауап ретінде, 
сигналды елемеуіне болады немесе берілген сигнал түрінің 
қабылдануымен байланысты бағдарламалық кодты орындауды 
бастауына болады. Код, нақты сигнал түрінің қабылдануы кезінде 
шақырылатын жекеленген функция ретінде рәсімделеді. Мұндай 
функциялар «сигналдарды өңдеуші-функциялар» атауына ие болды 
(немесе жай «сигналдарды өңдеуші»).
Әр процесс үшін сигналдарды өңдеушінің жиынтығы, сигналдар 
өңдеушінің кестесін құрады. Кесте әр процесс үшін дара. Өңдеуші 
кестесі жолдарының саны, операциялық жүйе сүйемелдейтін сигналдар 
санына тең. Кестенің әр жолында өңдеуші-функцияның бағдарламалық 
коды басталатын жадының мекенжайы, сигнал нөмірі жазылады — 
өңдеуші-функциясын көрсетуші мына формат декларациясына ие: 
void h a n d l e r ( i n t s i g _ n u m ) ;
сигналды қабылдау кезінде процесс өзінің қалыпты орындалуын 
тоқтатады 
және 
өңдеуші-функцияның 
бағдарламалық 
кодын 
орындауды бастайды. Өңдеуші-функция орындалуын аяқтаған соң, 
сигнал қабылдаған кезде орындалған команданың ізіне басқару 
командасымен қайтарылады (10.1-сурет).
Сигналдарды өңдеуші кестенің кейбірі үшін өңдеуші-функциялар 
мекенжайын құрмауы мүмкін.




Достарыңызбен бөлісу:
1   ...   114   115   116   117   118   119   120   121   ...   158




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

    Басты бет