Popcorn ontwikkel 'n verspreide draaduitvoerstelsel vir die Linux-kern.

Virginia Tech hy het aangebied vir bespreking deur Linux-kernontwikkelaars, 'n stel pleisters met die implementering van 'n verspreide draaduitvoerstelsel Popcorn (Distributed Thread Execution), wat jou toelaat om die uitvoering van toepassings op verskeie rekenaars te organiseer met die verspreiding en deursigtige migrasie van drade tussen gashere. Met Popcorn kan toepassings op een gasheer geloods word en dan sonder onderbreking na 'n ander gasheer geskuif word. In multi-threaded programme word migrasie van individuele drade na ander gashere toegelaat.

Anders as die projek CRIUDeur toe te laat dat prosesstatus gestoor word en uitvoering op 'n ander stelsel hervat word, bied Popcorn naatlose en dinamiese migrasie tussen gashere tydens toepassingsuitvoering, wat geen gebruikeraksie vereis nie en verseker virtuele geheue konsekwentheid oor alle gashere wat gelyktydige drade loop.

Springmielies sagteware stapel vorm kolle na die Linux-kern en biblioteek met toetse wat demonstreer hoe Popcorn-stelseloproepe gebruik kan word om drade in verspreide toepassings te migreer. Op die kernvlak is uitbreidings aan die virtuele geheue substelsel voorgestel met die implementering van verspreide gedeelde geheue, wat prosesse op verskillende gashere toelaat om toegang tot 'n gemeenskaplike en konsekwente virtuele adresruimte te verkry. Virtuele geheue bladsykoherensie word verseker deur 'n protokol wat geheuebladsye na die gasheer herhaal wanneer dit gelees word en geheuebladsye ongeldig maak wanneer dit geskryf word.

Interaksie tussen gashere word uitgevoer met behulp van 'n kernvlak-hanteerder vir boodskappe wat via 'n TCP-sok versend word. Daar word kennis geneem dat TCP/IP gebruik word om ontfouting en toetsing tydens die ontwikkelingsproses te vereenvoudig. Ontwikkelaars verstaan ​​dat, vanuit 'n sekuriteit- en prestasieperspektief, TCP/IP nie die beste manier is om die inhoud van kernstrukture en geheuebladsye tussen gashere oor te dra nie. Alle gashere wat verspreide toepassings gebruik, moet dieselfde vlak van vertroue hΓͺ. Na stabilisering van die hoofalgoritmes sal 'n meer doeltreffende vervoermiddel gebruik word.

Springmielies ontwikkel sedert 2014 as 'n navorsingsprojek om die moontlikhede te bestudeer om verspreide toepassings te skep, waarvan die drade op verskillende nodusse uitgevoer kan word. heterogeen rekenaarstelsels wat kerne kan kombineer gebaseer op verskillende instruksiestel-argitekture (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Die stel pleisters wat aan Linux-kernontwikkelaars voorgestel word, ondersteun slegs uitvoering op leΓ«rskare met 'n x86-SVE, maar daar is ook 'n meer funksionele weergawe van Popcorn Linux, wat toepassings toelaat om op gashere met verskillende SVE-argitekture (x86 en ARM) te loop. Om Springmielies in heterogene omgewings te gebruik, moet jy 'n spesiale gebruik samesteller gebaseer op LLVM. Wanneer dit versprei word op gashere met dieselfde argitektuur, is herbou met 'n aparte samesteller nie nodig nie.

Popcorn ontwikkel 'n verspreide draaduitvoerstelsel vir die Linux-kern.

Daarbenewens kan daarop gelet word aankondiging ietwat soortgelyke projek Televurk met die implementering van 'n aanvanklike prototipe API vir die bekendstelling van kinderprosesse op ander rekenaars in die groep (soos fork(), maar dra die gevurkte proses oor na 'n ander rekenaar).
Die kode is in Rust geskryf en laat tot dusver slegs kloning toe van baie eenvoudige prosesse wat nie stelselhulpbronne soos lΓͺers gebruik nie. Wanneer 'n telefork-oproep gemaak word, word geheue- en prosesverwante strukture gekloon na 'n ander gasheer wat die bedienerhanteerder (telepad) bestuur. Deur gebruik te maak van ptrace, word die geheuerefleksie van 'n proses gerangskik en saam met die toestand van die proses en registers na 'n ander gasheer oorgedra. Die API laat jou ook toe om prosesstatus in 'n lΓͺer te stoor en dit daardeur te herstel.

Bron: opennet.ru

Voeg 'n opmerking