Thursday, August 9, 2012

Operating Systems

         
JAVA, C++, VB, PHP වැනි විවිධ පරිගණක භාෂා පිළිබද දැනීමක් ඔබට ඇති. නමුත් ඔබ නිර්මාණය කරන වැඩසටහනක් පරිගණකය තුළ ක්‍රියාත්මක වන තත්වයට පත් වන්නේ කෙසේද කියා ඔබ නොදන්නවා විය හැකියි. මෙම දැනුම නොමැතිව පරිගණක වැඩසටහනක් සැලසුම්කරණය, වැඩසටහනක ඇති වැරදි සෙවීම (debug) වැනි පරිගණක වැඩසටහන්කරණයේදි අත්‍යාවශ්‍ය වන කටයුතු සිදු කිරීම අපහසුයි. මෙම ලිපි පෙළෙන් බලාපොරොත්තු වන්නේ පරිගණකයක මෘදුකාංග අංශය ක්‍රියාත්මක වන ආකාරය පිළිබද යම් අවබෝධයක් ලබාදීමයි. පරිගණක වැඩසටහනක ක්‍රියාකාරීත්වය, මෙහෙයුම් පද්ධතියක ක්‍රියාකාරීත්වය, මතුවිය හැකි ගැටලු ආදිය පිළිබද මෙම ලිපි පෙළෙහි ඇතුළත් වෙනවා. මෙහිදී සිදු කරන්නෙ න්‍යායාත්මකව ක්‍රියාවලිය පැහැදලි කිරීමක් බැවින් පරිගණකයක් තුළ මේවා භාවිත වන ආකාරයෙහි යම් වෙනස්කම් පැවතිය හැකියි.
Process එකක ව්‍යුහය 01
අප විසින් සකසනු ලබන program එකක් අවසානයේ පරිගණකය තුළ ක්‍රියාත්මක වන්නේ 1 සහ 0 සමුදායක් ලෙස (machine code) බව ඔබ දන්නවා ඇති. එනම් පරිගණකය හදුනාගන්නේ 1 සහ 0 සදහා වූ වෙනස් වෝල්ටීයතා මට්ටම් දෙකක් පමණයි. එසේ නම් සංකීර්ණ කාර්යයන් සිදුකරන software එකක් මෙලෙස 1 සහ 0 මගින් ක්‍රියාත්මක වන්නේ කෙලෙසද යන ගැටලුව ඔබටත් තිබිය හැකියි. මෙම ලිපි පෙළෙන් එම ක්‍රියාවලිය පිළිබද යම් අවබෝධයක් ලබා දීමට බලාපොරොත්තු වනවා. මෙම ක්‍රියාවලිය පැහැදිලි කිරීමට අවශ්‍ය මූලික දැනුම ලබා දීම සදහා ප්‍රථමයෙන්ම program එකක් run වීමට අදාළ මූලික ක්‍රියාවලිය කෙටියෙන් සළකා බලමු.
ප්‍රථමයෙන්ම hard disk එකේ තියෙන program එක main memory එකට රැගෙන යනවා. program එකක් යනු instruction සමුදායකි. මේ එක් එක් instruction එක processor එක මගින් ක්‍රියාත්මක කිරීම තමයි program එකක් execute කරනව කියල කරන්නෙ.
img1 1
img1 2
main memory එකේ දත්ත ගබඩා කර තැබිය හැකි ස්ථාන වලට memory locations කියල කියනවා. එක් එක් memory location එකට අනන්‍ය වූ address එකක් තියෙනවා. එමගින් අවශ්‍ය memory location එක හදුනාගන්න පුළුවන්. processer(cpu) එක ඇතුලෙ තියෙන program counter(pc) එක මගින් දැන් execute කල යුතු instruction එක තියෙන memory location එකේ memory address එක ගබඩා කරල තියාගන්නවා. මෙම instruction එක cpu එක ඇතුළට ගෙනත් instruction register කියල තැනක තැන්පත් කරනවා. register එකක් කියන්නෙත් memory location එකක් වගේම එකක්. බොහෝ වෙලාවට ඒවා තියෙන්නෙ cpu එක ඇතුලෙ. එම නිසා memory එකට වඩා ගොඩක් වේගවත්. ඉන් පස්සෙ පරිගණකය instruction register එකේ තියෙන instruction එක කියවල ඒක ක්‍රියාත්මක කරනවා. main memory එකේ ඇති දත්තයක් කියවීම main memory එකේ දත්තයක් තැනපත් කිරීම register වල ඇති දත්ත වලින් ගණිතකර්ම සිදු කිරීම වැනි විවිධ instructions මෙලෙස execute කළ හැකියි. එක් instruction එකක් execute කිරීමෙන් පසු ඊලග instruction එක cpu එකේ instruction register එකට ගෙන ආ යුතුයි. ඒ සදහා program counter එකෙහි මීලග instruction එක ඇති memory address එක සටහන් කල යුතුයි. ඉන්පසු පෙර පරිදිම මීලග instruction එක execute කල යුතුයි