Popcorn-ը մշակում է բաշխված թելերի կատարման համակարգ Linux միջուկի համար:

Վիրջինիայի տեխ Առաջարկվում է Linux միջուկի մշակողների կողմից քննարկման համար, բաշխված թելերի կատարման համակարգի ներդրմամբ կարկատների մի շարք Ադիբուդի (Distributed Thread Execution), որը թույլ է տալիս կազմակերպել հավելվածների կատարումը մի քանի համակարգիչների վրա՝ հոսթերների միջև թելերի բաշխմամբ և թափանցիկ միգրացիայով։ Popcorn-ի միջոցով հավելվածները կարող են գործարկվել մեկ հոսթի վրա, այնուհետև առանց ընդհատումների տեղափոխվել մեկ այլ հոսթ: Բազմաթելային ծրագրերում թույլատրվում է առանձին շղթաների տեղափոխում այլ հոսթորդներ:

Ի տարբերություն նախագծի CRIUԹույլ տալով պահպանել գործընթացի վիճակը և վերսկսել աշխատանքը մեկ այլ համակարգում, Popcorn-ն ապահովում է անխափան և դինամիկ միգրացիա հոսթերների միջև հավելվածի կատարման ընթացքում՝ չպահանջելով օգտատիրոջ գործողությունները և ապահովելով վիրտուալ հիշողության հետևողականություն բոլոր հոսթերների միջև, որոնք աշխատում են միաժամանակյա շղթաներով:

Popcorn ծրագրային փաթեթի ձևը կարկատաններ Linux միջուկին և գրադարան թեստերով, որոնք ցույց են տալիս, թե ինչպես Popcorn համակարգի զանգերը կարող են օգտագործվել բաշխված հավելվածներում թելերը տեղափոխելու համար: Միջուկի մակարդակում առաջարկվել են վիրտուալ հիշողության ենթահամակարգի ընդարձակումներ՝ բաշխված համօգտագործվող հիշողության ներդրմամբ, որը թույլ է տալիս տարբեր հոսթինգների գործընթացներին մուտք գործել ընդհանուր և հետևողական վիրտուալ հասցեների տարածք: Վիրտուալ հիշողության էջի համահունչությունն ապահովվում է արձանագրությամբ, որը կրկնօրինակում է հիշողության էջերը հոսթին, երբ դրանք կարդացվում են, և անվավեր է դարձնում հիշողության էջերը, երբ գրվում է:

Հոսթերների միջև փոխազդեցությունն իրականացվում է միջուկի մակարդակի մշակողի միջոցով՝ TCP վարդակից փոխանցվող հաղորդագրությունների համար: Նշվում է, որ TCP/IP-ն օգտագործվում է մշակման գործընթացում վրիպազերծումը և թեստավորումը պարզեցնելու համար։ Մշակողները հասկանում են, որ անվտանգության և կատարողականի տեսանկյունից TCP/IP-ն միջուկի կառուցվածքների և հիշողության էջերի բովանդակությունը հոսթերների միջև փոխանցելու լավագույն միջոցը չէ: Բաշխված հավելվածներ գործարկող բոլոր հոսթները պետք է ունենան վստահության նույն մակարդակը: Հիմնական ալգորիթմների կայունացումից հետո կկիրառվի տրանսպորտի ավելի արդյունավետ եղանակ։

Popcorn-ը զարգանում է 2014 թվականից՝ որպես հետազոտական ​​նախագիծ՝ ուսումնասիրելու բաշխված հավելվածների ստեղծման հնարավորությունները, որոնց թելերը կարող են իրականացվել տարբեր հանգույցների վրա։ տարասեռ հաշվողական համակարգեր, որոնք կարող են միավորել միջուկները՝ հիմնված տարբեր հրահանգների հավաքածուների ճարտարապետության վրա (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA): Linux միջուկի մշակողներին առաջարկվող patches-ի հավաքածուն աջակցում է կատարումը միայն x86 պրոցեսորով հոսթների վրա, սակայն կա նաև Popcorn Linux-ի ավելի ֆունկցիոնալ տարբերակ, որը թույլ է տալիս հավելվածներին աշխատել տարբեր պրոցեսորի ճարտարապետություններ ունեցող հոսթերների վրա (x86 և ARM): Պոպկորնը տարասեռ միջավայրում օգտագործելու համար պետք է օգտագործել հատուկ կոմպիլյատոր հիմնված LLVM-ի վրա: Նույն ճարտարապետությամբ հոսթերների վրա բաշխված աշխատելիս առանձին կոմպիլյատորով վերակառուցում չի պահանջվում:

Popcorn-ը մշակում է բաշխված թելերի կատարման համակարգ Linux միջուկի համար:

Բացի այդ, կարելի է նշել հայտարարություն փոքր-ինչ նման նախագիծ Telefork սկզբնական նախատիպային API-ի ներդրմամբ՝ կլաստերի այլ համակարգիչների վրա երեխաների պրոցեսները գործարկելու համար (ինչպես fork(), բայց պատառաքաղված գործընթացը տեղափոխում է մեկ այլ համակարգիչ):
Կոդը գրված է Rust-ով և առայժմ թույլ է տալիս միայն շատ պարզ գործընթացների կլոնավորում, որոնք չեն օգտագործում համակարգի ռեսուրսները, ինչպիսիք են ֆայլերը: Երբ telefork զանգ է կատարվում, հիշողությունը և գործընթացին առնչվող կառույցները կլոնավորվում են սերվերի կարգավորիչով աշխատող մեկ այլ հոսթի մեջ (telepad): Օգտագործելով ptrace-ը, պրոցեսի հիշողության արտացոլումը սերիականացվում է և գործընթացի վիճակի և գրանցումների հետ մեկտեղ փոխանցվում է մեկ այլ հոսթին: API-ն թույլ է տալիս նաև պահպանել գործընթացի վիճակը ֆայլում և վերականգնել այն դրա միջոցով:

Source: opennet.ru

Добавить комментарий