Facebook သည် ထပ်ခါတလဲလဲ လုပ်ဆောင်နိုင်သော ပရိုဂရမ်ကို လုပ်ဆောင်ရန်အတွက် ကိရိယာတန်ဆာပလာဖြစ်သည့် Hermit ကို ထုတ်ဝေခဲ့သည်။

Facebook (ရုရှားဖက်ဒရေးရှင်းတွင်တားမြစ်ထားသော) သည် ပရိုဂရမ်များကို အဆုံးအဖြတ်ပေးသည့်လုပ်ဆောင်မှုများအတွက် ပတ်ဝန်းကျင်တစ်ခုဖန်တီးပေးသည့် Hermit toolkit အတွက် ကုဒ်ကို ထုတ်ပြန်ခဲ့ပြီး တူညီသောရလဒ်ရရှိရန်နှင့် တူညီသောထည့်သွင်းမှုဒေတာကိုအသုံးပြု၍ ကွဲပြားသောလုပ်ဆောင်မှုများကို လုပ်ဆောင်နိုင်စေမည်ဖြစ်သည်။ ပရောဂျက်ကုဒ်ကို Rust ဖြင့် ရေးသားထားပြီး BSD လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ပုံမှန်လုပ်ဆောင်နေစဉ်အတွင်း၊ ရလဒ်သည် လက်ရှိအချိန်၊ thread scheduling၊ virtual memory လိပ်စာများ၊ pseudorandom number generator မှဒေတာနှင့် ထူးခြားသောခွဲခြားသတ်မှတ်မှုများကဲ့သို့သော ပြင်ပအချက်များစွာဖြင့် လွှမ်းမိုးထားသည်။ Hermit သည် သင့်အား နောက်ဆက်တွဲလုပ်ဆောင်မှုများတွင် ဤအချက်များ အမြဲမပြတ်ရှိနေသော ကွန်တိန်နာတစ်ခုတွင် ပရိုဂရမ်တစ်ခုကို လုပ်ဆောင်နိုင်စေပါသည်။ ပတ်ဝန်းကျင်၏ မတည်မြဲသော ကန့်သတ်ဘောင်များကို အပြည့်အဝ ပြန်ထုတ်ပေးသည့် ထပ်ခါတလဲလဲ လုပ်ဆောင်ခြင်းသည် အမှားအယွင်းများကို အဖြေရှာခြင်း၊ ထပ်ခါတလဲလဲ လုပ်ဆောင်ခြင်းဖြင့် အဆင့်များစွာသော အမှားရှာပြင်ခြင်းအတွက်၊ ဆုတ်ယုတ်မှုစမ်းသပ်မှုများအတွက် ပုံသေပတ်ဝန်းကျင်ကို ဖန်တီးခြင်း၊ ဖိစီးမှုစမ်းသပ်ခြင်း၊ multithreading ဖြင့် ပြဿနာများကို ဖော်ထုတ်ခြင်းနှင့် ထပ်ခါတလဲလဲ တည်ဆောက်နိုင်သော စနစ်များတွင် အသုံးပြုနိုင်သည်။ .

Facebook သည် ထပ်ခါတလဲလဲ လုပ်ဆောင်နိုင်သော ပရိုဂရမ်ကို လုပ်ဆောင်ရန်အတွက် ကိရိယာတန်ဆာပလာဖြစ်သည့် Hermit ကို ထုတ်ဝေခဲ့သည်။

မျိုးပွားနိုင်သော ပတ်၀န်းကျင်ကို စနစ်ခေါ်ဆိုမှုများကို ကြားဖြတ်ခြင်းဖြင့် ဖန်တီးထားပြီး၊ အချို့မှာ အမြဲတမ်းရလဒ်ထွက်ရှိနေသည့် ၎င်းတို့၏ကိုယ်ပိုင်ကိုင်တွယ်ကိရိယာများဖြင့် အစားထိုးကာ အချို့ကို kernel သို့ ပြန်ညွှန်းပေးကာ ရလဒ်သည် မတည်မြဲသောဒေတာကို ရှင်းထုတ်ပြီးနောက် ရလဒ်ကို ပြန်လည်ထုတ်ပေးပါသည်။ စနစ်ခေါ်ဆိုမှုများကို ကြားဖြတ်ရန်အတွက်၊ Facebook မှလည်း ထုတ်ပြန်ထားသည့် ကုဒ်ကို reverie framework ကို အသုံးပြုပါသည်။ ဖိုင်စနစ်အတွင်း အပြောင်းအလဲများနှင့် လုပ်ဆောင်ချက်တိုးတက်မှုကို ထိခိုက်စေခြင်းမှ ကွန်ရက်တောင်းဆိုမှုများကို တားဆီးရန်၊ ပုံသေ FS ပုံကို အသုံးပြု၍ လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ပြီး ပြင်ပကွန်ရက်များသို့ ဝင်ရောက်ခွင့်ကို ပိတ်ထားသည်။ pseudo-random နံပါတ်ဂျင်နရေတာအား ဝင်ရောက်သည့်အခါ၊ Hermit သည် စတင်လိုက်တိုင်း ထပ်ခါတလဲလဲ ပြုလုပ်သည့် ကြိုတင်သတ်မှတ်ထားသော အတွဲတစ်ခုကို ထုတ်လုပ်သည်။

execution တိုးတက်မှုအပေါ် အရှုပ်ထွေးဆုံးသော ပြောင်းလဲနိုင်သော လွှမ်းမိုးမှုတစ်ခုသည် CPU cores အရေအတွက်နှင့် အခြားသော executing thread များရှိနေခြင်းကဲ့သို့သော ပြင်ပအချက်များစွာပေါ်တွင်မူတည်သော လုပ်ဆောင်ချက်သည် thread scheduler ဖြစ်သည်။ အချိန်ဇယားဆွဲသူ၏ ထပ်ခါတလဲလဲ ပြုမူမှုများကို သေချာစေရန်၊ လိုင်းအားလုံးကို CPU core တစ်ခုတည်းဖြင့် ဆက်တိုက်လုပ်ဆောင်ပြီး ထိန်းချုပ်မှုအား threads သို့လွှဲပြောင်းသည့်အမိန့်ကို ထိန်းသိမ်းထားသည်။ စာတွဲတစ်ခုစီသည် သတ်မှတ်ထားသော ညွှန်ကြားချက်အရေအတွက်ကို လုပ်ဆောင်ရန် ခွင့်ပြုထားပြီး၊ ထို့နောက် လုပ်ဆောင်မှု ရပ်တန့်ကာ အခြား thread သို့ လွှဲပြောင်းခြင်း (သတ်မှတ်ထားသော အခြေအနေအရ အကိုင်းအခက်များစွာပြီးနောက် လုပ်ဆောင်မှုကို ရပ်တန့်သည့် CPU PMU (စွမ်းဆောင်ရည် စောင့်ကြည့်လေ့လာရေးယူနစ်) ကို ကန့်သတ်ရန်)။

လူမျိုးရေးအခြေအနေများကြောင့် ချည်မျှင်ပြဿနာများကို ရှာဖွေဖော်ထုတ်ရန်၊ Hermit တွင် ကွပ်မျက်ရေးအမိန့်သည် အမိန့်ပျက်သွားကာ ပုံမှန်မဟုတ်သော ပိတ်ပစ်ခြင်းသို့ ဦးတည်သွားသည့် လုပ်ဆောင်ချက်များကို ခွဲခြားသတ်မှတ်ရန် မုဒ်တစ်ခုရှိသည်။ ထိုကဲ့သို့သော ပြဿနာများကို ဖော်ထုတ်ရန်၊ မှန်ကန်သော လည်ပတ်မှုနှင့် ပုံမှန်မဟုတ်သော ကွပ်မျက်မှု ရပ်စဲခြင်းကို မှတ်တမ်းတင်ထားသည့် နိုင်ငံများနှင့် နှိုင်းယှဉ်မှုကို ပြုလုပ်ထားသည်။

source: opennet.ru

မှတ်ချက် Add