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


Кажиакпарова Жадыра Сериковна

Батыс Қазақстан инновациялық – технологиялық университетінің

«Жаратылыстану ғылыми пәндер» кафедрасының доценті, п.ғ.к.

 

Қазіргі бізді қоршаған дүние –компьютерлер мен ақпараттың әлемі. Компьютерлік индустрия –экономиканың ең тез дамушы секторы, оның алға басуы жуық арада тоқтамақ емес. Қатаң бәсекелестік белең алған заманда жекелеген адамдардың, компаниялардың ғана емес, тұтас елдердің табысқа жетуі ақпараттық технологиялар даму деңгейіне, ғылыми ойдың жетістіктеріне және перспективалы инженерлік шешімдерге байланысты. Ақпараттық технологиялардың мамандары қазіргі кезде бүкіл жерде қажет: ғылымда, экономикада, білім саласында, медицинада, мемлекеттік және жеке компанияларда. Мәліметтерді талдау, болжамдау, байланысты ұтқыр ұйымдастыру, бағдарламалық қамтуды құру, үрдістер модельдерін орнату – компьютер мамандарының білімін талап ететін салалардың тізімінің бұл бір қыры ғана.

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

Үрдістерге бірлескен әрекеттер не үшін керек? Оларды біріктірудің себептері қандай?

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

· Деректерді бірлесіп қолдану. Мысалы, әртүрлі үрдістер бір өзгермелі деректер қорымен немесе бөлінетін файлмен олардың мазмұнын бірлесіп өзгерту арқылы жұмыс істей алады .

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

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

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

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

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

· Сигналдық. Ең шағын көлемдегі ақпарат беріледі –бір бит, «иә» немесе жоқ. Әдетте, бір оқиғаның басталғаны туралы хабарлау туралы қолданылады. Ақпаратты алатын үрдіске ықпалы өте төмен. Бәрі ол үрдістің алынған ақпаратқа қатысты қалай жауап қатып, оны қалай түсінетініне байланысты. Сигналға дұрыс жауап қатпау немесе оған мүлдем назар аудармау үлкен қателіктерге апарып соқтырады.

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

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

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

Буферлеу

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

1) Буфер жоқ немесе сыйымдылығы нөлге тең. Байланыс желісінде ешқандай ақпарат сақтала алмайды. Бұл жағдайда ақпаратты жөнелтуші үрдіс екінші үрдіс оның ақпаратын қабылдап алғанша басқа істерін орындай алмайды.

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

3) Сыйымдылығы шектеусіз буфер. Теория тұрғысынан мүмкін болғанымен, іс жүзінде орындалуы өте қиын. Ақпаратты жөнелтуші үрдіс жөнелту аяқталғанша және ақпаратты екінші үрдіс қабылдап алғанша ешқашан күтіп тұрмайды.

Жанама жөнелтудің байланыс арналарын қолданған кездегі буфердің сыйымдылығы дегеніміз –мәліметтерді сақтауға арналған аралық нысанға орналастырылатын ақпарат көлемі.

Енгізу/шығару ағымы және хабарламалар
Байланыс арналары бойынша мәліметтерді жөнелтудің екі үлгісі бар –енгізу-шығару ағымы мен хабарламалар. Ағымдық үлгі бойынша мәліметтерді жөнелту кезінде ақпаратты жөнелту/қабылдау операциялары мәліметтердің мазмұнына қызығушылық танытпайды. Байланыс желісінен 100 байтты оқып-шыққан үрдіс олардың бір мезгілде берілгені туралы ештеңе білмейді, яғни олардың бір кесекпен немесе 20 байттық мөлшерлемемен берілгені, бір үрдістен немесе әртүрлі үрдістерден келгені туралы ештеңе білмейді. Байттар ағымы түрінде келген мәліметтерге жүйе тұрғысынан ешқандай түсіндіру жасалмайды. Ағымдық байланыс құралдарына мысал ретінде төменде сипатталатын pipe мен FIFO-ны келтіруге болады.

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

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

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

Ағымдық байланыс желілері мен хабарламалар арналарының буферінің ұзындығы шектеулі болады. Мәліметтер ағымына арналған буфердің сыйымдылығы туралы айтқанда, біз оны байттармен өлшейміз. Ал хабарламаларға арналған буфердің сыйымдылығы хабарламалармен өлшенеді.

Байланыс қалай аяқталады?

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

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

Қойылған мақсатқа жету үшін үрдістер бір есептеуіш жүйеде жалған параллель түрде немесе бірнеше есептеуіш жүйеде параллель түрде өзара әрекеттесе отырып, орындалады. Үрдістердің бірлескен іс-әрекетінің себептері мынадай болуы мүмкін: міндетті тез шешудің қажеттігі, жаңартылатын мәліметтерді бірлесіп қолдану, жұмыстың қолайлылығы немесе бағдарламалық кешендерді құрудың модульдық қағидаты. Ақпарат алмасу арқылы бір-біріне ықпал ететін үрдістер біріккен немесе өзара әрекеттесуші деп аталады. Олардан тәуелсіз үрдістердің айырмашылығы –олар бір-біріне ықпал ете алмайды және бір-бірінің бар екенін де білмейді.

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

Дәстүрлі операциялық жүйе аясында міндетті шешуді жеделдету арқылы «үрдіс» ұғымының ішінде жаңа абстракция –орындау желісі немесе жай ғана желісі пайда болды. Үрдістің желістері оның бағдарламалық кодын, жаһандық айнымалыларын және жүйелік ресурстарды бөліп алады, бірақ әр желістің өзіндік бағдарламалық есептегіші, регистрлері және жиылымы болады. Енді үрдіс өзара әрекеттесуші желістер мен оларға бөлінетін ресурстардың жиынтығы болып табылады. желістер өзінің үрдісі аясында жаңа желістерді туындатып, операциялық жүйемен бір күйден екінші күйге келтіріледі. Желістерін өзек деңгейінде қолдайтын операциялық жүйелерде процессорды қолдануды жоспарлау орындау желістері терминдерінде жүзеге асырылып, қалған жүйелік ресурстарды басқару үрдістер терминдерінде орындалады. Жаңа желісті құру мен конмәтінді ауыстыруға жұмсалатын шығындар үрдістерде сол операцияларды орындауға жұмсалатын шығындардан әлдеқайда аз, бұл бір процессорлы есептеуіш жүйеге бірнеше өзара әрекеттесуші желістердің жұмысын ұйымдастыру арқылы міндетті шешуді жеделдетуге мүмкіндік береді.

 

Әдебиеттер:

 

 

1.    Карпов,  В.Е.Основы операционных систем /  В.Е.Карпов,  К.А.Коньков. Учебное пособие. Москва, 2004.

2.  Бекон Д., Харрис Т. Операционные системы: Параллельные и распределенные системы: Перевод с английского. – Питер, 2004.

3.  Карпов А.Е. Основы операционных систем. – Интуит, 2004.

 

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *