2. Процестер және басқару ағымдары. Процесс ұғымы. Процесс ұғымы қазіргі операциялық жүйелердегі негізгі ұйымдардың бірі болып табылады. Операциялық жүйе тұрғысынан алғанда, процесс жұмыс бірлігі, жүйелік ресурстарды тұтынуға өтініш. Егер процесс пен программа арасындағы қатынасты айтатын болсақ, онда келесі екі бекітім әділ:
программа бұл процесс күйінің бөлігі.
программа жұмысты орындау үшін бір процестен көбірек шақыруы мүмкін.
Процестер операциялық жүйеде иерархия құрайды. Соған сәйкес, туылған процестерді – берілген процестердің ұрпақтары, ал туылған процестің ата-анасын – бабасы деп атайық. Процестің негізгі күйлерін белгілейік (3.1 сурет):
Сурет 3.1 – Процесстің күйлері
процессорда – процесс барлық қажетті ресурстарға, оның ішінде процессорға ие, беленді күй;
дайындық – процесс орындауға кезекте;
күту – процесс оқиғаның аяқталуын күтеді;
тоқтату – процесс тоқтатылған;
құру – процесті құру үшін қажетті әрекетті орындау;
яқтау – процестің сәтті аяқталуымен байланысты әрекетті орындау;
зомби – процесс бітті, бірақ баба оның аяқталуын қабылдамады;
Процесті құру негізінде келесі әрекеттер орындалуы керек:
процеске ерекше нөмір беру (ID);
процесті жүйеге белгілі процестер тізімін қосу;
бастапқы приоритетті анықтау;
процеспен басқару блогын қалыптастыру;
қажетті ресурстарды бөлу.
3 Ағымдылықты қолдайтын процестер. Басқару (thread) ағымы – программа командаларын табиғи ретпен орындау. Процестер традициялық және көп ағымды болып бөлінеді. Бір процестегі көп ағымдылықтың артықшылықтары бар. Бір процесте екі ағым арасында контексті ауыстырып қосу екі процесс арасындағы контексті ауыстырып қосудан оңайырақ. Орындау стегі мен процессор регистрінің мазмұны етегінен басқа барлық мәліметтер ағымдар арасында бөлінеді. Осылайша, көп ағымдылық тиілу параллеллизмді ұсынады. Көп ағымдылық қажет болатын программалардың тұтас класын көрсетуге болады: операциялық жүйелер, желілік серверлер, орныққан жүйелер, есептеу программалары.
Сигналдар – UNIX операциялық жүйесінде процестің қызметін үзуге болатын, программалық құрал. Сигналдар механизмі процестерге үрей оқиғаларға әсер етуге мүмкіндік береді. Әрбір сигналға сәйкесінше қойылады:
сигнал нөмірі;
символдық тұрақты;
сигналдардың бес класының біріне жатқызу;
процестің сигналға реакциясы;
сигналды өңдеушіні шақыру;
процесті аяқтау;
сигналды игнорирлеу;
орныдауды тоқтату.
Келесі үш жағдай операциялық жүйемен сигналды генерация жасауға әкеледі:
ядро қолданушы клавиатурадағы клавишалардың белгілі бір комбинациясын басқан кезде процеске сигнал жібереді;
апараттық ерекше жағдайлардың пайда болуы орындалу кезеңіндегі процеске сигнал жіберейік, операциялық жүйенің ядросына бекітімді жіберуге әкеледі;
жүйенің белгілі бір программалық жағдайы сигналды жіберуді шақыруы мүмкін;
Сигналдардың келесі типтері қызығырақ болып табылады:
- кейбір шарттардың пайда болуы нәтижесінде процестің орындалуы кезінде туатын жабдықтардан сигналдар;
- SIGFPE (8) – жылжымалы немесе тиянақты үтірлі операцияларда орындау кезіндегі ерекше жағдайлар;
SIGILL (4) – дұрыс емес машиналық команданы орындауға тырысы;
SIGSEGV (11) – жадыны қорғаудан бұзылды;
SIGBUS (10) – шына қатесі;
Қолданушының клавиатурамен генерациялауын, не процестен келесісіне жіберілетін, программалық сигналдар: Мысалы