Facebookek Hermit argitaratzen du, programa errepikagarria exekutatzeko tresna-kit bat

Facebookek (Errusiar Federazioan debekatua) Hermit tresna-kitaren kodea argitaratu zuen, eta programak exekutatzeko determinismorako ingurune bat sortzen du, exekuzio desberdinak emaitza bera lortzeko eta exekuzioa errepikatzeko sarrerako datu berdinak erabiliz. Proiektuaren kodea Rust-en idatzita dago eta BSD lizentziapean banatzen da.

Exekuzio arruntean, emaitza kanpoko hainbat faktorek eragiten dute, hala nola, uneko ordua, hariaren programazioa, memoria birtualaren helbideak, pseudoausazko zenbaki-sorgailuaren datuak eta hainbat identifikatzaile esklusiboak. Hermit-ek programa bat exekutatzeko aukera ematen du edukiontzi batean, non faktore horiek etengabe mantentzen diren hurrengo exekuzioetan. Errepikagarria den exekuzioa, inguruneko parametro iraunkorrak guztiz erreproduzitzen dituena, erroreen diagnostikoa egiteko, urrats anitzeko arazketa exekuzio errepikatuekin, erregresio-probetarako ingurune finko bat sortzeko, estres-probak egiteko, hari anitzeko arazoak identifikatzeko eta eraikitze-sistem errepikagarrietan. .

Facebookek Hermit argitaratzen du, programa errepikagarria exekutatzeko tresna-kit bat

Ingurune erreproduzigarria sortzen da sistema-deiak atzemanez, eta horietako batzuk emaitza iraunkor bat sortzen duten kudeatzaile propioekin ordezkatzen dira, eta beste batzuk nukleora birbideratzen dira, eta ondoren emaitza ez-iraunkorrak ezabatzen dira. Sistema-deiak atzemateko, reverie-esparrua erabiltzen da, eta horren kodea ere Facebookek argitaratzen du. Fitxategi-sisteman eta sareko eskaeren aldaketak exekuzioaren aurrerapenean eragina izan ez dezan, exekuzioa FS irudi finko bat erabiliz egiten da eta kanpoko sareetarako sarbidea desgaituta dago. Sasi-ausazko zenbaki-sorgailura sartzean, Hermit-ek aurrez zehaztutako sekuentzia bat sortzen du, abiarazten den bakoitzean errepikatzen dena.

Exekuzioaren aurrerapenean eragiten duen aldagai konplexuenetako bat hari-planifikatzailea da, zeinaren portaera kanpoko faktore askoren araberakoa baita, hala nola CPU-nukleoen kopurua eta beste exekuzio-hari batzuen presentzia. Antolatzailearen portaera errepikakorra ziurtatzeko, hari guztiak seriean exekutatzen dira CPU nukleo bakarrarekin lotuta eta kontrola harietara transferitzen den ordena mantenduz. Hari bakoitzak instrukzio kopuru finko bat exekutatzeko baimena du, ondoren exekuzioa gelditzen da eta beste hari batera transferitzen da (PUZaren PMU (Performance Monitoring Unit) mugatzeko, baldintzapeko adar kopuru zehatz baten ondoren exekuzioa gelditzen duena).

Lasterketa-baldintzen ondorioz hariekin arazoak diagnostikatzeko, Hermit-ek exekuzio-agindua ordenatuta ez zegoen eta itzalaldi anormal bat ekarri zuen eragiketak identifikatzeko modu bat du. Arazo horiek identifikatzeko, funtzionamendu zuzena eta exekuzioaren amaiera anormala erregistratu diren egoerak alderatzen dira.

Iturria: opennet.ru

Gehitu iruzkin berria