OS Fundamentals (operating system ရဲ့ အခြေခံများ)
A1.3.1: Role of operating systems, A1.3.2: Functions of an operating system
မြန်မာလို: A1.3.1: operating system (ကွန်ပျူတာကို စီမံတဲ့ အဓိက software) တွေရဲ့ အခန်းကဏ္ဍ၊ A1.3.2: operating system ရဲ့ လုပ်ဆောင်ချက်များ
အဓိက အယူအဆများ
Operating System ဆိုတာ ဘာလဲ (A1.3.1)
Operating system (OS) ဆိုတာ ကွန်ပျူတာရဲ့ hardware နဲ့ software resource (သုံးလို့ရတဲ့ ကွန်ပျူတာ အရင်းအမြစ်) တွေကို စီမံပြီး application program (သုံးစွဲသူအတွက် ရေးထားတဲ့ software) တွေကို အများသုံး ဝန်ဆောင်မှုတွေ ပေးတဲ့ system software (ကွန်ပျူတာ စနစ် ကိုယ်တိုင် အလုပ်လုပ်အောင် ထိန်းပေးတဲ့ software) ပါ။ Smartphone ကနေ supercomputer (အလွန် စွမ်းအားကြီးတဲ့ ကွန်ပျူတာ) အထိ ရည်ရွယ်ချက် အမျိုးမျိုးအတွက် သုံးတဲ့ ကွန်ပျူတာ စက်ပစ္စည်း အားလုံးနီးပါးမှာ operating system တစ်ခု run နေပါတယ်။ (အရိုးရှင်းဆုံး embedded device (စက်ထဲ ထည့်ထားတဲ့ ကွန်ပျူတာငယ်) တွေ၊ ဥပမာ အခြေခံ microcontroller (chip တစ်ခုတည်းပေါ်မှာ processor၊ memory နဲ့ input/output ပါတဲ့ ကွန်ပျူတာ အသေးလေး) လိုမျိုးကတော့ operating system မပါဘဲ program တစ်ခုတည်းကို hardware ပေါ်မှာ တိုက်ရိုက် run ပါတယ်။)
OS မှာ အခြေခံ ရည်ရွယ်ချက် နှစ်ခု ရှိပါတယ်:
Abstraction (မလိုတဲ့ အသေးစိတ်ကို ဖယ်ပြီး အဓိကကိုပဲ ကြည့်ခြင်း): hardware ရဲ့ ရှုပ်ထွေးမှုကို user တွေနဲ့ application တွေဆီကနေ ဖုံးထားပေးတာပါ။ OS မရှိရင် program တိုင်းက ကွန်ပျူတာမှာ တပ်ထားတဲ့ hard drive၊ printer ဒါမှမဟုတ် network card (စက်ကို network နဲ့ ချိတ်ပေးတဲ့ card) ရဲ့ brand နဲ့ model အတိအကျနဲ့ ဘယ်လို ဆက်သွယ်ရမလဲ ဆိုတာ သိထားရပါလိမ့်မယ်။ OS က တစ်ပုံစံတည်း ဖြစ်တဲ့ interface (ချိတ်ဆက်ပြီး သုံးစွဲရတဲ့ နည်းလမ်း) တစ်ခု ပေးထားလို့ application တွေက hardware အသေးစိတ်တွေကို ကိုင်တွယ်စရာ မလိုပါဘူး။ ဥပမာ word processor (စာစီစာရိုက် software) က “save file” ကို ခေါ်လိုက်ရုံပါပဲ၊ ဒေတာကို disk ပေါ်မှာ ဘယ်နေရာမှာ၊ ဘယ်လို တကယ် ရေးမလဲ ဆိုတာကို OS က ကိုင်တွယ်ပါတယ်။
Resource management (resource တွေကို စီမံ ခွဲဝေခြင်း): ကွန်ပျူတာမှာ အကန့်အသတ်နဲ့ပဲ ရှိတဲ့ resource တွေ (CPU (ကွန်ပျူတာရဲ့ အဓိက processor) အချိန်၊ memory (မှတ်ဉာဏ်)၊ storage (ဒေတာကို ရေရှည် သိမ်းထားတဲ့ နေရာ)၊ စက်ပစ္စည်းများ) ကို အပြိုင် လိုချင်နေတဲ့ program အများနဲ့ user အများကြား မျှမျှတတ ခွဲဝေပေးတာပါ။ Browser၊ music player နဲ့ document editor တို့ကို တစ်ပြိုင်နက် ဖွင့်ထားတဲ့အခါ ဘယ် program က CPU အချိန် ရမလဲ၊ တစ်ခုစီက RAM (ပါဝါပိတ်ရင် ပျောက်တဲ့ အဓိက memory) ဘယ်လောက် ရမလဲ၊ network connection ကို ဘယ်လို မျှသုံးမလဲ ဆိုတာ OS က ဆုံးဖြတ်ပါတယ်။
OS က hardware နဲ့ application software ကြားမှာ intermediary (ကြားခံ) အဖြစ် လုပ်ဆောင်ပါတယ်။ Application တွေက OS ဆီ တောင်းဆိုချက်တွေ ပို့ပါတယ် (ဥပမာ “ဒီ file ကို ဖွင့်ပါ”၊ “ဒီစာမျက်နှာကို print ထုတ်ပါ”)၊ ပြီးတော့ OS က အဲဒီ တောင်းဆိုချက်တွေကို hardware တစ်ခုချင်းအတွက် သီးသန့် instruction (processor လုပ်ဆောင်ရမယ့် ညွှန်ကြားချက်) တွေအဖြစ် ဘာသာပြန်ပေးပါတယ်။ ဒီလို အလွှာလိုက် ခွဲထားတဲ့ ပုံစံကြောင့် application တွေက portable (တခြား platform တွေမှာ ပြောင်းသုံးနိုင်တဲ့) ဖြစ်ပါတယ်: OS က ဘာသာပြန်တာကို ကိုင်တွယ်ပေးနေသရွေ့ program တစ်ခုတည်းကို မတူတဲ့ hardware တွေပေါ်မှာ run နိုင်ပါတယ်။
Operating system မရှိရင် programmer တိုင်းက hardware ကို တိုက်ရိုက် စီမံဖို့ low-level code (hardware နဲ့ နီးကပ်တဲ့ အဆင့်နိမ့် code) တွေ ရေးရပါလိမ့်မယ်။ ကွန်ပျူတာ ခေတ်ဦးမှာ တကယ် ဒီလိုပါပဲ၊ ဒါကြောင့် program ရေးတာက နှေးတယ်၊ အမှား ဖြစ်လွယ်တယ်၊ ပြီးတော့ hardware တစ်မျိုးတည်းအတွက်ပဲ ဖြစ်နေခဲ့ပါတယ်။
Operating system က ဘာတွေ လုပ်လဲ ဆိုတာကို ခြုံငုံ ပြပါတယ်: hardware ကို စီမံတာ၊ program တွေကို run တာနဲ့ user interface (အသုံးပြုသူ မြင်ပြီး ကိုင်တွယ်ရတဲ့ အပိုင်း) ပေးတာတို့ပါ။
Operating System ရဲ့ အဓိက လုပ်ဆောင်ချက်များ (A1.3.2)
ကွန်ပျူတာ ချောချောမွေ့မွေ့ အလုပ်လုပ်နေအောင် OS က လုပ်ဆောင်ချက် အများကြီးကို တစ်ပြိုင်နက် လုပ်ပါတယ်။ လုပ်ဆောင်ချက် တစ်ခုစီက resource အမျိုးအစား တစ်မျိုးစီကို စီမံပါတယ်။
Process Management (process တွေကို စီမံခြင်း)
Process (run နေတဲ့ program) ဆိုတာ memory ထဲကို load လုပ်ထားပြီး run နေတဲ့၊ ဒါမှမဟုတ် run ဖို့ စောင့်နေတဲ့ program တစ်ခုပါ။ Process management မှာ အောက်ပါတို့ ပါဝင်ပါတယ်:
- Program တွေကို ဖွင့်လိုက်တဲ့အခါ process အသစ်တွေကို ဖန်တီးခြင်း
- CPU အချိန်ကို မျှမျှတတ မျှသုံးနိုင်အောင် process တွေကို scheduling (ဘယ် process ကို CPU အချိန် ပေးမလဲ ဆုံးဖြတ်ခြင်း) လုပ်ခြင်း: ဘယ် process ကို နောက်ထပ် run မလဲ ဆုံးဖြတ်ပါတယ်
- Context switching (process တစ်ခုကနေ တစ်ခုကို CPU ပြောင်းခြင်း): CPU က task (အလုပ်) တစ်ခုကနေ တစ်ခုကို ပြောင်းတဲ့အခါ process တစ်ခုရဲ့ state (လက်ရှိ အခြေအနေ) ကို သိမ်းပြီး နောက် process တစ်ခုရဲ့ state ကို load လုပ်ခြင်း
- Process တွေ ပြီးသွားတဲ့အခါ ဒါမှမဟုတ် error တစ်ခု ကြုံတဲ့အခါ ရပ်စေခြင်း (terminate)
- Inter-process communication (IPC) (process တွေ အချင်းချင်း ဒေတာ ဖလှယ်ခြင်း): process တွေ ဒေတာကို လုံလုံခြုံခြုံ ဖလှယ်နိုင်အောင် လုပ်ပေးခြင်း
ခေတ်သစ် ကွန်ပျူတာ တစ်လုံးမှာ process ဒါဇင်ပေါင်း ဒါမှမဟုတ် ရာပေါင်းများစွာ တစ်ပြိုင်နက် ရှိနေနိုင်ပါတယ်။ OS က process တွေကြား အလွန် မြန်မြန် ပြောင်းပေးလို့ အားလုံး တစ်ပြိုင်နက် run နေသလို ထင်ရပါတယ်။
အများ မှားတတ်တာက program နဲ့ process ကို ရောထွေးတာပါ။ Program ဆိုတာ disk ပေါ်မှာ သိမ်းထားပြီး ဘာမှ မလုပ်ဘဲ ရှိနေတဲ့ instruction အစု တစ်ခုပါ။ Process ဆိုတာ အဲဒီ program ကို memory ထဲ load လုပ်ပြီး တကယ် run နေတဲ့ ပုံစံ တစ်ခုပါ။ Program တစ်ခုတည်းကနေ process အများ ရှိနိုင်ပါတယ် (ဥပမာ text editor ကို နှစ်ခါ ဖွင့်ရင် သီးခြား process နှစ်ခု ရပါတယ်)။
OS က process တွေကို ဘယ်လို ဖန်တီး၊ schedule လုပ်ပြီး ရပ်စေလဲ ဆိုတာ ပြပါတယ်: process lifecycle (process တစ်ခု စကနေ ပြီးတဲ့အထိ ဖြတ်သွားတဲ့ အဆင့်တွေ) ကို ရှင်းပြထားပါတယ်။
Memory Management (memory ကို စီမံခန့်ခွဲခြင်း)
ကွန်ပျူတာရဲ့ RAM ကို စီမံဖို့ OS မှာ တာဝန် ရှိပါတယ်:
- Process တွေ စတဲ့အခါ memory ကို ခွဲဝေပေးခြင်း (allocate) နဲ့ ပြီးသွားတဲ့အခါ ပြန်ယူခြင်း (deallocate)
- Memory နေရာတွေကို ကာကွယ်ခြင်း: process တစ်ခုက တခြား process ရဲ့ memory ကို ဖတ်လို့၊ ရေးလို့ မရအောင် လုပ်ခြင်း (ဒါက crash (program ရုတ်တရက် ပျက်ပြီး ရပ်သွားခြင်း) တွေနဲ့ လုံခြုံရေး ချိုးဖောက်ခံရမှုတွေကို ကာကွယ်ပေးပါတယ်)
- Virtual memory (RAM ပြည့်ရင် disk နေရာကို memory အဖြစ် ချေးသုံးခြင်း): RAM ပိုကြီးသလို ထင်ရအောင် secondary storage (ပါဝါပိတ်ပြီးလည်း ဒေတာ ကျန်နေတဲ့ ရေရှည် storage) ရဲ့ အပိုင်းတစ်ခုကို သုံးခြင်း (swap file ဒါမှမဟုတ် swap partition: ဒီအလုပ်အတွက် disk ပေါ်မှာ ဖယ်ထားတဲ့ file ဒါမှမဟုတ် disk အပိုင်း)
RAM ပြည့်သွားတဲ့အခါ OS က paging (memory ကို page တွေ ခွဲပြီး RAM နဲ့ disk ကြား ရွှေ့ခြင်း) ကို သုံးပြီး သိပ်မသုံးတဲ့ memory အပိုင်းတွေ (page လို့ ခေါ်ပါတယ်) ကို RAM ကနေ disk ပေါ်ကို ရွှေ့ပါတယ်။ Process တစ်ခုက disk ပေါ်မှာ ရှိနေတဲ့ page တစ်ခုကို လိုလာတဲ့အခါ page fault (လိုတဲ့ page က RAM ထဲမှာ မရှိဘဲ disk ပေါ်မှာ ရှိနေခြင်း) ဖြစ်ပါတယ်: OS က အဲဒီ page ကို RAM ထဲ ပြန် load လုပ်ရပြီး ဒါက အများကြီး ပိုနှေးပါတယ်။
ကွန်ပျူတာက အသုံးဝင်တဲ့ အလုပ် လုပ်တာထက် page တွေကို အထုတ်အသွင်း လုပ်တာမှာ အချိန် ပိုကုန်နေရင် အဲဒါကို thrashing (page ရွှေ့တာမှာပဲ အချိန် ကုန်နေလို့ အလုပ် မတွင်တော့ခြင်း) လို့ ခေါ်ပါတယ်။ Thrashing က performance (စွမ်းဆောင်ရည်) ကို အကြီးအကျယ် ကျဆင်းစေပါတယ်: ကွန်ပျူတာက ရပ်သွားသလို ဒါမှမဟုတ် အလွန် နှေးသွားသလို ဖြစ်ပါတယ်။
Virtual memory အလုပ်လုပ်ပုံကို ကိုယ်တိုင် သတိထားကြည့်နိုင်ပါတယ်: application အများကြီး ဖွင့်ထားတဲ့အခါ ကွန်ပျူတာ အကြီးအကျယ် နှေးသွားရင် OS က page တွေကို RAM နဲ့ disk ကြား swap (အပြန်အလှန် ရွှေ့ပြောင်း) လုပ်နေတာ ဖြစ်နိုင်ပါတယ်။ RAM ထပ်ထည့်ရင် paging လိုအပ်မှု လျော့သွားပါတယ်။
OS က memory allocation (process တွေကို memory နေရာ ခွဲပေးခြင်း) နဲ့ virtual memory ကို ဘယ်လို စီမံလဲ၊ process တွေ တစ်ခုနဲ့ တစ်ခု မနှောင့်ယှက်အောင် ဘယ်လို ထိန်းထားလဲ ဆိုတာ ပြပါတယ်။
File Management (file တွေကို စီမံခြင်း)
Secondary storage ပေါ်မှာ သိမ်းထားတဲ့ ဒေတာကို OS က စနစ်တကျ စီစဉ်ပြီး ဘယ်သူ သုံးခွင့်ရလဲ ထိန်းချုပ်ပါတယ်:
- Directories (folder များ): file တွေကို စနစ်တကျ ထားဖို့ အဆင့်ဆင့် ဖွဲ့ထားတဲ့ ဖွဲ့စည်းပုံ
- File operations (file ပေါ်မှာ လုပ်တဲ့ လုပ်ဆောင်ချက်များ): create, read, write, delete, rename, copy, move (ဖန်တီး၊ ဖတ်၊ ရေး၊ ဖျက်၊ နာမည်ပြောင်း၊ copy ကူး၊ ရွှေ့)
- Access permissions (သုံးခွင့် သတ်မှတ်ချက်များ): ဘယ် user တွေက file တွေကို ဖတ်ခွင့်၊ ရေးခွင့် ဒါမှမဟုတ် run (execute) ခွင့် ရှိလဲ ထိန်းချုပ်ခြင်း
- File allocation (file တွေကို storage နေရာ ခွဲပေးခြင်း): storage device ပေါ်မှာ တကယ် ရှိတဲ့ ဘယ် sector (storage ပေါ်က ဒေတာ သိမ်းတဲ့ အပိုင်းငယ်) တွေက file တစ်ခုစီနဲ့ သက်ဆိုင်လဲ မှတ်ထားခြင်း
- File metadata (file အကြောင်း အချက်အလက်): file နာမည်၊ အရွယ်အစား၊ ဖန်တီးတဲ့ ရက်စွဲ၊ ပြင်ဆင်တဲ့ ရက်စွဲ နဲ့ permission တွေကို သိမ်းထားခြင်း
File system (file တွေကို သိမ်းဆည်း စီစဉ်တဲ့ စနစ်) (ဥပမာ Windows မှာ NTFS၊ macOS မှာ APFS၊ Linux မှာ ext4) က file တွေကို disk ပေါ်မှာ ဘယ်လို သိမ်းမလဲ စီမံတဲ့ OS ရဲ့ အစိတ်အပိုင်းပါ။
Device Management (စက်ပစ္စည်းတွေကို စီမံခြင်း)
OS က I/O (input/output) device (ဒေတာ အဝင်အထွက် စက်ပစ္စည်း) အားလုံးနဲ့ ဆက်သွယ်မှုကို စီမံပါတယ်: keyboard၊ mouse၊ monitor၊ printer၊ network card စသည်တို့ပါ။
- Device drivers (စက်ပစ္စည်းကို ထိန်းချုပ်တဲ့ software): OS နဲ့ သတ်မှတ်ထားတဲ့ hardware device တစ်ခုကြားမှာ တစ်ပုံစံတည်း ဖြစ်တဲ့ interface ကို ပေးတဲ့ သီးသန့် software module (သီးခြား လုပ်ဆောင်ချက် တစ်ခုအတွက် ခွဲထားတဲ့ program အပိုင်း) တွေပါ။ Device တစ်ခုစီမှာ ကိုယ်ပိုင် driver လိုပေမယ့် application တွေကတော့ device အားလုံးကို တူညီတဲ့ OS interface ကနေပဲ သုံးပါတယ်။
- Buffering (ဒေတာကို ခဏ သိမ်းထားခြင်း): device နဲ့ CPU ကြား ဒေတာ လွှဲပြောင်းနေစဉ် memory ထဲမှာ ခဏ သိမ်းထားခြင်း။ ဒါက မြန်နှုန်း ကွာခြားချက်ကို ညှိပေးပါတယ် (CPU က device အများစုထက် အများကြီး ပိုမြန်ပါတယ်)။
- Caching (ပြန်သုံးဖို့ သိမ်းထားခြင်း): မကြာခဏ ယူသုံးတဲ့ device ဒေတာကို ပိုမြန်မြန် ပြန်ယူနိုင်အောင် memory ထဲမှာ ထားခြင်း
- Spooling (အလုပ်တွေကို တန်းစီထားခြင်း): CPU စောင့်စရာ မလိုအောင် နှေးတဲ့ device အတွက် output တွေကို queue (အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်း) ထဲမှာ စီထားခြင်း။ ဥပမာ document အများကြီးကို print ထုတ်တဲ့အခါ OS က အဲဒါတွေကို print queue (spool) ထဲ ထည့်ပြီး CPU က တခြား အလုပ်တွေ ဆက်လုပ်နေစဉ် printer ဆီ တစ်ခုချင်း ပို့ပေးပါတယ်။
Spooling ရဲ့ အဓိက အယူအဆက CPU က printer လို နှေးတဲ့ device ကို စောင့်နေဖို့ မြန်လွန်းတာပါ။ ဒါကြောင့် OS က print job (print ထုတ်ရမယ့် အလုပ်) ကို queue ထဲ သိမ်းထားပြီး နောက်ကွယ်မှာ (background) လုပ်ဆောင်ပါတယ်၊ ဒီလိုနဲ့ CPU က တခြား အလုပ်တွေ လုပ်ဖို့ အားလပ်သွားပါတယ်။
Security (လုံခြုံရေး)
OS က system နဲ့ သူ့ဒေတာကို နည်းလမ်း အမျိုးမျိုးနဲ့ ကာကွယ်ပါတယ်:
- Authentication (အသုံးပြုသူ တကယ် ဟုတ်မဟုတ် စစ်ခြင်း): user က ဘယ်သူလဲ ဆိုတာ စစ်ဆေးခြင်း (ဥပမာ password၊ လက်ဗွေ၊ မျက်နှာ မှတ်သားခြင်း)။ ဒါက “ကိုယ်ပြောတဲ့သူ ဟုတ်ရဲ့လား” ဆိုတဲ့ မေးခွန်းကို ဖြေပါတယ်။
- Authorization (သုံးခွင့် ရှိမရှိ ဆုံးဖြတ်ခြင်း): authentication အောင်ပြီးသား user က ဘာတွေကို သုံးခွင့် ရှိလဲ ဆုံးဖြတ်ခြင်း (ဥပမာ file permission၊ network resource)။ ဒါက “ဒါကို လုပ်ခွင့် ရှိရဲ့လား” ဆိုတဲ့ မေးခွန်းကို ဖြေပါတယ်။
- Encryption (ဒေတာကို ဖတ်မရအောင် ပြောင်းခြင်း): ဒေတာကို decrypt (မူရင်းအဖြစ် ပြန်ပြောင်း) လုပ်ဖို့ key (ဒေတာ ပြန်ဖော်ဖို့ လိုတဲ့ လျှို့ဝှက် တန်ဖိုး) လိုတဲ့ ဖတ်မရတဲ့ ပုံစံအဖြစ် ပြောင်းပြီး ဒေတာကို ကာကွယ်ခြင်း
- Audit logging (လုပ်ဆောင်မှုတွေကို မှတ်တမ်းတင်ခြင်း): နောက်မှ ပြန်စစ်နိုင်အောင် user လုပ်ဆောင်ချက်တွေနဲ့ system event (ဖြစ်ရပ်) တွေကို မှတ်တမ်းတင်ခြင်း (ဥပမာ login ဝင်ဖို့ ကြိုးစားမှုများ၊ file ဖွင့်သုံးမှုများ၊ configuration (setting သတ်မှတ်ပုံ) ပြောင်းလဲမှုများ)
- Account lockout (account ကို ပိတ်ခြင်း): brute-force attack (password ဖြစ်နိုင်တာ အားလုံးကို တစ်ခုမကျန် စမ်းပြီး တိုက်ခိုက်ခြင်း) တွေကို ကာကွယ်ဖို့ login အကြိမ်ကြိမ် မအောင်မြင်ရင် account ကို ပိတ်ထားခြင်း
အလွန် အများ မှားတတ်တာက authentication နဲ့ authorization ကို ရောထွေးတာပါ။ Authentication = identity (ဘယ်သူလဲ ဆိုတာ သက်သေပြခြင်း)။ Authorization = access (ဘာလုပ်ခွင့် ရှိလဲ ဆုံးဖြတ်ခြင်း)။ User တစ်ယောက်ကို authorize မလုပ်ခင် authenticate အရင် လုပ်ရပါမယ်။ လုံခြုံရေး စစ်ဆေးရေးဂိတ်လို စဉ်းစားကြည့်ပါ: အစောင့်က သင့် ID ကတ်ကို စစ်တယ် (authentication)၊ ပြီးမှ ဧည့်သည်စာရင်းထဲမှာ သင့်နာမည် ပါမပါ စစ်တယ် (authorization)။
Accounting and Monitoring (resource သုံးစွဲမှုကို မှတ်တမ်းတင်ခြင်းနဲ့ စောင့်ကြည့်ခြင်း)
Resource တွေကို ဘယ်လို သုံးနေလဲ ဆိုတာ OS က မှတ်ထားပါတယ်:
- Resource monitoring (resource သုံးစွဲမှုကို စောင့်ကြည့်ခြင်း): CPU သုံးစွဲမှု၊ memory သုံးစွဲမှု၊ disk I/O နဲ့ network traffic (network ပေါ်က ဒေတာ အသွားအလာ) ကို real time (ချက်ချင်း ဆက်တိုက်) တိုင်းတာခြင်း
- Quotas (သုံးခွင့် ပမာဏ ကန့်သတ်ချက်များ): user ဒါမှမဟုတ် process တစ်ခု သုံးနိုင်တဲ့ resource ပမာဏကို ကန့်သတ်ခြင်း (ဥပမာ ကျောင်းသား account တစ်ခုစီအတွက် အများဆုံး disk နေရာ)
- Performance analysis (စွမ်းဆောင်ရည်ကို ခွဲခြမ်းစိတ်ဖြာခြင်း): bottleneck (စနစ်တစ်ခုလုံးကို နှေးစေတဲ့ ပိတ်ဆို့နေတဲ့ နေရာ) တွေကို ရှာဖွေခြင်း (ဥပမာ CPU အချိန်ရဲ့ 95% ကို သုံးနေတဲ့ process)
- Usage logging (သုံးစွဲမှု မှတ်တမ်းတင်ခြင်း): user တစ်ယောက်စီက resource တစ်ခုစီကို အချိန်တစ်လျှောက် ဘယ်လောက် သုံးခဲ့လဲ မှတ်တမ်းတင်ခြင်း (ကျောင်းတွေ ဒါမှမဟုတ် cloud server တွေလို မျှသုံးတဲ့ ပတ်ဝန်းကျင်တွေမှာ အရေးကြီးပါတယ်)
System administrator (ကွန်ပျူတာ စနစ်တွေကို စီမံ ထိန်းသိမ်းတဲ့သူ) တွေက performance ပြဿနာတွေကို ရှာဖွေဖို့နဲ့ resource တွေကို မျှမျှတတ ခွဲဝေထားကြောင်း သေချာစေဖို့ monitoring tool တွေ (ဥပမာ Windows မှာ Task Manager၊ macOS မှာ Activity Monitor) ကို သုံးပါတယ်။
GUI and Accessibility (GUI နဲ့ လူတိုင်း သုံးနိုင်အောင် လုပ်ပေးထားမှု)
User တွေ ကွန်ပျူတာကို သုံးရတဲ့ interface ကို OS က ပေးပါတယ်:
- GUI (Graphical User Interface၊ window၊ button၊ text box တွေကို မြင်ရပြီး နှိပ်သုံးရတဲ့ user interface): window၊ icon၊ menu နဲ့ pointer (mouse ညွှန်တံ) တွေ ပါတဲ့ မျက်စိနဲ့ မြင်ရတဲ့ interface (WIMP model: Windows, Icons, Menus, Pointers)
- Window management (window တွေကို စီမံခြင်း): ထပ်နေတဲ့ window တွေ၊ အသေးချုံ့ခြင်း၊ အကြီးချဲ့ခြင်း၊ အရွယ်အစား ပြောင်းခြင်းနဲ့ application တွေကြား ကူးပြောင်းခြင်းကို ကိုင်တွယ်ခြင်း
- CLI (Command Line Interface၊ command တွေကို စာနဲ့ ရိုက်ပြီး သုံးရတဲ့ interface): user တွေက command တွေကို ရိုက်ထည့်ရတဲ့ စာသား အခြေခံ interface။ စွမ်းအား ကြီးပြီး script ရေးပြီး အလိုအလျောက် run နိုင်လို့ (scriptability) system administrator တွေနဲ့ developer (software ရေးသူ) တွေက ပိုကြိုက်ကြပါတယ်
- Accessibility features (လူတိုင်း သုံးနိုင်အောင် ထည့်ထားတဲ့ လုပ်ဆောင်ချက်များ): မသန်စွမ်းသူ user တွေအတွက် screen reader (screen ပေါ်က စာကို အသံနဲ့ ဖတ်ပြတဲ့ software)၊ high-contrast mode (အရောင် ကွာခြားမှု မြင့်တဲ့ mode)၊ keyboard နဲ့ ရွှေ့သွားခြင်း၊ အသံနဲ့ ထိန်းချုပ်ခြင်းနဲ့ ချဲ့ကြည့်ခြင်း
ခေတ်သစ် operating system အများစုမှာ GUI ရော CLI ပါ ပါပါတယ်။ GUI က နေ့စဉ် user တွေအတွက် သုံးရ ပိုလွယ်ပါတယ်၊ CLI ကတော့ ထပ်ခါထပ်ခါ လုပ်ရတဲ့ အလုပ်တွေနဲ့ system စီမံခန့်ခွဲမှုအတွက် ပိုထိရောက်ပါတယ်။
Virtualization (ကွန်ပျူတာ တစ်လုံးပေါ်မှာ virtual machine အများ run ခြင်း)
Virtualization က ရုပ်ပိုင်းဆိုင်ရာ ကွန်ပျူတာ တစ်လုံးကို virtual ကွန်ပျူတာ အများကြီး တစ်ပြိုင်နက် run နိုင်စေပါတယ်:
- Hypervisor ဆိုတာ virtual machine (VM၊ ကွန်ပျူတာ တစ်လုံးပေါ်မှာ software နဲ့ ဖန်တီးထားတဲ့ ကွန်ပျူတာ အတု) တွေကို ဖန်တီးပြီး စီမံတဲ့ software ပါ
- VM တစ်ခုစီက ကိုယ်ပိုင် OS၊ ခွဲပေးထားတဲ့ CPU၊ RAM နဲ့ storage ပါတဲ့ သီးခြား ကွန်ပျူတာ တစ်လုံးလို အလုပ်လုပ်ပါတယ်
- VM တွေကို တစ်ခုနဲ့ တစ်ခု isolated (သီးခြား ခွဲထားတဲ့) ဖြစ်အောင် ထားပါတယ်: တစ်ခု crash ဖြစ်ရင် ကျန်တာတွေ မထိခိုက်ပါဘူး
- Virtualization က cloud computing (အင်တာနက်ကနေ ငှားသုံးတဲ့ ကွန်ပျူတာ resource) ရဲ့ အခြေခံပါ: cloud provider (cloud ဝန်ဆောင်မှု ပေးတဲ့ ကုမ္ပဏီ) တွေက မျှသုံးတဲ့ ရုပ်ပိုင်းဆိုင်ရာ hardware ပေါ်မှာ VM ထောင်ပေါင်းများစွာကို run ပါတယ်
Hypervisor အမျိုးအစား နှစ်မျိုး ရှိပါတယ်:
- Type 1 (bare-metal၊ hardware ပေါ် တိုက်ရိုက်): hardware ပေါ်မှာ တိုက်ရိုက် run ပါတယ် (ဥပမာ data centre (server အများကြီး ထားတဲ့ အဆောက်အအုံ) တွေမှာ သုံးတဲ့ VMware ESXi)
- Type 2 (hosted၊ ရှိပြီးသား OS ပေါ်မှာ တင်ပြီး): ရှိပြီးသား OS ပေါ်မှာ run ပါတယ် (ဥပမာ desktop ကွန်ပျူတာတွေမှာ သုံးတဲ့ VirtualBox)
Virtual machine တွေ ဘယ်လို အလုပ်လုပ်လဲ၊ cloud computing နဲ့ server စီမံခန့်ခွဲမှုအတွက် virtualization က ဘာကြောင့် မရှိမဖြစ် လိုအပ်လဲ ဆိုတာ ပြပါတယ်။
Networking (ကွန်ပျူတာတွေကို ချိတ်ဆက်ပေးခြင်း)
OS က ကွန်ပျူတာရဲ့ network connection တွေကို စီမံပါတယ်:
- NIC management (NIC ကို စီမံခြင်း): ဒေတာ ပို့ဖို့နဲ့ လက်ခံဖို့ network interface card (NIC၊ စက်ကို network နဲ့ ချိတ်ပေးတဲ့ card) တွေကို ထိန်းချုပ်ခြင်း
- TCP/IP stack (TCP/IP protocol တွေကို အကောင်အထည်ဖော်ထားတဲ့ OS ရဲ့ software အပိုင်း): အင်တာနက် ဆက်သွယ်မှု ဖြစ်နိုင်အောင် လုပ်ပေးတဲ့ networking protocol (ဒေတာ ပို့ပုံအတွက် သဘောတူ စည်းမျဉ်း) တွေကို အကောင်အထည်ဖော်ခြင်း
- DHCP (IP address ကို အလိုအလျောက် ခွဲပေးတဲ့ protocol): network တစ်ခုနဲ့ ချိတ်တဲ့အခါ IP address (network ပေါ်က စက်တစ်ခုရဲ့ လိပ်စာ) ကို အလိုအလျောက် ရယူခြင်း
- Firewall (network အဝင်အထွက်ကို စစ်ထုတ်တဲ့ အကာအကွယ်): လုံခြုံရေး စည်းမျဉ်းတွေအတိုင်း ဝင်လာတဲ့နဲ့ ထွက်သွားတဲ့ network traffic ကို စစ်ထုတ်ခြင်း
- VPN (public network ပေါ်က လုံခြုံတဲ့ ကိုယ်ပိုင် လမ်းကြောင်း): public network တွေပေါ်မှာ encrypt လုပ်ထားတဲ့ လုံခြုံတဲ့ connection တွေ ဖန်တီးခြင်း
Website တစ်ခုကို ဖွင့်တိုင်း OS က networking လုပ်ဆောင်ချက် ဒါဇင်ပေါင်းများစွာကို ကိုင်တွယ်ပါတယ်: domain name ကို IP address အဖြစ် ပြောင်းတာ၊ TCP connection တစ်ခု တည်ဆောက်တာ၊ request (တောင်းဆိုချက်) တွေ ပို့တာ၊ ဒေတာ လက်ခံတာနဲ့ အဲဒီ ဒေတာကို မှန်ကန်တဲ့ application ဆီ ပို့ပေးတာ တို့ပါ။
OS လုပ်ဆောင်ချက်များ အနှစ်ချုပ်
| Function (လုပ်ဆောင်ချက်) | ဘာကို စီမံလဲ | အဓိက အယူအဆများ |
|---|---|---|
| Process Management | CPU အချိန် | Process၊ scheduling၊ context switching |
| Memory Management | RAM | Allocation (ခွဲဝေပေးခြင်း)၊ virtual memory၊ paging |
| File Management | Storage | Directory၊ permission၊ file operation |
| Device Management | I/O device | Driver၊ buffering၊ spooling |
| Security | Access control (သုံးခွင့် ထိန်းချုပ်မှု) | Authentication၊ authorization၊ encryption |
| Accounting | Resource သုံးစွဲမှု | Quota၊ monitoring၊ bottleneck |
| GUI | User interface (user နဲ့ program ကြားက မြင်ကွင်း) | WIMP၊ accessibility၊ CLI နဲ့ GUI နှိုင်းယှဉ်ချက် |
| Virtualization | Virtual machine | Hypervisor၊ VM၊ container (app ကို သူလိုတဲ့ အရာတွေနဲ့ အတူ ထုပ်ပိုးပြီး သီးခြား run တဲ့ ပုံစံ) |
| Networking | Network connection | NIC၊ TCP/IP၊ DHCP၊ firewall |
OS Layer Model (OS အလွှာ ပုံစံ)
OS က application software နဲ့ hardware ကြားမှာ ရှိပြီး ကြားခံ အလွှာ အဖြစ် လုပ်ဆောင်ပါတယ်:
Application Software
Word processor, Browser, Game
Operating System
Hardware
CPU, RAM, Disk, I/O devices
ပုံထဲက စာတွေရဲ့ အဓိပ္ပာယ်: အပေါ်ဆုံး အလွှာက Application Software (word processor၊ browser၊ game လို user သုံးတဲ့ software)၊ အလယ် အလွှာက Operating System နဲ့ သူ့ရဲ့ လုပ်ဆောင်ချက် ရှစ်ခု (process management၊ memory management၊ file management၊ device management၊ security၊ accounting၊ GUI၊ networking)၊ အောက်ဆုံး အလွှာက Hardware (CPU၊ RAM၊ disk နဲ့ I/O device တွေ) ပါ။
Application တွေက hardware နဲ့ ဘယ်တော့မှ တိုက်ရိုက် မဆက်သွယ်ပါဘူး။ OS ဆီ တောင်းဆိုချက်တွေ ပို့ပါတယ် (ဒီ တောင်းဆိုချက်တွေကို system call လို့ ခေါ်ပါတယ်)၊ ပြီးတော့ OS က အဲဒီ တောင်းဆိုချက်တွေကို hardware တစ်ခုချင်းအတွက် သီးသန့် instruction တွေအဖြစ် ဘာသာပြန်ပေးပါတယ်။ ဒါကြောင့် application တွေက hardware ရဲ့ အသေးစိတ်ကို သိစရာ မလိုပါဘူး: OS နဲ့ ဘယ်လို ဆက်သွယ်ရမလဲ ဆိုတာကိုပဲ သိဖို့ လိုပါတယ်။
Operating System အမျိုးအစားများ
ဒီအပိုင်းက IB syllabus (IB သင်ရိုး) ထက် ကျော်လွန်တဲ့ အပိုင်းပါ။ ဒါကြောင့် IB Computer Science (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ ကွန်ပျူတာသိပ္ပံ သင်ရိုး) စာမေးပွဲမှာ အကဲဖြတ် စစ်ဆေးတာ မရှိပါဘူး။
ပတ်ဝန်းကျင် မတူရင် operating system အမျိုးအစား မတူတာ လိုပါတယ်:
- Batch OS (အလုပ်တွေကို အစုလိုက် run တဲ့ OS): user နဲ့ အပြန်အလှန် ဆက်သွယ်မှု မရှိဘဲ job (အလုပ်) တွေကို အစုလိုက် (batch) လုပ်ဆောင်ပါတယ်။ Job တွေကို queue ထဲ စီထားပြီး တစ်ခုပြီးမှ တစ်ခု run ပါတယ်။ လစာ တွက်ချက်ခြင်းနဲ့ ဘဏ် စာရင်းရှင်းတမ်း ထုတ်ခြင်းတွေမှာ သုံးပါတယ်။
- Real-time OS (RTOS) (သတ်မှတ်ချိန်အတွင်း တုံ့ပြန်ဖို့ အာမခံတဲ့ OS): တင်းကျပ်တဲ့ အချိန် သတ်မှတ်ချက် (deadline) တွေအတွင်း တုံ့ပြန်မှုကို အာမခံပါတယ်။ တုံ့ပြန်မှု နောက်ကျရင် ကြီးမားတဲ့ ဘေးအန္တရာယ် ဖြစ်နိုင်တဲ့ လေယာဉ် ထိန်းချုပ်ရေး စနစ်တွေ၊ ဆေးဘက်ဆိုင်ရာ စက်ပစ္စည်းတွေနဲ့ စက်ရုံသုံး robot တွေမှာ သုံးပါတယ်။
- Multi-user / Multi-tasking OS (user အများ / အလုပ် အများကို တစ်ပြိုင်နက် ကိုင်တွယ်နိုင်တဲ့ OS): user အများ ဒါမှမဟုတ် program အများ (ဒါမှမဟုတ် နှစ်မျိုးလုံး) ကို ကွန်ပျူတာကို တစ်ပြိုင်နက် မျှသုံးခွင့် ပေးပါတယ်။ ခေတ်သစ် desktop နဲ့ server operating system အားလုံး (Windows၊ macOS၊ Linux) က ဒီ အမျိုးအစားထဲ ပါပါတယ်။
- Distributed OS (network နဲ့ ချိတ်ထားတဲ့ ကွန်ပျူတာ အများကို စနစ်တစ်ခုတည်းလို စီမံတဲ့ OS): network နဲ့ ချိတ်ထားတဲ့ ကွန်ပျူတာ အုပ်စုကို user အတွက် system တစ်ခုတည်းလို ထင်ရအောင် စီမံပါတယ်။ အကြီးစား computing တွေမှာ သုံးပါတယ် (ဥပမာ Google ရဲ့ infrastructure (hardware၊ network စတဲ့ အခြေခံ အဆောက်အအုံ)၊ supercomputer အစုအဝေး (cluster) တွေ)။
အဆင့်ဆင့် ရှင်းပြထားတဲ့ ဥပမာများ
ဥပမာ 1: Application တစ်ခုကို Double-Click လုပ်ရင် ဘာဖြစ်သလဲ
Desktop ပေါ်က application icon တစ်ခုကို double-click လုပ်လိုက်တဲ့အခါ OS က ရှုပ်ထွေးတဲ့ လုပ်ဆောင်ချက် အစဉ်တစ်ခုကို စီစဉ် ဦးဆောင်ပါတယ်။ ဘယ် OS လုပ်ဆောင်ချက်တွေ ပါဝင်လဲ ဆိုတာကို အဆင့်ဆင့် trace (တစ်ဆင့်ချင်း လိုက်ပြီး မှတ်ခြင်း) လုပ်ပြထားပါတယ်:
| အဆင့် | ဘာဖြစ်လဲ | OS Function |
|---|---|---|
| 1 | Desktop က icon ပေါ်မှာ double-click event (ဖြစ်ရပ်) ကို သိလိုက်ပါတယ် | GUI management (GUI စီမံခြင်း): window manager (window တွေကို စီမံတဲ့ software) က mouse event ကို ဖမ်းယူပြီး ဘယ် icon ကို နှိပ်လိုက်လဲ ခွဲခြားပါတယ် |
| 2 | ဒီ application ကို run ခွင့် user မှာ ရှိမရှိ OS က စစ်ပါတယ် | Security: authorization စစ်ဆေးမှု (ဒီ user မှာ ဒီ file ကို execute (run) ခွင့် ရှိသလား) |
| 3 | OS က storage device ပေါ်မှာ application file ကို ရှာပါတယ် | File management: file system က file path (file ရှိရာ လမ်းကြောင်း) ကို ဖြေရှင်းပြီး disk ပေါ်က တကယ့် နေရာကို ရှာပါတယ် |
| 4 | OS က application အသစ်အတွက် RAM အပိုင်း တစ်ခုကို ခွဲဝေပေးပါတယ် | Memory management: OS က program ရဲ့ code၊ ဒေတာနဲ့ stack (အပေါ်ကနေပဲ ထည့်၊ ထုတ်တဲ့ အထပ်) အတွက် memory နေရာ ဖယ်ထားပေးပါတယ် |
| 5 | OS က process အသစ် တစ်ခု ဖန်တီးပြီး ready queue (CPU အချိန် ရဖို့ စောင့်နေတဲ့ process တန်း) ထဲ ထည့်ပါတယ် | Process management: မထပ်တဲ့ process ID ပါတဲ့ process control block (PCB၊ process တစ်ခုရဲ့ အချက်အလက်တွေကို OS က သိမ်းထားတဲ့ မှတ်တမ်း) အသစ် တစ်ခု ဖန်တီးပါတယ် |
| 6 | Scheduler (ဘယ် process ကို နောက် run မလဲ ဆုံးဖြတ်တဲ့ OS အစိတ်အပိုင်း) က process အသစ်ကို CPU အချိန် ခွဲဝေပေးပါတယ် | Process management: process အသစ်က CPU ပေါ်မှာ ဘယ်အချိန် အလှည့်ရမလဲ scheduler က ဆုံးဖြတ်ပါတယ် |
| 7 | Application ရဲ့ window က screen ပေါ်မှာ ပေါ်လာပါတယ် | GUI management: window manager က application window ကို ဖန်တီးပြီး ပုံဖော် (render) ပါတယ် |
| 8 | Application က device driver ကနေ တစ်ဆင့် disk ပေါ်က သူ့ configuration file တွေကို ဖတ်ပါတယ် | Device management: device driver က storage device နဲ့ low-level I/O ကို ကိုင်တွယ်ပါတယ် |
ဒီဥပမာက ရိုးရိုး user လုပ်ဆောင်ချက် တစ်ခု (icon ကို double-click လုပ်တာ) မှာတောင် OS လုပ်ဆောင်ချက် အားလုံးနီးပါး အတူတကွ အလုပ်လုပ်ကြတာကို ပြပါတယ်။
ဥပမာ 2: OS လုပ်ဆောင်ချက်တွေကို အခြေအနေတွေနဲ့ တွဲပါ
အခြေအနေ တစ်ခုစီအတွက် ဘယ် OS လုပ်ဆောင်ချက်က အဓိက တာဝန်ရှိလဲ Identify (ဖြစ်နိုင်တဲ့ အဖြေတွေထဲက ရွေးပြီး ဖော်ပြပါ) လုပ်ပါ။
| # | အခြေအနေ | OS Function | ရှင်းလင်းချက် |
|---|---|---|---|
| 1 | ဆရာ တစ်ယောက်က ကျောင်း network ပေါ်က ကျောင်းသား အမှတ် file တွေကို ဖွင့်လို့ မရပါဘူး | Security (authorization) | ဆရာရဲ့ account မှာ အဲဒီ directory ကို သုံးခွင့် permission မရှိပါဘူး |
| 2 | Application 20 ခု ဖွင့်ထားတဲ့အခါ ကွန်ပျူတာ အကြီးအကျယ် နှေးသွားပါတယ် | Memory management (thrashing) | RAM ပြည့်နေလို့ OS က page တွေကို disk ဆီ၊ disk ကနေ အဆက်မပြတ် swap လုပ်နေပါတယ် |
| 3 | ကျောင်းသား တစ်ယောက်က document ကို printer ဆီ ပို့ပေမယ့် ချက်ချင်း print မထွက်ပါဘူး | Device management (spooling) | Printer က တခြား job တစ်ခု လုပ်နေလို့ print job ကို queue ထဲ စီထားပါတယ် |
| 4 | User တစ်ယောက်က password ကို မှားရိုက်ပြီး သူ့ account ပိတ်သွားပါတယ် | Security (authentication) | Login အကြိမ်ကြိမ် မအောင်မြင်တာကို authentication system က တွေ့လိုက်ပါတယ် |
| 5 | USB keyboard အသစ်ကို ထိုးလိုက်တာနဲ့ software မထည့်ရဘဲ အလုပ်လုပ်ပါတယ် | Device management (drivers) | OS မှာ USB keyboard တွေအတွက် အသင့်ပါတဲ့ generic driver (အမျိုးအစားတူ စက်အားလုံးအတွက် သုံးလို့ရတဲ့ driver) ရှိပါတယ် (plug and play: ချိတ်လိုက်တာနဲ့ အလုပ်လုပ်ခြင်း) |
| 6 | Process တစ်ခုက CPU ရဲ့ 90% ကို သုံးနေတာကို system administrator က သတိထားမိပါတယ် | Accounting and monitoring | Monitoring system က resource သုံးစွဲမှုကို မှတ်ထားပြီး bottleneck တွေကို ရှာဖွေပေးပါတယ် |
Quick Check (အမြန် စစ်ဆေးမေးခွန်း)
Q1. ကွန်ပျူတာ တစ်လုံးမှာ program အများ တစ်ပြိုင်နက် run နေပါတယ်။ Program တစ်ခုစီ CPU၊ memory နဲ့ device တွေကို မျှမျှတတ ရအောင် OS ရဲ့ ဘယ် အဓိက ရည်ရွယ်ချက်က လုပ်ပေးသလဲ။
Q2. Hardware peripheral (ကွန်ပျူတာနဲ့ ချိတ်ထားတဲ့ အပြင် စက်ပစ္စည်း) တွေနဲ့ OS ဆက်သွယ်နိုင်အောင် device driver တွေကို ပေးဖို့ ဘယ် OS လုပ်ဆောင်ချက်မှာ တာဝန် ရှိသလဲ။
Q3. RAM လုံးဝ ပြည့်နေပြီး program အသစ် တစ်ခုက memory လိုတဲ့အခါ operating system က ဘာလုပ်သလဲ။
Q4. Authentication နဲ့ authorization ကို မှန်မှန်ကန်ကန် ခွဲခြားထားတဲ့ ဖော်ပြချက်က ဘယ်ဟာလဲ။
Q5. User အများက မျှသုံးတဲ့ printer ဆီ document တွေ ပို့တဲ့အခါ OS က job တစ်ခုစီကို queue ထဲ ထည့်ပါတယ်။ ဒီနည်းကို ဘာလို့ ခေါ်သလဲ။
Trace the File Open (file ဖွင့်ပုံကို တစ်ဆင့်ချင်း လိုက်ကြည့်ခြင်း)
User တစ်ယောက်က desktop ပေါ်က “report.docx” ကို double-click လုပ်ပါတယ်။ ဒီလုပ်ငန်းစဉ်ရဲ့ အဆင့် တစ်ခုစီကို ကိုင်တွယ်တဲ့ operating system လုပ်ဆောင်ချက်တွေကို trace လုပ်ပါ။ အဆင့် တစ်ခုစီမှာ တာဝန်ရှိတဲ့ OS function ရဲ့ နာမည်ကို ရိုက်ထည့်ပါ။ နာမည်တွေကို အပေါ်က အနှစ်ချုပ် ဇယားရဲ့ Function ကော်လံမှာ ရေးထားတဲ့အတိုင်း English လို ရိုက်ထည့်ပါ (ဥပမာ Networking)။
Trace: Document တစ်ခု ဖွင့်ခြင်း
User တစ်ယောက်က desktop ပေါ်က "report.docx" ကို double-click လုပ်ပါတယ်။ အဆင့် တစ်ခုစီအတွက် ဘယ် OS function က တာဝန်ရှိလဲ ဖော်ပြပါ။
| အဆင့် | လုပ်ဆောင်ချက် | OS Function |
|---|---|---|
| 1 | User က desktop ပေါ်က file icon ကို double-click လုပ်ပါတယ် | |
| 2 | User မှာ file ကို ဖွင့်ခွင့် ရှိမရှိ OS က စစ်ပါတယ် | |
| 3 | OS က hard drive ပေါ်မှာ file ကို ရှာပါတယ် | |
| 4 | OS က word processor application အတွက် RAM ခွဲဝေပေးပါတယ် | |
| 5 | OS က word processor အတွက် process အသစ် တစ်ခု ဖန်တီးပါတယ် | |
| 6 | OS က device driver ကနေ တစ်ဆင့် disk ပေါ်က file ဒေတာကို load လုပ်ပါတယ် |
Spot the Error (အမှား ရှာခြင်း)
ကျောင်းသား တစ်ယောက်က OS ရဲ့ လုံခြုံရေး လုပ်ဆောင်ချက်တွေအကြောင်း ပြန်လေ့ကျင့်ဖို့ မှတ်စု ရေးထားပါတယ်။ Line တစ်ကြောင်းရဲ့ ဖော်ပြချက်မှာ အမှား ပါပါတယ်။ အမှားပါတဲ့ line ကို ရွေးပါ၊ ပြီးရင် မှန်ကန်တဲ့ ပြင်နည်းကို ရွေးပါ။
Line တွေရဲ့ အဓိပ္ပာယ်: (1) OS ရဲ့ လုံခြုံရေး လုပ်ဆောင်ချက်များ၊ (2) Encryption: key ကို သုံးပြီး ဒေတာကို ဖတ်မရတဲ့ ciphertext (encrypt လုပ်ထားလို့ ဖတ်မရတဲ့ စာ) အဖြစ် ပြောင်းပါတယ်၊ (3) Authorization: user ရဲ့ identity ကို စစ်ပါတယ် (ဥပမာ password စစ်ခြင်း)၊ (4) Audit logging: နောက်မှ ပြန်စစ်ဖို့ user လုပ်ဆောင်ချက်တွေနဲ့ system event တွေကို မှတ်တမ်းတင်ပါတယ်၊ (5) Account lockout: login အကြိမ်ကြိမ် မအောင်မြင်ရင် account ကို ပိတ်ပါတယ်။
Line 3 အတွက် မှန်ကန်တဲ့ ပြင်နည်းကို ရွေးပါ:
Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)
ဖော်ပြချက် တစ်ခုစီအတွက် မှန်ကန်တဲ့ ဝေါဟာရကို ဖြည့်ပြီး OS လုပ်ဆောင်ချက်တွေရဲ့ အနှစ်ချုပ်ကို ပြည့်စုံအောင် လုပ်ပါ။
ကွက်လပ်ပါတဲ့ စာကြောင်းတွေက English နဲ့ ဖြစ်ပြီး ကွက်လပ်တွေကိုလည်း English လို ရိုက်ထည့်ရပါမယ်။ OS FUNCTIONS SUMMARY က ခေါင်းစဉ်ပါ။ စာကြောင်းတွေရဲ့ အဓိပ္ပာယ်က အောက်ပါအတိုင်းပါ:
- …… က RAM ကို ခွဲဝေပေးခြင်းနဲ့ ပြန်ယူခြင်းကို စီမံပါတယ်။
- …… က driver တွေကနေ တစ်ဆင့် hardware device တွေနဲ့ တစ်ပုံစံတည်း ဖြစ်တဲ့ interface ကို ပေးပါတယ်။
- …… က သုံးခွင့် မပေးခင် user ရဲ့ identity ကို စစ်ပါတယ်။
- …… က CPU က နှေးတဲ့ printer ကို မစောင့်ရအောင် print job တွေကို queue ထဲ စီထားပါတယ်။
- …… က resource သုံးစွဲမှုကို မှတ်ထားပြီး quota တွေကို ထိန်းပါတယ်။
OS လုပ်ဆောင်ချက် တစ်ခုစီကို သူ့ ဖော်ပြချက်နဲ့ ကိုက်အောင် ကွက်လပ်တွေ ဖြည့်ပါ:
OS FUNCTIONS SUMMARY
====================
manages the allocation and deallocation of RAM.
provides a uniform interface to hardware devices through drivers.
verifies a user's identity before granting access.
queues print jobs so the CPU does not wait for the slow printer.
tracks resource usage and enforces quotas.
Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
ကွန်ပျူတာ တစ်လုံးမှာ RAM 4 GB ရှိပြီး OS က virtual memory အတွက် hard drive ပေါ်မှာ swap space (swap အတွက် disk ပေါ်မှာ ဖယ်ထားတဲ့ နေရာ) 8 GB သတ်မှတ်ထားပါတယ်။ Process သုံးခုကို စ run ပြီး တစ်ခုစီက memory 2 GB လိုပါတယ်။
Process သုံးခုလုံး တစ်ပြိုင်နက် run နိုင်သလား။ (Yes ဒါမှမဟုတ် No လို့ English လို ရိုက်ထည့်ပါ: Yes = နိုင်ပါတယ်၊ No = မနိုင်ပါဘူး)
User တစ်ယောက်က password ကို 3 ကြိမ် ဆက်တိုက် မှားရိုက်ပါတယ်။ OS က သူ့ account ကို 15 မိနစ် အလိုအလျောက် ပိတ်လိုက်ပါတယ်။
Account ကို ပိတ်ဖို့ ဘယ် OS function က တာဝန်ရှိသလဲ။ (Function နာမည်ကို English လို ရိုက်ထည့်ပါ)
Practice Exercises (လေ့ကျင့်ခန်းများ)
Core (အခြေခံ အဆင့်)
-
OS လုပ်ဆောင်ချက်များ: operating system ရဲ့ အဓိက လုပ်ဆောင်ချက် လေးခုကို Name (နာမည် ဖော်ပြပါ) ပြီး describe (ဖော်ပြရှင်းပြပါ) လုပ်ပါ။ လုပ်ဆောင်ချက် တစ်ခုစီအတွက် ပုံမှန် ကျောင်းရက် တစ်ရက်မှာ ကျောင်းသား တစ်ယောက် အဲဒါကို ဘယ်လို ကြုံရမလဲ ဆိုတဲ့ တိကျတဲ့ ဥပမာ တစ်ခု ပေးပါ။
-
Abstraction: document တစ်ခုကို print ထုတ်တဲ့ ဥပမာကို သုံးပြီး OS က abstraction ကို ဘယ်လို ပေးလဲ Explain (ရှင်းပြပါ) လုပ်ပါ။ သင့်အဖြေမှာ OS က ဒီ abstraction ကို မပေးရင် ဘာဖြစ်မလဲ ဖော်ပြပါ: application programmer က အဲဒီအစား ဘာလုပ်ရမလဲ။
-
လုံခြုံရေး ဝေါဟာရများ: authentication၊ authorization နဲ့ encryption ကြား ကွာခြားချက်ကို Distinguish (အရာ နှစ်ခု ဒါမှမဟုတ် ပိုများတဲ့ အရာတွေကြားက ကွာခြားချက်ကို ရှင်းရှင်းလင်းလင်း ပြပါ) လုပ်ပါ။ တစ်ခုစီအတွက် အဲဒီ အယူအဆကို ပြတဲ့ လက်တွေ့ ဘဝက နှိုင်းယှဉ်ချက် (ကွန်ပျူတာ ဥပမာ မဟုတ်တာ) တစ်ခု ပေးပါ။
Extension (တိုးချဲ့ အဆင့်)
- Virtual Memory: ကျောင်းသား 30 ယောက် တစ်ပြိုင်နက် log in ဝင်သုံးတဲ့ ကျောင်းရဲ့ server တစ်လုံးမှာ RAM 8 GB နဲ့ swap space 16 GB ရှိပါတယ်။ ကျောင်းသား တစ်ယောက်စီက browser (500 MB သုံး) နဲ့ word processor (200 MB သုံး) ကို ဖွင့်ကြပါတယ်။
- (a) လိုအပ်တဲ့ memory စုစုပေါင်းကို Calculate (တွက်တဲ့ အဆင့်တွေကို ပြပြီး ဂဏန်း အဖြေ ရှာပါ) လုပ်ပါ။
- (b) Virtual memory က ဒါကို ဘယ်လို ဖြစ်နိုင်စေလဲ Explain လုပ်ပါ။
- (c) Paging နဲ့ page fault ဆိုတာ ဘာလဲ Explain လုပ်ပါ။
- (d) Thrashing ဆိုတာ ဘာလဲ၊ ဒီအခြေအနေမှာ ဘာကြောင့် ဖြစ်နိုင်ခြေ များလဲ Explain လုပ်ပါ။ Memory လိုအပ်ချက် စုစုပေါင်းက RAM နဲ့ swap space ပေါင်းတာထက် ကျော်သွားရင် အဲဒီအစား ဘာဖြစ်မလဲ။
- OS နှိုင်းယှဉ်ချက်: real-time operating system (RTOS) နဲ့ general-purpose operating system (ရည်ရွယ်ချက် အမျိုးမျိုးအတွက် သုံးတဲ့ OS၊ Windows ဒါမှမဟုတ် macOS လို) ကို Compare and contrast (နှစ်ခုလုံးကို တစ်လျှောက်လုံး ကိုးကားပြီး တူတာနဲ့ ကွာတာကို ဖော်ပြပါ) လုပ်ပါ။ သင့်အဖြေမှာ (a) တုံ့ပြန်ချိန်ကို အာမခံပေးတာ ဘယ်လောက် အရေးကြီးလဲ၊ (b) RTOS လိုတဲ့ system ဥပမာ နှစ်ခုနဲ့ (c) အဲဒီ system တွေအတွက် general-purpose OS က ဘာကြောင့် မသင့်တော်လဲ ဆိုတာကို discuss (အမြင် အမျိုးမျိုးကို ချိန်ဆပြီး ဆွေးနွေးပါ) လုပ်ပါ။
Challenge (စိန်ခေါ်မှု အဆင့်)
- ကျောင်းအတွက် OS ဒီဇိုင်း: ကျောင်းသား 500 ယောက်နဲ့ ဆရာ 50 ယောက် ရှိတဲ့ ကျောင်း တစ်ကျောင်းက ကွန်ပျူတာ lab တွေအတွက် operating system တစ်ခုကို ရွေးပြီး configure (setting တွေ သတ်မှတ်) လုပ်ဖို့ လိုပါတယ်။ ကျောင်းမှာ IT ဘတ်ဂျက် အကန့်အသတ် ရှိပြီး အောက်ပါတို့ကို သေချာအောင် လုပ်ရပါမယ်:
- ကျောင်းသားတွေက ကိုယ့် file တွေကိုပဲ ဖွင့်သုံးနိုင်ရမယ်
- ဆရာတွေက အမှတ်ပေးဖို့ ကျောင်းသားတွေရဲ့ အလုပ်တွေကို ဖွင့်ကြည့်နိုင်ရမယ်
- Resource အများကြီး သုံးတဲ့ application တွေ (ဥပမာ video တည်းဖြတ်ခြင်း) က တခြား user တွေကို မနှေးစေရဘူး
- အိမ်ကနေ အလုပ်လုပ်တဲ့ ကျောင်းသားတွေက ကျောင်းရဲ့ resource တွေကို သုံးနိုင်ရမယ်
ဒီအခြေအနေအတွက် ဘယ် OS လုပ်ဆောင်ချက်တွေက အရေးအကြီးဆုံးလဲ Evaluate (အားသာချက်နဲ့ အားနည်းချက်တွေကို ချိန်ဆပြီး အကဲဖြတ်ပါ) လုပ်ပါ။ သင် ရွေးတဲ့ လုပ်ဆောင်ချက် တစ်ခုစီအတွက် ဘာကြောင့် အရေးကြီးလဲ explain လုပ်ပြီး IT ဌာနက လုပ်သင့်တဲ့ တိကျတဲ့ configuration ဆုံးဖြတ်ချက် တစ်ခုကို describe လုပ်ပါ။ လုပ်ဆောင်ချက်တွေကို ဦးစားပေး အစဉ်အလိုက် စီပြီး သင့် အစဉ်ကို justify (ဘာကြောင့် ရွေးတာလဲ အကြောင်းပြချက်နဲ့ ပြပါ) လုပ်ပါ။
ဆက်စပ် ခေါင်းစဉ်များ
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်: CPU Architecture (CPU ရဲ့ ဖွဲ့စည်းပုံ): OS က fetch-decode-execute cycle (ညွှန်ကြားချက်ကို ယူ၊ နားလည်၊ လုပ်ဆောင်တဲ့ စက်ဝန်း) ကနေ တစ်ဆင့် CPU scheduling ကို စီမံပါတယ်၊ register (CPU ထဲက အမြန်ဆုံး သိမ်းဆည်းရာ) တွေနဲ့ FDE cycle ကို နားလည်ထားရင် context switching ဘယ်လို အလုပ်လုပ်လဲ ရှင်းပြနိုင်ပါတယ်
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်: Primary Memory (CPU က တိုက်ရိုက် ယူသုံးတဲ့ memory): OS ရဲ့ memory management က RAM/cache (CPU နဲ့ RAM ကြားက မြန်တဲ့ memory) hierarchy ကို ထိန်းချုပ်ပါတယ်၊ cache hit (လိုတဲ့ ဒေတာ cache ထဲမှာ ရှိခြင်း) / cache miss (လိုတဲ့ ဒေတာ cache ထဲမှာ မရှိခြင်း) တွေနဲ့ memory hierarchy (မြန်နှုန်းနဲ့ ပမာဏ အလိုက် memory တွေကို အဆင့်ဆင့် စီထားပုံ) ကို နားလည်ထားရင် virtual memory က RAM ထက် ဘာကြောင့် နှေးလဲ ရှင်းပြနိုင်ပါတယ်
- ဆက်စပ် ခေါင်းစဉ်: Cloud Computing: virtualization (A1.3.2) က cloud infrastructure (အင်တာနက်ကနေ ငှားသုံးတဲ့ ကွန်ပျူတာ resource တွေကို ပေးတဲ့ server နဲ့ network စနစ်) ကို ဖြစ်နိုင်စေတဲ့ OS ရဲ့ အဓိက လုပ်ဆောင်ချက် တစ်ခုပါ၊ hypervisor တွေက cloud data centre တွေမှာ run တဲ့ VM တွေကို စီမံပါတယ်
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Scheduling: scheduling algorithm (အယ်လ်ဂိုရီသမ်၊ ပြဿနာကို အဆင့်ဆင့် ဖြေရှင်းတဲ့ နည်းလမ်း) တွေ (FCFS (အရင်ရောက် အရင်ရ scheduling)၊ Round Robin (အလှည့်ကျ အချိန်ပေးတဲ့ scheduling)၊ Priority (ဦးစားပေး အဆင့်အလိုက် CPU အချိန် ပေးတဲ့ scheduling)) က ဒီစာမျက်နှာမှာ လေ့လာခဲ့တဲ့ process management လုပ်ဆောင်ချက်ကို အကောင်အထည်ဖော်ပါတယ်
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Polling and Interrupts (polling နဲ့ interrupt): OS က polling loop (စက်ကို ထပ်ခါထပ်ခါ စစ်ကြည့်တဲ့ loop) တွေနဲ့ interrupt service routine (interrupt ကို ကိုင်တွယ်ဖို့ run တဲ့ သီးသန့် code) တွေကို သုံးပြီး hardware event တွေကို ဘယ်လို သိရှိ တုံ့ပြန်လဲ