Friday, September 24, 2010

පරිගණක පාලන පද්ධති -3

තුන්වන වසරේ පළමු  විභාගයත් අහවරයි .තරමක විරාමයක් ලැබුනු මොහොතේ  පරිගණක පාලන පද්ධති පිළිබඳ තුන්වන ලිපියත් ලියනවා. පළමු ලිපියට ප්‍රතිචාර  දක්වපු ආදරණීය සහෘදයන්ගේ එක ඉල්ලීමක් වුනේ ලිපි ලබාගන්න email subscription link එකක්  දාන්න කියලා  . ඕං ඒකකුත් දැම්මා   :) .  එදා නැවැත්තුවේ windows xp වලදී  සමාන්තරගත තො‍ටුපළේ  I/O resourses වලට අදාළ පරාස දක්වන තිර සටහනකින්.ඔබට මෙහි හොඳින් පෙනෙන කරුණක් තමයි මෙහි (address range) එක 378H සිට 37FH දක්වා වෙනස් වනවා. එහෙම කිව්වට තේරෙන එකක් නැහැ.මෙහි 378H ලෙසින් හඳුන්වන්නේ  අප හොඳින් දන්නා දත්ත රෙජිස්ටරය . 37FH ලෙස හඳුන්වන්නේ පාලන රෙජිස්ටරය. එතකොට තත්ත්ව රෙජිස්ටරය ? එය මෙම තිර සටහනේ නොපෙනුනාට එයටත් අදාල ලිපිනයක් තියෙනවා. එය 379H ලෙස නම් කරනවා. තව දෙයක් කියන්න අමතකවුනා . මොකක්ද මේ  LPT1 කියන්නේ. මෙහෙම කියන්නම් පරිගණකයේ සමාන්තරගත තො‍ටුපළ එකක් තියෙනවනම් ඒක LPT1 ලෙසද, දෙකක් තියෙනවනම්  ඒවා පිළිවෙලින්  LPT1 හා LPT2 ලෙස නම් වනවා . LPT2 හි පරාසය 278H සිට 27FH දක්වා වනවා. මේක සම්මතයක්. සමහර විට LPTx වලට address range දෙකක් තියෙන්නත් පුළුවන් (x කිව්වේ සමාන්තරගත තො‍ටුපළෙහි අංකය ) , 378H - 37FH හා 678H - 67FH ලෙස, බොහොම අඩු වශයෙන්  තමයි ඒහෙම තියෙන්න පුළුවන්,  එක්කෝ මේක user defined දෙයක් විය හැකියි. මම පරීක්ෂණ සඳහා යොදාගත්  පරිගණකයේ මෙම අගයයන් තිබුන නිසයි  කියන්නේ. සමහර  විට ඔබ යොදා ගන්නා පරිගණකයේ මෙම අගයයන් වෙනස් වෙන්න පුළුවන්.   :)

තවත් පැහැදිලි වෙන්න විස්තරාත්මක තිර සටහනක් මෙවර පළ කරනවා.




Windows XP මෙහෙයුම් පද්ධතිය Windows NT ජාලකරණ  මෙහෙයුම් පද්ධතිය අනුකාරක මෙහෙයුම් පද්ධතියක් .ඒ හින්දා windows NT වලට අදාළ ආරක්ෂක ක්‍රම windows XPත් අනුගමනය කරනවා . තො‍ටුපොළකට (port) ඇතුළත් වෙද්දි (acess) මෙහි සමහර ආරක්ෂණ ක්‍රම ස්වල්ප වෙලාවකට  ලිහිල් කරන්න වෙනවා. ඒ ක්‍රමයට තමයි මෙහිදී සාදන පරිගණක  පාලන පද්ධතිය ක්‍රියා කරන්නේ .

මෙම ආරක්ෂණ ක්‍රමය ගැන විස්තරාත්මකව කිව්වොත් මෙම මෙහෙයුම් පද්ධති වල ධාවනය වන වැඩසටහන් කොටස් දෙකකින් යුක්ත වෙනවා. 
පළමු කොටස User Mode ලෙසත් අනෙක් කොටස Kernal Mode ලෙසත්  හඳුන්වනවා . සරසවි වල ඉන්න අපේ තොරතුරු තාක්ෂණය හදාරන  සහෘදයෝ නම් Operating Systems,Computer Architecture යන විෂයය යටතේ මෙම කරුණු හොඳට දන්නවා ඇති කියලා මම හිතනවා. පාසල් යන නංගිලා,මල්ලිලාට හා මෙම විෂයයට ආධුනිකයන්ට පහසුවෙන්න මෙය ගැන මම හොඳ විස්තරයක් දෙන්නම්.

User Mode වැඩසටහන් Ring 3 Mode එකේ ධාවනය වනවා.Kernal Mode එකේ වැඩසටහන් Ring 0 Mode එකේ ධාවනය වනවා.අප විසින් නිර්මාණය කරන තො‍ටුපළ සන්නිවේදන වැඩසටහන් windows මෙහෙයුම් පද්ධතියේ ධාවනය වනවිට මෙහෙයුම් පද්ධතිය එහි ආරක්ෂිත ක්‍රම ක්‍රියාත්මක කරනවා. මෙහි පියවරක් ලෙස තො‍ටුපළවලට (ports) සන්නිවේදනයට  බාධාවක් ඇතිවෙනවා.මෙහිදී windows මෙහෙයුම් පද්ධතිය  දෝෂ පනිවුඩයක් ඉදිරිපත් කරනවා.



එනමුදු Kernal Mode එකට අයත්වන වැඩසටහන් වලට මෙම සීමාකිරීම නොමැති අතර (dll,sys,vxd වැනි Device drivers) මෙහෙයුම් පද්ධතිය ඒවාට නිදහසේ ක්‍රියාකිරීමට ඉඩ ලබාදෙයි.  Win XP වැනි ආරක්ෂිත උපක්‍රම යෙදූ මෙහෙයුම් පද්ධතියකට තො‍ටුපළ සන්නිවේදන වැඩසටහන් ලිවීමේදී කළ හැකි හොඳම දෙය නම් අප ලියන වැඩසටහනට අනුරූපව Device drivers අපම නිපදවා ගැනීමයි.(Dll සෑදීම ගැන මම පසුව ලිපියක් පළකරනවා)

මා මෙහිදී භාවිතා කරන්නේ Inpout32.dll නැමැති Device driver එකයි. ක්‍රමලේඛන සමෝධානික සංවර්ධන පරිසරය (IDE-Intergrated Development Environment) Visual Studio .net 2003,2005,2008. මෙම Dll ගොනුව logix4u.net නම් මෙම අඩවියෙන් ලබාගැනීමට හැකිවන අතර මෙම Dll ගොනුව Visual basic 6,Visual Studio .Net  වැනි ක්‍රමලේඛන භාෂා වලින් සාදන තො‍ටුපළ සන්නිවේදන වැඩසටහන් සඳහා භාවිතා කරන්න පුළුවන්.

පළමුවෙන්ම කරන්න තියෙන්නේ මෙම Dll ගොනුව Windows මෙහෙයුම් පද්ධතියේ c:\windows\system , c:\windows\system32  folder වලට පිටපත් කරගැනීමයි . මේක හරියටම driver එකක් install කළා හා සමානයි.


ඉන්පසුව Visual Studio 2005 වල නව ව්‍යාපෘතියක් යටතේ නව Visual Basic ව්‍යාපෘතියක් ආරම්භ කරන්න.නම දෙන්න ports වගේ නමක් :) .ඉන්පසුව Declarations යටතේ පහත රූප සටහනේ දැක්වෙන ආකාරයට සටහන් කරන්න(මෙයින් කරන්නේ Inpout32.dll ගොනුවේ තිබෙන functions වැඩසටහන තුළට
ගැනීම.)



කලින් වතාවක කියූ පරිදි මෙම වැඩසටහන ලියන්නේ  දත්ත රෙජිස්ටරයේ (Data register) එකේ අග්‍ර වලින් දත්ත පිටතට ගැනීමට. එනම් එම අග්‍ර වලින් සරල විදුලි උපකරණ  පාලනය කිරීමට . එහෙනම් හදන්න ඕනි දත්ත පිටතට යවන වැඩසටහනක් . මේ තියෙන්නේ එම වැඩසටහනේ අතුරුමුහුණත.



අදාල විධාන බොත්තම මත දෙක්ලික් කළහම ක්‍රමලේඛන කිරීමට අපට අවස්ථාව ලැබෙනවා.
පහත දැක්වෙන්නේ මෙම අතුරුමුහුණතට අදාල සම්පූර්ණ ක්‍රමලේඛන සටහන .


මේකේ 888 ලෙස දී ඇත්තේ දහසයේ පාදයෙන් 378H යන අගයම තමයි. මට වැරදිලා කියලා හිතන්න එපා..  888 දහයේ පාදයෙන්..

මෘදුකාංගය හැදුවාට දෘඩාංග කොටස හැදුවේ  නැහැනේ. මෙන්න ඒ  දෘඩාංග කොටසේ විස්තර. 
පහසුවෙන් හොයාගන්න පුළුවන් ආලෝක විමෝචක ඩයෝඩ LED අටක් , male parallel port connecter එකක්  , හා 470 Ω  හෝ 330Ω  ප්‍රතිරෝධක අටක් භාවිතා කරලා මේ  දෘඩාංගය සාදාගන්න පුළුවන්.  මෙහි (-) අග්‍ර සියල්ලම එකට පාස්සලා  male connector එකේ 18 ඉඳන් 25 වෙනකම් තියෙන ඕනෑම අග්‍රයකට පාස්සන්න.(පහත දැක්වෙන්නේ එසේ සාදා නිමකල දෘඩාංගය)..













මේ ඔක්කොම කළාට පස්සේ දෘඩාංගය පරිගණකයේ පි‍ටුපස female socket එකට සවිකරලා පරිගණක වැඩසටහන ක්‍රියාත්මක කරලා බලන්න. විවිධ අගයයන් දීලා බලන්න . සෝක් වැඩේ නේද .කොම්පුටරෙන් ලයිට් පත්තු කරන්න පුළුවන්..!
ඉඳින් ආදරණීය සහෘදය මේ සමගම පරිගණක පාලන පද්ධති පිළිබඳ ලිපිපෙළ අවසන් කරනවා.  ඔබගේ වටිනා අදහස් මෙහි පළ කරන්න . අවුලක් තියේනම් ඒවාත් සටහන් කරන්න. ඔබ සැමට ජය..

---------------------------------------------------------------------------------------------------------

පසුව ලියමි 2010/10/07 

පරිගණක පාලන පද්ධති පිළිබඳ මුල් ලිපි පෙළ




9 comments:

  1. නියමයි අයියෙ..එළ

    අයියෙ දැන් ඉතින් ටිකක් හරි නිවාඩු තියෙන එකේ මේ වගේ මැක්ස පෝස්ට් ටිකක් දාන්නකො

    ReplyDelete
  2. මල්ලියා,දිගටම කරගෙන යන්න.ගොඩක් වැදගත්.

    ReplyDelete
  3. ඔයාට පුලුවන්නම් මට "පැරළල් පෝර්ට් ප්‍රෝග්‍රැමින්"ගැන පැහැදිළිව ලියවුනු පොතක් කියන්න පුලුවන්ද?

    ReplyDelete
  4. @dinesh
    අසෝක එස් කරුණානන්ද මහතාගේ " පරිගණකයෙන් තවත් වැඩ පොත " කියවන්න පුළුවන්නම් මේ ගැන ගොඩක් විස්තර හොයා ගන්න පුළුවන්.

    @hasitha
    මලයෝ අයෙමත් වැඩ ගොඩ ගැහිලා. exam ඉවර වුනාට assignments,labs තියෙනවනේ..

    ReplyDelete
  5. එලම තමයි. බඩු වැඩ.
    ස්තුතියි

    ReplyDelete
    Replies
    1. @mali_89
      බොහොම ස්තුතියි අත්හදා බලලා අලුත් දැනුමක් ලබාගත්තානම් . ගොඩක්ම සතු‍ටුයි!

      Delete
  6. ගොඩාක් වටිනවා....මේ වගේ යු.එස්බී පෝර්ට් එකෙන් වැඩ කරන්න ක්‍රිමවේදයක් තියෙන්වාද?

    ReplyDelete
    Replies
    1. @saman wijerathne
      දැන් නම් තාක්ෂණය ගොඩක් දියුණු වෙලා . Arduino වගේ Microcontroller/Processing Boards ඇවිල්ලා. ලංකාවෙත් දැන් ගන්න තියෙනවා . www.arduino.cc ගියොත් ඔයාට වැඩිපුර විස්තර හොයාගන්න පුළුවන්.මේවායින් USB port එකත් එක්ක පහසුවෙන් ගනුදෙනු කරන්න පුළුවනි.

      Delete

ඔබේ ප්‍රතිචාර මට ගොඩක් වටිනවා..