30 – Linux හි ක්‍රියාවලීන් කළමනාකරණය (process management) (1 කොටස)

බහු-කාර්ය සහ බහු-පරිශීලක (multi-tasking & multi-user) මෙහෙයුම් පද්ධතියක් (Operating System – OS) ලෙස Linux මෙහෙයුම් පද්ධතිය හරහා ක්‍රමලේඛ (programs) එකකට වැඩි ගණනක් විවිධ පරිශීලකයන් මගින් එකවර ක්‍රියාත්මක කිරීම සැමවිටම පාහේ සිදුවන්නකි. මෙහිදී Linux මෙහෙයුම් පද්ධතියේ මධ්‍යය වන kernel මගින් එක් එක් කාර්යයන් වෙනම ක්‍රියාවලියක් (process) ලෙස සලකා අවශ්‍ය පරිදි කළමනාකරණයන් සිදු කරනු ලබයි. එමගින් විවිධ කාර්යයන් සහයෝගිතාවයෙන් (cooperation) යුක්ත ව ක්‍රියාත්මක කිරීමේ හැකියාව ලැබී ඇත. කෙසේ නමුත් ක්‍රමලේඛ (programs) සහ දෘඩාංග (hardware) වල පවතින දෝෂ (bugs) නිසා සමහර අවස්ථාවල දී ගැටලු සහගත තත්ත්වයන් පැන නගී. තවද සමහර කාර්යයන් සම්පූර්ණ වීමට ඉතා දිගු කාලයක් ගතවේ. මේ නිසා අපට අවශ්‍ය පරිදි කාර්යයන් කළමනාකරණය කිරීමට මෙහෙයුම් පද්ධතිය මගින් පහසුව සලසා දී ඇත. මෙහිදී අප ප්‍රධාන වශයෙන් සලකා බලනු ලබන්නේ command line හරහා එය සිදු කරන ආකාරයයි. මුලින් ම ක්‍රියාවලිය (process) යන්න තේරුම් ගනිමු.

ක්‍රියාවලියක් (process) යනු කුමක්ද?

සරළ ව දැක්වුවහොත් පරිගණකයේ මතකය (memory) සහ දෘඩාංග (hardware) ප්‍රයෝජනයට ගනිමින් ක්‍රියාත්මක වන ක්‍රමලේඛයක් (program) මෙහෙයුම් පද්ධතියට අනුකූල ව ක්‍රියාවලියක් (process) ලෙස හඳුන්වා දීමට හැකිය. මෙහිදී සඳහන් කල  යුතු විශේෂ කරුණ නම් පරිගණකයේ දෘඩ තැටියේ (hard disk) ගබඩා කර ඇති පමණින් එය process එකක් ලෙස හැඳින්වීමට ඇති නොහැකියාවයි. Process එකක් යනු සෑම විටම පරිගණක මතකය තුළ නංවා ඇති (loaded) ක්‍රමලේඛයකි.

Process එකක් ප්‍රධාන වශයෙන් අවස්ථා (state) 4ක පැවතිය හැකිය. එනම් ධාවනය (running), රැඳී සිටීම (waiting), නැවතුම (stopped) සහ හුදෙකලා වීම (isolated) යනුවෙනි. රැඳී සිටීමේ (waiting) අවස්ථාවේදී සිදු වන්නේ වෙනත් අනු කාර්යයක් (sub-task) සම්පූර්ණ වනතෙක් හෝ පරිශීලකයා කිසියම් ආදානයක් (input) ලබාදෙන තුරු තාවකාලික ව ප්‍රධාන ක්‍රියාවලිය සම්පූර්ණ වීම පමා කිරීමයි. Process කිහිපයක් අතර එකම දෘඩාංගය (hardware) හවුලේ භාවිතා කිරීමේදී (share) මෙම waiting අවස්ථාව බහුල ව ක්‍රියාත්මක වේ. හුදෙකලා (isolated) අවස්ථාවේ පවතින process එකක් සාමාන්‍යයෙන් කිසිදු ප්‍රතිචාරයක් නොදක්වයි. මෙය බොහෝ අවස්ථා වලදී අප්‍රාණික හෙවත් මියගිය (zombie) process එකක් ලෙසද හඳුන්වයි. මේවා පරිගණකයේ මතකය (memory) සහ මධ්‍ය සැකසුම් ඒකකය (Central Processing Unit – CPU) සතු සම්පත් නිකරුනේ භාවිතා කිරීමක් සිදු කරයි. ක්‍රියාවලීන් කළමනාකරණයේදී (process management) කෙලින් ම පරිශීලකයාට process සමග ගනුදෙනු කිරීමට අවස්ථාව නොලැබෙන අතර kernel හරහා අදාළ කටයුතු සියල්ල පාලනය කිරීම සිදුවේ. ඒ සඳහා යොදාගන්නා commands පිළිබඳව මීළඟට සොයා බලමු.

ps (process status)

දැනට පරිගණකය තුළ ක්‍රියාත්මක වන process වල තත්ත්වය බලාගැනීම සඳහා ps command යොදාගනී. මෙය තනිව ලබාදුන් විට දැනට දියත්කර ඇති terminal එක මගින් ආරම්භ කල process ලැයිස්තුවක් කෙටියෙන් දැක්වේ. එම ලැයිස්තුවෙහි තීරු (columns) කිහිපයක් ඇති අතර උඩින්ම එක් එක් තීරුවට අදාළ මාතෘකාවක් (heading) දක්වා ඇත. ps -u ලෙස command එක ලබාදුන් විට වඩා විස්තර සහිත ව process පිලිබඳ තොරතුරු දැකගත හැකිය. පහත උදාහරණය මගින් ps command භාවිතය දක්වා ඇති අතර ඊට යටින් තීරු මගින් පෙන්වන තොරතුරු කෙටියෙන් විස්තර කර ඇත.

ps & ps -u commands
ps & ps -u commands
PID (Process ID) - මෙහෙයුම් පද්ධතිය මගින් process එකක් අනන්‍යව (unique) හඳුනා ගැනීම සඳහා එයට ලබාදෙන අංකය pid ලෙස හඳුන්වයි. Process management කාර්යයේදී විවිධ commands ලබාදීම සඳහා pid ඉතා වැදගත් වේ.
TTY (Terminal TYpe) - Process ආරම්භ කල terminal එක දක්වන අතර දැනට භාවිතා වන terminal එක pts/0 ලෙස දැක්වේ.
TIME - Process ක්‍රියාත්මක වීමේදී CPU භාවිතාව සිදුවූ සම්පුර්ණ කාලය දැක්වේ.
CMD/COMMAND - Process ආරම්භ කිරීම සඳහා ලබාදුන් command එක හෝ ක්‍රමලේඛයේ (program) නම මේ යටතේ දැක්වේ.
USER - Process ක්‍රියාත්මක කල පරිශීලක නාමය (user name) මෙහි දක්වා ඇත.
%CPU, %MEM - Process මගින් සිදු කරන CPU සහ memory භාවිතය ප්‍රතිශතයක් ලෙස පෙන්වයි.
STAT (status) - Process එකෙහි වර්තමාන තත්ත්වය පෙන්වයි. (මේ පිලිබඳ දීර්ඝ විස්තරයක් මතු දැක්වේ.)
VSZ, RSS (Virtual memory size, Resident Set Size) - Process එකට අයත්වන සත්‍යාසන්න (virtual) සහ භෞතික (physical) මතකයෙහි ප්‍රමාණය දැක්වේ.
START - Process එක ආරම්භ කල වේලාව දක්වන අතර එය සටහන් වන්නේ සම්මත පැය 24 අගයක් ලෙසයි. Process එක ආරම්භ කර පැය 24කට වඩා ගතවී ඇත්නම් දිනය පමණක් සටහන් වේ.

සටහන: ps command මගින් කිසියම් මොහොතක (snapshot) පමණක් process status පෙන්වීම සිදුවේ.

ඉහත STAT තීරුව නිරීක්‍ෂණය කිරීමේදී සංකේත වලින් processes පවතින අවස්ථාව නිරූපණය කරන බව දැකගත හැකිය. එම සංකේත මගින් අදහස් වන දෙය පහත විස්තර කර ඇත.

R (Running) - ධාවනය වෙමින් පවතී.
S (Sleeping) - (නිද්‍රාශීලී ලෙස) රැඳී සිටීම (පරිශීලකයාගේ ආදානයක් හෝ පරිගණක ජාලය හරහා දත්ත ලැබෙන තුරු සිටීම වැනි අවස්ථා).
D (Uninterruptible Sleeping) - (නිද්‍රාශීලී ලෙස) නොකඩවා රැඳී සිටීම (මෙහිදී ක්‍රියාවලියට බාධා සිදුකිරීමට අපහසුය. උදා.: දෘඩ තැටියෙන් දත්ත ලබා ගැනීමට රැඳී සිටීම.)
T (Stop) - ක්‍රියාවලිය තාවකාලිකව නවතා ඇත.
Z (Zombie/isolated) - Process එක හුදෙකලා වී ඇත. පරිශීලක විධානයන්ට ප්‍රතිචාර නොදක්වයි.
N (Nicer) - අඩු ප්‍රමුඛත්වයක් (low priority) ඇති ක්‍රියාවලියකි. CPU අඩුවෙන් භාවිතා කරයි.
< - වැඩි ප්‍රමුඛත්වයක් ඇති ක්‍රියාවලියකි. CPU වැඩියෙන් භාවිතා කරයි.

Process පිලිබඳ තව දුරටත් වැඩි විස්තර බලා ගැනීමට අවශ්‍ය නම් ps -aux ලෙස command ලබාදීමට පිළිවන. එමගින් සියලු පරිශීලකයන්ගේ process වලට අදාළ තොරතුරු බලාගත හැකිය. මෙහි a මගින් සියලු පරිශීලකයන්ද x මගින් සියලු තීරුද දක්වන ලෙස විධානය ලබාදේ. ps -ux මගින් terminal දියත්කල පරිශීලකයාගේ සියලු processes වල තොරතුරු බලා ගැනීමට පිළිවන. මේවායේ ප්‍රතිදානයන් (output) රූපයේ දක්වා ඇත.

psaux
ps -ux & ps -aux commands

ඉහත රූපය හොඳින් නිරීක්ෂණයේදී TTY තීරුවෙහි ? යනුවෙන් සඳහන් වී ඇති අයුරු දැක ගැනීමට පිළිවන. එවැන්නකින් දැක්වෙන්නේ terminal යොදා ගැනීමකින් තොරව පසුබිමින් ක්‍රියාත්මක වන (background) process එකකි. සාමාන්‍යයෙන් මෙහෙයුම් පද්ධතිය ආරම්භ වීමේදී (startup) සහ පරිශීලකයෙකු මෙහෙයුම් පද්ධතියට ඇතුළුවීමේදී (login), kernel මගින් අත්‍යාවශ්‍ය වන විවිධ පසුබිම් ක්‍රියාවලීන් (background processes) ආරම්භ කිරීම සිදු කරනු ලබයි. මින් මෙහෙයුම් පද්ධතියට අවශ්‍ය වන ක්‍රියාවලීන් root user ලෙස ක්‍රියාත්මක වීම සිදුවේ.

2 thoughts on “30 – Linux හි ක්‍රියාවලීන් කළමනාකරණය (process management) (1 කොටස)

ප්‍රතිචාරයක් ලබාදෙන්න

Fill in your details below or click an icon to log in:

WordPress.com Logo

ඔබ අදහස් දක්වන්නේ ඔබේ WordPress.com ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Google photo

ඔබ අදහස් දක්වන්නේ ඔබේ Google ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Twitter picture

ඔබ අදහස් දක්වන්නේ ඔබේ Twitter ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Facebook photo

ඔබ අදහස් දක්වන්නේ ඔබේ Facebook ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )