Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Бақылау сұрақтары. 1. Үрдістер қандай топтарға бөлінеді
1. Ү рдістер қ андай топтарғ а бө лінеді 2. Сигнал тү сініктемесі 3. Ү зу тү сініктемесі жә не оның алыптастау мен айырмашылығ ы 4. Ү зу дең гейлері 5. Процесс дегеніміз не? 6. Қ андай ә рекеттің нә тижесінде процесс қ ұ рылады? 7. Свопинг дегеніміз не жә не қ ай кезде қ олданылады? 8. Процесстің тоқ татылуын қ андай ә рекеттерден байқ аймыз? 9. Процесстің жұ мыс істеу режимін тү сіндір?
5-дә ріс. Процесстеде болатын операциялар жә не олармен байланысты тү сініктер Ү рдістің біресепті жә не кө песепті орындалуы. Есепті кө псанашық ты шешуді басқ ару тә сілдері. Процесс бір кү йден екіншісіне ө з еркімен ауыса алмайды. Процесс кү йін ө згерту қ ызметін ОЖ атқ арады. Мұ ндай операциялартү рлері жоғ арыдағ ы біздің модельде бағ ыттаушы (стрелка) санымен сә йкес келеді. Оларды ү ш топқ а жұ птастырып қ арастырғ ан ө те қ олайлы: -процесстің қ ұ рылуы – процесстің аяқ талуы; -процессті тоқ тату («орындалу» кү йінен «дайындық» кү йіне ауысуы) – процессті жү ктеу («дайындық» кү йінен «орындау» кү йіне ауысуы); -процессті матау (блокировка) («орындау» кү йінен «кү ту» кү йіне ауысуы) – процессті матаудан қ ұ тқ ару (разблокировка) («кү ту» кү йінен «дайындық» кү йіне ауысу). Процессті қ ұ ру жә не аяқ тау операциясы бір тер қ ана болады (одноразовый), яғ ни процесске бірден кө п қ олданбайды (кейбір жү йелік процесстер есептеу жү йесі жұ мысы кезінде ешуақ ытта аяқ талмайды, аяқ сыз қ алады). Ал қ алғ ан операциялардың бә рі процесс кү йінің ө згеруімен байланысты, яғ ни олар кө п (многоразовый) тү рлі. Процессте ОЖ операцияны қ алай орындайтынына толығ ымен тоқ талайық. Process Control Block жә не процесс контексті. ОЖ процессте операцияны орындау ү шін ә рбір процесстің деректерінің қ ұ рылымы кө рсетілуі керек. Бұ л қ ұ рылым берілген процесс ү шін спесификалық ақ паратқ а толы болады. Олар: -процесстің сол кездегі кү йі; -процесстің программалық канауышы немесе басқ а сө збен айтқ анда келесі орындалатын команда адресі; -процессор регисторының мазмұ ны; -берілген деректер, яғ ни ол процессті жә не жадыны басқ аруды орындауды жоспарлау ү шін қ ажет (процесс артық шылығ ы, кең істіктегі адрестің кө лемі жә не қ алай тұ рғ аны); -есепке алатын деректер (процесстің нө мері, оның жұ мысын қ олданушы қ алай ө згерткені, сол процессте процессордың пайдаланылғ ан жалпы уақ ыты жә не т.с.с.). -процесске байланысты енгізу-шығ ару қ ұ рылғ ысы туралы мә лімет (мысалы, процесске қ андай қ ұ рылғ ы бекітілген, ашық файлдар кестесі). Оның қ ұ рамы жә не қ ұ рылуы нақ ты бір ОЖ-ге байланысты. Кө птеген ОЖ-лерде процессті сипаттайтын ақ парат бір ғ ана емес, бірнеше деректердің байланысқ ан қ ұ рылғ ысында сақ талады. Бұ л қ ұ рылыстар ә р тү рлі атауғ а ие болады жә не қ осымша ақ паратқ а бай болады немесе керісінше сипатталғ ан ақ параттың тек бір бө лігі ғ ана болады. Бізге оның ә сері тимейді. Бізге керек ең маң ыздысы – есептеу жү йесіндегі кез-келген процесс ү шін барлық ақ парат операцияны ә рі қ арай дамыту ү шін ө те қ ажеттігі. Қ арапайым тілде ақ парат бір деректер қ ұ рылымында сақ талады деп есептейміз. Оны PSB (Process Control Block) немесе процессті басқ аратын блок деп атаймыз. Процессті басқ аратын блок ОЖ ү шін процесстің модельі болып табылады. ОЖ процессінде жү ргізілетін кезкелген операция РСВ-да белгілі бір ө згерістің болуын тудырады. РСВ қ ұ рамындағ ы қ абылданғ ан модель процесс кү йі мен операция арасында тұ рақ ты болып қ алады. Ақ паратты процессті басқ ару блогына сақ тау ү шін, алдағ ы уақ ытта ашып қ арастыру ың ғ айлы болу ү шін екі топқ а бө леміз. Процессордың барлық регистрлері қ ұ рамындағ ыларды (программалық санауышты да қ осқ анда) процессордың жанама регистрі деп атаймыз, ал қ алғ андарын процесстің жанама жү йесі деп атаймыз. Процесстің жанама регистрлік жә не жү йелік туралы білім ОЖ-де оның жұ мысын басқ арып отыру ү шін, яғ ни операцияларды жетілдіруіне жеткілікті. Кейде процессті толығ ымен тану ү шін ол жеткіліксіз. Процесстің қ андай есептеулермен айналысып жатқ анына ОЖ мә н бермейді, толығ ырақ айтсақ оның кең істіктегі адресінде қ андай код жә не қ андай деректер барына кө ң іл аудармайды. Керісінше қ олданушы процесстің кең істіктегі адресінде не бар екендігіне ү лкен кө ң іл бө леді. Процесстің кең істіктегі адресінде орналасқ ан код жә не деректерді қ олданушының жанамасы (контексі) деп атаймыз. Процесстің регистрлі, жү йелік жә не қ олданушының жанамасын қ ысқ аша процесс жанамасы деп атау қ абылданғ ан. Кез-келен уақ ытта процесс толығ ымен ө зінің жанамасымен (контекстом) сипатталады. Бір-ақ рет қ олдануғ а болатын (одноразовые) операциялар. Кү рделі ОЖ ө зінің қ ажеттілігіне қ арай динамикалық процесстерді тудырады. Жаң а процессті тудырушы ОЖ-ні жү ктегеннен кейін арнайы жү йелік шақ ыруды орындағ ан қ олданушы процессін немесе ОЖ-нің ө зі, аяғ ында кез-келген процессті шығ ара алады. Жаң а процессті тудырушы процессті ата-ана процессі (parent process), ал қ айтадан тағ ы пайда болғ ан процессті бала-процесс (child process) деп атау қ абылданан. Бала-процесс ө зінің кезегінде тағ ы да жаң а бала-процесс туғ ызуы керек жә не т.с.с., осылайша жү йе ішінде процесстің генеалогикалық бұ тақ жиыны «генеалогикалық орман» пайда болады. Ескерте кету керек, қ олданушының барлық процесстері, ОЖ-нің кейбір процесстерін қ осқ анда олар бір ғ ана «орман ағ ашына» қ атысты болады. Процесстің туылуына басты жү йе жаң адан РСВ тағ айындайды жә не оны толтыра бастайды. Жаң а процесс ө зінің жекеменшік бірегей ұ қ сас нө мерін алады. ОЖ-де процесстің бірегей ұ қ сас нө мірлерін сақ тау ү шін биттің белгілі бір шектелген саны ғ ана беріледі, процесске біруақ ытта қ атысатын бірегей нө мір санын сақ тап тұ ру ү шін ол шектелген болу керек. Қ андайда бір процессті аяқ тағ аннан кейін оны босататын бірегей нө мір басқ а процесс ү шін қ айтадан қ олданылуы мү мкін. «Бала-процесс» ө зінің функциясын орындау ү шін белгілі бір ресурстарды талап етеді: жады, файл, енгізу-шығ ару қ ұ рылғ ысын т.с.с. Олардың бө лініп шығ уының екі жағ дайы бар. Жаң а процесс ө зінің қ арамағ ына ата-ана ресурстарының кез-келген бө лігін алуы мү мкін, ол «ата-ана-процессімен» жә не басқ а да «бала-процесстерімен» бө лісу арқ ылы ОЖ-ге қ атыссыз ө зіне керек ресурстарды алады. Бө лінген ресурстар туралы ақ параттар РСВ-ғ а енгізіледі. «Бала-процесс» ресурстарын бө ліп болғ аннан кейін оның программа кодын кең істіктегі адресіне деректер мә нін енгізу керек жә не программа санауышын қ ондыру керек. Бұ л жерде де екі шешім болуы мү мкін. Бірінші жағ дайда регистрлік жә не қ олданушы жанамасы бойынша «бала-процесс» «атаана-процессінің» кө шірмесіне (дубликатына) ауысады, сонымен қ атар осы кезде егіз-процесстің қ айсысы ата-ана болатынын анық тайтын ә діс пайда болу керек. Ал екіншіжағ дайда «бала-процесс» қ андайда бір файлдың жаң а программасы болып жү ктеледі. Unix ОЖ-сі процесстердің болмай қ алуын тек бірінші жағ дайда ғ ана болдырады. Жаң а программаны жү ктеу ү шін міндетті тү рде алдымен «атаана процессінің» кө шірмесін жасау керек, содан кейін «бала-процесс» арнайы жү йелік шақ ыру кө мегімен ө зінің қ олданушы жанамасын ауыстыруы керек VAX/VMS ОЖ-сі тек екінші жағ дайды қ абылдай алады. Ал WindowsNT екі нұ сқ аны да қ абылдайды. Бірнеше процесстің жұ мысын ұ йымдастыру ү шін жаң а процесстің орындалмай қ алуы программаның болу мү мкіндігіне ә келіп соғ ады. Процесстің қ олдаушы жанамасын ауыстсру мү мкіншілігі, оның жұ мысы кезінде (жаң а программаны орындау ү шін жү ктеу кезінде), бірінен кейін бірі орындалатын бірнеше ә р тү рлі программаларғ а ә келіп соғ ады. «Ата-ана-процессі» ө зінің орындалуын «бала-процесстің» орындалуымен бір уақ ытта жалғ астырады, немесе ө зінің барлық «балаларының» жұ мысын аяқ тауды кү те алады. Кө п қ олдануғ а болатын (многоразовые) операциялар. Кө п қ олдануғ а болатын операциялар ОЖдегі процесстер санын ө згертпейді жә не ресурстарды босатуғ а немесе бө ліп беруге байланысты болуы міндетті емес. Процесстің жү ктелуі. Ә рі қ арай орындау ү шін бірнеше процесстердің ішіндегі дайын кү йде тұ рғ ан процесстің біреуін ОЖ таң дап алады. Таң дап алғ ан прцесс ү шін, ОЖ оперативті жадыда ақ параттың бар болуын жә не оның ары қ арай жұ мыс істеу қ ажеттіліктерін қ амтамасыздандырады. Процесс кү йі орындалу кезінде ө згереді, яғ ни берілген процесс ү шін регистрдің мә ні қ алпына келеді жә не басқ ару процесстің команда санауышына сілтейтін командасына беріледі. Жанаманы (контексте) қ алпына келтіру ү шін қ ажет деректер операция тү зілетін PCB процессінен алынады. Процесстің тоқ татылуы. «Орындау» кү йінде тұ рғ ан процесс жұ мысы қ андай да бір ү зілудің нә тижесінде тоқ татылады. Процессор команда санауышын автоматты тү рде сақ тайды жә не орындау процессі стектің бір немесе бірнеше регистрін сақ тайды, одан кейін басқ аруды берілген ү зілуді ө ң дейтін арнайы адреске береді. Осылайша ү зілуді ө ң деуге арналғ ан hardware жұ мысы аяқ талады. Кө рсетілген адресте ә детте ОЖ-нің бір бө лігі ғ ана болады. Ол PCB-ғ ы процесстің жү йелік жә не регистрлік жанамасының динамикалық бө лігін сақ тайды, процессті «дайындық» кү йінде ауыстырады жә не ол ү зілуді ө ң деуге кіріседі, яғ ни, ү зілу кезінде пайда болатын белгілі бір ә рекеттерді орындауғ а кіріседі. Процесстің қ оршалып қ алуы (блокирование). Жұ мысты ә рі қ арай жалғ астыра алмағ ан кезде немесе есептеу жү йесіндегі кез-келген бір оқ иғ аның пайда болуын кү тпей ә рекет жасағ ан кезде процесс қ оршалып қ алады. Бұ л жағ дайдан шығ у ү шін ол арнайы жү йелік шақ ырудың кө мегімен ОЖден кө мек сұ райды. ОЖ жү йелік шақ ыруды ө ң дейді (енгізу-шығ ару операциясын реттейді, процесс кезінде процессті қ осады, қ ұ рылғ ының босауын жә не оқ иғ аның болуын кү теді, жә не т.б.) жә не РСВ-ғ а қ ажетінше процесс жанамасының керек бө лігін сақ тайды, процессті «орындалу» кү йінен «кү ту» кү йіне ауыстырады. Процессті қ оршалып қ алудан қ ұ тқ ару (разблокирование). Жү йеде қ андай да бір оқ иғ а болып қ алғ аннан кейін, ол оқ иғ аның қ андай екенін нақ ты анық тау керек. Содан кейін ОЖ оқ иғ аның «кү ту» кү йінде беріген тұ рғ аны бар ма екенін тексереді, егер бар болса оқ иғ аның пайда болуына байланысты қ ажет ә рекеттерді орындай отырып, «дайындық» кү йіне ауыстырады (мысалы, кү тіп тұ рғ ан процесс кезегі ү шін енгізу-шығ ару операциясын жібереді жә не т.с.с. Жанамағ а қ осылу (переключение). Осығ ан дейін біз процесстерде болатын операцияларды, яғ ни бір-біріне тә уелсіз операцияларды қ арастырдық. Шын мә нінде мультипрограммалық ОЖ қ ызметі, яғ ни ә р тү рлі процесстерді орындайтын жә не де бірінен екіншісіне ауысатын процесстерді процессор ауысуын қ адағ алайтын операция тізбектерінен тұ рады. Кейбір процесстерді процессор арқ ылы орындағ анда қ ұ рылғ ыда енгізу-шығ ару қ ұ рылғ ысынан операцияның соң ын ескеретін берілулер байқ алғ анда ү зілулер тү зіле бастайды. Процесс орындалып жатқ анда тоқ тату операциясы ө ндіріледі. Ә рі қ арай ОЖ процессті қ оршалып қ алудан қ ұ тқ арады жә не жоспарды орындауда таң далғ ан тоқ тап қ алғ ан немесе жаң а процессті жү ктеу іске асады. Нә тижесінде «орындау» кү йінде тұ рғ ан енгізу-шығ аруды аяқ тау туралы ақ паратты ө ң дейтін процесстер орын ауыстырады. Процессордағ ы бір процесстен екіншісіне ауысу ү шін орындаушы процесстің жанамасын міндетті тү рде сақ тау керек жә не процессор ауысатын процесс жанамасын қ алпына келтіру керек. Мұ ндай процесстердің сақ тау/қ алпына келтіру жұ мысының қ абілеттілігін кө рсететін процедура жанамасымен ауысу деп аталады. Кө песептілік. Санашық бір уақ ытта тек бір ағ ынды орындайды. Бірақ кө песептіліқ операциялық жү йеде пайдаланушығ а бірнеше программаларды пайдалануғ а мү мкіндік береді: - бір қ ордың босағ анын немесе ағ ынның орындалуы ү зілгенше ағ ын қ олданылады; - ағ ынның мә нмә тіні сақ талады; - ағ ынның мә нмә тіні жү ктеледі - орндалуды кү ткен ағ ындар бар болғ анша бұ л қ айталау қ айталанады. Санашық тың бір ағ ынды орындау кезінде басқ а ағ ынның орындалуына қ айта қ осылуын мә нмә тінінің қ айта қ осылуы дейміз. Кө песептілік жү йе орындайтын жұ мыстың мө лшерін кө бейтеді, ө йткені кө п ағ ындар ү зілмей орындалмайды. Ағ ындар орындалуын тоқ татып, мысалы енгізу-шығ ару қ ұ рылғ ысының босауын кү туі мү мкін. Кө песептіліктің арқ асында бір ағ ын кү туде болса, басқ а ағ ын орындалуы мү мкін, соның арқ асында санашық тың уақ ыты босқ а кетпейді. Ығ ыстыратын кө песептілік - кө песептіліктің тү рі, бұ нда ағ ынның басқ а ағ ындардың орындалуына ө збетінше санашық тың босатуын операциялық жү йе кү тпейді. Оның орнына алдын ала берілген уақ ытта немесе пұ рсаттылығ ы жоғ ары ағ ын орындалуғ а дайн болса операциялық жү йе ағ ынды ү зеді. Ығ ыстыру бір ағ ынның санашық ты толық алуынан сақ тайды жә не басқ а ағ ындарғ а санашық тың уақ ытын қ олдануғ а мү мкіндік береді. NT орындалу жү йесі – ығ ыстыратын кө песептілік жү йесі жә не Windows негізгі ортасы мен Win32 бағ ының қ ы жү йесі болып табылады. Ығ ыстырмайтын Windows версиясында MS-DOS-қ а кө песептілікке жету ү шін, ағ ын ө з бетінше санашық тың басқ аруын беру қ ажет. Нашар программалар басқ а қ олданбаларғ а немесе жү йеге кедергі жасап санашық ты жаулап алуы мү мкін еді. Кейбір кезде екі ағ ынғ а жалпы бір мақ сатқ а жету ү шін бір бірімен ә рекеттесуі қ ажет. Мысалы, С компиляторында бір ағ ын С тілінде программаның ө ндеуін орындаса, ал екінші ағ ын – бірінші ағ ынның жұ мысының нә тижесін қ абылдап жә не оны объективті кодқ а компилляциялауы мү мкін. Бұ л екі ағ ынғ а бір бірінің деректерінің алмасу тә сіліне қ ажет. Санашық тың ө ндеуі жә не программаның компилляциясы екі ү рдіспен (ә р қ айыссының бір ағ ыны бар), бір ү рдістің орындалуына қ арағ анда тез болуы керек, ө йткені кө песептілік операциялық жү йеде санашық тың ағ ынын немесе компиллятордың ағ ынын кезек кезек орындауы мү мкін. Санашық бірігіп қ олданатын буферге бір нә рсе орналастырса, компилятор ө зінің жұ мысын бастауы мү мкін. Осығ ан ұ қ сас екі немесе бірнеше орында бір уақ ытта орындалатын қ олданбаларды, паралельді қ олданбалар дейміз. Бір санашық ты компьютерде паралельді қ олданбалар пайдалы, ал кө псанашық тыларда ол ө те пайдалы. Кө пағ ындық. Паралельдікке жету ү шін екі ү рдісті қ олдану барлық жағ дайда тиімді емес. WinNT бұ л проблеманы шешу ү шін ың ғ айлы жадыны бірігіп қ олданатын механизмдердін қ ұ рады. Бұ л механизмдерді қ олданғ ан жағ дайларда да басқ а проблемалар болуы мү мкін, сол жағ дайда паралельдікке жету ү шін кө пағ ынды ү рдіс қ олданылады. Кө пағ ынды ү рдістің екі немесе бірнеше ағ ындары болады олар бірігіп бір адрестік кең істікті жә не қ орды қ олданады. NT-ң ә р ү рдісі бір ағ ынмен қ ұ рылады. Қ ажет болса программа ү рдіс ішінде қ осымша ағ ындарды қ ұ руы мү мкін. Олар кө бінесе программада асинхронды операцияларды орындау ү шін қ олданылады (операциялар кез келген уақ ытта орындалады). Бұ л категорияғ а енгізу-шығ ару операциялары кіреді. Бір ағ ынды негізгі программаның орындалуына қ олданып, жә не екінші ағ ынды енгізу-шығ ару қ ұ рылғ ысының сұ ранысына қ ұ рып, сонда жү йе бір санашық та бө лек екі операция орындауына болады, бұ л жағ дайда кө песептілік орын табады. Кө псанашық ты компьютерде бұ л екі ағ ын бірге орындалуы мү мкін, жә не басқ а ү рдіс қ ұ руына қ ажеті жоқ. Ағ ындарды қ олданып параллелизмге жету ү шін программа бір ү рдісте екі немесе бірнеше ағ ын қ ұ рады. Кө пағ ындық ү рдістер паралельдікке жетеді жә не екі ү рдісті қ олдануымен байланысты кемшіліктері жоқ. Ағ ындар ү рдіске қ арағ анда тез қ ұ рылады. Одан бө лек ү рдістің ағ ындары бір жадыны қ олданады, ө здерінің стегі жә не регистр мә ндерін алып тастағ анда. Ерекше деректер алмасу механизмін керек етпейді. Бір ағ ын ө зінің нә тижесін жадығ а жазады, ал екінші ағ ын оларды оқ иды. Сонымен бірге ү рдістің барлық қ орлары оның барлық ағ ындарымен бірдей қ олданылады. Ағ ындардың орындалу кезегін анық тау ү шін ядро пұ рсаттылық қ а негізделген сұ лбасын қ олданады. Пұ рсаттылығ ы жоғ ары ағ ын пұ рсаттылығ ы тө мен ағ ыннан бұ рын орындалады, ядро ағ ындардың пұ рсаттылығ ын ө згертіп тұ рады, сол арқ ылы олардың бә рінің орындалуына кепілдік береді. Кө пағ ынды ү рдісті қ олдану – серверлі қ олданбаларғ а тиімді шешім, ол клиенттерден сұ раныс қ абылдайды жә не ә р сұ раныс бойынша бір кодты орындайды. Мысалы, файл-сервер файлдармен жұ мыс жасайтын операциялар, бірақ ә р сұ раныс серверден ө зінің файлымен жұ мыс істеуді сұ расада, сервер программасы жадығ а тек бір рет жү ктеледі. Ә р келетін сұ раныс қ ажет функциясын орындайтын сервердің бө лек ағ ындарымен қ абылданады жә не ө ң деледі. WinNT – де паралельдікке жету ү шін екі ү рдісті қ олданады олар арнайы арналар арқ ылы ә рекеттеседі. Сондық тан WinNT бағ ының қ ы жү йелері бө лек серверлі ү рдістер ретінде жү зеге асырылғ ан жә не қ орғ алғ ан деп аталады. Негізгі ә дебиеттер 9[102–113], 3 [85-91] Қ осымша ә дебиеттер 18 [69-87], 19 [104-126]
|