Facebook Hermit-ро нашр мекунад, як абзор барои иҷрои такроршавандаи барнома

Фейсбук (дар Федератсияи Русия мамнӯъ) рамзи абзорҳои Hermit-ро нашр кард, ки муҳити иҷрои барномаи детерминистиро ташкил медиҳад, ки имкон медиҳад як натиҷа ба даст ояд ва пешрафти иҷроро бо истифода аз як маълумоти воридшуда дар оғози гуногун такрор кунад. Рамзи лоиҳа дар Rust навишта шудааст ва таҳти иҷозатномаи BSD паҳн карда мешавад.

Ҳангоми иҷрои муқаррарӣ, омилҳои гуногуни берунӣ ба натиҷа таъсир мерасонанд, ба монанди вақти ҷорӣ, хусусиятҳои банақшагирии ришта, суроғаҳои хотираи виртуалӣ, маълумот аз генератори рақамҳои псевдо-тасодуфӣ ва идентификаторҳои гуногуни беназир. Hermit ба шумо имкон медиҳад, ки барномаро дар як контейнер иҷро кунед, ки дар он ин омилҳо дар марҳилаҳои минбаъда доимӣ боқӣ мемонанд. Иҷрои такроршаванда, ки танзимоти муҳити ноустуворро комилан дубора тавлид мекунад, метавонад барои ташхиси хатоҳо, ислоҳи чандмарҳила бо такрорҳо, эҷоди муҳити собит барои санҷишҳои регрессия, санҷиши стресс, бартараф кардани мушкилоти бисёрсоҳавӣ ва системаҳои сохтани такроршаванда истифода шавад.

Facebook Hermit-ро нашр мекунад, як абзор барои иҷрои такроршавандаи барнома

Муҳити такроршаванда бо роҳи боздоштани зангҳои системавӣ ба вуҷуд меояд, ки баъзеи онҳо бо коркардкунандагони худ, ки натиҷаи доимӣ медиҳанд, иваз карда мешаванд ва баъзеи онҳо ба ядро ​​равона карда мешаванд, ки баъд аз он натиҷа аз маълумотҳои доимӣ тоза карда мешавад. Барои боздоштани зангҳои системавӣ чаҳорчӯбаи реверӣ истифода мешавад, ки рамзи онро Facebook низ нашр мекунад. Барои пешгирӣ кардани тағирот дар системаи файлӣ ва дархостҳои шабакавӣ аз таъсир ба пешрафти иҷро, иҷро бо истифода аз тасвири собит FS ва бо хомӯш кардани дастрасӣ ба шабакаҳои беруна анҷом дода мешавад. Ҳангоми дастрасӣ ба генератори рақамҳои псевдо-тасодуфӣ, Hermit пайдарпаии пешакӣ муайяншударо тавлид мекунад, ки ҳар дафъае, ки он иҷро мешавад, такрор мешавад.

Дар байни таъсироти мураккабтарини ғайримуқаррарӣ ба иҷроиш нақшаи ришта аст, ки рафтори он аз бисёр омилҳои беруна вобаста аст, ба монанди шумораи ядроҳои CPU ва мавҷудияти риштаҳои дигар. Барои таъмин намудани рафтори такроршавандаи нақшакаш, ҳама риштаҳо силсилавӣ карда мешаванд, танҳо ба як ядрои CPU пайваст карда мешаванд ва бо тартибе, ки назорат ба риштаҳо мегузарад. Ба ҳар як ришта иҷозат дода мешавад, ки шумораи муайяни дастурҳоро иҷро кунад, ки пас аз он иҷро қатъ мешавад ва ба риштаи дигар интиқол дода мешавад (барои маҳдуд кардан, CPU PMU (Воҳиди мониторинги иҷроиш) истифода мешавад, ки пас аз шумораи муайяни шохаҳои шартӣ иҷроро қатъ мекунад).

Барои ташхиси мушкилот бо риштаҳо аз сабаби ҳолати нажод, Hermit дорои режими ошкор кардани амалиётҳое мебошад, ки аз кор баромадаанд ва ба садама оварда мерасонанд. Барои муайян кардани чунин мушкилот, муқоисаи ҳолатҳое гузаронида мешавад, ки дар онҳо амалиёти дуруст ва ғайримуқаррарии иҷро сабт шудааст.

Манбаъ: opennet.ru

Илова Эзоҳ