Popcorn disvolvas distribuan fadenan ekzekutsistemon por la Linukso-kerno.

Virginia Tech sugestis por diskuto de Linuksaj kernaj programistoj, aro de flikoj kun la efektivigo de distribuita fadena ekzekutsistemo Popcorn (Distribuita Thread Execution), kiu ebligas organizi la ekzekuton de aplikoj en pluraj komputiloj kun la distribuo kaj travidebla migrado de fadenoj inter gastigantoj. Kun Popcorn, aplikoj povas esti lanĉitaj sur unu gastiganto kaj tiam movitaj al alia gastiganto sen interrompo. En plurfadenaj programoj, migrado de individuaj fadenoj al aliaj gastigantoj estas permesita.

Male al la projekto CRIUPermesante ke proceza stato estu konservita kaj ekzekuto rekomencita en alia sistemo, Popcorn provizas senjuntan kaj dinamikan migradon inter gastigantoj dum aplikaĵekzekuto, postulante neniun uzantan agon kaj certigante virtualan memorkonsekvencon tra ĉiuj gastigantoj kurantaj samtempajn fadenojn.

Pufmaizo programaro stako formo flikiloj al la Linukso-kerno kaj la biblioteko kun testoj montrantaj kiel Popcorn-sistemvokoj povas esti uzataj por migri fadenojn en distribuitaj aplikoj. Sur la kernnivelo, etendaĵoj al la virtuala memorsubsistemo estis proponitaj kun la efektivigo de distribuita komuna memoro, kio permesas al procezoj sur malsamaj gastigantoj aliri oftan kaj konsekvencan virtualan adresspacon. Virtuala memorpaĝa kohereco estas certigita per protokolo kiu reproduktas memorpaĝojn al la gastiganto kiam ili estas legitaj kaj nuligas memorpaĝojn kiam skribite.

Interago inter gastigantoj estas aranĝita uzante kern-nivelan prizorganton por mesaĝoj elsenditaj per TCP-ingo. Oni rimarkas, ke TCP/IP estas uzata por simpligi sencimigon kaj testadon dum la evoluprocezo. Programistoj komprenas, ke de sekureco kaj rendimento perspektivo, TCP/IP ne estas la plej bona maniero transdoni la enhavon de kernaj strukturoj kaj memorpaĝoj inter gastigantoj. Ĉiuj gastigantoj rulantaj distribuitaj aplikoj devas havi la saman nivelon de fido. Post stabiligo de la ĉefaj algoritmoj, pli efika transportmaniero estos uzata.

Popcorn evoluas ekde 2014 kiel esplorprojekto por studi la eblecojn krei distribuitajn aplikaĵojn, kies fadenoj povas esti ekzekutitaj sur malsamaj nodoj en heterogena komputiksistemoj kiuj povas kombini kernojn bazitajn sur malsamaj instrukciaj arkitekturoj (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). La aro de flikaĵoj proponitaj al Linuksaj kernaj programistoj nur subtenas ekzekuton sur gastigantoj kun x86 CPU, sed ekzistas ankaŭ pli funkcia versio de Popcorn Linux, kiu permesas al aplikoj funkcii sur gastigantoj kun malsamaj CPU-arkitekturoj (x86 kaj ARM). Por uzi Popcorn en heterogenaj medioj, vi devas uzi specialan kompililo surbaze de LLVM. Kiam vi funkcias distribue sur gastigantoj kun la sama arkitekturo, rekonstruado per aparta kompililo ne estas bezonata.

Popcorn disvolvas distribuan fadenan ekzekutsistemon por la Linukso-kerno.

Krome oni povas rimarki anonco iom simila projekto Teleforko kun la efektivigo de komenca prototipa API por lanĉado de infanprocezoj sur aliaj komputiloj en la areto (kiel fork(), sed transdonas la forkigitan procezon al alia komputilo).
La kodo estas skribita en Rust kaj ĝis nun nur permesas klonadon de tre simplaj procezoj, kiuj ne uzas sistemajn rimedojn kiel dosierojn. Kiam teleforkvoko estas farita, memoro kaj procez-rilataj strukturoj estas klonitaj al alia gastiganto prizorganta la serviltraktilon (telepad). Uzante ptrace, la memorreflektado de procezo estas seriigita kaj, kune kun la stato de la procezo kaj registroj, transdonita al alia gastiganto. La API ankaŭ permesas vin konservi procezan staton al dosiero kaj restarigi ĝin per ĝi.

fonto: opennet.ru

Aldoni komenton