Popcorn izstrādā izplatītu pavedienu izpildes sistēmu Linux kodolam.

Virdžīnijas tehnika ierosināja Linux kodola izstrādātāju apspriešanai ielāpu komplekts ar izplatītu pavedienu izpildes sistēmas ieviešanu Popkorns (Distributed Thread Execution), kas ļauj organizēt lietojumprogrammu izpildi vairākos datoros ar pavedienu izplatīšanu un pārredzamu migrāciju starp resursdatoriem. Izmantojot Popcorn, lietojumprogrammas var palaist vienā resursdatorā un pēc tam bez pārtraukuma pārvietot uz citu resursdatoru. Daudzpavedienu programmās ir atļauta atsevišķu pavedienu migrācija uz citiem resursdatoriem.

Atšķirībā no projekta CRIUĻaujot saglabāt procesa stāvokli un atsākt izpildi citā sistēmā, Popcorn nodrošina netraucētu un dinamisku migrāciju starp resursdatoriem lietojumprogrammas izpildes laikā, neprasot lietotāja darbības un nodrošinot virtuālās atmiņas konsekvenci visos resursdatoros, kuros darbojas vienlaikus pavedieni.

Popkorna programmatūras kaudzes forma ielāpus uz Linux kodolu un библиотека ar testiem, kas parāda, kā Popcorn sistēmas zvanus var izmantot, lai migrētu pavedienus izplatītajās lietojumprogrammās. Kodola līmenī ir ierosināti virtuālās atmiņas apakšsistēmas paplašinājumi, ieviešot sadalīto koplietojamo atmiņu, kas ļauj procesiem dažādos resursdatoros piekļūt kopējai un konsekventai virtuālajai adrešu telpai. Virtuālās atmiņas lappušu saskaņotību nodrošina protokols, kas atkārto atmiņas lapas resursdatoram, kad tās tiek lasītas, un ierakstīšanas laikā padara atmiņas lapas nederīgas.

Mijiedarbība starp resursdatoriem tiek veikta, izmantojot kodola līmeņa apstrādātāju ziņojumiem, kas tiek pārsūtīti caur TCP ligzdu. Jāatzīmē, ka TCP/IP tiek izmantots, lai izstrādes procesa laikā vienkāršotu atkļūdošanu un testēšanu. Izstrādātāji saprot, ka no drošības un veiktspējas viedokļa TCP/IP nav labākais veids, kā pārsūtīt kodola struktūru saturu un atmiņas lapas starp resursdatoriem. Visiem saimniekdatoriem, kuros darbojas izplatītās lietojumprogrammas, ir jābūt vienādam uzticamības līmenim. Pēc galveno algoritmu stabilizēšanas tiks izmantots efektīvāks transporta veids.

Popkorns tiek veidots kopš 2014. gada kā pētniecisks projekts, lai izpētītu iespējas izveidot izkliedētas lietojumprogrammas, kuru pavedienus var izpildīt dažādos mezglos neviendabīgs skaitļošanas sistēmas, kas var apvienot kodolus, pamatojoties uz dažādām instrukciju kopu arhitektūrām (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Linux kodola izstrādātājiem piedāvātais ielāpu komplekts atbalsta izpildi tikai resursdatoros ar x86 CPU, taču ir arī funkcionālāka Popcorn Linux versija, kas ļauj lietojumprogrammām darboties resursdatoros ar dažādu CPU arhitektūru (x86 un ARM). Lai izmantotu Popkornu neviendabīgā vidē, jāizmanto īpašs kompilators pamatojoties uz LLVM. Izplatītai izpildei saimniekdatoros ar tādu pašu arhitektūru pārbūve ar atsevišķu kompilatoru nav nepieciešama.

Popcorn izstrādā izplatītu pavedienu izpildes sistēmu Linux kodolam.

Turklāt var atzīmēt paziņojums nedaudz līdzīgs projekts Telefork ar sākotnējā API prototipa ieviešanu bērnprocesu palaišanai citos klastera datoros (piemēram, fork(), bet pārsūta dakšveida procesu uz citu datoru).
Kods ir rakstīts Rust un līdz šim ļauj klonēt tikai ļoti vienkāršus procesus, kas neizmanto sistēmas resursus, piemēram, failus. Kad tiek veikts teledakšas zvans, ar atmiņu un procesu saistītās struktūras tiek klonētas citā resursdatorā, kurā darbojas servera apdarinātājs (telepad). Izmantojot ptrace, procesa atmiņas atspoguļojums tiek serializēts un kopā ar procesa stāvokli un reģistriem tiek pārsūtīts uz citu resursdatoru. API arī ļauj failā saglabāt procesa stāvokli un atjaunot to caur to.

Avots: opennet.ru

Pievieno komentāru