Community project by students of the Faculty of Information Technology, University of Moratuwa, Sri Lanka.

6.3 පරිගණක මෙහෙයුම් පද්ධති (Operating Systems) හා ක්‍රියායන (processes)

 

පරිගණක මෙහෙයුම් පද්ධති පාඩම් මාලාව යටතේ අප මීළඟට කතා කරමු ක්‍රියායන / වැඩසටහන් අනුඛණ්ඩ (Process) පිළිබඳව.

  process එකක් කියලා කියන්නේ පරිගණක ක්‍රමලේඛනයක (program) ධාවනය වන අවස්ථාව ලෙස සරලවම හදුන්වන්න පුළුවන්. process එකක් සහ program එකක් අතර වෙනස පැහැදිලිව හඳුනා ගත යුතුයි. program එකක් යනු ස්ථිතික ලෙස පරිගණකය තුල ගබඩා වි ඇති ක්‍රමලේකයක්, මෙවැනි programs ගොඩක් ධාවනය වීමෙන්, එනම් processes මගින් පරිගණකය ක්‍රියාත්මක වෙනවා. ඇතැම් විට program එකකින් එක් අවස්ථාවකදී processes ගොඩක් තිබිය හැකියි, එනම් program එකක ධාවන අවස්ථා කිහිපයක් තිබිය හැකියි.

process ධාවනයේදී මුලින්ම පරිගණක මතකයෙන් කොටසක් අවශ්‍ය පරිදි වෙන් කෙරෙනවා, ඉන් පසුව මෙම processes ධාවනය වීම කළමනාකරණය කරන්නේ මෙහෙයුම් පද්ධතිය මගින්.

අපි පරිඝනකයට ලබාදෙන විවිධ විධාන වලට අනුව පරිගණකය හැසිරෙන්නේ processes ධාවනය වීම මගින්. ඉතින් මේ විදිහට ධාවනය වෙන විශාල processes ප්‍රමාණයක් කළමනාකරණය කිරීම , users ලාට අවශ්‍ය output ලබාදීම, පරිගණකය ඇතුලත ක්‍රියාවලි හැසිරවීම කරන්නේ Operating System (OS) එක මගින්. මේ ක්‍රියාවලිය OS එකකට තියෙන ඉතාම වැදගත් කටයුත්තක්.මේ තමයි OS එකක සහ processes අතර තියෙන මුලිකම සම්බන්ධය. කාලයත් සමඟ OS වල දියුණුවත් සමගම OS මගින් processes කළමනාකරණය කිරීම වැඩිදියුණු වුනා. මුල් කාලයේ processes ධාවනය උනේ batch processing ක්‍රමයට. ඒකේදී process එකකට පසුව තවෙකක් වශයෙන් ධාවනය කෙරුණා. මේ නිසා පරිගණකය මගින් එක් වරකට එක් වැඩක් පමණයි කරගන්න පුළුවන් උනේ. උදාහරණයක් විදිහට ඔබට අන්තර්ජාලයේ සැරිසරන ගමන් සින්දුවක් අහන්න හෝ වෙනත් වැඩක් කරගන්න බැහැ.

මේ අඩුපාඩුව මගහරින්න හදුන්වා දුන් තවමත් වර්තමානයේ භාවිතා වන ක්‍රමවේද දෙකක් තමයි මේ. 

 

  • බහු ක්‍රමලෙන ක්‍රියාත්මක පද්ධති (Multiprogramming systems)
  • කාල විභාජන පද්ධති (Multitasking systems) 

 

බහු ක්‍රමලේඛන ක්‍රියාත්මක පද්ධති (Multiprogramming systems)  

 

 මෙම ක්‍රමයේදී programs එකකට වැඩි ප්‍රමාණයක් එක් වර පරිගණක මතකයේ (RAM) ගබඩා කර තබාගනිමින් ධාවනය කරනවා. මෙමගින් පරිගණකයේ ප්‍රොසෙසරය, ක්‍රියායන (processes) කිහිපයක් මගින් එක් වර භාවිතා කිරීම අනුරුපණය කරයි. මෙය පරිගණකය විසින් සම්පත් කළමනාකරණය (resource management) කරන එක් අවස්ථාවක් ලෙස හඳුන්වන්න පුළුවන්. මෙහිදී OS එක මගින් එක් වරකට පරිගණක මතකයේ ඇති ගබඩා කර ඇති programs කිහිපය අතුරින් එකක් තෝරා ධාවනය කරනවා. 
 

OS එකට අමතරව program කිහිපයක් පරිඝණක මතකයේ ගබඩා කර ඇති අවස්ථාවක් (multiprogramming සඳහා සුදානමින්)

මෙලෙස එක් වරකට process එකක් පමණක් ධාවනය උනත් programs කිහිපයක් එක් වර මතකයේ තබාගනිමින් ඒ සියල්ලට වරින් වර ධාවනය වීමට අවස්ථා ලබාදෙනවා. මේ නිසා පරිඝණකය භාවිතා කරන්නන් අත්දකින්නේ programs කිහිපයක් එක් වර භාවිතා වන ලෙසයි. විදුලි බුබුලක් නිවී නිවී දැල්වුනත් අපිට එය එක දිගට දැල්වෙන බව පේනවා වගේ ප්‍රොසෙසරය programs කිහිපයක් වරින් වර ධාවනය කිරීම අපට දැනෙන්නේ නැහැ. මේ ක්‍රියාවලිය ඉතා වේගයෙන් සිද්ධවෙන නිසා අපට හැඟෙන්නේ processes සියල්ල එක් වර ධාවනය වන බවයි. හරියට නිවී නිවී දැල්වෙන බල්බයක් පියවි ඇසට අඛණ්ඩව දැල්වෙමින් පවතින බව පේනවා වගෙයි. ඒ නිසා තමයි ඔබ දැන් අන්තර්ජාලයේ සැරිසරන ගමන් තවත් ගොඩක් දේ පරිගණකයෙන් කරගන්න හැකියාව ලැබී තිබෙන්නේ. මෙම කළමනාකරණයේදී පරිගණක මතකයේ ඇති එක් එක් process, කුමන ක්‍රියාවලි තත්ත්වයන්ගේ (process state) තිබෙනවාද යන්න OS එක මගින් දැන ගත යුතුයි. programs කිහිපයක් අතුරින් program එකක් තෝරා ගැනීමේදීත්, එහි ධාවනය මදකට නවතා වෙනත් program එකකට ධාවන අවස්ථාව ලබාදීමේදීත් අදාල programs ධාවන තත්වය සලක බැලේ. මෙය පවත්වා ගන්නේ process state එක මගින්.process එකක ආරම්භයේ සිට අවසානය දක්වා එය පසුකරන process state වර්ග කිහිපයකි. New, Ready, Running, Waiting, Terminated.
 
  

programs ධාවනයේදී program state වෙනස්වීම

 

 

 

කාල විභාජන පද්ධති (Time sharing systems)

Time sharing system එකක් යනු multiprogramming ක්‍රමවේදය භාවිතා වන තවත් එක් අවස්ථාවක් ලෙස හඳුන්වාදෙන්න පුළුවන්. මෙම ක්‍රියාවලිය බොහෝ විට යොදාගන්නේ users ලා කිහිප දෙනෙකුට එක් වර පරිඝනකයක් භාවිතා කිරීමට අවස්ථාව ලබාදීමටයි.   

 

 
 

නමුත් සියලු user ලාට හැඟෙන්නේ තමන්ටම වෙන්වූ පරිඝනකයක් පාවිච්චි කරන බවයි. ඔවුන් එකිනෙකාගෙන් ස්වායත්ත ලෙස පරිඝනක සම්පත් භාවිත කරනවා. මෙහිදීත් සමාන කාල පරිච්චේද අතර පරිඝනකය users ලා අතර හුවමාරු වෙමින් භාවිතා කෙරෙනවා. මෙය OS එක මගින් කළමනාකරණය කෙරෙන අතර  මෙම හුවමාරු වීමේ වේගවත් බව නිසා මෙහි වෙනසක් නොදැනේ.

 
මෙම ආකාර 2 කළමනාකරණය කිරීම සඳහා ක්‍රියාවලි පෙළගැස්වීම (CPU scheduling) යොදාගනී. CPU scheduling යනු ධාවනය වෙමින් පවතින ක්‍රියායන (processes) , පොට (threads) සඳහා අවශ්‍ය පරිඝණක සම්පත් (resources) සඳහා ප්‍රවේශ (access) ලබා දීම සිදුකරන ක්‍රමවේදයක්.  
 
 

ක්‍රියාවලි පෙළගැස්වීම (CPU scheduling)

 

විවිධ OS මගින් CPU scheduling සිදුකරන ආකාර කිහිපයකි.
  • Long-term scheduler
  • Mid-term or Medium-term scheduler
  • Short-term scheduler
මීට අමතරව CPU scheduling සඳහා යොදාගන්න ඇල්ගොරිතම (algorithms) අනුව මේවා වර්ග කිහිපයකට බෙදා දැක්විය හැකිය.
  • First in first out
  • Shortest remaining time
  • Fixed priority pre-emptive scheduling
  • Round-robin scheduling
  • Multilevel queue scheduling
මේ පිළිබඳ වැඩි විස්තර අපි පසුවට කතා කරමු.
The following two tabs change content below.

Dilruk Perera

Latest posts by Dilruk Perera (see all)

Comments
  1. hasiv
  2. Asith
  3. Bhashana
  4. janith
  5. susantha
  6. Charith
  7. L.P.C Dilshani
  8. Amshi

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.