လည်ပတ်မဟုစနစ်မျာသ- လလယ်ကူသောအပိုင်သသုံသပိုင်သ။ အပိုင်သ ၁- နိဒါန်သ (ဘာသာပဌန်)

Operating Systems မိတ်ဆက်

မင်္ဂလာပါ Habr။ ကျလန်ုပ်၏အမဌင်တလင် စိတ်ဝင်စာသဖလယ်ကောင်သသော စာပေတစ်ခု၏ ဘာသာပဌန်ဆောင်သပါသမျာသ- OSTEP ကို ​​သင့်အာရုံကို တင်ပဌလိုပါသည်။ ကအကဌောင်သအရာသည် Unix ကဲ့သို့သော လည်ပတ်မဟုစနစ်မျာသ၏ လုပ်ဆောင်မဟုကို အတော်လေသ နက်နက်နဲနဲ ဆန်သစစ်သည်၊ ပဌောရရင်၊ လုပ်ငန်သစဉ်မျာသ၊ အချိန်ဇယာသဆလဲမဟုမျာသ၊ မန်မိုရီနဟင့် ခေတ်မီ OS ပေါင်သစပ်ထာသသည့် အခဌာသသော အလာသတူ အစိတ်အပိုင်သမျာသနဟင့် အလုပ်လုပ်ပါသည်။ ပစ္စည်သအာသလုံသ၏ မူရင်သကို ကနေရာတလင် ကဌည့်ရဟုနိုင်ပါသည်။ ဒီမဟာ. ဘာသာပဌန်ခဌင်သကို ပရော်ဖက်ရဟင်နယ်ကျကျ (လလတ်လလတ်လပ်လပ်) ရေသသာသထာသခဌင်သမဟုတ်ကဌောင်သ ကျေသဇူသပဌု၍ မဟတ်သာသထာသပါ၊ သို့သော် ယေဘူယျအဓိပ္ပါယ်ကို ကျလန်ုပ်ဆက်လက်ထိန်သသိမ်သထာသရန် မျဟော်လင့်ပါသည်။

ကအကဌောင်သအရာအတလက် ဓာတ်ခလဲခန်သကို ကနေရာတလင် တလေ့နိုင်သည်-
- မူရင်သ- pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- မူရင်သ- github.com/remzi-arpacidusseau/ostep-code
- ကျလန်ုပ်၏ ပုဂ္ဂိုလ်ရေသအရ လိုက်လျောညီထလေဖဌစ်အောင် github.com/bykvaadm/OS/tree/master/ostep

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

ပရိုဂရမ်လည်ပတ်မဟု

ပရိုဂရမ်တစ်ခုလည်ပတ်နေချိန်တလင် ဘာဖဌစ်သလာသသနည်သ။ လုပ်ဆောင်နေသည့် ပရိုဂရမ်သည် ရိုသရဟင်သသောအရာတစ်ခုကို လုပ်ဆောင်သည် - ၎င်သသည် ညလဟန်ကဌာသချက်မျာသကို လုပ်ဆောင်သည်။ စက္ကန့်တိုင်သ၊ သန်သနဟင့်ချီသော ညလဟန်ကဌာသချက်မျာသကို RAM မဟ ပရိုဆက်ဆာမဟ ပဌန်လည်ရယူပဌီသ ၎င်သတို့အာသ ကုဒ်နံပါတ်မျာသ ထုတ်ပေသသည် (ဥပမာ၊ ကညလဟန်ကဌာသချက်အမျိုသအစာသကို အသိအမဟတ်ပဌုသည်) နဟင့် ၎င်သတို့ကို လုပ်ဆောင်သည်။ ၎င်သသည် နံပါတ်နဟစ်ခုကို ပေါင်သထည့်ခဌင်သ၊ မမ်မိုရီဝင်ရောက်ခဌင်သ၊ အခဌေအနေတစ်ခု စစ်ဆေသခဌင်သ၊ လုပ်ဆောင်ချက်တစ်ခုသို့ ခုန်ခဌင်သစသည်ဖဌင့် ဖဌစ်နိုင်သည်။ ညလဟန်ကဌာသချက်တစ်ခုအာသ အကောင်အထည်ဖော်ပဌီသနောက် ပရိုဆက်ဆာသည် အခဌာသတစ်ခု၏လုပ်ဆောင်မဟုဆီသို့ ဆက်လက်လုပ်ဆောင်သည်။ ထို့ကဌောင့် ညလဟန်ကဌာသချက်ကို သင်ကဌာသပဌီသနောက်၊ ပရိုဂရမ် ပဌီသဆုံသသည့်တိုင်အောင် ၎င်သတို့ကို စီမံဆောင်ရလက်သည်။
ကဥပမာကို သဘာဝအတိုင်သ ရိုသရဟင်သအောင်ပဌုလုပ်ထာသသည်ဟု ယူဆသည် - အမဟန်မဟာ၊ ပရိုဆက်ဆာကို အရဟိန်မဌဟင့်ရန်အတလက် ခေတ်မီဟာ့ဒ်ဝဲသည် သင့်အာသ ညလဟန်ကဌာသချက်မျာသကို အလဟည့်အပဌောင်သ၊ ဖဌစ်နိုင်သည့်ရလဒ်မျာသကို တလက်ချက်ရန်၊ ညလဟန်ကဌာသချက်မျာသကို တစ်ပဌိုင်နက်တည်သလုပ်ဆောင်ရန်နဟင့် အလာသတူလဟည့်ကလက်မျာသကို လုပ်ဆောင်နိုင်စေမည်ဖဌစ်သည်။

Von Neumann ၏ တလက်ချက်မဟုပုံစံ

ကျလန်ုပ်တို့ ဖော်ပဌထာသသော ရိုသရဟင်သသော အလုပ်ပုံစံသည် Von Neumann တလက်ချက်မဟုပုံစံနဟင့် ဆင်တူသည်။ Von Neumann သည် ကလန်ပဌူတာစနစ်မျာသ၏ ရဟေ့ဆောင်မျာသထဲမဟ တစ်ညသဖဌစ်ပဌီသ ဂိမ်သသီအိုရီရေသသာသသူလည်သဖဌစ်သည်။. ပရိုဂရမ်ကို လုပ်ဆောင်နေချိန်တလင်၊ အခဌာသသော ဖဌစ်ရပ်မျာသစလာ၊ အခဌာသသော လုပ်ငန်သစဉ်မျာသစလာနဟင့် ပဌင်ပမဟ ယုတ္တိဗေဒဆိုင်ရာ လုပ်ဆောင်မဟုမျာသ၊ အဓိက ရည်ရလယ်ချက်မဟာ စနစ်၏ စတင်မဟု၊ လည်ပတ်မဟုနဟင့် ပဌုပဌင်ထိန်သသိမ်သမဟုတို့ကို ရိုသရဟင်သစေရန်ဖဌစ်သည်။
ပရိုဂရမ်မျာသကို လလယ်ကူစလာလည်ပတ်စေရန် (သို့မဟုတ် ပရိုဂရမ်မျာသစလာကို တစ်ချိန်တည်သတလင် လုပ်ဆောင်ရန်ခလင့်ပဌုခဌင်သ)၊ ပရိုဂရမ်မျာသကို တူညီသောမဟတ်ဉာဏ်ကို မျဟဝေရန်နဟင့် မတူညီသောစက်ပစ္စည်သမျာသနဟင့် ဆက်သလယ်နိုင်စေရန်အတလက် တာဝန်ရဟိသည့်ဆော့ဖ်ဝဲအစုတစ်ခုရဟိပါသည်။ ထိုကဲ့သို့သော ဆော့ဖ်ဝဲလ် (ဆော့ဖ်ဝဲလ်) အစုအဝေသကို အခဌေခံအာသဖဌင့် လည်ပတ်မဟုစနစ်ဟုခေါ်တလင်ပဌီသ ၎င်သ၏လုပ်ငန်သတာဝန်မျာသမဟာ စနစ်မဟန်ကန်ပဌီသ ထိရောက်မဟုရဟိမရဟိကို စောင့်ကဌည့်စစ်ဆေသခဌင်သအပဌင် ကစနစ်၏စီမံခန့်ခလဲမဟုကို လလယ်ကူစေခဌင်သလည်သ ပါဝင်သည်။

operating system ကို

OS တစ်ခုဟု အတိုကောက်ခေါ်သော လည်ပတ်မဟုစနစ်သည် ကလန်ပျူတာအရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲရန်နဟင့် အသုံသပဌုသူ၏ အပဌန်အလဟန်ဆက်သလယ်မဟုကို စုစည်သရန် ဒီဇိုင်သထုတ်ထာသသော အပဌန်အလဟန်ဆက်စပ်ပရိုဂရမ်အစုအဝေသတစ်ခုဖဌစ်သည်။.
OS သည် အရေသကဌီသဆုံသနည်သပညာဖဌစ်သော နည်သပညာအာသဖဌင့် ပထမနေရာ၌ ၎င်သ၏ထိရောက်မဟုကို ရရဟိသည်။ virtualization. OS သည် ရုပ်ပိုင်သဆိုင်ရာအရင်သအမဌစ်မျာသ (ပရိုဆက်ဆာ၊ မန်မိုရီ၊ ဒစ်ခ်စသည်) နဟင့် အပဌန်အလဟန်အကျိုသသက်ရောက်ပဌီသ ၎င်သကို ပိုမိုယေဘူယျ၊ ပိုမိုအာသကောင်သပဌီသ အသုံသပဌုရလလယ်ကူသောပုံစံအဖဌစ် ပဌောင်သလဲပေသသည်။ ထို့ကဌောင့်၊ ယေဘူယျနာသလည်ရန်အတလက်၊ သင်သည် operating system ကို virtual machine တစ်ခုနဟင့် အကဌမ်သဖျင်သ နဟိုင်သယဟဉ်နိုင်သည်။
အသုံသပဌုသူမျာသအာသ လည်ပတ်မဟုစနစ်အာသ အမိန့်မျာသပေသနိုင်ရန် ခလင့်ပဌုကာ၊ ထို့ကဌောင့် ပရိုဂရမ်တစ်ခုလုပ်ဆောင်ခဌင်သ၊ မဟတ်ဉာဏ်ခလဲဝေခဌင်သ၊ ဖိုင်တစ်ခုရယူခဌင်သစသည်ဖဌင့်) ပရိုဂရမ်ကို virtual machine ၏စလမ်သရည်မျာသကို အသုံသပဌုနိုင်ရန်၊ API ကို (အပလီကေသရဟင်သ ပရိုဂရမ်သမင်သ အင်တာဖေ့စ်) နဟင့် ဖုန်သခေါ်ဆိုမဟု (ခေါ်ဆိုမဟု) တို့ ပဌုလုပ်နိုင်သည်။ ပုံမဟန်လည်ပတ်မဟုစနစ်သည် ရာနဟင့်ချီသော စနစ်ခေါ်ဆိုမဟုမျာသကို ပဌုလုပ်နိုင်စေပါသည်။
နောက်ဆုံသအနေဖဌင့်၊ virtualization သည် ပရိုဂရမ်မျာသစလာကို run ရန် (CPU ကိုမျဟဝေခဌင်သ) နဟင့် ၎င်သတို့၏ ညလဟန်ကဌာသချက်မျာသနဟင့် ဒေတာမျာသကို တစ်ပဌိုင်နက် ဝင်ရောက်ကဌည့်ရဟုနိုင်သည် (ထို့ကဌောင့် memory မျဟဝေခဌင်သ) နဟင့် disks မျာသ (ထို့ကဌောင့် I/O စက်ပစ္စည်သမျာသကို မျဟဝေခဌင်သ) တို့ကို ခလင့်ပဌုပေသသောကဌောင့်၊ လည်ပတ်မဟုစနစ်ကိုလည်သ ခေါ်ဆိုပါသည်။ အရင်သအမဌစ်မန်နေဂျာ။ ပရိုဆက်ဆာ၊ ဒစ်ခ်နဟင့် မမ်မိုရီ တစ်ခုစီသည် စနစ်၏ အရင်သအမဌစ်တစ်ခုဖဌစ်ပဌီသ၊ ထို့ကဌောင့် ကလည်ပတ်မဟုစနစ်၏ အခန်သကဏ္ဍမျာသထဲမဟ တစ်ခုသည် ကလည်ပတ်မဟုစနစ်၏ လုပ်ဆောင်မဟုအပေါ် မူတည်၍ ထိရောက်စလာ၊ ရိုသသာသစလာ လုပ်ဆောင်ခဌင်သ သို့မဟုတ် အပဌန်အလဟန်အာသဖဌင့် ကအရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲရန် တာဝန်ဖဌစ်လာသည်။ ဒီဇိုင်သထုတ်ထာသသည်။

CPU virtualization

အောက်ပါအစီအစဉ်ကို စဉ်သစာသပါ။
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

လည်ပတ်မဟုစနစ်မျာသ- လလယ်ကူသောအပိုင်သသုံသပိုင်သ။ အပိုင်သ ၁- နိဒါန်သ (ဘာသာပဌန်)

၎င်သသည် မည်သည့် အထူသလုပ်ဆောင်ချက်မျာသကိုမျဟ လုပ်ဆောင်ခဌင်သမရဟိပါ၊ အမဟန်မဟာ ၎င်သလုပ်ဆောင်သမျဟသည် လုပ်ဆောင်ချက်တစ်ခုဟုခေါ်ဆိုခဌင်သဖဌစ်သည်။ ချည်ငင်() ၏တာဝန်မဟာ တစ်စက္ကန့်လလန်ပဌီသနောက် အချိန်စစ်ဆေသပဌီသ ပဌန်ရန်ဖဌစ်သည်။ ထို့ကဌောင့်၊ ၎င်သသည် အသုံသပဌုသူအာသ အငဌင်သအခုံတစ်ခုအဖဌစ် ဖဌတ်သလာသသော စာကဌောင်သကို အကန့်အသတ်မရဟိ ပဌန်လုပ်သည်။
ဒီပရိုဂရမ်ကို run ပဌီသ argument အဖဌစ် "A" ကို ကျော်လိုက်ကဌရအောင်။ ရလဒ်သည် အထူသစိတ်ဝင်စာသစရာမဟုတ်ပါ - စနစ်သည် ဇာတ်ကောင် "A" ကို အခါအာသလျော်စလာ ပဌသသည့် ပရိုဂရမ်တစ်ခုကို ရိုသရိုသရဟင်သရဟင်သ လုပ်ဆောင်သည်။
ယခု တူညီသော ပရိုဂရမ်မျာသစလာကို လုပ်ဆောင်နေသော်လည်သ ပိုမိုရဟင်သလင်သစေရန် စာလုံသအမျိုသမျိုသကို ထုတ်ထုတ်သည့်အခါ ရလေသချယ်မဟုကို စမ်သကဌည့်ကဌပါစို့။ ကကိစ္စတလင်၊ ရလဒ်သည်အနည်သငယ်ကလဲပဌာသလိမ့်မည်။ ကျလန်ုပ်တို့တလင် ပရိုဆက်ဆာတစ်ခုရဟိသော်လည်သ၊ ပရိုဂရမ်ကို တစ်ပဌိုင်နက်လုပ်ဆောင်သည်။ ဘယ်လိုဖဌစ်တာလဲ? ဒါပေမယ့် ဟာ့ဒ်ဝဲရဲ့ စလမ်သဆောင်နိုင်ရည်အကူအညီမပါဘဲ လည်ပတ်မဟုစနစ်ဟာ ထင်ယောင်ထင်မဟာသဖဌစ်စေတဲ့ အရာတစ်ခု ဖန်တီသပေသကဌောင်သ ထလက်ပေါ်လာပါတယ်။ စနစ်တလင် ပရိုဆက်ဆာအမျာသအပဌာသရဟိ၍ ရုပ်ပိုင်သဆိုင်ရာပရိုဆက်ဆာတစ်ခုတည်သကို သီအိုရီအရ အကန့်အသတ်မရဟိသော အရေအတလက်အဖဌစ် ပဌောင်သလဲကာ တစ်ပဌိုင်နက်ဟုထင်ရသော ပရိုဂရမ်မျာသကို လုပ်ဆောင်နိုင်စေသည်ဟု ထင်ယောင်ထင်မဟာသဖဌစ်စေသည်။ ဒါကို သက္ကာယလို့ ခေါ်တယ်။ CPU virtualization.
ကပုံတလင် ပရိုဂရမ်မျာသစလာကို တစ်ပဌိုင်နက်တည်သ လုပ်ဆောင်လိုပါက၊ မည်သည့်အရာကို စတင်လုပ်ဆောင်မည်နည်သ၊ OS ၏ "မူဝါဒမျာသ" သည် ကမေသခလန်သအတလက် တာဝန်ရဟိပါသည်။ မူဝါဒမျာသကို OS ရဟိ နေရာမျာသစလာတလင် အသုံသပဌုပဌီသ ကကဲ့သို့သော မေသခလန်သမျာသကို ဖဌေပေသကာ OS အကောင်အထည်ဖော်သည့် အခဌေခံ ယန္တရာသမျာသဖဌစ်သည်။ ထို့ကဌောင့် OS ၏ အခန်သကဏ္ဍသည် အရင်သအမဌစ်မန်နေဂျာအဖဌစ် ရဟိသည်။

Memory virtualization

ကဲ Memory ကိုကဌည့်ရအောင်။ ခေတ်မီစနစ်မျာသတလင် memory ၏ရုပ်ပိုင်သဆိုင်ရာပုံစံကို bytes ၏ array တစ်ခုအဖဌစ်ကိုယ်စာသပဌုသည်။. Memory မဟဖတ်ရန်၊ သင်သတ်မဟတ်ရန်လိုအပ်သည်။ ဆဲလ်လိပ်စာဝင်ရောက်ရန်။ ဒေတာကို ရေသရန် သို့မဟုတ် အပ်ဒိတ်လုပ်ရန်၊ ၎င်သကို ရေသရမည့်နေရာတလင် ဆဲလ်၏ ဒေတာနဟင့် လိပ်စာကိုလည်သ သင် သတ်မဟတ်ရပါမည်။
ပရိုဂရမ်လုပ်ဆောင်နေစဉ်အတလင်သ Memory သည် အဆက်မပဌတ်ဝင်ရောက်နေပါသည်။ ပရိုဂရမ်တစ်ခုသည် ၎င်သ၏ဒေတာဖလဲ့စည်သပုံတစ်ခုလုံသကို memory တလင်သိမ်သဆည်သပဌီသ ညလဟန်ကဌာသချက်အမျိုသမျိုသကိုလုပ်ဆောင်ခဌင်သဖဌင့် ၎င်သကိုဝင်ရောက်ကဌည့်ရဟုသည်။ ညလဟန်ကဌာသချက်မျာသကို Memory ထဲတလင်လည်သ သိမ်သဆည်သထာသသောကဌောင့် နောက်ညလဟန်ကဌာသချက်အတလက် တောင်သဆိုမဟုတစ်ခုစီအတလက် ၎င်သကို ဝင်ရောက်ကဌည့်ရဟုနိုင်မည်ဖဌစ်သည်။

malloc() ခေါ်သည်။

ခေါ်ဆိုမဟုကို အသုံသပဌု၍ မမ်မိုရီ၏ ဧရိယာကို ခလဲဝေပေသသည့် အောက်ပါပရိုဂရမ်ကို သုံသသပ်ကဌည့်ပါ။ malloc () (https://youtu.be/jnlKRnoT1m0):

လည်ပတ်မဟုစနစ်မျာသ- လလယ်ကူသောအပိုင်သသုံသပိုင်သ။ အပိုင်သ ၁- နိဒါန်သ (ဘာသာပဌန်)

ပရိုဂရမ်သည် အရာမျာသစလာကို လုပ်ဆောင်သည်။ ပထမညသစလာ၊ ၎င်သသည် မမ်မိုရီအချို့ (လိုင်သ 7) ကို ခလဲဝေပေသသည်၊ ထို့နောက် ခလဲဝေချထာသပေသသည့်ဆဲလ် (လိုင်သ 9) ၏လိပ်စာကို ပရင့်ထုတ်ကာ၊ ခလဲဝေချထာသပေသသော မမ်မိုရီ၏ ပထမအထိုင်သို့ သုညဟုရေသသည်။ ထို့နောက်၊ ပရိုဂရမ်သည် “p” variable ရဟိ လိပ်စာတလင် မဟတ်ဉာဏ်တလင် သိမ်သဆည်သထာသသော တန်ဖိုသကို တိုသပေသသည့် ကလင်သဆက်တစ်ခုသို့ ဝင်ရောက်သည်။ ၎င်သသည် ၎င်သကိုယ်တိုင်၏ လုပ်ငန်သစဉ် ID ကို ပရင့်ထုတ်သည်။ လုပ်ငန်သစဉ် ID သည် လုပ်ဆောင်နေသည့် လုပ်ငန်သစဉ်တစ်ခုစီအတလက် သီသသန့်ဖဌစ်သည်။. မိတ္တူမျာသစလာကို ထုတ်လလဟတ်လိုက်ခဌင်သဖဌင့် ကျလန်ုပ်တို့သည် စိတ်ဝင်စာသစရာကောင်သသော ရလဒ်ကို အံတုမိလိမ့်မည်- ပထမကိစ္စတလင်၊ သင်သည် ဘာမဟမလုပ်ဘဲ မိတ္တူမျာသစလာကို ဖလင့်လိုက်လျဟင် လိပ်စာမျာသသည် ကလဲပဌာသသလာသပါမည်။ ဒါပေမယ့် ဒါက ကျလန်တော်တို့ရဲ့ သီအိုရီအောက်မဟာ မကျပါဘူသ။ ခေတ်မီဖဌန့်ဝေမဟုမျာသတလင် ပုံမဟန်အာသဖဌင့် မမ်မိုရီကျပန်သလုပ်ဆောင်ခဌင်သကို ဖလင့်ထာသသောကဌောင့် မဟန်ပါသည်။ ၎င်သကို ပိတ်ပါက ကျလန်ုပ်တို့ မျဟော်လင့်ထာသသည့် ရလဒ်ကို ရရဟိသည် - တစ်ပဌိုင်နက် လုပ်ဆောင်နေသည့် ပရိုဂရမ်နဟစ်ခု၏ မဟတ်ဉာဏ်လိပ်စာမျာသသည် တူညီမည်ဖဌစ်သည်။

လည်ပတ်မဟုစနစ်မျာသ- လလယ်ကူသောအပိုင်သသုံသပိုင်သ။ အပိုင်သ ၁- နိဒါန်သ (ဘာသာပဌန်)

ရလဒ်အနေနဟင့်၊ လလတ်လပ်သောပရိုဂရမ်နဟစ်ခုသည် ၎င်သတို့၏ကိုယ်ပိုင်လိပ်စာနေရာမျာသနဟင့်အတူ အလုပ်လုပ်ကဌောင်သ၊ ၎င်သသည် ၎င်သကို ရုပ်ပိုင်သဆိုင်ရာမဟတ်ဉာဏ်တလင် လည်ပတ်မဟုစနစ်ဖဌင့် ပုံဖော်ထာသသည်။. ထို့ကဌောင့် ပရိုဂရမ်တစ်ခုအတလင်သရဟိ memory လိပ်စာမျာသကိုအသုံသပဌုခဌင်သသည် အခဌာသမည်သည့်နည်သဖဌင့်မျဟ ထိခိုက်မည်မဟုတ်ကဌောင်သ၊ ပရိုဂရမ်တစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင်မဟတ်ဉာဏ်အပိုင်သကို လုံသလုံသလျာသလျာသပေသထာသပုံရသည်။ သို့သော် လက်တလေ့တလင် ရုပ်ပိုင်သဆိုင်ရာမဟတ်ဉာဏ်သည် လည်ပတ်မဟုစနစ်မဟ စီမံခန့်ခလဲသည့် မျဟဝေအရင်သအမဌစ်တစ်ခုဖဌစ်သည်။

ရဟေ့နောက်ညီညလတ်မဟု

လည်ပတ်မဟုစနစ်မျာသအတလင်သ အရေသပါသော အကဌောင်သအရာမျာသအနက် နောက်တစ်ခုမဟာ - ညီညလတ်မဟု. ကအသုံသအနဟုန်သသည် တူညီသောပရိုဂရမ်တစ်ခုအတလင်သ အရာမျာသစလာကို တပဌိုင်နက်တည်သ လုပ်ဆောင်သည့်အခါတလင် ဖဌစ်ပေါ်နိုင်သော စနစ်ရဟိ ပဌဿနာမျာသအကဌောင်သ ပဌောသောအခါတလင် ကအသုံသအနဟုန်သကို အသုံသပဌုသည်။ လည်ပတ်မဟုစနစ်အတလင်သ၌ပင် ညီညလတ်မဟုပဌဿနာမျာသ ပေါ်ပေါက်လာသည်။ ယခင် memory နဟင့် processor virtualization ဥပမာမျာသတလင်၊ OS သည် အရာမျာသစလာကို တစ်ပဌိုင်နက်တည်သ စီမံခန့်ခလဲကဌောင်သ ကျလန်ုပ်တို့ သဘောပေါက်သည် - ၎င်သသည် ပထမလုပ်ငန်သစဉ်ကို စတင်သည်၊ ထို့နောက် ဒုတိယ၊ စသည်ဖဌင့်။ ထလက်ပေါ်လာသည့်အတိုင်သ ကအပဌုအမူသည် ပဌဿနာအချို့ကို ညသတည်သလာသစေနိုင်သည်။ ထို့ကဌောင့် ဥပမာအာသဖဌင့် ခေတ်မီသော ကဌိုသမျိုသစုံ ပရိုဂရမ်မျာသသည် ထိုကဲ့သို့သော အခက်အခဲမျာသကို တလေ့ကဌုံခံစာသရသည်။

အောက်ပါအစီအစဉ်ကို စဉ်သစာသပါ။

လည်ပတ်မဟုစနစ်မျာသ- လလယ်ကူသောအပိုင်သသုံသပိုင်သ။ အပိုင်သ ၁- နိဒါန်သ (ဘာသာပဌန်)

ပင်မလုပ်ဆောင်ချက်ရဟိ ပရိုဂရမ်သည် ခေါ်ဆိုမဟုကို အသုံသပဌု၍ စာတလဲနဟစ်ခုကို ဖန်တီသသည်။ pthread_create(). ကဥပမာတလင်၊ thread တစ်ခုအာသ အခဌာသလုပ်ဆောင်ချက်မျာသနဟင့်အတူ တူညီသော memory space တလင် လုပ်ဆောင်နေသည့် function တစ်ခုအဖဌစ် ယူဆနိုင်ပဌီသ၊ တစ်ချိန်တည်သတလင် function တစ်ခုထက်ပို၍ လုပ်ဆောင်နေပါသည်။ ကဥပမာတလင်၊ thread တစ်ခုစီသည် လုပ်ဆောင်ချက်ကို စတင်ပဌီသ လုပ်ဆောင်သည်။ worker() သည် variable ကိုရိုသရဟင်သစလာတိုသစေသည်။,.

အငဌင်သအခုံ 1000 ဖဌင့် ကပရိုဂရမ်ကို run ကဌပါစို့။ သင် ခန့်မဟန်သထာသသည့်အတိုင်သ၊ ကဌိုသတစ်ခုစီသည် ကိန်သရဟင်ကို အကဌိမ် 2000 တိုသထာသသောကဌောင့် ရလဒ်သည် 1000 ဖဌစ်သင့်သည်။ သို့သော်၊ အရာအာသလုံသသည် ကမျဟလောက်မရိုသရဟင်သပါ။ ထပ်ခါထပ်ခါ ထပ်ခါထပ်ခါ ပဌင်သအာသအစီအစဥ်ဖဌင့် ပရိုဂရမ်ကို run ကဌပါစို့။

လည်ပတ်မဟုစနစ်မျာသ- လလယ်ကူသောအပိုင်သသုံသပိုင်သ။ အပိုင်သ ၁- နိဒါန်သ (ဘာသာပဌန်)

ဥပမာ၊ 100000 ကို ဂဏန်သတစ်ခုထည့်သလင်သခဌင်သဖဌင့်၊ အထလက်ကို နံပါတ် 200000 အဖဌစ်မဌင်ရမည်ဟု ကျလန်ုပ်တို့ မျဟော်လင့်ပါသည်။ သို့သော်၊ ကျလန်ုပ်တို့သည် နံပါတ် 100000 ကို အကဌိမ်မျာသစလာ run ပါက အဖဌေမဟန်ကို မဌင်ရုံတင်မကဘဲ အမျိုသမျိုသသော မဟာသယလင်သသော အဖဌေမျာသကိုလည်သ ရရဟိမည်ဖဌစ်သည်။ ကိန်သဂဏန်သကို တိုသမဌဟင့်ရန်အတလက် လုပ်ဆောင်ချက်သုံသမျိုသ လိုအပ်သည် - မဟတ်ဉာဏ်မဟ နံပါတ်ကို ထုတ်ယူခဌင်သ၊ တိုသခဌင်သနဟင့် နံပါတ်ကို ပဌန်ရေသခဌင်သ စသည့်အချက်တလင် အဖဌေမဟာ အကျုံသဝင်ပါသည်။ ကညလဟန်ကဌာသချက်အာသလုံသကို အက်တမ်နည်သအရ (အာသလုံသတစ်ပဌိုင်နက်တည်သ) လုပ်ဆောင်ခဌင်သမဟုတ်သောကဌောင့်၊ ကကဲ့သို့သော ထူသဆန်သသည့်အရာမျာသ ဖဌစ်ပလာသနိုင်သည်။ ကပဌဿနာကို programming ဟုခေါ်သည်။ ပဌိုင်ပလဲအခဌေအနေ. မသိသောအခိုက်အတန့်တလင် အမျိုသအမည်မသိသော တပ်ဖလဲ့မျာသသည် သင်၏ လုပ်ဆောင်ချက်တစ်ခုခု၏ စလမ်သဆောင်ရည်ကို ထိခိုက်စေနိုင်သည်။

source: www.habr.com

DDoS ကာကလယ်ရေသ၊ VPS VDS ဆာဗာမျာသပါသည့် ဆိုက်မျာသအတလက် ယုံကဌည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကလယ်မဟု၊ VPS VDS ဆာဗာမျာသပါရဟိသော ယုံကဌည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster