Popcorn po zhvillon një sistem ekzekutimi të thread-it të shpërndarë për kernelin Linux.

Virginia Tech ai ofroi për diskutim nga zhvilluesit e kernelit Linux, një grup arnimesh me zbatimin e një sistemi të ekzekutimit të fillesave të shpërndara Kokoshka (Distributed Thread Execution), i cili ju lejon të organizoni ekzekutimin e aplikacioneve në disa kompjuterë me shpërndarjen dhe migrimin transparent të temave midis hosteve. Me Popcorn, aplikacionet mund të hapen në një host dhe më pas të zhvendosen në një host tjetër pa ndërprerje. Në programet me shumë fije, lejohet migrimi i temave individuale te hostet e tjerë.

Ndryshe nga projekti CRIUDuke lejuar që gjendja e procesit të ruhet dhe ekzekutimi të rifillojë në një sistem tjetër, Popcorn siguron migrim të qetë dhe dinamik midis hosteve gjatë ekzekutimit të aplikacionit, duke mos kërkuar asnjë veprim nga përdoruesi dhe duke siguruar qëndrueshmëri të memories virtuale në të gjithë hostet që ekzekutojnë temat e njëkohshme.

Formulari i pirgut të softuerit të kokoshkave arna në kernel Linux dhe bibliotekë me teste që demonstrojnë se si thirrjet e sistemit Popcorn mund të përdoren për të migruar temat në aplikacionet e shpërndara. Në nivelin e kernelit, janë propozuar zgjerime në nënsistemin e memories virtuale me zbatimin e memories së përbashkët të shpërndarë, e cila lejon që proceset në hoste të ndryshëm të kenë akses në një hapësirë ​​​​të përbashkët dhe të qëndrueshme të adresave virtuale. Koherenca e faqeve të kujtesës virtuale sigurohet nga një protokoll që kopjon faqet e memories në host kur ato lexohen dhe zhvlerëson faqet e kujtesës kur shkruhet.

Ndërveprimi midis hosteve kryhet duke përdorur një mbajtës të nivelit të kernelit për mesazhet e transmetuara përmes një foleje TCP. Vihet re se TCP/IP përdoret për të thjeshtuar korrigjimin dhe testimin gjatë procesit të zhvillimit. Zhvilluesit e kuptojnë se, nga perspektiva e sigurisë dhe e performancës, TCP/IP nuk është mënyra më e mirë për të transferuar përmbajtjen e strukturave të kernelit dhe faqeve të kujtesës midis hosteve. Të gjithë hostet që ekzekutojnë aplikacione të shpërndara duhet të kenë të njëjtin nivel besimi. Pas stabilizimit të algoritmeve kryesore, do të përdoret një mënyrë transporti më efikase.

Popcorn është zhvilluar që nga viti 2014 si një projekt kërkimor për të studiuar mundësitë e krijimit të aplikacioneve të shpërndara, fijet e të cilave mund të ekzekutohen në nyje të ndryshme në heterogjene sisteme kompjuterike që mund të kombinojnë bërthama bazuar në arkitektura të ndryshme të grupeve të instruksioneve (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Seti i arnimeve të propozuara për zhvilluesit e kernelit Linux mbështet ekzekutimin vetëm në host me një CPU x86, por ekziston gjithashtu një version më funksional i Popcorn Linux, i cili lejon që aplikacionet të ekzekutohen në host me arkitektura të ndryshme CPU (x86 dhe ARM). Për të përdorur Popcorn në mjedise heterogjene, duhet të përdorni një speciale përpilues bazuar në LLVM. Kur ekzekutohet në mënyrë të shpërndarë në host me të njëjtën arkitekturë, rindërtimi me një përpilues të veçantë nuk kërkohet.

Popcorn po zhvillon një sistem ekzekutimi të thread-it të shpërndarë për kernelin Linux.

Përveç kësaj, mund të vërehet njoftimi projekt disi i ngjashëm Telefork me implementimin e një prototipi fillestar API për nisjen e proceseve fëmijë në kompjuterë të tjerë në grup (si fork(), por transferon procesin e forkuar në një kompjuter tjetër).
Kodi është i shkruar në Rust dhe deri më tani lejon vetëm klonimin e proceseve shumë të thjeshta që nuk përdorin burime të sistemit si skedarët. Kur bëhet një thirrje telefork, memoria dhe strukturat e lidhura me procesin klonohen në një host tjetër që drejton mbajtësin e serverit (telepad). Duke përdorur ptrace, pasqyrimi i kujtesës i një procesi serializohet dhe, së bashku me gjendjen e procesit dhe regjistrat, transferohet në një host tjetër. API gjithashtu ju lejon të ruani gjendjen e procesit në një skedar dhe ta rivendosni atë përmes tij.

Burimi: opennet.ru

Shto një koment