လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

Operating Systems မိတ်ဆက်

ဟေး ဟာဘ! ကျွန်တော့်အမြင်အရ စိတ်ဝင်စားစရာကောင်းတဲ့ စာပေတစ်ခုဖြစ်တဲ့ OSTEP ရဲ့ ဆောင်းပါးတွေကို ဘာသာပြန်ထားတဲ့ အခန်းဆက်တွေကို သင့်အာရုံစိုက်စေချင်ပါတယ်။ ဤအကြောင်းအရာသည် unix ကဲ့သို့သော လည်ပတ်မှုစနစ်များ၏ လုပ်ဆောင်မှုကို အတော်လေး နက်နက်ရှိုင်းရှိုင်း ဆွေးနွေးထားပြီး၊ ဆိုလိုသည်မှာ၊ လုပ်ငန်းစဉ်များ၊ အချိန်ဇယားဆွဲသူများ၊ မန်မိုရီနှင့် ခေတ်မီ OS တစ်ခုအဖြစ် ဖန်တီးထားသည့် အခြားသော အလားတူ အစိတ်အပိုင်းများနှင့် အလုပ်လုပ်ပါသည်။ ပစ္စည်းအားလုံး၏ မူရင်းကို ဤနေရာတွင် ကြည့်ရှုနိုင်ပါသည်။ ဒီမှာ. ဘာသာပြန်ခြင်းကို ပရော်ဖက်ရှင်နယ်ကျကျ (လွတ်လွတ်လပ်လပ်) ရေးသားထားခြင်းမဟုတ်ကြောင်း ကျေးဇူးပြု၍ မှတ်သားထားပါ၊ သို့သော် ယေဘူယျအဓိပ္ပါယ်ကို ကျွန်ုပ်ဆက်လက်ထိန်းသိမ်းထားရန် မျှော်လင့်ပါသည်။

ဤအကြောင်းအရာအတွက် ဓာတ်ခွဲခန်းကို ဤနေရာတွင် တွေ့နိုင်သည်-

အခြားအစိတ်အပိုင်းများ-

ကျွန်ုပ်၏ ချန်နယ်တွင်လည်း ကြည့်ရှုနိုင်ပါသည်။ ကြေးနန်းစာ =)

စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ

ဤဟောပြောပွဲတွင်၊ ကျွန်ုပ်တို့သည် အကျော်ကြားဆုံး ချဉ်းကပ်နည်းများထဲမှ တစ်ခုကို ဖော်ဆောင်ခြင်း၏ ပြဿနာများကို ဆွေးနွေးပါမည်။
Plan ဟုခေါ်သည်။ အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (MLFQ)။ MLFQ အချိန်ဇယားကို Fernando J. Corbató မှ 1962 ခုနှစ်တွင် စတင်ဖော်ပြခဲ့သည်။
လိုက်ဖက်သော အချိန်-မျှဝေခြင်းစနစ် (CTSS)။ ဤအလုပ်များ (နောက်ပိုင်းတွင် လုပ်ဆောင်မှုများ အပါအဝင်
Multics) သည် Turing Award အတွက် နောက်ပိုင်းတွင် အမည်စာရင်းတင်သွင်းခံခဲ့ရသည်။ အစီအစဉ်ဆွဲသူဖြစ်ခဲ့သည်။
နောက်ပိုင်းတွင် ပိုမိုကောင်းမွန်လာကာ တွေ့ရှိနိုင်သည့် အသွင်အပြင်ကို ရရှိခဲ့သည်။
ခေတ်မီစနစ်အချို့။

MLFQ algorithm သည် အခြေခံထပ်နေသော ပြဿနာ 2 ခုကို ဖြေရှင်းရန် ကြိုးစားသည်။
ပထမဦးစွာယခင်ဟောပြောပွဲ၌ ကျွန်ုပ်တို့ ဆွေးနွေးခဲ့သည့်အတိုင်း၊ တန်းစီသူအများစု၏ဦးခေါင်းမှ စတင်သည့်နည်းလမ်းဖြင့် အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ရန် ကြိုးပမ်းသည်၊
တိုတောင်းသောအလုပ်များ။ သို့သော်၊ OS သည် ဤ သို့မဟုတ် ထိုလုပ်ငန်းစဉ်ကို မည်မျှကြာအောင် လုပ်ဆောင်မည်ကို မသိရပေ။
SJF, STCF algorithms ၏လည်ပတ်မှုအတွက်လိုအပ်သောအသိပညာ။ ဒုတိယအMLFQ ကြိုးစားသည်။
အသုံးပြုသူများအတွက် စနစ်အား တုံ့ပြန်မှုဖြစ်စေသည် (ဥပမာ၊ ထိုင်နေသူများအတွက်၊
အလုပ်ပြီးအောင်စောင့်နေစဉ် စခရင်ကို စိုက်ကြည့်ခြင်း) ဖြင့် အချိန်ကို လျှော့ပါ။
တုံ့ပြန်မှု။ ကံမကောင်းစွာဖြင့်၊ RR ကဲ့သို့ algorithms များသည် တုံ့ပြန်ချိန်ကို လျှော့ချပေးသော်လည်း၊
turnaround time metric အပေါ် ဆိုးရွားစွာ သက်ရောက်မှုရှိသည်။ ထို့ကြောင့် ကျွန်ုပ်တို့၏ပြဿနာ- ဒီဇိုင်းဆွဲနည်း
ကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်ကိုက်ညီမည့်အချိန်ဇယားဆွဲသည်နှင့်တစ်ချိန်တည်းတွင်ဘာမျှမသိပါ။
ယေဘုယျအားဖြင့် လုပ်ငန်းစဉ်၏ သဘောသဘာဝ၊ အစီအစဉ်ဆွဲသူသည် အလုပ်များ၏ ဝိသေသလက္ခဏာများကို မည်သို့လေ့လာနိုင်သည်၊
၎င်းသည် မည်သည့်အရာကို စတင်လုပ်ဆောင်ပြီး ပိုမိုကောင်းမွန်သော အချိန်ဇယားဆွဲဆုံးဖြတ်ချက်များ ပြုလုပ်နိုင်သနည်း။

ပြဿနာ၏အနှစ်သာရ- ပြီးပြည့်စုံသောအသိပညာမရှိဘဲ အလုပ်များကို မည်သို့စီစဉ်မည်နည်း။
တုံ့ပြန်မှုအချိန်ကို တစ်ပြိုင်နက်တည်း လျှော့ချနိုင်သည့် အချိန်ဇယားကို မည်သို့ ဒီဇိုင်းဆွဲမည်နည်း။
အပြန်အလှန်အကျိုးသက်ရောက်သောအလုပ်များအတွက်နှင့်တစ်ချိန်တည်းမှာမသိဘဲလှည့်ပတ်မှုအချိန်ကိုလျှော့ချသည်။
Task execution time ကို တတ်ကျွမ်းပါသလား။

မှတ်ချက်- ယခင်ဖြစ်ရပ်များမှ သင်ယူခြင်း။

MLFQ တန်းစီသည် လေ့ကျင့်သင်ကြားထားသည့် စနစ်၏ အကောင်းဆုံး ဥပမာတစ်ခုဖြစ်သည်။
အနာဂတ်ကိုကြိုတင်ခန့်မှန်းရန်အတိတ်ဖြစ်ရပ်များ။ အဲဒီလို ချဉ်းကပ်တာတွေ များပါတယ်။
OS တွင်တွေ့ရသည် (ထိုအကိုင်းအခက်များအပါအဝင် ကွန်ပျူတာသိပ္ပံတွင် အခြားအကိုင်းအခက်များစွာရှိသည်။
ဟာ့ဒ်ဝဲခန့်မှန်းချက်များနှင့် သိမ်းဆည်းခြင်းဆိုင်ရာ အယ်လဂိုရီသမ်များ)။ အလားတူခရီးစဉ်များ
လုပ်ငန်းဆောင်တာများတွင် အပြုအမူအဆင့်များပါရှိပြီး ကြိုတင်မှန်းဆနိုင်သည့်အခါတွင် အစပျိုးသည်။
သို့သော် ခန့်မှန်းချက်များသည် အလွန်လွယ်ကူသောကြောင့် ဤနည်းပညာကို သတိထားသင့်သည်။
မှားယွင်းသော ဆုံးဖြတ်ချက်များ ချမှတ်ခြင်းထက် ပိုဆိုးသော ဆုံးဖြတ်ချက်များ ချမှတ်ရန် စနစ်အား ဦးဆောင်နိုင်သည်
အသိပညာ လုံးဝကင်းမဲ့နေလိမ့်မယ်။

MLFQ- အခြေခံစည်းမျဉ်းများ

MLFQ algorithm ၏ အခြေခံစည်းမျဉ်းများကို သုံးသပ်ကြည့်ပါ။ ဤ algorithm ၏အကောင်အထည်ဖော်မှုများ၊
အများအပြားရှိပါတယ်၊ အခြေခံနည်းလမ်းများဆင်တူသည်။
ကျွန်ုပ်တို့ထည့်သွင်းစဉ်းစားမည့် အကောင်အထည်ဖော်မှုတွင် MLFQ တွင် များစွာပါဝင်မည်ဖြစ်သည်။
သီးခြားစီတန်းစီများ ၊ တစ်ခုစီတွင် မတူညီသော ဦးစားပေးရှိပါမည်။ အချိန်မရွေး၊
လုပ်ဆောင်ရန် အဆင်သင့်ဖြစ်သည့် အလုပ်သည် တူညီသော တန်းစီဇယားတွင် ရှိနေသည်။ MLFQ သည် ဦးစားပေးများကို အသုံးပြုသည်၊
အကောင်အထည်ဖော်ရန် မည်သည့်တာဝန်ကို လုပ်ဆောင်ရမည်ကို ဆုံးဖြတ်ရန်၊ ဥပမာ၊ မြင့်မားသောအလုပ်
ဦးစားပေး (အမြင့်ဆုံးဦးစားပေး တန်းစီမှ အလုပ်တစ်ခု) ကို ပထမတွင် စတင်ပါမည်။
တန်းစီသည်။
အထူးသဖြင့် တန်းစီတစ်ခုတွင် အလုပ်တစ်ခုထက်ပို၍ ဖြစ်နိုင်သည်၊ ထို့ကြောင့်၊
ဒါကြောင့် သူတို့ ကိုပဲ ဦးစားပေးလုပ်မယ်။ ဤကိစ္စတွင်ယန္တရားကိုအသုံးပြုလိမ့်မည်။
အဆိုပါ လုပ်ငန်းတာဝန်များကြားတွင် စတင်ရန် စီစဉ်ခြင်းအတွက် RR။
ထို့ကြောင့် ကျွန်ုပ်တို့သည် MLFQ အတွက် အခြေခံစည်းမျဉ်း နှစ်ခုသို့ ရောက်ရှိသည် ။

  • စည်းမျဉ်း 1- အကယ်၍ ဦးစားပေး(A) > ဦးစားပေး(B)၊ အလုပ် A သည် လုပ်ဆောင်မည် (B မည်မဟုတ်ပါ)
  • စည်းမျဉ်း 2- အကယ်၍ ဦးစားပေး(A) = ဦးစားပေး(B)၊ A&B သည် RR ကို စတင်အသုံးပြုနေပါသည်။

အထက်ပါအချက်များအပေါ်အခြေခံ၍ MLFQ ကိုစီစဉ်ရန် အဓိကအချက်များဖြစ်သည်။
ဦးစားပေးဖြစ်ကြတယ်။ တစ်ခုစီကို ပုံသေဦးစားပေးမယ့်အစား
လုပ်ငန်းတာဝန်၊ MLFQ သည် လေ့လာတွေ့ရှိထားသော အမူအကျင့်ပေါ်မူတည်၍ ၎င်း၏ဦးစားပေးကို ပြောင်းလဲသည်။
ဥပမာအားဖြင့်၊ အလုပ်တစ်ခုသည် ကီးဘုတ်ထည့်သွင်းမှုကိုစောင့်ဆိုင်းနေစဉ် CPU တွင် အဆက်မပြတ်ထွက်နေပါက၊
MLFQ သည် လုပ်ငန်းစဉ်ကို ဦးစားပေး မြင့်မားနေစေမည်ဖြစ်သောကြောင့်၊
အပြန်အလှန်အကျိုးပြုတဲ့ လုပ်ငန်းစဉ်တွေ လုပ်ဆောင်သင့်ပါတယ်။ ဆန့်ကျင်ဘက်အနေနဲ့ဆိုရင် အလုပ်က အဆက်မပြတ်နဲ့
ကာလကြာရှည်စွာ CPU ကို အထူးအလေးထားပြီး MLFQ သည် ၎င်းကို အဆင့်နှိမ့်ပေးမည်ဖြစ်သည်။
ဦးစားပေးတစ်ခု။ ထို့ကြောင့် MLFQ သည် ၎င်းတို့လုပ်ဆောင်နေချိန်တွင် လုပ်ငန်းစဉ်များ၏ အမူအကျင့်များကို လေ့လာမည်ဖြစ်သည်။
အပြုအမူများကို အသုံးပြုပါ။
တစ်ချိန်ချိန်တွင် တန်းစီခြင်းပုံစံကို ဥပမာတစ်ခုဆွဲကြည့်ရအောင်
အချိန်ယူပြီးရင် ဒီလိုမျိုး တစ်ခုခုရလာမှာပါ
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

ဤအစီအစဉ်တွင် A နှင့် B လုပ်ငန်းစဉ် 2 ခုသည် အမြင့်ဆုံးဦးစားပေးဖြင့် တန်းစီနေသည်။ လုပ်ငန်းစဉ်
C သည် အလယ်နေရာတွင်ရှိပြီး လုပ်ငန်းစဉ် D သည် လူတန်း၏အဆုံးတွင်ဖြစ်သည်။ အထက်ဖော်ပြပါအတိုင်း
MLFQ algorithm ၏ဖော်ပြချက်၊ အချိန်ဇယားဆွဲသူက အမြင့်ဆုံးအလုပ်များကိုသာ လုပ်ဆောင်ပါမည်။
RR အရ ဦးစားပေး ၊ အလုပ် C ၊ D သည် အလုပ်မဖြစ်တော့ပါ။
ပုံမှန်အားဖြင့်၊ တည်ငြိမ်သောလျှပ်တစ်ပြက်ရိုက်ချက်သည် MLFQ အလုပ်လုပ်ပုံကို အပြည့်အစုံဖော်ပြမည်မဟုတ်ပါ။
ပုံသည် အချိန်နှင့်အမျှ ပြောင်းလဲသွားသည်ကို အတိအကျနားလည်ရန် အရေးကြီးပါသည်။

ကြိုးစားမှု 1- ဦးစားပေးကို ဘယ်လိုပြောင်းမလဲ။

ဤအချိန်တွင် MLFQ သည် ဦးစားပေးအဆင့်ကို မည်သို့ပြောင်းလဲမည်ကို သင်ဆုံးဖြတ်ရန် လိုအပ်သည်။
အလုပ် (ထို့ကြောင့် တန်းစီနေသည့် အလုပ်၏ အနေအထား) သည် ၎င်း၏ဘဝစက်ဝန်းအတွင်း။ ဘို့
ဤအတွက်၊ သင်သည် အလုပ်အသွားအလာကို မှတ်သားထားရန် လိုအပ်သည်- အချို့သော ပမာဏ
တိုတောင်းသောအချိန်များနှင့်အတူ အပြန်အလှန်လုပ်ဆောင်သော လုပ်ဆောင်စရာများ (ထို့ကြောင့် မကြာခဏ ထုတ်လွှတ်သည်။
CPU) နှင့် CPU သည် ၎င်းတို့၏ အလုပ်လုပ်ချိန်တစ်လျှောက်လုံး အသုံးပြုသည့် ရှည်လျားသော အလုပ်များစွာကို လုပ်ဆောင်သည်။
ထိုသို့သောအလုပ်များအတွက် တုံ့ပြန်ချိန်သည် အရေးမကြီးပါ။ ဒါမှ သင် ပထမဆုံး ကြိုးစားနိုင်မှာပါ။
MLFQ algorithm ကို အောက်ပါစည်းမျဉ်းများဖြင့် အကောင်အထည်ဖော်ပါ-

  • စည်းမျဉ်း 3- လုပ်ဆောင်စရာတစ်ခုသည် စနစ်ထဲသို့ ဝင်ရောက်သောအခါ၊ ၎င်းကို အမြင့်ဆုံးတန်းစီတွင် ထည့်သွင်းထားသည်။
  • ဦးစားပေး။
  • Rule4a- အလုပ်တစ်ခုသည် ၎င်း၏ အချိန်ဝင်းဒိုးတစ်ခုလုံးကို အသုံးပြုပါက၊ ၎င်းကို အသုံးပြုပါ။
  • ဦးစားပေးကို လျှော့ချထားသည်။
  • Rule4b- အလုပ်တစ်ခုသည် ၎င်း၏အချိန်ဝင်းဒိုးမကုန်ဆုံးမီ CPU ကို ထုတ်လွှတ်ပါက၊ ၎င်းသည် ၎င်းအား အချိန်ကုန်သွားစေသည်။
  • တူညီသော ဦးစားပေးမှုဖြင့် တည်ရှိနေပါသည်။

ဥပမာ 1- တစ်ခုတည်းသော ရေရှည်အလုပ်

ဤဥပမာတွင်သင်တွေ့မြင်နိုင်သည်အတိုင်း၊ ဝင်ခွင့်တွင်တာဝန်ကိုအမြင့်ဆုံးဖြင့်သတ်မှတ်ထားသည်။
ဦးစားပေး။ 10ms အချိန်ဝင်းဒိုးတစ်ခုပြီးနောက်၊ လုပ်ငန်းစဉ်ကို ဦးစားပေးအဆင့်သို့ အဆင့်နှိမ့်ထားသည်။
အစီအစဉ်ဆွဲသူ။ နောက်တစ်ကြိမ် ဝင်းဒိုးပြီးနောက်၊ နောက်ဆုံးတွင် လုပ်ဆောင်စရာကို အဆင့်လျှော့ချလိုက်ပါသည်။
ကျန်ရှိသည့်စနစ်တွင် အနိမ့်ဆုံးဦးစားပေး။
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

ဥပမာ 2- တိုတောင်းသော အလုပ်တစ်ခုကို ကောက်ယူခဲ့သည်။

ယခု MLFQ သည် SJF ကို ချဉ်းကပ်ရန် မည်သို့ကြိုးစားမည်ကို နမူနာကြည့်ကြပါစို့။ အဲဒီထဲမှာ
ဥပမာ- အလုပ်နှစ်ခု- A သည် ရေရှည်တည်တန့်နေသည့် အလုပ်တစ်ခုဖြစ်သည်။
တိုတောင်းသော အပြန်အလှန်အကျိုးပြုသော အလုပ်ဖြစ်သည့် CPU နှင့် B ကို သိမ်းပိုက်ခြင်း။ ဆိုပါစို့
အလုပ် B ရောက်ရှိလာချိန်တွင် A သည် အချိန်အတော်ကြာအောင် လုပ်ဆောင်နေပြီဖြစ်သည်။
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

ဤဂရပ်သည် ဇာတ်လမ်း၏ရလဒ်များကို ပြသသည်။ Task A သည် မည်သည့်အလုပ်နှင့်တူသည်၊
CPU ကိုအသုံးပြု၍ အောက်ခြေတွင်ရှိခဲ့သည်။ Task B သည် အချိန် T=100 နှင့် ရောက်ရှိလာလိမ့်မည်။
အမြင့်ဆုံးဦးစားပေးတန်းစီတွင် ထည့်သွင်းထားသည်။ ပြေးချိန်က တိုသောကြောင့်၊
နောက်ဆုံးတန်းစီမပြီးမီ အပြီးသတ်ပါမည်။

ဤဥပမာမှ၊ သင်သည် algorithm ၏ အဓိကပန်းတိုင်ကို နားလည်သင့်သည်- algorithm မပါသောကြောင့်၊
ရှည်လျားသောအလုပ် သို့မဟုတ် တိုတိုတစ်ခုကို သိသည်၊ ထို့နောက် ထိုတာဝန်ကို ဦးစွာခံယူသည်။
တိုတိုနှင့် ၎င်းကို အမြင့်ဆုံး ဦးစားပေးသည်။ တကယ်က တိုတောင်းတဲ့ အလုပ်တစ်ခုဆိုရင်၊
၎င်းသည် လျင်မြန်စွာ လုပ်ဆောင်နိုင်မည်ဖြစ်ပြီး၊ သို့မဟုတ်ပါက ၎င်းသည် ရှည်လျားသောအလုပ်ဖြစ်လျှင် နှေးကွေးစွာ ရွေ့လျားမည်ဖြစ်သည်။
ဦးစားပေးအားဖြင့် နှိမ့်ချပြီး သူမသည် အမှန်တကယ် မလုပ်နိုင်သော ရှည်လျားသော အလုပ်ဖြစ်ကြောင်း မကြာမီ သက်သေပြလိမ့်မည်။
တုံ့ပြန်မှုတစ်ခုလိုအပ်သည်။

ဥပမာ 3- I/O ကော ဘယ်လိုလဲ။

အခု I/O ဥပမာကို ကြည့်ရအောင်။ နည်းဥပဒေ 4b တွင်ဖော်ပြထားသည့်အတိုင်း၊
လုပ်ငန်းစဉ်တစ်ခုသည် ၎င်း၏ပရိုဆက်ဆာအချိန်ကို အပြည့်အဝအသုံးမပြုဘဲ ပရိုဆက်ဆာကို ထုတ်လွှတ်ပါက၊
ထို့နောက် ၎င်းသည် တူညီသော ဦးစားပေးအဆင့်တွင် ရှိနေသည်။ ဒီစည်းမျဉ်းရဲ့ ရည်ရွယ်ချက်က တော်တော်ရိုးရှင်းပါတယ်။
- အပြန်အလှန်အကျိုးပြုသောအလုပ်သည် I/O အများအပြားလုပ်ဆောင်ပါက၊ ဥပမာ၊ စောင့်ဆိုင်းခြင်း။
အသုံးပြုသူ ကီးစထရိ သို့မဟုတ် မောက်စ်မှ၊ ထိုသို့သော အလုပ်သည် ပရိုဆက်ဆာကို လွတ်စေမည်ဖြစ်သည်။
ချထားပေးသောပြတင်းပေါက်ရှေ့မှာ။ ဒီလို ဦးစားပေးအလုပ်မျိုးကို ကျွန်တော်တို့ ချန်လှပ်မထားချင်ပါဘူး၊
ထို့ကြောင့် ၎င်းသည် တူညီသောအဆင့်တွင် ရှိနေမည်ဖြစ်သည်။
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

ဤဥပမာသည် algorithm သည် ထိုကဲ့သို့သော လုပ်ငန်းစဉ်များနှင့် မည်သို့အလုပ်လုပ်မည်ကို ပြသသည် - အပြန်အလှန်လုပ်ဆောင်သည့်အလုပ် B၊ မလုပ်ဆောင်မီ CPU သည် 1ms အတွက်သာ လိုအပ်သည်
CPU ကို တစ်ချိန်လုံး အသုံးပြုနေသည့် I/O နှင့် A ရှည်လျားသော အလုပ်။
MLFQ သည် လုပ်ငန်းစဉ် B ကို အမြင့်ဆုံးဦးစားပေးအဖြစ် ဆက်လက်ထားရှိထားသည်။
CPU ကိုထုတ်ပါ။ B သည် အပြန်အလှန်အကျိုးပြုသည့်အလုပ်ဖြစ်ပါက၊ ဤကိစ္စတွင် algorithm သည် ရောက်ရှိသွားပါပြီ။
၎င်း၏ ရည်ရွယ်ချက်မှာ အပြန်အလှန်အကျိုးပြုသည့် လုပ်ငန်းဆောင်တာများကို လျင်မြန်စွာ စတင်ရန်ဖြစ်သည်။

လက်ရှိ MLFQ အယ်လဂိုရီသမ်နှင့် ပြဿနာများ

ယခင်နမူနာများတွင်၊ ကျွန်ုပ်တို့သည် MLFQ ၏ အခြေခံဗားရှင်းကို တည်ဆောက်ထားပါသည်။ ပြီးတော့ သူက ဟန်ဆောင်တယ်။
၎င်းသည် ၎င်း၏အလုပ်အား ကောင်းမွန်မျှတစွာ လုပ်ဆောင်ပြီး CPU အချိန်ကို မျှတစွာ ခွဲဝေပေးသည်။
ရှည်လျားသောလုပ်ဆောင်စရာများနှင့် တိုတောင်းသောလုပ်ဆောင်စရာများ သို့မဟုတ် ကြီးမားစွာဝင်ရောက်အသုံးပြုသော အလုပ်များကို ခွင့်ပြုခြင်း။
လျင်မြန်စွာလုပ်ဆောင်ရန် I/O သို့။ ကံမကောင်းစွာဖြင့်၊ ဤချဉ်းကပ်မှုတွင် များစွာပါဝင်ပါသည်။
ပြင်းထန်သောပြဿနာများ။
ပထမဦးစွာ, ငတ်မွတ်ခေါင်းပါးမှုပြဿနာ: စနစ်အများအပြားအပြန်အလှန်အကျိုးသက်ရောက်မှုရှိလိမ့်မည်။
အလုပ်များသည် CPU ၏အချိန်အားလုံးကို သုံးစွဲမည်ဖြစ်ပြီး၊ ထို့ကြောင့် တစ်ကြိမ်မျှ ကြာမည်မဟုတ်ပေ။
ထိုတာဝန်ကို အကောင်အထည်ဖော်ရန် အခွင့်အလမ်း ရလိမ့်မည် မဟုတ်ပေ (သူတို့ ငတ်နေကြသည်)။

ဒုတိယအဒါကြောင့် စမတ်ကျတဲ့ သုံးစွဲသူတွေဟာ သူတို့ရဲ့ ပရိုဂရမ်တွေကို ရေးနိုင်ပါတယ်။
အစီအစဉ်မှူးကို လှည့်စားပါ။ လှည့်စားမှုသည် အတင်းအကြပ်လုပ်ရန် တစ်ခုခုလုပ်ခြင်း၌ မုသာဖြစ်သည်။
လုပ်ငန်းစဉ်ကို CPU အချိန်ပိုပေးနိုင်ရန် စီစဉ်ပေးသည်။ algorithm က အဲဒါ
အထက်တွင်ဖော်ပြထားသော တိုက်ခိုက်မှုများသည် အချိန်ပြတင်းပေါက်ကို လက်တွေ့ကျကျ မလုပ်ဆောင်မီ၊
ကျော်ပြီ၊ သင်သည် I/O လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ရန် လိုအပ်သည် (အချို့အတွက်၊ မည်သည့်ဖိုင်မဆို)
ထို့ကြောင့် CPU ကို လွတ်စေသည်။ ဒီလိုအပြုအမူမျိုးက မင်းကို အတူတူနေနိုင်စေလိမ့်မယ်။
တန်းစီသည် သူ့ဘာသာသူဖြစ်ပြီး CPU အချိန်၏ ပိုများသော ရာခိုင်နှုန်းကို ထပ်မံရရှိသည်။ ပြီးပြီဆိုလျှင်
၎င်းသည်မှန်ကန်သည် (ဥပမာ CPU ကိုမထုတ်မီ window အချိန်၏ 99% ကို run)၊
ထိုသို့သောအလုပ်သည် ပရိုဆက်ဆာကို ရိုးရှင်းစွာ လက်ဝါးကြီးအုပ်နိုင်သည်။

နောက်ဆုံးတွင်၊ ပရိုဂရမ်တစ်ခုသည် အချိန်နှင့်အမျှ ၎င်း၏အပြုအမူကို ပြောင်းလဲနိုင်သည်။ မေမေ့
CPU ကိုအသုံးပြုထားသောကြောင့် အပြန်အလှန်အကျိုးသက်ရောက်မှုရှိနိုင်ပါသည်။ ကျွန်ုပ်တို့၏ဥပမာတွင်၊ အလားတူ
အလုပ်များသည် အခြားသူများကဲ့သို့ အချိန်ဇယားဆွဲသူထံမှ သင့်လျော်သော ကုသမှုကို ရရှိမည်မဟုတ်ပါ။
(မူရင်း) အပြန်အလှန်အကျိုးပြုသော အလုပ်များ။

ပရိသတ်ကို မေးခွန်းထုတ်သည်- ခေတ်မီကမ္ဘာတွင် အချိန်ဇယားဆွဲသူကို မည်သို့တိုက်ခိုက်နိုင်သနည်း။

ကြိုးစားမှု 2- ဦးစားပေးမှုကို တိုးမြှင့်ပါ။

စည်းမျဉ်းတွေကို ပြောင်းလဲပြီး ပြဿနာတွေကို ရှောင်ရှားနိုင်မလားဆိုတာ ကြည့်ရအောင်
ငတ်မွတ်ခြင်း ဆက်စပ်သေချာအောင် ဘာလုပ်နိုင်မလဲ။
CPU လုပ်ဆောင်ချက်များသည် ၎င်းတို့၏အချိန် (မကြာပါ) ကိုရရှိမည်ဖြစ်သည်။
ပြဿနာအတွက် ရိုးရှင်းသောအဖြေတစ်ခုအနေဖြင့် သင်သည် အခါအားလျော်စွာ အကြံပြုနိုင်ပါသည်။
စနစ်အတွင်းရှိ ထိုကဲ့သို့သော အလုပ်များအားလုံးကို ဦးစားပေးလုပ်ဆောင်ပါ။ နည်းလမ်းများစွာရှိပါသည်။
ဒါကိုအောင်မြင်ဖို့အတွက်၊ ဥပမာတစ်ခုအနေနဲ့ ရိုးရိုးရှင်းရှင်းတစ်ခုခုကို အကောင်အထည်ဖော်ကြည့်ရအောင်- ဘာသာပြန်ပါ။
အလုပ်အားလုံးကို တစ်ပြိုင်နက်တည်း အမြင့်ဆုံးဦးစားပေး ဖြစ်သောကြောင့် စည်းမျဉ်းအသစ်-

  • နည်းဥပဒေ5: အချို့သောကာလ S ပြီးနောက်၊ စနစ်အတွင်းရှိ လုပ်ဆောင်စရာအားလုံးကို အမြင့်ဆုံးတန်းစီသို့ လွှဲပြောင်းပါ။

ကျွန်ုပ်တို့၏စည်းမျဉ်းအသစ်သည် ပြဿနာနှစ်ခုကို တစ်ပြိုင်နက်တည်း ဖြေရှင်းပေးသည်။ ပထမ၊ လုပ်ငန်းစဉ်များ
အစာမငတ်စေရန် အာမခံပါသည်- အမြင့်ဆုံးတန်းစီရှိ အလုပ်များကို မျှဝေပါမည်။
RR algorithm အရ ပရိုဆက်ဆာအချိန်သည် လုပ်ငန်းစဉ်များအားလုံး လက်ခံရရှိမည်ဖြစ်သည်။
ပရိုဆက်ဆာအချိန်။ ဒုတိယအချက်အနေနဲ့ဆိုရင် အရင်ကသုံးတဲ့ process တစ်ချို့ပါ။
ပရိုဆက်ဆာသည်သာ အပြန်အလှန်အကျိုးသက်ရောက်မှုရှိသည်၊ ၎င်းသည် အမြင့်ဆုံးတန်းစီတွင် ရှိနေမည်ဖြစ်သည်။
ဦးစားပေးမှုကို အမြင့်ဆုံး ဦးစားပေးကို တစ်ကြိမ် တိုးပြီး လက်ခံပါ။
ဥပမာတစ်ခုကို သုံးသပ်ကြည့်ရအောင်။ ဤအခြေအနေတွင်၊ လုပ်ငန်းစဉ်တစ်ခုတည်းကို အသုံးပြု၍ စဉ်းစားပါ။
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

CPU နှင့် အပြန်အလှန်အကျိုးသက်ရောက်မှု၊ တိုတောင်းသော လုပ်ငန်းစဉ်နှစ်ခု။ ပုံရှိ ဘယ်ဘက်တွင်၊ ကိန်းဂဏန်းသည် ဦးစားပေး မြှင့်တင်ခြင်းမရှိဘဲ အပြုအမူကို ပြသသည်၊ ထို့ကြောင့် စနစ်တွင် အပြန်အလှန်အကျိုးပြုသော လုပ်ဆောင်စရာနှစ်ခုရောက်ရှိပြီးနောက် ရေရှည်လုပ်ဆောင်သောအလုပ်သည် ငတ်စပြုလာသည်။ ညာဘက်ရှိ ပုံတွင်၊ 50ms တိုင်းတွင် ဦးစားပေး တိုးမြှင့်မှုကို လုပ်ဆောင်ပြီး ထို့ကြောင့် လုပ်ငန်းစဉ်အားလုံးကို ပရိုဆက်ဆာအချိန်ရရှိရန် အာမခံထားပြီး အချိန်အခါအလိုက် စတင်မည်ဖြစ်သည်။ ဤကိစ္စတွင် 50ms ကို နမူနာအဖြစ် ယူသည်၊ တကယ်တော့ ဤကိန်းဂဏန်းသည် အတန်ငယ် ပိုမြင့်သည်။
Periodic rise time S ကို ပေါင်းထည့်လိုက်တာက ထင်ရှားပါတယ်။
ယုတ္တိရှိသောမေးခွန်း- မည်သည့်တန်ဖိုးကို သတ်မှတ်သင့်သနည်း။ မြတ်စွာဘုရားသည် ကောင်းစွာ ခံထိုက်၏။
စနစ်အင်ဂျင်နီယာများ John Ousterhout သည် စနစ်များတွင် အလားတူပမာဏများကို voo-doo ဟု ရည်ညွှန်းခဲ့သည်။
တစ်နည်းတစ်ဖုံအားဖြင့် မှန်ကန်သော အောက်လမ်းပညာကို လိုအပ်သောကြောင့် အစဉ်အမြဲ
ထိတွေ့ခြင်း။ ကံမကောင်းစွာပဲ၊ S မှာ ဒီလိုအရသာရှိတယ်။ တန်ဖိုးသတ်မှတ်တာလည်း ရှိတယ်။
ကြီးမားသောအလုပ်များ ငတ်မည်။ နိမ့်လွန်းရင်၊
အပြန်အလှန်တုံ့ပြန်လုပ်ဆောင်မှုများသည် သင့်လျော်သော CPU အချိန်ကို ရရှိမည်မဟုတ်ပါ။

ကြိုးစားမှု 3: ပိုမိုကောင်းမွန်သောစာရင်းကိုင်

ယခု ကျွန်ုပ်တို့တွင် ဖြေရှင်းရန် နောက်ထပ် ပြဿနာတစ်ခု ရှိနေသည်- မည်သို့မျှ မဖြေရှင်းနိုင်ပါ။
ကျွန်ုပ်တို့၏ အစီအစဉ်ဆွဲသူကို လှည့်စားခွင့်ပြုပါလား။ ဒီဖြစ်နိုင်ချေရဲ့ တရားခံတွေပါ။
ပရိုဆက်ဆာကို လွှတ်လိုက်ခြင်းဖြင့် အလုပ်တစ်ခုသည် ၎င်း၏ဦးစားပေးမှုကို ထိန်းထားနိုင်စေမည့် 4a၊ 4b စည်းမျဉ်းများ
သတ်မှတ်ချိန်မကုန်ဆုံးမီ။ အဲဒါကို ဘယ်လိုဖြေရှင်းမလဲ။
ဤကိစ္စတွင် ဖြေရှင်းချက်သည် တစ်ခုစီပေါ်တွင် CPU အချိန်ကို ပိုမိုကောင်းမွန်စွာ တွက်ချက်ခြင်းဟု ယူဆနိုင်သည်။
MLFQ အဆင့်။ ပရိုဂရမ်အသုံးပြုသည့်အချိန်ကို မေ့သွားမည့်အစား၊
ပရိုဆက်ဆာသည် ချထားပေးသည့် ကြားကာလအတွက်၊ သင်သည် ၎င်းကို သိမ်းဆည်းသင့်သည်။ ပြီးနောက်
လုပ်ငန်းစဉ်သည် ၎င်း၏ ခွဲဝေပေးသည့်အချိန်ကို ကုန်ဆုံးသွားပြီ၊ ၎င်းကို နောက်တစ်ခုသို့ လျှော့ချသင့်သည်။
ဦးစားပေးအဆင့်။ ယခု လုပ်ငန်းစဉ်သည် ၎င်း၏အချိန်ကို မည်သို့မည်ပုံ အသုံးပြုမည်ကို အရေးမကြီးပါ။
ပရိုဆက်ဆာ သို့မဟုတ် ခေါ်ဆိုမှုအစုတစ်ခုအဖြစ် အဆက်မပြတ် တွက်ချက်ခြင်း။ ထို့ကြောင့်,
နည်းဥပဒေ ၄ ကို အောက်ပါအတိုင်း ပြန်လည်ရေးသားသင့်သည် ။

  • နည်းဥပဒေ4: အလုပ်တစ်ခုသည် လက်ရှိတန်းစီတွင် ၎င်း၏ခွဲဝေချထားပေးသည့်အချိန်ကို အသုံးပြုပြီးနောက် (CPU ကို အကြိမ်မည်မျှလွှတ်ပေးခဲ့သည်ဖြစ်စေ)၊ ထိုလုပ်ငန်း၏ ဦးစားပေးသည် လျော့သွားသည် (၎င်းသည် တန်းစီခြင်းကို အောက်သို့ရွှေ့သည်)။

ဥပမာတစ်ခုကိုကြည့်ရအောင်။
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)»

အစီအစဉ်ဆွဲသူကဲ့သို့ လှည့်စားရန် ကြိုးစားပါက မည်သို့ဖြစ်မည်ကို ပုံတွင်ပြသည်။
ယခင်စည်းမျဉ်း 4a နှင့်ဆိုလျှင် 4b သည် ဘယ်ဘက်ရှိ ရလဒ်ဖြစ်သည်။ အသစ်နှင့်
စည်းကမ်းက ရလဒ်က ညာဘက်မှာရှိတယ်။ ကာကွယ်မှုမပြုမီ၊ မည်သည့်လုပ်ငန်းစဉ်မဆို မပြီးမီ I/O ခေါ်ဆိုနိုင်သည်။
ထို့ကြောင့် အပြုအမူကို မခွဲခြားဘဲ ကာကွယ်မှုကို ဖွင့်ပြီးနောက် CPU ကို လွှမ်းမိုးထားသည်။
I/O၊ သူက တန်းစီနေသေးတဲ့အတွက် မရိုးမသား လုပ်နိုင်မှာ မဟုတ်ပါဘူး။
CPU အရင်းအမြစ်များကိုရယူပါ။

MLFQ နှင့် အခြားပြဿနာများကို တိုးတက်စေခြင်း။

အထက်ပါ တိုးတက်မှုများဖြင့် ပြဿနာအသစ်များ ပေါ်ပေါက်လာသည်- အဓိက တစ်ချက်
မေးခွန်းများ - ထိုသို့သောအချိန်ဇယားကိုမည်သို့ကန့်သတ်မည်နည်း။ အဲဒါတွေ။ ဘယ်လောက်ကျသင့်လဲ။
တန်းစီ? တန်းစီနေသည့် ပရိုဂရမ်ဝင်းဒိုး၏ အရွယ်အစားသည် အဘယ်နည်း။ ဘယ်လိုလဲ
ငတ်မွတ်ခေါင်းပါးမှုကို ရှောင်ရှားရန်နှင့် ပရိုဂရမ်ကို မကြာခဏ ဦးစားပေးလုပ်ဆောင်သင့်သည်။
ပရိုဂရမ်၏ အပြုအမူပြောင်းလဲမှုကို ထည့်သွင်းစဉ်းစားရန်။ ဒီမေးခွန်းတွေအတွက်တော့ ရိုးရိုးရှင်းရှင်းမရှိပါဘူး။
တုံ့ပြန်မှုနှင့် ဝန်ထုပ်ဝန်ပိုးများနှင့် နောက်ဆက်တွဲဖွဲ့စည်းမှုဆိုင်ရာ စမ်းသပ်မှုများသာဖြစ်သည်။
အချိန်ဇယားဆွဲသူသည် ကျေနပ်ဖွယ်ရာလက်ကျန်ကို ဖြစ်ပေါ်စေနိုင်သည်။

ဥပမာအားဖြင့်၊ MLFQ အကောင်အထည်ဖော်မှုအများစုသည် သင့်အား မတူညီသောတာဝန်ပေးမှုများကို ခွင့်ပြုပေးသည်။
မတူညီသောတန်းစီများအတွက် အချိန်ကွက်များ။ အများအားဖြင့် ဦးစားပေးတန်းစီခြင်းများ
တိုတောင်းသောကာလများ။ ဤစီတန်းများသည် အပြန်အလှန်အကျိုးပြုသည့် အလုပ်များပါ၀င်သည်၊
အလွန်အကဲဆတ်ပြီး 10 သို့မဟုတ် ထိုထက်နည်းသော အရာများအကြား ကူးပြောင်းခြင်း။
ဒေါ်။ ဆန့်ကျင်ဘက်အားဖြင့်၊ ဦးစားပေး တန်းစီခြင်းများတွင် ရေရှည်အသုံးပြုသည့် အလုပ်များ ပါဝင်ပါသည်။
စီပီယူ။ ဤကိစ္စတွင်၊ ရှည်လျားသောကြားကာလများသည် အလွန်အဆင်ပြေသည် (100ms)။
လည်ပတ်မှုစနစ်များ- လွယ်ကူသောအပိုင်းသုံးပိုင်း။ အပိုင်း 5- စီစဉ်ခြင်း- အဆင့်ပေါင်းစုံ တုံ့ပြန်ချက် တန်းစီ (ဘာသာပြန်)

ဤဥပမာတွင်၊ ဦးစားပေးအဆင့် 2 တွင် လုပ်ဆောင်ခဲ့သော အလုပ် 20 ခုရှိသည်။
ms ကို 10ms windows ဖြင့် ပိုင်းခြားထားသည်။ အလယ်တန်းတန်းတွင် 40ms (20ms ဝင်းဒိုး) နှင့် ဦးစားပေးတန်းစီတွင် XNUMXms
တန်းစီချိန်ဝင်းဒိုးသည် 40ms ဖြစ်လာပြီး အလုပ်များကို ၎င်းတို့၏အလုပ်ပြီးမြောက်စေသည်။

Solaris OS တွင် MLFQ ကို အကောင်အထည်ဖော်ခြင်းသည် အချိန်ခွဲဝေမှု အစီအစဉ်များ အမျိုးအစားတစ်ခုဖြစ်သည်။
အချိန်ဇယားဆွဲသူသည် ၎င်းကို မည်သို့လုပ်သင့်သည်ကို တိတိကျကျသတ်မှတ်ပေးမည့် ဇယားအစုံကို ပေးလိမ့်မည်။
၎င်း၏ဘဝတစ်လျှောက်လုံး လုပ်ငန်းစဉ်၏ ဦးစားပေး၊ အရွယ်အစားဖြစ်သင့်သည်များကို ပြောင်းလဲပါ။
ခွဲဝေသတ်မှတ်ရမည့် ဝင်းဒိုးနှင့် အလုပ်ဦးစားပေးများကို မည်မျှကြာကြာ မြှင့်တင်ရန်။ အုပ်ချုပ်ရေးမှူး
စနစ်သည် ဤဇယားနှင့် အပြန်အလှန် တုံ့ပြန်နိုင်ပြီး အစီအစဉ်ရေးဆွဲသူကို ပြုမူစေသည်။
မတူပါ။ ပုံမှန်အားဖြင့်၊ ဤဇယားတွင် တန်းစီ ၆၀ ရှိပြီး တဖြည်းဖြည်း တိုးလာသည်။
ဝင်းဒိုးအရွယ်အစား 20ms (မြင့်မားသောဦးစားပေး) မှ ရာဂဏန်း ms (အနိမ့်ဆုံးဦးစားပေး) နှင့်
အလုပ်အားလုံးကို တစ်စက္ကန့်လျှင် တစ်ကြိမ် မြှင့်တင်ပါ။

အခြား MLFQ အချိန်ဇယားဆွဲသူများသည် ဇယားတစ်ခု သို့မဟုတ် သီးခြားမည်သည့်အရာကိုမျှ မသုံးပါ။
ဤအခန်းတွင်ဖော်ပြထားသော စည်းမျဉ်းများသည် ဆန့်ကျင်ဘက်အနေနှင့် ၎င်းတို့သည် ဦးစားပေးများကို အသုံးပြု၍ တွက်ချက်ပါသည်။
သင်္ချာဖော်မြူလာများ။ ဥပမာ၊ FreeBSD ရှိ အချိန်ဇယားဆွဲသူသည် ဖော်မြူလာကို အသုံးပြုသည်။
လုပ်ငန်းစဉ်မည်မျှအပေါ်အခြေခံ၍ လက်ရှိလုပ်ငန်းဦးစားပေးကို တွက်ချက်ခြင်း။
CPU ကိုသုံးတယ်။ ထို့အပြင်၊ CPU အသုံးပြုမှုသည် အချိန်ကြာလာသည်နှင့်အမျှ ယိုယွင်းလာသည်။
ထို့ကြောင့် ဦးစားပေးတိုးမှုသည် အထက်တွင်ဖော်ပြထားသည်ထက် အနည်းငယ်ကွာခြားပါသည်။ ဒါအမှန်ပါပဲ
decay algorithms ဟုခေါ်သည်။ ဗားရှင်း 7.1 အရ FreeBSD သည် ULE အချိန်ဇယားကို အသုံးပြုသည်။

နောက်ဆုံးတွင်၊ အစီအစဉ်ရေးဆွဲသူအများအပြားတွင် အခြားအင်္ဂါရပ်များရှိသည်။ ဥပမာ တစ်ချို့
အချိန်ဇယားသမားများသည် လည်ပတ်မှုစနစ်၏လည်ပတ်မှုအတွက် ပိုမိုမြင့်မားသောအဆင့်များကို သိုလှောင်ထားသောကြောင့်ဖြစ်သည်။
ထို့ကြောင့် မည်သည့် user process မှ အမြင့်ဆုံး ဦးစားပေး မရနိုင်ပါ။
စနစ်။ အချို့သောစနစ်များက သင့်အား အကူအညီပေးရန် အကြံဉာဏ်များပေးနိုင်သည်။
မှန်ကန်စွာ ဦးစားပေးရန် အစီအစဉ်ဆွဲသူ။ ဥပမာအားဖြင့် command ကို အသုံးပြု ကောင်းတဲ့
အလုပ်တစ်ခု၏ ဦးစားပေးမှုကို တိုးနိုင်သည် သို့မဟုတ် လျှော့ချနိုင်ပြီး ထို့ကြောင့် တိုးနိုင်သည် သို့မဟုတ် လျှော့ချနိုင်သည်။
CPU အချိန်အတွက် ပရိုဂရမ်၏ အခွင့်အလမ်းများကို လျှော့ချပါ။

MLFQ- အကျဉ်းချုပ်

ကျွန်ုပ်တို့သည် MLFQ ဟုခေါ်သော အစီအစဉ်ဆွဲခြင်းနည်းလမ်းကို ဖော်ပြထားပါသည်။ သူ့နာမည်
လည်ပတ်မှုနိယာမအရ နိဂုံးချုပ်ထားသည် - ၎င်းတွင် တန်းစီခြင်းများစွာရှိပြီး တုံ့ပြန်ချက်ကို အသုံးပြုသည်။
အလုပ်တစ်ခုကို ဦးစားပေးရန်။
စည်းကမ်းချက်၏ နောက်ဆုံးပုံစံမှာ အောက်ပါအတိုင်းဖြစ်ပါမည်။

  • နည်းဥပဒေ1အကယ်၍ ဦးစားပေး(A) > ဦးစားပေး(B)၊ အလုပ် A သည် လုပ်ဆောင်မည် (B တွင် မပါရှိပါ)၊
  • နည်းဥပဒေ2: အကယ်၍ priority(A) = Priority(B)၊ A&B သည် RR ကို စတင်အသုံးပြုနေပါသည်။
  • နည်းဥပဒေ3လုပ်ဆောင်စရာတစ်ခုသည် စနစ်ထဲသို့ ဝင်ရောက်သောအခါ၊ ၎င်းကို အမြင့်ဆုံး ဦးစားပေးတန်းစီတွင် ထည့်သွင်းထားသည်။
  • နည်းဥပဒေ4: အလုပ်တစ်ခုသည် လက်ရှိတန်းစီတွင် ၎င်း၏ခွဲဝေချထားပေးသည့်အချိန်ကို အသုံးပြုပြီးနောက် (CPU ကို အကြိမ်မည်မျှလွှတ်ပေးခဲ့သည်ဖြစ်စေ)၊ ထိုလုပ်ငန်း၏ ဦးစားပေးသည် လျော့သွားသည် (၎င်းသည် တန်းစီခြင်းကို အောက်သို့ရွှေ့သည်)။
  • နည်းဥပဒေ5: အချို့သောကာလ S ပြီးနောက်၊ စနစ်အတွင်းရှိ လုပ်ဆောင်စရာအားလုံးကို အမြင့်ဆုံးတန်းစီသို့ လွှဲပြောင်းပါ။

MLFQ သည် အောက်ပါအကြောင်းပြချက်ကြောင့် စိတ်ဝင်စားစရာကောင်းသည် - နှင့်ပတ်သက်သော ဗဟုသုတများလိုအပ်ခြင်းအစား
အလုပ်၏သဘောသဘာဝကိုကြိုတင်၍ algorithm သည် အလုပ်နှင့် set များ၏အတိတ်အပြုအမူကိုလေ့လာသည်။
ဦးစားပေးအလိုက်။ ထို့ကြောင့် သူသည် သေးငယ်သောအလုပ်များ (SJF၊ STCF) အတွက် စွမ်းဆောင်ရည်ရရှိရန်နှင့် ရိုးသားစွာ တာရှည်လုပ်ဆောင်ရန် ကုလားထိုင်နှစ်လုံးပေါ်တွင် တစ်ကြိမ်တည်းထိုင်ရန် ကြိုးစားသည်။
CPU-loading အလုပ်များ။ ထို့ကြောင့် BSD နှင့် ၎င်းတို့၏ ဆင်းသက်လာမှုများ အပါအဝင် စနစ်များစွာ၊
Solaris၊ Windows၊ Mac သည် အစီအစဉ်ဆွဲသူအဖြစ် အချို့သော algorithm ပုံစံကို အသုံးပြုသည်။
MLFQ ကို အခြေခံအချက်အဖြစ်။

အပိုဆောင်းပစ္စည်းများ:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/Scheduling_(ကွန်ပျူတာ)
  3. pages.lip6.fr/Julia.Lawall/atc18-bouron.pdf
  4. www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf
  5. chebykin.org/freebsd-process-scheduling

source: www.habr.com