Funding for 'IT Lab' Project, Phase 1: Progress of sticker sales. Purchase a sticker to help us reach our target.Updated: 2010-02-04 05:34
තොරතුරු හා සන්නිවේදන තාක්ෂණයේ මූලිකාංග

by Dinesh Nadun Kumara
පරිගණක මෙහෙයුම් පද්ධති
පරිගණකය හැසිරවීම ප්රධාන වශයෙන්ම පාලනය වනුයේ පරිගණක මෙහෙයුම් පද්ධතිය මඟිනි. මෙය System Software ගණයට වැටෙන මෘදුකාංගයකි. පරිගණකයට සම්බන්ධ සියලූ ප්රධාන උපාංග හඳුනාගෙන හැසිරවීමත්, අනෙකුත් මෘදුකාංග හැසිරවීමටත් පරිගණක මෙහෙයුම් පද්ධතිය මූලික පදනම සකස් කර දේ.
පරිගණක මෙහෙයුම් පද්ධති පහත ලෙස වර්ගීරණය කළ හැක.
1. Multi User
2. Multiprocessing
3. Multitasking
4. Multithreading
5. Real Time
Multi User
මේවා එක් වරකට පරිශීලකයින් 2 ක් හෝ වැඩි ප්රමාණයක් පරිගණයට හා කටයුතු කිරීමට ඉඩ ලබා දේ. Mainframe Computers භාවිතා කරනුයේ මෙම මෙහෙයුම් පද්ධතීන්ය.
Multiprocessing
මෙහිදී සිදුවනුයේ, එක් වරකට පරිගණක වැඩසටහන් කිහිපයක් හැසිරවීමේ හැකියාව මෙහෙයුම් පද්ධතිය මඟින් ලබා දීමයි. මෙය සිදුවීමේ දී CPU කොටස් 1 කට වඩා සම්බන්ධවීම සිදුවේ.
Multitasking
මෙහිදී ද සිදුවනුයේ එක් වරකට එකකට වඩා වැනි කාර්යභාරයක් සිදුකර ගත හැකි නමුත්, මෙහිදී එක් CPU කොටසක් පමණක් භාවිතා වීම සිදුවේ. එවිට එක් පරිගණක වැඩසටහන මාරුවෙන් මාරුවට CPU එක හා සම්බන්ධ වන අතර මෙම මාරුවීම අධික වේගයකින් සිදුවේ.
Multithreading
Thread එකක් ලෙස හඳුන්වනුයේ එක පරිගණක වැඩසටහක් තුළ ඇති එක් එක් කුඩා අනු කොටස්ය. පරිගණක වැඩසටහනේ ස්වභාවය අනුව මෙම Threads හැසිරෙන ආකාරය වෙනස් වේ. Threads වලට සහය දැක්වීම පරිගණක මෙහෙයුම් පද්ධතිය මඟින් සිදු කළ යුතුය.
Real Time
මෙම මෙහෙයුම් පද්ධති ඒවාට ලැබෙන ප්රදාන සංඥා වලට හැකි තරම් වේගයෙන් ප්රතිචාර දක්වන ආකාරයට නිමකර ඇත. එම ප්රතිදානය බාධාවලින් තොරව වේගයෙන් ලැබෙන ලෙස, එම ලක්ෂණයට ප්රමුඛත්වය දී නිමකර ඇත. රොබෝවරුන් තුල ඇති පරිගණක මෙහෙයුම් පද්ධති මේවාට නිදසුන් වේ.
පරිගණක මෙහෙයුම් පද්ධති ප්රථයෙන්ම දියුණු වූයේ එතරම් පහසුකම් පරිශීලකයාට සපයන අයුරින් නොවේ. මුලින්ම CLI (Command Line Interfaces) බිහි වූ අතර මෙමඟින් ප්රධාන වශයෙන් වැඩකටයුතු කරගැනීමට විධානය වෙනම යතුරු ලියනය කළ යුතු විය. මෙය මූලිකවම එතරම් කාර්යක්ෂම ක්රමයක් නොවූ අතර, ඉතා ඉක්මනින් එම තත්වයෙන් ඉවත් වූ මෙහෙයුම් පද්ධතීන් බිහි විය. DOS (Disk Operating System) මේ ගණයට අයත් මෙහෙයුම් පද්ධතියක් විය. මේවායේ මුහුණත් සරල වූ බැවින් අඩු පරිගණක මතක ධාරිතා හා අඩු වේගයක් සහිත පරිගණකවල පහසුවෙන් ස්ථාපනය කළ හැකි විය.
ඉන් අනතුරුව බිහිවූ මෙහෙයුම් පද්ධති පරිශීලකයාට වඩාත් පහසුවෙන් හැසිරවිය හැකි වූත්, ආකර්ෂණීය වූත් මුහුණත් වලින් යුක්ත ඒවා විය. එබැවින් GUI (Graphical User Interfaces) මෙහෙයුම් පද්ධතීන් ලෙස මේවා හැඳින්විනි. සාපේක්ෂව වැඩි වූ පරිගණක මතකයක් හා වේගයක් මෙම මෙහෙයුම් පද්ධති ගැටලූවකින් තොරව ධාවනය කරවීමට අවශ්ය විය.
පරිගණක මෙහෙයුම් පද්ධතියක් දරණ මූලික වගකීම් කොටසක් පවතී. මෙය සෑම පරිගණක මෙහෙයුම් පද්ධතියකටම පොදු වූවකි. මූලික වශයෙන්ම පරිගණක මෙහෙයුම් පද්ධතියකින් කෙරෙන කටයුතු 3 ක් හඳුන්වා දිය හැක.
1. මතකය හැසිරවීම - Memory Management
2. පරිගණක වැඩසටහන් හැසිරවීම - Process Management
3. ප්රදාන, ප්රතිදාන ක්රියාවලිය මෙහෙයවීම - Input/Output Operations Management
Memory Management
පරිගණකයේ මතකය යනු යම්කිසි දත්තයක් විනාශ නොවී පරිගණකය තුල ගබඩා කරගැනීමේ හැකියාවයි. පරිගණකයේ සියලූ ක්රියාකාරකම් වලට මතකය ඉතා වැදගත් වේ. එදිනෙදා ක්රියාකාරකම් වලට මිනිස් මතකය කෙතරම් වැදගත් වේ දැයි ඉතා පහසුවෙන් වටහා ගත හැකිය. අප විසින් සිදුකරන සියලූම ක්රියාකාරකම්වල මුල, මැද, අග සම්බන්ධය තහවුරු කරලීමට මතකය ඉතා අත්යවශ්ය වේ.
පරිගණකය තුල ඇති මතකය භෞතිකමය ලෙස ගොඩනැංවිය යුතුය. මෙසේ කිරීමේදී එම මතකයට විශේෂිත වූ ලක්ෂණ කිහිපයක් ඇතුලත් කිරීමට සැමවිටම වගබලා ගත යුතුවේ. එනම්,
1. උපරිම ධාරිතාවක් තිබීම.
2. මතකයෙන් දත්ත ලබාගැනීමේ වේගය හැකිතරම් අවම වීම.
3. මතකය ස්ථාවර මතකයක් වීම.
තමුන් ප්රායෝගිකව මෙම ලක්ෂණ උපරිමයෙන් පරිගණක දෘඩාංගයකට ඇතුලත් කිරීම සීමා සහිත වේ. මතකයේ ධාරිතාව වැඩි කරන විට මතකය තුලින් දත්තයක් සොයා යාමට ගතවන කාලය වැඩි වේ. එසේම, ඉක්මනින් මතකය තුලින් දත්තයක් ලබාගැනීමට නම් මතකය කුඩා විය යුතුය. සමහරක් පරිගණක මතක කොටස් විදුලි බලය පවතින තාක් පමණක් දත්ත ගබඩා කර තබා ගනු ලබයි. (උදා : RAM Random Access Memory) විදුලි බලය හමුවේ දත්ත විනාශ නොවන, එසේම ධාරිතාව වැඩි මතක කොටසක් ලෙස හාඞ් ඩිස්කය (Hard Disk) දැක්විය හැකි වුව ද, ඒ හරහා දත්තයක් ලබාගැනීමට ගතවන කාලය ඉහළ වේ.
මෙම සීමාවන් මඟහැර කාර්යක්ෂම මතකයක් පරිගණක තුළ පවත්වා ගැනීමට ක්රමයක් පවතී. මෙය Memory hierarchy ලෙස හඳුන්වයි.
Memory hierarchy

Resourc : http://www.microway.com/papers/appnotes/note5-fig2.gif
පරිගණකය තුළ මතකය භාවිතා කර ක්රියාවන් සිදුකරනු ලබන්නේ Processor එක මඟිනි. මෙම Processor එක ඉතා වේගවත්ව ක්රියාකළ හැකි ලෙස සාමාන්යයෙන් නිමවේ. නමුත්, එයට එහි උපරිම වේගය පවත්වා ගෙන යාමට, එයට අවශ්ය දත්ත අවශ්ය කරන වේගයෙන් ලබාදිය යුතුය.
මේ සඳහා Processor එකට දත්ත ලැබීම විවිධාකාර ලක්ෂණ වලින් යුත් මතක කොටස් වලින් සිදුවේ.
Processor එකට ආසන්නයෙන්ම ඇත්තේ Cache (L1 Cache and L2 Cache)නමින් හඳුන්වන මතකයයි. මේවායේ,
1. ධාරිතාව සාපේක්ෂව අඩුය.
2. මතකය තුළින් දත්තයක් ලබාගැනීමට ගතවන කාලය සාපේක්ෂව ඉතා අඩුය.
3. විදුලි බලය නැති විටදී අක්රිය වී යයි.
ධාරිතාවය අඩු නිසා මෙහි පවත්වා ගන්නේ Processor එකට ක්රියාත්මක වීමට ඉතාම වැදගත් වන දත්ත පමණි. එසේ වැදගත් නොවන දත්තයක් ඇතොත් එය බැහැර කරනු ලබයි.
Cache මතකයන් ඊළඟට සම්බන්ධ වනුයේ Memory hierarchy එකේ ඊලඟ කොටස සමඟයි. මෙම කොටසෙහි,
1. ධාරිතාවය සාපේක්ෂව වැඩිය.
2. ඉහත විස්තර කළ Cache මතකයනට වඩා වැඩි කාලයක් දත්ත ලබාගැනීමට ගත වේ.
3. විදුලි බලය නැති විටෙක අක්රිය වී යයි.
RAM මතකය මීට නිදසුනක් ලෙස දැක්විය හැක. මෙය Main Memory ලෙස ද හඳුන්වයි.
Memory hierarchy එකේ ඊළඟ මතක කොටස් ඉහත කී දෙවර්ගයෙන් බොහෝ දුරට වෙනස් වේ. මේවා Secondary Memory ලෙස ද හඳුන්වයි.
1. විශාලතම ධාරිතාවයක් පවත්වා ගනු ලබයි.
2. මතකය වෙතින් දත්තයක් ඉවතට ගැනීමට වැඩිම කාලයක් ගතවේ.
3. විදුලි බලය දත්ත ගබඩාවට බාධාවක් නොවේ. විදුලි බලය නැති විටෙක දත්ත විනාශ නොවේ.
Processor එකට යම් දත්තයක් අවශ්ය වූ විට ප්රථමයෙන්ම එය Cache Memory තුල ඇත්දැයි බලනු ලබයි. ඇත්නම් එය ලබාගන්නා අතර, නැත්නම් ප්රාථමික මතකය තුල විමසා බලයි. එහි ඇත්නම් එය ලබාගන්නා අතර, එහි ද නැත්නම් ද්විතීයික මතකය වෙත ගොස් දත්ත ලබාගැනීම සිදු කරයි.
මේ අයුරින් පරිගණකයේ වේගය වැඩිකර ගැනීමටත්, කාර්යක්ෂම මතකයක් පවත්වා ගැනීමටත් Memory hierarchy එක සාර්ථක ලෙස නූතන පරිගණකවල භාවිතා වේ.
2. Process Management
ප්රථමයෙන්ම Process එකක් යනු කුමක් දැයි බැලි යුතුය. ක්රියාත්මක වන පරිගණක වැඩසටහනක් Process එකක් වේ. මා මුල්ම කලාපයේ සඳශන් කර ඇති පරිදි පරිගණකින් එකක් පරිගණක වැඩසටහන් කීපයක් ක්රියාත්මක කර වැඩ කටයුතු කීපයක් කරගත හැක. මෙහිදී පරිගණක වැඩසටහනක් නියෝජනය කිරීම Process එකක් මඟින් කරනු ලබයි.
මෙහිදී Process එකක් ක්රියාත්මක කිරීම සිදු කරනුයේ CPU (Central Processing Unit) එකක් ඇති Processer එකකට එක් වරකට ක්රියාත්මක කළ හැක්කේ එක් Process එකක් පමණි.
Process Management හි මූලික පදනම මෙයයි. එක් වරකට කාර්යයන් කිහිපයක් කර ගැනීම පරිගණකයෙන් අපට දෘෂ්යමාන වුව ද සැබවින්ම එම එක් එක් Process CPU එක තුල ඉතා ඉහළ වේගයකින් මාරුවෙන් මාරුවට ක්රියාත්මක වීම සිදුවේ.
ක්රියාත්මක වන Process එකක් ප්රධාන අවස්ථා 3 ක් යටතේ ක්රියාත්මක වේ.
1. Running 2. Ready 3.Blocked
Running අවස්ථාව CPU එක තුළ Process එක ක්රියාත්මක වන අවස්ථාවයි.
Ready අවස්ථාව Process ක්රියාත්මක වීමට අවශ්ය සියලූ සම්පත් සම්පූර්ණව ඇති CPU එකක් අවස්ථාවක් ලැබෙන තුරු බලා සිටින අවස්ථාවයි.
Blocked අවස්ථාව Process එක ක්රියාත්මක වීමට අවශ්ය සම්පත් හිඟවීමක් නිසා තවදුරටත් ක්රියාත්මක විය නොහැකි තැනට පත් වූ අවස්ථාවයි.

1- අවශ්ය සම්පත් හිඟවීම නිසා Blocked අවස්ථාවට ඒම.
2- හිඟ වූ සම්පත් නැවත ලබාගෙන ක්රියාත්මක වීමට සුදුසු තත්වයට, Ready අවස්ථාවට පත්වීම.
3- CPU එක නිදහස් වූ විට CPU එක මඟින් ඊලඟ Process එක ක්රියාත්මක කිරීම.
4- වෙනත් Process එකකට අවස්ථාව දීමට Ready අවස්ථාවට ඒම.
3.ප්රදාන ප්රතිදාන ක්රියාවලි මෙහෙයවීම
පරිගණකයට ප්රදාන හා ප්රතිදාන සංඥා ලබාදීම සිදුවනුයේ ඊට සම්බන්ධ වන ප්රදාන හා ප්රතිදාන උපාංග මඟිනි.
උදාහරණ : ප්රදාන උපාංග - මවුසය, යතුරු පුවරුව, Barcord Reader, Joysticks
ප්රතිදාන උපාංග - මොනිරටය, Printer, Projecter
මෙහෙයුම් පද්ධතිටය තනිවම ඉහත එක් එක් උපාංහ හැසිරවිය නොහැක. ඊට හේතුව එම උපාංගවල ඇති එකිනෙක අතර වෙනස් ස්වභාවයයි.
නමුත්, උපාංග ක්රියා කරවීමට මෙහෙයුම් පද්ධතිය සමඟ ක්රියාකළ හැකි මට්ටමට ගෙන ඒම අනිවාර්ය අවශ්යතාවයකි. එබැවින්, මෙම අවශ්යතාවය සඳහා Device Driver යනුවෙන් හැඳින්වෙන, විශේෂිත මෘදුකාංග විශේෂයක් මෙම උපාංග හා සම්බන්ධ විය යුතුය. මෙම මෘදුකාංග එක් උපාංගයක් සඳහා වෙනස් පද්ධතීන් වලට වෙන වෙනම නිපදවිය යුතුය. එසේ වන්නේ එක් එක් මෙහෙයුම් පද්ධති ඒවාට අනන්ය වූ ආකාරයට දෘඩාංග සමඟ කටයුතු කරන බැවිනි.
මෙම මෘදුකාංග හැකි තරම් උපාංගයෙන් ලැබිය හැකි වැරදි දත්ත හමුවේ වෙනස් නොවී ක්රියාකළ හැකි විය යුතුය. මෙමඟින් උපාංගයේ විශාවාසනීය ක්රියාකාරීත්වය තහවුරු වේ.