Кіріспе
Бір мезгілде жұмыс істейтін жүйелерді модельдеу тәсілдерінің отбасы. Компьютер ғылымында процесс есептеулері (немесе процесс алгебралары) – бір мезгілде жұмыс істейтін жүйелерді формалды түрде модельдеуге арналған байланысты тәсілдердің әртүрлі отбасы. Процесс есептеулері тәуелсіз агенттер немесе процестер жиынтығы арасындағы өзара әрекеттесулерді, байланыстарды және синхрондауды жоғары деңгейде сипаттау құралын ұсынады. Олар сонымен қатар процесс сипаттамаларын өңдеуге және талдауға мүмкіндік беретін алгебралық заңдарды ұсынады, сондай-ақ процестер арасындағы эквиваленттілік туралы формалды түрде ойлауға мүмкіндік береді (мысалы, бисимуляция қолдану арқылы). Процесс есептеулерінің негізгі мысалдары: CSP, CCS, ACP және LOTOS. Отбасыға жақында қосылғандарға π-есептеуі, орта есептеуі, PEPA, біріктіру есептеуі және қосылу есептеуі кіреді.
In computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems. Process calculi provide a tool for the high level description of interactions, communications, and synchronizations between a collection of independent agents or processes. They also provide algebraic laws that allow process descriptions to be manipulated and analyzed, and permit formal reasoning about equivalences between processes (e. g., using bisimulation). Leading examples of process calculi include CSP, CCS, ACP, and LOTOS. More recent additions to the family include the π calculus, the ambient calculus, PEPA, the fusion calculus and the join calculus.
Параллель құрам
Екі процестің параллель композициясы, және әдетте жазылады, процестік есептеулерді есептеудің реттік модельдерінен ерекшелендіретін негізгі элемент болып табылады. Параллель композиция процестердегі есептеулердің бір уақытта және тәуелсіз түрде жүруін қамтамасыз етеді. Бірақ ол сонымен қатар өзара әрекеттесуге, яғни екі процеске ортақ арна арқылы синхронизацияға және ақпарат алмасуға (немесе керісінше) мүмкіндік береді. Маңыздысы, агент немесе процесс бір уақытта бірнеше арнаға қосылуы мүмкін. Арналар синхронды немесе асинхронды болуы мүмкін. Синхронды арнада хабар жіберген агент, басқа агент хабарды алғанша күтеді. Асинхронды арналар мұндай синхронизацияны қажет етпейді. Кейбір процестік есептеулерде (әсіресе π-есептеуінде) арналардың өзі (басқа) арналар арқылы хабарлармен бірге жіберілуі мүмкін, бұл процестер арасындағы байланыстардың топологиясын өзгертуге мүмкіндік береді. Сондай-ақ, кейбір процестік есептеулер есептеу орындалу барысында арналар құруға мүмкіндік береді.
Байланыс
Қарым-қатынас ақпараттың бағытталған ағыны болуы мүмкін (бірақ міндетті емес). Яғни, кіріс және шығыс екі жақты өзара әрекеттесу примитивтері ретінде ажыратылуы мүмкін. Мұндай айырмашылықты жасайтын процесс калькулдары әдетте кіріс операторын (мысалы, ) және шығыс операторын (мысалы, ) анықтайды, олардың екеуі де өзара әрекеттесу нүктесін (мұнда ) атайды, ол екі жақты өзара әрекеттесу примитивтерімен синхрондау үшін қолданылады. Ақпарат алмасылса, ол шығарушы процестен кіріс процесіне ағып өтеді. Шығару примитиві жіберілетін деректерді көрсетеді. Егер кіріс деректерді күтіп отырса, бір немесе бірнеше байланыстырылған айнымалылар деректер келген кезде олардың орнына қойылатын орын бағдаршалары ретінде әрекет етеді. Бұл рөлді атқарады. Өзара әрекеттесуде алмастырылатын деректердің түрін таңдау – әртүрлі процесс калькулдарының арасын ажырататын маңызды ерекшеліктердің бірі болып табылады.
Кезектілік құрамы
Кейде өзара әрекеттесулер уақыт бойынша реттелген болуы керек. Мысалы, мынадай алгоритмдерді көрсету қажет болуы мүмкін: бірінші деректерді қабылдау, содан кейін оларды жіберу. Мұндай жағдайларда реттік құрастыру қолданылуы мүмкін. Бұл басқа есептеу модельдерінен де белгілі. Процесс есептеулерінде реттілік операторы көбінесе кіріс немесе шығыс, немесе екеуімен де біріктіріледі. Мысалы, процесс кіріс күтеді. Тек осы кіріс орын алғанда ғана процесс белсендіріледі, ал алынған деректер идентификатордың орнына қойылады.
Жасыру
Процестер берілген өзара әрекеттесу нүктесінде құрылатын байланыстардың санын шектемейді. Бірақ өзара әрекеттесу нүктелері кедергілерге (яғни өзара әрекеттесуге) мүмкіндік береді. Ықшам, минималды және құрастырмалы жүйелерді синтездеу үшін кедергілерді шектеу қабілеті маңызды. Жасыру операциялары агенттерді параллель құрастыру кезінде өзара әрекеттесу нүктелері арасындағы байланыстарды басқаруға мүмкіндік береді. Жасыру түрлі тәсілдермен белгіленуі мүмкін. Мысалы, π-есебінде атаудың жасырылуы арқылы көрсетіледі, ал CSP-де оны деп жазуға болады.
synthesis of compact, minimal and compositional systems, the ability to restrict interference is crucial. Hiding operations allow control of the connections made between interaction points when composing
agents in parallel. Hiding can be denoted in a variety of ways. For example, in the π calculus the hiding of a name in can be expressed as , while in CSP it might be written as .
Қайталану және қайталау
Осыған дейін ұсынылған операциялар тек шекті өзара әрекеттесуді ғана сипаттайды, сондықтан толық есептеуге жеткіліксіз, ол аяқталмайтын мінез-құлықты қамтиды. Рекурсия және репликация – шексіз мінез-құлықты шекті түрде сипаттауға мүмкіндік беретін операциялар. Рекурсия жүйелі әлемде жақсы белгілі. Репликацияны процестердің санауға келмейтін санының параллель құрамын қысқарту ретінде түсінуге болады.
Нөлсіз процесс
Процесс калькуляцияларында, әдетте, өзара әрекеттесу нүктелері жоқ нөлдік процесс (әртүрлі , , , немесе басқа да сәйкес символмен белгіленеді) болады. Ол толығымен белсенді емес және оның жалғыз мақсаты – индуктивті негіз ретінде қызмет ету, осы арқылы қызықты процестер құруға болады.
Дискрет және үздіксіз процесс алгебрасы
Процесс алгебрасы дискретті уақыт және үздіксіз уақыт (шынайы уақыт немесе тығыз уақыт) үшін зерттелген.
Тарих
20 ғасырдың бірінші жартысында, есептелетін функцияның бейресми түсінігін қамтитын әртүрлі формализмдер ұсынылды, соның ішінде μ-рекурсивті функциялар, Тьюринг машиналары және лямбда-есептеуі бүгінгі таңда ең белгілі мысалдар болып табылады. Олардың бір-біріне кодтала алатындығы, яғни негізінен тең екендігі – таң қалдыратын факт, ол Черч-Тьюринг тезисін қолдайды. Тағы бір ортақ ерекшелік жиі талқыланбайды: олардың барлығы тікелей есептеу модельдері ретінде түсінілуі оңай. Компьютер ғылымының кейінгі дамуы есептеу ұғымын нақтырақ тұжырымдауды қажет етті, әсіресе бірмезгілділік пен байланыстың нақты бейнелеуін. Осы зерттеулер нәтижесінде процесс калькули, 1962 жылғы Петри торы және 1973 жылғы актерлік модель пайда болды. Процесс калькули бойынша зерттеулер Робин Милнердің 1973-1980 жылдар аралығындағы «Коммуникациялық жүйелер есептеуі» (CCS) жұмысымен басталды. К.А.Р. Хоардың «Коммуникациялық тізбекті процесс» (CSP) алғаш рет 1978 жылы жарияланды, ал 1980-жылдардың басында толыққанды процесс калькулусына айналды. CCS және CSP даму барысында идеялардың белсенді алмасуы болды. 1982 жылы Ян Бергстра және Ян Виллем Клоп өздерінің жұмысын сипаттау үшін «Коммуникациялық процестер алгебрасы» (ACP) терминін енгізіп, процесс алгебрасы терминін қолданды, бірақ ол қоршаған орта есептеуінен кем. Биологиялық жүйелерді модельдеу үшін процесс калькули қолданылады (стохастикалық π-есептеуі, BioAmbients, Beta Binders, BioPEPA, Brane есептеуі). Кейбір ғалымдар процесс теориялық құралдары ұсынатын композициялық қасиеттер биологтарға өз білімдерін формальды түрде ұйымдастыруға көмектеседі деп санайды.
Басқа бір мезгілде жұмыс істеу үлгілерімен қатынасы
Тарих моноиды – жеке қарым-қатынас процестерінің тарихын жалпылай бейнелей алатын еркін нысан. Процесс калькулі – бұл тарих моноидына үйлесімді түрде налаган формальды тіл. Яғни, тарих моноиды синхрондау арқылы оқиғалардың тізбесін ғана тіркей алады, бірақ рұқсат етілген күйлерге өтуді анықтай алмайды. Осылайша, процесс калькулі тарих моноиды үшін формальды тіл еркін моноид үшін не нәрсе болса, сондай. (Формальды тіл – Клейне жұлдызы арқылы туындаған әліпбидің барлық мүмкін шекті ұзындықтағы тізбектері жиынының ішкі жиыны.) Байланыс арналарын пайдалану – процесс калькулілерін Петри желілері және актерлік модельдер сияқты басқа бір мезгілдестік модельдерінен ажырататын маңызды ерекшеліктердің бірі (Актерлік модель және процесс калькулілеріне қараңыз). Процесс калькулілеріне арналарды қосудың негізгі себептерінің бірі – белгілі бір алгебралық техникаларды қолдануға мүмкіндік беру болды, соның арқасында процестер туралы алгебралық тұрғыдан ойлау оңайлады.