Popcorn razvija porazdeljeni sistem za izvajanje niti za jedro Linuxa.

Virginia Tech predlagal za razpravo razvijalcev jedra Linuxa, nabor popravkov z implementacijo sistema porazdeljenega izvajanja niti Popcorn (Distributed Thread Execution), ki omogoča organizacijo izvajanja aplikacij na več računalnikih z distribucijo in pregledno selitvijo niti med gostitelji. S Popcornom lahko aplikacije zaženete na enem gostitelju in jih nato nemoteno premaknete na drugega gostitelja. V večnitnih programih je dovoljena selitev posameznih niti na druge gostitelje.

Za razliko od projekta CRIUZ omogočanjem shranjevanja stanja procesa in nadaljevanjem izvajanja v drugem sistemu Popcorn zagotavlja brezhibno in dinamično selitev med gostitelji med izvajanjem aplikacije, pri čemer ni potrebno nobeno dejanje uporabnika in zagotavlja konsistentnost navideznega pomnilnika v vseh gostiteljih, ki izvajajo sočasne niti.

Obrazec sklada programske opreme Popcorn obliži v jedro Linuxa in библиотека s testi, ki prikazujejo, kako je mogoče sistemske klice Popcorn uporabiti za selitev niti v porazdeljenih aplikacijah. Na ravni jedra so bile predlagane razširitve podsistema navideznega pomnilnika z implementacijo porazdeljenega skupnega pomnilnika, ki procesom na različnih gostiteljih omogoča dostop do skupnega in doslednega navideznega naslovnega prostora. Skladnost strani navideznega pomnilnika je zagotovljena s protokolom, ki podvoji pomnilniške strani gostitelju, ko so prebrane, in razveljavi pomnilniške strani, ko so zapisane.

Interakcija med gostitelji se izvaja z uporabo upravljalnika na ravni jedra za sporočila, ki se prenašajo prek vtičnice TCP. Opozoriti je treba, da se TCP/IP uporablja za poenostavitev odpravljanja napak in testiranja med razvojnim procesom. Razvijalci razumejo, da z vidika varnosti in zmogljivosti TCP/IP ni najboljši način za prenos vsebine struktur jedra in pomnilniških strani med gostitelji. Vsi gostitelji, ki izvajajo porazdeljene aplikacije, morajo imeti enako raven zaupanja. Po stabilizaciji glavnih algoritmov bo uporabljen učinkovitejši način prevoza.

Popcorn se od leta 2014 razvija kot raziskovalni projekt za preučevanje možnosti ustvarjanja porazdeljenih aplikacij, katerih niti se lahko izvajajo na različnih vozliščih v heterogena računalniški sistemi, ki lahko združujejo jedra na podlagi različnih arhitektur nabora ukazov (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Niz popravkov, predlagan razvijalcem jedra Linuxa, podpira samo izvajanje na gostiteljih s CPU x86, obstaja pa tudi bolj funkcionalna različica Popcorn Linuxa, ki omogoča izvajanje aplikacij na gostiteljih z različnimi arhitekturami CPE (x86 in ARM). Če želite uporabljati Popcorn v heterogenih okoljih, morate uporabiti posebno prevajalnik temelji na LLVM. Pri porazdeljenem izvajanju na gostiteljih z isto arhitekturo vnovična izgradnja z ločenim prevajalnikom ni potrebna.

Popcorn razvija porazdeljeni sistem za izvajanje niti za jedro Linuxa.

Poleg tega je mogoče opozoriti napoved nekoliko podoben projekt Televilice z implementacijo začetnega prototipa API-ja za zagon podrejenih procesov na drugih računalnikih v gruči (kot je fork(), vendar prenese razcepljeni proces v drug računalnik).
Koda je napisana v Rustu in zaenkrat omogoča samo kloniranje zelo preprostih procesov, ki ne uporabljajo sistemskih virov, kot so datoteke. Ko je opravljen klic telefork, se pomnilnik in strukture, povezane s procesom, klonirajo na drugega gostitelja, ki izvaja upravljalnik strežnika (telepad). Z uporabo ptrace se odraz pomnilnika procesa serializira in skupaj s stanjem procesa in registrov prenese na drugega gostitelja. API omogoča tudi shranjevanje stanja procesa v datoteko in njegovo obnovitev prek nje.

Vir: opennet.ru

Dodaj komentar