Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операциялық жүйелер.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
835 Кб
Скачать
☆

4 Тақырып. Процесстер және жіптер

Операциялық жүйенің маңызды функциясының бірі барлық аппараттық және ақпарраттық ресурстарын рационалды қолдану болып табылады. Негізгі ресурстарға процессор, жады, сыртқы құрылғылар, деректер және программалар жатады. Аппараттық ресурстары бірдей болғанымен, әр түрлі операциялық жүйелермен басқарылатын есептеу жүйелерінің жұмыс істеу тиімділігі де әр түрлі болады. Бір есепті операциялық жүйелерде ресурстарды басқару есебін шешу маңызды болып табылғанымен (мысалы, операциялық жүйе мен қосымша арасында жадының бөлінуі), бұл жолдағы ең басты қиындық мультипрограммалық операциялық жүйелерде туындайды. Өйткені бұл жағдайда ресурстарға бір уақытта бірнеше қосымша таласады. Сол себепті де біз әңгімен көбінесе мультипрограммалау төңірегінде өрбітетін боламыз.

Мультипрограммалау

ультипрограммалау немесе көпесептілік (multitasking) дегеніміз бұл бір процессорде бір уақытта бірнеше программаның жұмыс істеуін қаматамасыз ететін есептеу процесін ұйымдастыру. Бұл программалар тек қана процессорды емес сонымен қатар оперативті және сыртқы жады, енгізу-шығару құрылғылары, деректер секілді клмпьютердің басқа да ресурстарын қолданады. Мультипрограммалау негізінен есептеу жүйесінің тиімділігін арттыруға негізделеді, бірақ тиімділік әр түрлі мағынада түсіндірілуі мүмкін. Есептеу жүйесінің тиімділігін барынша арттыратын негізгі критерийлер төмендегілер:

  • өткізу қабілеті – уақыт бірлігіндегі есептеу жүйесімен орындалатын есептер саны;

  • қолданушылар жұмысының ыңғайлылығы – біруақытта бір машинада отырып бірнеше программалармен жұмыс істеу мүмкіндігі.

  • Жүйенің реактивтілігі – жүйенің алдын-ала берілген программаны жүктеу мен нәтижені алу аралығындағы интервалды ұстау қабілеті.

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

Пакеттік өңдеу жүйелеріндегі мультипрограммалау

Мультипрограммалауды қолдану барысында компьютердің өткізу қабілетін арттыру үшін басты мақсат компьютердің барлық құрылғыларының, соның ішінде процессордың тұрып қалуын барынша азайту болып табылады. Мұндай тұрып қалулар есептің ішкі, мысалы өндеу үшін деректердің енгізілуін күтуі сияқты себептеіне байланысты пайда болуы мүмкін. Деректер дискіде сақталуы немесе оларды терминалда жұмыс істеп отырған қолданушы енгізуі мүмкін. Сонымен қатар, ішкі техникалық объектілерде орналасқан өлшеу аппараттарынан да берілуі мүмкін. Мұндай тұрып қалулар барысында, жұмыс тиімділігін арттыру үшін процессорге өңделетін деректері дайын тұрған басқа есептерді шешуге ауыстыру керек. Мультипрограммалаудың мұндай концепциялары пакеттік жүйелер деп аталатын ұғымның негізін құрайды.

Пакттік өңдеу жүйелері негзінен есептеуге арналған, яғни нәтижелердің тез алынуын талап етпейтін есептерді шешуге арналған. Пакеттік өңдеу жүйелерінің басты мақсаты мен критериі максимальді өткізу қабілеті, яғни уақыт бірлігінде барынша көп есептерді шешуі.

Бұл мақсатқа жету үшін пакеттік өңдеулерде функционерлеудің келесі схемасы қолданылады: жұмыстың басында есеп пакеті құрылады, әрбір есеп жүйелік ресурстарға қойылатын талаптарды қамтиды; бұл есептер пакеті мультипрограммлау қоспасын, яғни біруақытта орындалатын есептер жиынын құрайды. Есептеу машинасының барлық құрылғыларының жүктелуінің тепе-теңдігін сақтауа үшін ресурстарға әр түрлі талаптар қоятын есептер бір уақытта орындалатын есептер ретінде топталады. Мысалы, мультипрограммалау қоспасында біруақытта есептеу есептері мен интенсивті енгізу-шығару есептерінің болғаны абзал. Осыған орай, есептер пакетінен есепті таңдау ішкі жағдайға баяланысты. Нақты айтсақ есептің «тиімдісі» таңдалады. Байқағанымыздай, пакеттік операциялық жүйелердің басқаруымен жұмыс істейтін есептеу жүйелерінде белгілі уақыт периодында да нақты бір есептің орындалуына кепілдік беруге болмайды.

Енді енгізу-шығару операциясы мен есептеу операциясының бірігіп қалай жұмыс істейтінін қарастырып көрелікү

Мұндай бірігу әр түрлі әдістермен жүзеге асады. Бұлардың бірі арнайы енгізу-шығару процессорымен жабдықталған компьютерлерге тән. Мэйнфреэим класындағы компьютерлерде мұндай процестерді каналдар деп атайды. Әдетте каналдардың орталық процессордің командалар жүйесінен өзгеше өз командалар жүйесі болады. Бұл командалар сыртқы құрылғылармен жұмыс істеу үшін арналған, мысалы «құрылғының жағдайын тексеру», «магнитті басушы инені орнату», «беттің басын орнату», «жолды басып шығару». Каналдық программалар орталық процессордың программалары орналасқан оперативті жадыда сақталады. Орталық процессордың командалар жүйесінде каналға қандай енгізу-шығару программаларын орындау керектігіне бағыт беретін нұсқау қарастырылады. Осы сәттен бастап орталық процессор мен канал параллель жұмыс істей алады (1а сурет).

Есептеу мен енгізу-шығару операцияларының бірігіп жұмыс істеуіне мүмкіндік беретін тағы бір әдіс сыртқы құрылғылары енгізу-шығару процессорымен емес, қадағалаушылармен басқарылатын компьютерлерде іске асады. Әрбір ішкі құрылғысының (немесе бірдей ішкі құрылғылар тобы) өз қадағалаушылары бар. Олар орталық процессордан келген нұсқауларды автоматты түрде өңдейді. Бұл жағдайда процессор мен қадағалаушылар асинхронды жұмыс істейді.

Көптеген сыртқы құрылғылар электромеханикалық тораптарды қамтитындықтан қадағалаушы құрылғыларды басқаратын өз командаларын, орталық процессордың өз командаларын орындауынан айтарлықтай ақырын орындайды. Бұл жағдай есептеу мен енгізу/шығару операцияларын паралель орындауды ұйымдастыруға қолданылады: қадағалаушыға команда беру аралығында процессор есептеуді орындай алады (1б-сурет). Қадағалаушы орталық процессорға келесі команданы қабылдауға дайын екендігін үзіліс сигналымен хабарлауы мүмкін немесе орталық процессор бұл жайлы қадағалаушының жағдайын ауық-ауық сұрай отырып өзі анықтайды.

Жылдамдатудың максимальды тиімділігіне есептеу мен енгізу/шығаруды толығымен жапқанда қол жеткізіледі. Процессор тек бір есепті ғана орындаған кезде не болатынын қарастырып көрелік. Не есептеу, не енгізу/шығару басымдылық танытатын есептерде жылдамдату мүлде болмайды. Параллелизм сонымен қатар бір есептіктің енгізу/шығаруды толық аяқтауды талап ететін жағдайында орындалмайды. Өйткені есептеудің жалғасы тек белгілі бір мәндер енгізілгенде ғана жүруі мүмкін. мұндай жағдайларда процессордың немесе каналдың тұрып қалуынан құтыла алмайсыз.

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

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

Уақытты бөлу жүйелеріндегі мультипрограммалау

Қолданушының жұмысының тиімділігі мен қолайлылығын арттырудағы мультипрограммалаудың тағы бір әдісі – уақытты бөлу. Уақытты бөлу жүйелерінде қолданушыларға (немесе жалғыз қолданушыға) бірнеше программалармен интерактивті жұмыс істеу мүмкіндігі беріледі. Бұл үшін әр программа ауық-ауық қолданушымен «сұхбаттасып» отыруға мүмкіндік алуы керек. Пакеттік өңдеу жүйелерінде программа мен қолданушылар арасында «сұхбат» жүргізу мүмкіндігі мүлде шектеулі екендігі белгілі.

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

Процестер мен ағындарды жоспарлау

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

Процесстер мен ағындарды басқару жүйеасыт жүйесі процесстерді қажет ресурстармен қамтамасыз етуге міндетті. Операциялық жүйелер жадыда қай процесске қандай ресурс бөлінгендігі жайлы ақпарат жазылып отыратын арнайы ақпараттық құрылымдарды ұстап отырады. Ол процесске ресурсты жеке немесе өзге процесстермен бірігіп пайдалану керектігі жөнінде нұсқау беріп отырады. Кейбір ресурстар процесске оның құрылуы барысында бөлінсе, енді бір ресурстар орындалуы барысында сұранстырға сәйкес динамикалық түрде бөлініп отырады. Ресрустар процеске оның толық орындалуына немесе белігілі бір аралығына дейін бөлінуі мүмкін. Осындай функцияларды орындау барысында процестерді басқару ішкі жүйесі операциялық жүйенің ресурстарға байланысты басқа ішкі жүйелерімен өзара қатынас орнатады (жадыны басқару жүйеасыт жүйесі немесе енгізу-шығару ішкі жүйесі мен файлдық жүйе).

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

Процестің әр аяқталуынын кейін, операциялық жүйе оның жүйеге «ену іздерін тазарту» қадамдарын ұйымдастырады. Процесттерді басқару жүйасты жүйесі процесс жұмыс істеген барлық файлдарды жабады, оперативті жадының кодтарға, деректерге және ақпараттық құрылымдарға берілген облыстарын босатады.

«Процесс» пен «ағын» ұғымдары

Мультипрограммалауды қолдау үшін, операциялық жүйе процессор мен компьютердің басқа да ресурстарын өзара бөлісетін жұмыстың ішкі бірліктерін анықтап және нақтылап алуы керек. Қазіргі таңда операциялық жүйелердің көпшілігінде жұмыс бірлігінің екі түрі анықталған. Әдетте «процесс» атауын алып жүрген жұмыстың айтарлықтай үлкен бірлігі, өзінің орындалуы үшін «ағын» немесе «жіп» деп аталатын бірнеше ұсқақ жұмыстарды қажет етеді.

Сонымен, «процесс» пен «ағын» ұғымдарының нақты айырмашылықтары неде?

Есептеу жүйесінің кез-келген жұмысы қандай да бір программаның орындалуы негізінде жүретіні белгілі. Сондықтан процесспен де, ағынмен де орындаушы модуль түріндегі белгілі бір программалық код байланыс орнатады. Бұл программалық код орындалу үшін, оны оперативті жадыға жүктеу керек. Сонымен бірге деректерді сақтау үшін дискіден орын бөлу немесе енгізу-шығару құрылғыларымен байланыс орнату қажеттілігі туындауы мүмкін. Тағы бір, ескеретін жағдай программаның орындалуы оған деген процессорлық уақыт бөлінбейінше мүмкін емес екендігі.

Процесстер мен ағындар қатар кездесетін операциялық жүйелерде процесс процессорлық уақыттан басқа барлық ресурстарға сұраныс ретінде қарастырылады. Ал ең маңызды ресурс болып табылатын процессорлық уақыт жұмыстың басқа бірліктері ағындармен анықталады. Ағын деген ұғымның өзі командалар тізбегі (орындалу ағыны) деген мағынаны береді.

Қарапайым жағдайда процесс тек бір ағыннан ғана тұрады. Мұндай кезде «ағын» ұығымы «процесс» ұғымымен толық жұтылады, яғни тек бір ғана жұмыс бірлігі – «процесс» ұғымы ғана болады.

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

Өзара қарым-қатынас қажет болған жағдайда процесс ара ағайын қызметін атқара отырып, процесс аралық байланыс құралдары – конвейер, пошта жәшіктері, жадының бөлінбелі секциялар және т.б. ұсынатын операциялық жүйеге хабар береді.

Дегенмен, ағын ұғымы ат салыспайтын жүйелерде процесс аумағында паралель есептеулерді ұйымдастыру барысында біршама мәселелер туындайды. Шынында да, мультипрограммалауда жүйенің өткізу қабілеті жоғарлайды, бірақ жеке процесс ешқашанда бір программалы режимдегідей жылдам жұмыс істемейді. Дегенмен, бір процесс аумағында орындалатын кейбір есептер оның өзінің шешілу жұмысын жылдамдататын ішкі паралелзимге ие болуы мүмкін.

Операциялық жүйелерде ағындар есептеулерді паралелдендіру құралы ретінде пайда болды. «Ағын» түсінігіне процессордың бір командадан келесі бір командаға ауысу тізбегі сәйкес келеді. Операциялық жүйе процессорлық уқаытты ағындар арасында бөліп береді. Ал процесске оның барлық ағындары бірігіп жұмыс істейтін адрестік кеңістік пен ресурстар жиынытығын жүктейді.

Процесстер мен ағындарды құру

Процессті құру – бұл бәрінен бұрын процессті сипаттаушыны, яғни операциялық жүйеге процессті басқару үшін керек мәліметтерді қамтитын бір немесе бірнеше ақпарраттық құрылымдарды құру дегенді білдіреді. Мұндай мәліметтер қатарына процессордың идентификаторы, орындаушы модульдың жадыда орнласуы туралы деректер, т.б. жатады. Процесстерді сипаттаушылар мысалына, есептерді басқару блогын (OS/360), процесс блогын басқарушыны (OS/2), процесс скрипторын (UNIX), объект-процессті (Windows NT) келтіруге болады.

Процессті сипаттаушыны құру өзімен бірге жүйеде ресрустарға таласушылардың тағы бірінің пайда болуына әкеледі. Осы сәттен бастап ресурстарды үлестіру барысында операциялық жүйе жаңа процесстің талаптарын ескеруі керек.

Процессті құру берілген процесстің орындаушы программасының кодтары мен деректерінің дискіден оперативті жадыға көшірілуін қамтиды. Бұл үшін операциялық жүйе орындаушы программаның кодтары мен деректерінің дискідегі орнын анықтап, оперативті жадыны үлестіруді қайтадан орындай отырып жаңа процесстің орындаушы программасына орын бөлуі керек. Виртуалды жадылы жүйелерде алғашқы сәтте процесстің кодтары мен деректерінің тек бір бөлігі ғана жүктеледі де, қалғандары тек қажет жағдайда ғана көшіріліп отырады.

Көпағынды жүйеде процессті құру барысында операциялық жүйе әр процесс үшін кемінде бір ағын құрады. Ағындарды құру барысында операциялық жүйе тура процессті құрғандағыдай ағынның жағдайын, деректері мен басымдылығын, т.б басқа мәліметтерден тұратын ағын идентификаторын қамтитын ағынды сипаттаушыларды құрылады. Негізгі жағдайда ағын (немесе ағын анықталмайтын жүйелерде процесс) тоқтатылған күйде болады. Ағынды оырнаудға таңдау сәті берілген жүйеде қабылданған процессорлық уақытты бөлу ережесін және сол сәттегі барлық ағындар мен процесстерді ескерумен жүргізіледі.

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

Процесс (есеп)- абстракция орындайтын програмалары бейнелеуі процессін бсақарудың ішкі жүйесі процесстің орындалуын жоспарлайды, яғни жүйеде бір уақытта орындалатын процесстер арасында процессор уақытын бөледі. Процесстерді құрады және өшіреді процесстері қажетті жүйелік ресурстарын қамтамасыз етеді. Процесстер арасында әрекеттестікті қолдайды.

Көп процессорлық жүйеде процесс кеңесі үш негізгі жағдайдың бірінде болуы мүмкін:

    1. орындау – процесстің активті жағдайы;

    2. күту – процесстің пасивті жағдайы процеске тиым салынған қандай да бір ішкі себебке байланысты орындала алмайды. Кей жағдайдың орындалуын күтеді.

Мысалы: Енгізу-шығару – операциясының аяқталуының басқа процестің хабарлама алуын қажет ресурстарының босатылуын.

3. дайындық - процестің пасивті жағдайы бұл жағдайда сыртқы жағдайлар әсерінен тиым салынған. Процесс орындалуына қажетті ресурстар бар. Бірақ процессор басқа процесстермен айналысуда.

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

Процесс, идентификатор, процесс күш, процессорының үстемділігі туралы мәлімет, кодтық сигмент орналасқан орын және тағы басқа мұндай ақпаратты процесстерінің дескрипторын деп аталады.

Программалық код орындалу үшін оған АЖ процесін құру керек. Процесс құру дегеніміз –

1. процессті сипаттайтын ақпараттық құрылым құру, яғни прлоцесстің контексті және дескрипторын құру;

2. жаңа процесстің дескрипторын дайын процесстерін кезегіне қосу;

3. процесстің кодтық сегментін оперативті жадқа немесе свопинг аймағына жүктеу.

Процесстерді жоспарлау алгоритмдері

Процесстерді жоспарлау келесі есептер шешімінен тұрады:

    1. орындалып жатқан процессті ауыстыру үшін уақыт моментін анықтау

    2. дайын прооцесстер кезенінен орындалатын процессті таңдау

    3. «ескі» және «жаңа» процесстің контекстік ауыстыру.

Процессті жоспарлау үшін алгоритмнің екі тобын қолданады:

А) кванттауға негізделген алгоритмдер

Б) үстемділікке негізделген алгоритмдер.

Кванттауға негізделген алгоритм бойынша әр бір процесстеріне квантауға уақыт бөлінуі. Екпіндік процесс ауысуы келесі жағдайларда болады:

  1. процесс аяқтау

  2. қате пайда болуы

  3. процесс күту жағдайларына көшу

  4. осы процесске берілген процессорлар уақыт кванты бітіріледі.

Өз квантын бітірген процесс дайындық жағдайына көшеді. Жаңа квант берілуін күтеді. Процессте бөлінген уақыт кванты барлық процесске бірдей немесе әртүрлі болуы мүмкін. Бір процесске берілген квант тұрақты шама немесе процесстің әр кезенінде әртүрлі болуы мүмкін.

Дайын процессор кезегі әртүрлі тәсілмен ұйымдастырылады: циклдік, кезек, стек бойынша.

Кезек – «бірінші кеиді бірінші орындалды»»fifo

Стек –«бірінші кеиді соңғы кетті» lifo

« соңғы кеиді бірінші орындады.» lifo

Үстемділік – бұл бүтін немесе бөлшек оң немесе теріс мәңді сан болуы мүмкін. Үстемділікке негізгізделген алгоритмдер процесс привигиясына сүйенеді.

. Процесстің үстемділігі неғұрлым жоғары болса соғұрлым кезекте аз уақыт тұрады. Үстемділікте негізделген алгоритмнің екі түрі болады:

  1. салыстырмалы үстемділік

  2. абсолютті үстемділік қолданылған (үстемділік) процесінің үстемділігі маңыздылығына байланысты жүйенің администраторы тағайындалған жағдайында немесе АЖ белгілі ережелер бойвнша өзі есептейді. Үстемділік процесс жүзінде тұрақты немесе кейбір заңға өзгеруі де мүмкін. Процесстерді жоспарлау екі түрге бөлінеді: 1) ығыстыратын; 2) ығыстырмайтын.

Процесстің өзара әрекеттестігі және синхронизациялау құралдары

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

Мысалы: файлдарды қағазға басу процессін қарастырайық

Бұл процессті жүзеге асыратынпрограма арнайы заказдар фаилға басқа програмалар жазатын фаилдар атауларын ың тізімі бойыша фаилды , қағазға басады. Next айнымасына жазу үшін дайын бірінші фаилының аталуын сақтайды. Сигмент процессте осы айнымасына оқып тапсырыс файлдық сәйкес позициясына өз фаилының атауын жазады.Next айнымасының мәнін бірге арттырады. Айталық кейбір уақыт моментінде R процесі Next кейбір уақыт моментінде айнымалысының мәнін оқып тапсырар файлына өз файлының атауын орнатып үлгерген жоқ. Next = 4 дейік R процессі 4 деген мәнді оқиды. Уақыт кванты жетпеген себептен екі процессі керекті әрекетті орындап үлгермеді, S процесі кезекті Next айнымалысының мәнің оқыды. Next = 4 және тапсырыс файлға өз файлының атауын орналастырып Next айнымалысының мәнін бірге арттыру. Екінші процессіне басқару берілгенде өз файлының атауын төрт позицияға жазады. S процесін файлы еш қашан қағазға басылып шығарылмайды. Процесстерді синхронизациялау проблемасының күрделігі пайда болатын жағдайларының бір келкі еместігінде. Бір уақытта екі немесе бірнеше процесстер бөлінетін берілгендерді (олар ортақ берілгенді) өңдегенде және соңғы нәтиже осы процесстің жылдамдықтығының қатынасына тәуелді болса мұндай жағжайлар гонка деп аталады. Процесстерді синхронизациялау негізгі түсінігі критикалық сексия. Критикалық сексия бұл бөлінетін берілгендерге қатынастыру жүргізілетін программаның бөлігі кейбір ресурске жарыс эффектісін болдырмау үшін осы ресурспен байланысқан критикалық сексияда әрбір уақыт мезгілінде тек біо процесс болуын қамтамасыз ету қажет. Бұл тәсіл өзара (взаимная исключения) болдырмау қамтамасыз етудің қарапайым тәсілі критикалық сексиядағы процесске үзулерді болдырмауды рұқсат ету. Келесі әдіс – тиым салу айнымалысын қолдану. Әрбір бөлінетін ресурспен екілік айнымалы байланысы рның мәні бірге тең, егер ресурс бос болса мәні 0-ге тең ресурс басқа процессін қолданса синхронизациялауда matn бір проблема бар бұл өзара тиым салу (взаимные блокировки) немесе (pet clock) дедлогтар (deadlockes), клинчтер (clinch), тығырықтар (тупик)

Кейбір жағдайда екі процесс бір-біріне өзара тиым салуы мүмкін. Осы процесстердің жылдамдықтарының қатынасына байланысты, олар бөлінетін ресурстарды бір-біріне тәуелсіз қолдануы мүмкін немесе бөлінетін ресурстарға кезек құруы мүмкін осы процестердің жылдамдылығына байланысты олар бөлінетін ресурстарды бір-біріне тәуелсіз қолдануы мүмкін немесе бөлінетін ресурстарға кезек құруы мүмкін.Бөлінетін ресурстар тәуелсіз пайдалану.

Бөлінетін ресурстардың тупик жағдайы.

Процесс А

А1. принтерді қолдану

А2. дискті пайдалану

А3. принтерді босату

А4. дискті босату

Процесс В

В1. дискті пайдалану

В2. принтерді пайдалану

В3. дискті босату

В4. принтерді босату

Тупиктер проблемасы жазу барысында болдырмауға болады.Бос емес ресурстарда ресурстарды болу және сұраныс кестелерін құруға негізделген тупиктерін алдын ала тану програмалық әдістері бар.

Жіптер

Әр бір процестің өз вертуалдық адрестік кеңістігі бар. Әр бір процесске –з ресурстары файлдар6 терезелер6 семафорлар тағайындалады, мұндай бөліну 1 процесті 2-шісінен қорғау үшін керек. Себебі олармашинаның ресурстарын ортақ пайдаланып бір-бірімен бәсекелеседі. Жалпы жағдайда процестер әр түрлі қолданушынікі болады. Сондықтан АЖ ресурстарға таласта орбитор рөлін атқарады. Тиым салу айнымалысының бірі ДИЙКСТР семофорлары болады. Бұл айнымалар бүтін теріс емес мәндер қабылдайды және есептеу процесін синхронизациялау үшін қолданылады.Мьютекс (matex ) семофор сияқты тиым салу айныманың бірі және берілгнедерге қатынасуды басқару үшін қолданылады.Семофорлар мьютекті таймерді оқиғаларды операциялық жүйенің синхронизациялау обекпир деп те аталады. Мультипрограммалауда- жүйенің процестерді орындау мүмкіндігі жоғарылайды, бірақ жеке процес 1 програма режимді орындалғаннан тез отындалмайды. Сонымен қатар бір процес шешілетін есеп ішкі паралелум қасиетіне ие болып жылдам орындалуы мүмкін мысалы; егер есепті шешу барсында сыттқы қүрылғыға қатынас болса бұл операциялық орындалу уақытында процестер орындалу уақытында процестің басқа бұтағын орындауды жалғастыруға болады. Осындай мақсаттар үшін қазіргі заманға операциялық жүйелері көп жіптік өңдеу multithreading көптіктің өңдеу механизмді қолданады.Жіптер өзіндік програмалық санауыш stek, регистр,қалып күй ұрпақ жіптерге ие болады. Көп есептік өңдеуге қарағанда жүйенің жұмыс істеуін жоғарлатады.

Негізгі әдебиет: [1-7]

Қосымша әдебиет: [8-18]