КӨПАҒЫНДЫҚ ПРОГРАММАЛАУ НЕГІЗДЕРІ.
АҒЫНДЫ ҚҰРУ ЖӘНЕ ІСКЕ ҚОСУ. JOIN, SLEEP
ӘДІСТЕРІ.
«ПРОГРАММАЛАУ ТЕХНОЛОГИЯЛАРЫ» ПӘНІ
ЛЕКТОР: АБДРАХМАНОВА М.Б.
МАҚСАТЫ ЖӘНЕ МІНДЕТТЕРІ
Дәрістің мақсаты: Студенттерде көпағындық программалау негіздерін түсіну
дағдыларын қалыптастыру.
Дәрісті меңгеру нәтижесінде студенттер келесі қабілеттерге ие болады:
Көпағындық программалаудың қызметін түсіну;
Ағынды құруға және іске қосуға арналған командаларды білетінін көрсету;
Join, Sleep әдістерінің синтаксисі мен қызметін түсіну.
КӨПАҒЫНДЫҚ ПРОГРАММАЛАУ
Көпағынды программа қатар орындалатын екі және одан да көп бөліктен тұрады.
Мұндай программаның әрбір бөлігі ағын деп аталады командаларды орындаудың жеке
жолын анықтайды.
Көпағынды программалау
С# тілінің өзінде қарастырылған бірқатар құралдарға,
сондай-ақ .NET Framework ортасында анықталған кластарға сүйенеді.
.NET Framework ортасының 4.0 нұсқасында көпағындық қосымшаларға қатысты 2
толықтыру енгізілді: TPL (Task Parallel Library - Тапсырмаларды параллельдеу
кітапханасы) және PLINQ (Parallel LINQ - Интеграцияланған сұраулардың параллель
тілі).
КӨПАҒЫНДЫҚ ПРОГРАММАЛАУ
TPL
артықшылықтарына қарамастан, бастапқы көпағындық жүйені қолданудың
себептері:
Көпағынды өңдеудің алғашқы тәсілін пайдаланып жазылған біраз код мөлшері
қолданыста бар.
TPL негізіндегі дайындалған код құрамында алғашқы көпағындық жүйенің элементтері
қолданылуы мүмкін, мысалы, синхронизациялау құралдары.
TPL кітапханасы тапсырма абстракциясына сүйенетін болғанына қарамастан, оның түп
негізінде ағындық құралдар жатыр.
КӨПАҒЫНДЫҚ ӨҢДЕУ
Көптапсырмалықтың 2 түрі ажыратылады: процестер негізінде және ағындар негізінде.
Процесс іс жүзінде атқарылатын программаны білдіреді. Сондықтан процестер
негізіндегі көптапсырмалық – компьютерде екі немесе одан артық программаны
параллель орындауға мүмкіндік беретін құрал. Бұл жағдайда тапсырмалар
жоспарлаушы құралдың басқара алатын ең кіші код бірлігі программа болады.
Ағын атқарылатын кодтың басқарылатын бірлігін білдіреді. Ағындар негізіндегі
көптапсырмалықты ұйымдастыру жағдайында әрбір процестің кемінде бір ағыны
болуы тиіс, ағындар одан артық болуы да мүмкін. Яғни, бір программада бір уақытта
екі немесе одан артық тапсырма орындалуы мүмкін.
КӨПАҒЫНДЫҚ ӨҢДЕУ
Көпағынды өңдеудің басты артықшылығы: программа жұмысы барысындағы бос тұру
уақытын тиімді пайдалану.
Ағын күйлері:
атқарылып жатқан ағым;
орындалуға әзір – орталық процессор уақыты мен ресурстарын күтуде;
тоқтатылған – уақытша атқарылмайтын;
қайта жалғастырылған;
бұғатталған – өзінің орындалуы үшін ресурстар күтуде;
аяқталған – жұмысының орындалуы аяқталды және қайта жалғастырылуы мүмкін
емес.
КӨПАҒЫНДЫҚ ӨҢДЕУ
.NET Framework ортасында ағынның екі түрі анықталған: басымдылықты (келісім
бойынша) және фондық. Фондық ағынның процесіндегі барлық басымдылықты
ағындар тоқтатылған болса, фондық ағын да автоматты түрде аяқталады.
Барлық процестердің құрамында кемінде бір ағын болады, ол негізгі деп аталады.
Программаның орындалуы осы ағыннан басталады. Негізгі ағыннан басқа ағындарды
құруға болады.
Көпағындық программалауды қолдайтын кластар System.Threading атаулар кеңістігінде
анықталған.
using System.Threading;
Достарыңызбен бөлісу: |