දැනට තිබෙන පාඩම්...

Sunday, December 25, 2016

මූලික කරුණු ඉගෙන ගනිමුද? - 2 පාඩම

කලින් පාඩමට ලැබුනු ප්‍රතිචාර නිසාම දෙවෙනි ලිපියත් ඉක්මනටම පළ කරන්නයි හිතුවේ. පළවෙනි ලිපියෙන් අපි කථා කළේ Memory නැත්නම් මතකය කියන කොටස ගැන.
දෙවැනි කොටසෙන් අපි කථා කරන්න හිතුවේ අැත්තටම අපි වැඩ කරනවා වගේ පෙනෙන වැඩසටහනක නැත්නම් programme ඒකක මොකද වෙන්නේ කියලා.
ගොඩක් ලොකු වැඩසටහනක පියවර ගණනත් වැඩි නිසා අපි කථා කරමු සරළ වැඩසටහනක් වැඩකරන්නේ කොහොමද කියලා.
අපි හැමෝම දන්න විදියට පරිගණකයක මූලික කාර්යය වෙන්නේ වැඩසටහන් ක්‍රියාත්මක කිරීම. වැඩසටහනක් ක්‍රියාත්මක වෙන්න නම් ඒ වැඩසටහනට අදාල Instruction Set නැත්නම් උපදෙස් මාලාවක් මතකය තුල අන්තර්ගත වෙන්න ඔින.
උපදෙස් මාලාවකින් උපදෙස් 1ක් ක්‍රියාවට නැංවීම ප්‍රධාන පියවර 2යි.

  1. Fetch කිරීම
  2. Execute කිරීම
Fetch කිරීම යන්නෙන් අදහස් වෙන්නේ, මතකයෙන් උපදෙස බැගින් ගන්නවා CPU විසින් වරකට ඒක බැගින්.
Execute කිරීම යන්නෙන් අදහස් වෙන්නේ, ඒ උපදෙස් ඒක බැගින් ක්‍රියාත්මක කරනවා.
මුලු වැඩසටහනක්ම Execute වෙනවා කියන්නේ කලින් කියපු කරුණු දෙක මාරුවෙන් මාරුවට චක්‍රයක් වගේ සිදුවීමට...
මේ තනි උපදෙසක් Fetch වෙන්න පටන් ගන්න තැන ඉදන් ඒක Execute වෙලා ඉවර වෙන තැන වෙනකන්ම වෙන ක්‍රියාවලියට අපි කියනවා Instruction Cycle කියලා. මේ Cycle ඒක ප්‍රධාන කොටස් 2යි , Fetch Cycle හා Execute Cycle .

 Execution වෙන වැඩසටහනක් නවත්වන්න පුලුවන් ක්‍රම කිහිපයක්ම තියෙනවා.
  1. පරිගණකය ක්‍රියා විරහිත වීම
  2. අායෙත් recover කරගන්න බැරි විදිහේ errors අාවට පස්සේ
  3. වැඩසටහනට අදාල උපදෙස් ප්‍රමාණය ඉවර වුනාට පස්සේ සාමාන්‍ය විදිහට වැඩසටහන අවසන් වීම
සාමාන්‍ය පරිගණකයක වැඩසටහනක් execute වෙද්දී Program Counter කියන කුඩා රෙජිස්තරය භාවිතා වෙනවා, ඊලගට execute වෙන්න තියෙන instruction ඒකේ address ඒක තියාගන්න. අපි කලින් ලිපියේ සදහන් කළා වගේම මතකයන් අවශ්‍ය වෙන ඒක් තැනක් තමයි මේක. 
යම් උපදෙසක් execute වෙලා ඉවර වුනාම pc නැත්නම් program counter විසින් ම ඒකකින් වැඩි කරගන්නවා අගය.

Fetch Cycle -  මේ cycle ඒක පටන් ගන්නේ program counter ඒක ඊලගට execute කරන්න තියෙන උපදෙස නැත්නම් instruction ඒකේ address ඒක  තියාගන්නවා. PC මගින් ඉලක්ක කරපු address ඒක processor ඒක මගින් සොයාගන්නවා. අදාල address ඒකට ගිහින් අදාල උපදෙස අරන් අැවිත් ඒක ගබඩා කරනවා උපදෙස් රෙජිස්තරය නැත්නම් instruction register(IR) තුල.
IRගේ ගබඩා කලාට පස්සේ ඒ instruction ඒක තවදුරටත් ඊලගට execute කරන්න තියෙන උපදෙස වෙන්නෙ නෑ. ඒ නිසා program counterයට ඒ address ඒක තියාගෙන වැඩක් නෑ.
මේ නිසා program counter තමන්ගේ අගය ඒකකයකින් වැඩිකරගෙන ඊලග අගය තියාගන්නවා අළුත් instruction address ඒක. ඊලගට processorය අදාල උපදෙස අරගෙන අදාල action ඒක ක්‍රියාවට නංවනවා.

Execute Cycle - CPU විසින් අදාල උපදෙස් විකේතනය කරලා අදාල ක්‍රියාවලි සිද්ධ කරනවා.
මේ ක්‍රියාවලි ප්‍රධාන පියවර 4ක් වෙනවා.

  • ප්‍රොසෙසරය හා මතකය අතර - දත්ත ප්‍රධාන මතකය වෙත හෝ ප්‍රධාන මතකයෙන් CPU වෙත හුවමාරු වෙන්න පුලුවන්.
  • ප්‍රොසෙසරය හා අාදාන ප්‍රතිදාන උපාංග අතර - පිටින් සවි කරලා තියෙන උපකරණයක හා CPU අතර දත්ත හුවමාරු කිරීමක් වෙන්න පුලුවන්.  
  • දත්ත සැකසීම - processorයට පුලුවන් Arithmetic and Logic Unit මගින් සිදුකරන ගණිත කර්ම වලින් දත්ත පද්ධතියට අවශ්‍ය විදියට නිර්මාණය කරගන්න.
  • පද්ධතිය පාලනය කිරීම - සමහර වෙලාවට execute වෙන උපදෙස් වලින් කියවෙන්නෙ execute කරන instructions ගැන වැදගත් කාරණාවක් වෙන්න පුලුවන්! අන්න ඒ කාරණාවට පුලුවන් වේවි execute වෙන පිළිවෙළ වෙනස් කරන්න.සමහරවිට ඊලග instruction ඒක නැතුව තව 5ක් ඉස්සරහින් තියෙන instruction ඒකක් execute කරන්න කියන්න. නැත්නම් මීට instructions 5කට කලින් තිබ්බ instruction ඒකක් අායෙත් execute කරන්න වගේ instructions වුනත් ලැබෙන්න පුලුවන්.
Instruction - අැත්තටම instruction කියන්නෙ මොකක්ද?  Instruction තමයි program ඒකක කෙරෙන වැඩ පිලිවෙල තේරුම් කරලා දෙන්නේ...
Instruction ඒකක් ප්‍රධාන කොටස් 2යි. Op Code හා Address ඒක.
සාමාන්‍ය 16 bits දිග instruction word ඒකක, 4 bits යනවා opcodeට, 12 bits යනවා address කියන කොටසට.
සාමාන්‍ය 16 bits දිග integer format word ඒකක 1 bit අයින් කරන්නෙ sign bit ඒක විදියට. ඒ කියන්නෙ +ද නැත්නම් - ද  කියන දේ නිවැරදිව සොයාගන්න. ඉතිරි 15 bits වලින් තමයි ඉලක්කම හාෙයාගන්නේ.

දැන් යාලුවන්ට පොඩි හරි අදහසක් අැතිනේ මෙතන මොකක්ද වෙන්නේ කියලා...
අපි ඊලග දවසේ කථා කරමු පොඩි උදාහරණයකුත් අරගෙනම...
කට්ටියටම සුබ නත්තලක් වේවා...


Tuesday, December 13, 2016

මූලික කරුණු ටිකක් ඉගෙන ගමුද? - 1 පාඩම

අපි හුගක් වෙලාවට IT පැත්තෙන් ඉගෙන ගන්නවානම් යම් විශේෂ පැත්තක් ගැන අවධානය යොමු කරනවා. නමුත් පරිගණකයක් කියන්නෙ මොකක්ද? ඒකෙ තියෙන සේරම කොටස් ගැන ඔබ කොච්චරක් දුරට දන්නවාද?
අපි හිතුවා අපි දන්න දන්න මාතෘකා ගැන පුලුවන් විදියට තේරුම් කරලා දෙන්න.
පරිගණක වැඩසටහනක් නැත්නම් Software කියන්නෙ මොකක්ද?
මේවා වෙන වෙනම වර්ග කරන්න පුලුවන්ද?
පරිගණකයක් කියන්නෙ මොකක්ද?
අැත්තටම පරිගණකයකට විදුලිය ලැබුන පමණින් මේ තරම් වැඩ ගොඩක් කරන්නෙ කොහොමද?
අද කාලේ වෙනකොට අැතිවෙන සාමාන්‍ය ප්‍රශ්න තමයි මේවා...
පරිගණකයක් හැදිලා තියෙන්නේ පරිපථ ගණනාවක සංකලනයක් විදිහට.මේවාට උපදෙස් ලබා දෙන්න තමයි වැඩසටහන් ලිවීම නැත්නම් programming හදුන්වලා දීලා තියෙන්නේ.

  • මතකය - Memory
 ඔයාලා වොන් නියොමාන් අාකෘතිය ගැන අහලා තියෙනවානම් දන්නවා අැති ඔහුගේ මූලික අදහස් කිහිපය ගැන...
ඒ අතරින් ප්‍රධාන කරුණක් තමයි පරිගණකයකට ලැබෙන දත්ත හා උපදෙස් ගබඩා කරලා තියාගන්න උපාංගයක් තියෙන්න ඔින කියන දේ. අන්න ඒකයි අපට මතකය වැදගත් වෙන්නේ.
පරිගණකයක මතක මොඩියුලය හැදිලා තියෙන්නේ ස්ථාන කිහිපයක ඒකතුවකින්. තවත් පැහැදිලිව කියනවානම් set of locations  වලින් තමයි මේක නිර්මාණය වෙන්නෙ!
මේ location වලින් අදාල වන දත්ත ද්විතියික අංකයක් විදියට තියාගන්නවා. නැත්නම් binary number විදිහට.
මතකය ප්‍රධාන කොටස් 2යි. ප්‍රධාන මතකය හා ද්විතියික මතකය. Main Memory හා Secondary Memory.
 ප්‍රධාන මතකය, දත්ත තියාගන්නෙ තාවකාලිකව. බැරි වෙලාවත් මේ වෙලාවෙ විදුලිය නැතිව ගිහින් පරිගණකය ක්‍රියා විරහිත වුනොත් දත්ත සේරම මැකිලා යනවා. මේ මැකෙන දත්ත අායෙ හොයාගන්න බෑ.
උදාහරණයක් කියනවානම් අපි save කරන්නෙ නැතුව වැඩකරන Word Document ඒකක් ගැන හිතන්න.
අපි ඒකේ පිටු 100ක් type කරලා තිබ්බත් වැඩක් නෑ පරිගණකය off වුනොත් අපේ ලියවිල්ලේ මුකුත්ම අායෙ හොයාගන්නවත් නෑ. අන්න ඒ වගේ තමයි main memoryය වැඩ කරන්නේ.
Secondary Memory ඒක main ඒක තරම්ම දුර්වල නෑ. මෙයා තමයි දත්ත හා තොරතුරු ස්ථිරවම තියාගන්න කෙනා. Hard Disk, CD rom තමයි මේකට උදාහරණ වෙන්නේ.
පරිගණකයක තියෙන මතක පද්ධතිය යම් වර්ගීකරණයන්ට ලක් කරන්න පුලුවන්.

  • ස්ථානය අනුව - ප්‍රධාන කොටස් 2යි.

    1. අැතුලත මතකය
    2. පිටත මතකය
  1.  අැතුලත මතකය - ප්‍රධාන මතකය ගැන තමයි මේ කියන්නේ! තව Central Processing Unit ඒක ගාව තියෙන Registers, Cache memory ඒකත් මේවට තමයි අයිති වෙන්නේ. 
  2. පිටත මතකය - මේකෙන් කියන්නෙ Input/Output devices වලින් සම්බන්ධ වෙන memory parts ගැන.උදාහරණ වෙන්නේ Hard disks, Floppy disks, Tapes වගේ දේවල්.
  • Access කරන ක්‍රමය අනුව කොටස් 4කට බෙදන්න පුලුවන්.
  1. Sequential Access
  2. Direct Access
  3. Random Access
  4. Associative Access
  1. Sequential Access - මේ වචනය කියවද්දීම ඔයාලට තේරෙන්න අැති මොකක් ගැනද මේ කියලා තියෙන්නේ කියලා. මේ Access Method ඒකේදි අපි දත්ත හදුන්වනවා records කියලා. Acess වෙන්නේ රේඛීය පිලිවෙලකට. ඒකයි Sequential කියන්නේ. අාරම්භයෙන් පටන් ගන්න ඔින අවසානය වෙනකන්ම පිලිවෙලට කියවගෙන යන්න ඔින. Access කරන කාලය විචල්‍යයක්. ඒ කියන්නේ වෙනස් වෙන්න පුලුවන්. හොදම උදාහරණය තමයි Tape. අතීතයේ නැත්නම් මේ අපිත් දන්න කාලේ සින්දු, කවි වගේ දේවල් වලට පාවිච්චි වුන කැසට් පීස් ගැන තමයි මේ කියන්නෙ. අනික මේ වර්ගයේදී අපි යම් තැනක් හොයනවානම් හිතන්නකෝ සින්දුවක පදයක් කියලා, මුල ඉදන්ම හෙමින් හෙමින් බලන්න වෙනවාමයි
  2. Direct Access -  මේකෙදි වෙන්නේ සෘජුවම Acess කරනවා මතකය. මේක හුගක් වෙලාවට දෘඩ මතකයට පාවිච්චි කරනවා. දෘඩ මතකය නැත්නම් අපි කියන Hard Disks, දත්ත තියාගන්න sectors භාවිතා කරනවා. Sectors දෙකක් තමන්ගෙ පරතරය තියාගන්න  Inter sector gap තියාගන්නවා. අදාල වෙන ප්‍රදේශයට ළගා වෙන්න Direct Access Method පාවිච්චි කරලා ඒ ප්‍රදේශය ලැබුනාට පස්සේ Sequental Access Method පාවිච්චියෙන් අදාල ප්‍රදේශය තුල සොයාගන්නවා ඔින කරන දත්තය.
  3. Random Access - නමේ විදිහටම මේක random. තවත් විදියකට කියනවා නම් අහඹු ලෙස තමයි මෙයා access කරන්නේ! , මේ නම කියද්දිම ඔයාට පරිගණකයේ වැදගත්ම කොටසක් මතක් වෙන්න ඔින , ඒ තමයි Random Access Memory. නැත්නම් අපි ප්‍රධාන මතකය කියනවා මෙයාට. මේක මතකය ගබඩා වෙන තැන අල්ල ගන්නේ අහඹු ලෙස. Access කරන්නේ directly. 
  4. Associative Access - මේ ක්‍රමයේදි දත්ත access කරනවා වගේ පෙනුනට අැත්තටම දත්ත වලින් කුඩා කොටසක් තමයි access වෙන්නේ.මේ ක්‍රමයේ හොදම උදාහරණය තමයි cache memory. කෑෂ් මතකය ගැන කිව්වොත් අපේ අනික් මතකයන්ට වඩා අපිට පාවිච්චි වෙද්දි දැනෙන මතකයක්. Browserයක සාමාන්‍යයෙන් අපි cache cookies clear කරනවා. මේවා clear කරන්න හේතුව වෙන්නේ cache මතකය අපි කලින් බ්‍රවුසරය භාවිතා කරලා ගිය වෙබ් අඩවි සම්බන්ධ තොරතුරු තියාගන්නවා. තොරතුරු කිවුවට තොරතුරු වල පොඩි ලින්කුවක් වගේ. අදාල ලින්කුවෙන් අපිටම හෝ වෙන කෙනෙක්ට අදාල වෙබ් අඩවියට ලගා වෙන්න පුලුවන්.
අනෙක් ප්‍රධාන කාරණාව තමයි මතක ධූරාවලිය නැත්නම් Memory Hierarchy කියන්නේ.

රූපයෙන් පෙන්වනවා වගේම උඩින්ම තියෙන්නෙ ධාරිතාවයෙන් අඩුම, හැකියාවෙන් උපරිම, මිළ ගණන් වලින් උපරිම, වැයකරන කාලය අඩුම මතක උපාංග. පහළට යන්න යන්න ඒවාගේ අගයන් වැඩි ඒවා අඩු වෙනවා. අඩු දේවල් වැඩි වෙනවා.
රෙජිස්ටර් මතකය
1 මට්ටම් කෑෂ් මතකය
2 මට්ටම් කෑෂ් මතකය
ප්‍රධාන මතකය
දෘඩ මතකය

මෙන්න මේ විදිහටයි ඒ ධුරාවලිය පැවතුනේ...
අද අපි කථා කළේ මතක මොඩියුලය ගැන, ඊලග පාඩමෙන් තවත් මොඩියුලයක් ගැන අපි කථා කරමු.


Tuesday, September 13, 2016

පැස්කල් ඉගෙන ගනිමු - 2 පාඩම

පසුගිය සටහන ගැන කථා කරනවානම් ඒ ගැන පලවුන අදහසක් තමයි පයිතන්, ජාවා වගේ භාෂා පාවිච්චි වෙන තැන් දැනගෙන උන්නත් පැස්කල් පාවිච්චි වෙන්නෙ මොනවගේ වෙලාවටද කියන කාරණාව. මේක පාවිච්චි වෙන තැන් කථා කරනවානම් ප්‍රධාන තැන් කිහිපයක්ම දකින්න පුලුවන්.
  1. Skype
  2. Total Commander - Shareware file manager for Windows for 95/98/ME/NT/2000/XP/Vista/7/8/8.1/10 
  3. TeX - Typesetting System
  4. Embedded Systems
Pascal මුලින්ම හදුන්වා දෙන්නෙ 1970දි  Niklaus Wirth විසින්. පරිගණක සංවර්ධනයට බ්ලේස් පැස්කල්ට කරන ගෞරවයක් විදියට තමයි මේ භාෂාව ඒ විදියට නම් කෙරුවේ...
 පැස්කල් වැඩසටහන් වැඩ කරන්නනම් compilers දාන්න ඔින අනික් languages වගේම තමයි.
මේ  compilersඅතර ප්‍රධානම කිහිපයක් ගැන විස්තර කියන්නම් මම...
  1. Turbo Pascal
  2. Delphi
  3. Free Pascal
  4. Turbo51
  5. Oxygene
  6. GNU Pascal (GPC)
Turbo Pascal මෙතනින් download කරගන්න.
Delphi මෙතනින් download කරගන්න.
Free Pascal මෙතනින් download කරගන්න.

මේ ප්‍රධාන කාරණා වලින් පස්සෙ අපි කථා කරමු අලුත් version ඒකේදී කොහොමද pascal වැඩසටහන් ලියන්නෙ කොහොමද කියලා...

program HelloWorld
uses crt;

(*Here are he main program block starts*)
begin
       writeln("Hello,World");
       readkey;
end.

වර්තමානයේදී පැස්කල් වැඩසටහනක් ලියන්නෙ මේ විදිහට
  • program HelloWorld - වැඩසටහන පටන්ගන්නේ මේ විදිහට වැඩසටහනේ නමත් ඒක්කම
  • uses crt -  මේක preprocessor command ඒකක්. මේකෙන් compile කරන්න කලින් compiler ඒක crt unit ඒකට යනවා.
  • begin , end - ප්‍රධාන program ඒකේ අාරම්භය begin, අවසානය end කියන statement දෙකෙන් කරන්නෙ.ප්‍රධානම කාරණාව තමයි end statement ඒක ඉවර වෙන තැනදි Semicolon ඒක වෙනුවට (.) fullstop ඒකක් පාවිච්චි වෙනවා.
  • (*...*) මේ කොටසින් කියවෙන්නෙ comment ඒකක් ගැන.
  • writeln("Hello, World") - writeln() කියන්නෙ function ඒකක්... මේකෙන් Hello, World කියන ඒක print කරනවා... 
  •  readkey - මේ statement ඒකෙන් program ඒක pause කරන් ඉන්නවා key ඒකක් press වෙනකන්.
  • අන්තිමට දක්වන්නේ end. statement ඒක 
 pascal වල reserved words ගණනාවක් තියෙනවා.

and array begin case const
div do downto else end
file for function goto if
in lable mod nil not
of or packed procedure program
record repeat set then to
type until Var while with

අැත්තටම මට ඔින වුනේ පැස්කල් ඉගෙන ගන්න අාස අයට පොඩි තල්ලුවක් දෙන්න. තව අලුත් අදහස් තියෙනවානම් අපිට කියන්න. අපි කථා කරමු යාලුවනේ... ඊලගට කථා කරන්න ඉන්නෙ පයිතන්... යාලුවන්ගේ අදහසුත් කියන්න ඒ ගැන.


Saturday, September 10, 2016

පැස්කල් ඉගෙන ගනිමු - 1 පාඩම

සෑහෙන කාලෙකට පස්සෙ අද අායිමත් පාඩමක් දාන්න හිතුනා. අපේ යාලුවො කිහිප දෙනෙක්ම කියලා තිබ්බා පැස්කල් හා පයිතන් ගැන කථා කරන්න කියලා...
ඉතින් අද අපි කථා කරන්න හිතුවෙ පැස්කල් ගැන. මේ ගැන මටත් ලොකු දැනුමක් නැති වුනත් අපි කථා කරන් යමු ඉස්සරහට...

මුලින්ම අපි බලමු සරලම pascal program ඒකක් මොන වගේද කියලා...

PROGRAM Simple (output);
BEGIN
         write('මගේ පලවෙනි පැස්කල් වැඩසටහන');
END.

මේ තියෙන්නෙ බොහොම සරළ program ඒකක්. අපිට දකින්න පුලුවන් ප්‍රධාන වචන 3ක් මේකෙදි. PROGRAM, BEGIN, END ... මේ වචන 3ම අනිවාර්යයෙන්ම පැස්කල් program ඒකක තියෙන්නම ඔින කරන වචන 3ක්. සෑම පැස්කල් program ඒකකම PROGRAM කියන වචනෙන් පටන් අරන් END කියන වචනෙන් ඉවර වෙනවා. ඔබට පුලුවන් ඔබ කැමති නමකින් program ඒකක් නම් කරන්න. මේ program ඒකේ දක්වලා තියෙන්නෙ Simple කියන නම. output කියන කොටසින් දක්වලා තියෙන්නෙ මේ program ඒකෙන් දත්ත ඒලියට යනවා කියන කරුණට. අන්තිම පේළි 3ට කියන්නෙ PROGRAM BODY කියලා.

අපිට ගැලපෙන විදියෙ වචන වලට අපි කියනවා Reserved Words කියලා. නමුත් මේ වචන වලට අපි කැමති කැමති වචන පාවිච්චි කරන්න බෑ. පාවිච්චි වෙන වචන අකුරකින්ම පටන් ගන්න ඔින. පාවිච්චි කරන්න පුලුවන් ඒක වචනයක් විතරයි. ! වගේ විශේෂ symbols පාවිච්චි කරන්න බෑ...

ඊලග වැදගත්ම කාරණාව variables.  variables declare වෙන්න ඔින program ඒකේ පටන් ගන්න තැනදීමයි. ඒකට භාවිතා වෙන්නෙ VAR කියන වචනෙ.

VAR
       Start, step, count, finish            :Integer;
       Radius, circumference, area     :Real;
       Error, Exit      : Boolean;

ඔයාලට දකින්න පුලුවන් statement ඒකක් අන්තිමට semicolon පාවිච්චි වෙනවා අනිත් languages වල වගේම. නමුත් මේ language ඒකේ දි පාවිච්චි වෙන සමහර Reserved Words වන BEGIN END වලට semicolon පාවිච්චි වෙන්නෙ නෑ.

මේ language ඒකේදී comment දාන්න curly brackets පාවිච්චි වෙනවා.  curly brackets අැතුලෙ දාන ඔිනම ඒකක් comment ඒකක් විදියට තමයි සලකන්නේ...

ඊලගට අපි කථා කරන්නෙ Assignment Operation ඒක ගැන. ඒකත් තරමක් දුරට වෙනස් වෙනවා. නිකන්ම "=" ලකුණ නෙවෙයි මේකෙදි භාවිතා වෙන්නෙ. පාවිච්චි වෙන්නෙ ":=" ලකුණ. වැඩිපුර colon ඒකකුත් ඒනවා. අපි සැලකුවොත් Integer type ඒකට අයිති variable ඒකක් ගත්තොත් Start වගේ, අපි ඒකට 1 කියන අගය යොදනවනම් අපිට ලියන්න පුලුවන් start := 1 ; විදියට.

PROGRAM Sum (input, output) ;
VAR
      x,y,Sum :Real;
BEGIN
      Write (' Enter the first number:  ');
      Read(x); Writeln;
      Write('  Enter the Second Number:  ');
      Read(y); Writeln;
      Sum := x+ y;
     Writeln('  Sum of x and y =  ',sum:8:3);
      END

 මේ program ඒකෙන් කරන්නෙ සංඛ්‍යා 2ක් ඒකතු කරන ඒක.
අපි පලවෙනි පෝලිමේ ඉදන්ම කථා කලොත් PROGRAM කියන්නෙ reserved word නැත්නම් keyword ඒකක්. Sum කියන්නෙ program ඒකේ නම. වරහන් අැතුලේ තියෙන input output කියන වචන දෙකෙන් කියන්නෙ අපි මේකෙ වැඩ කරන්න දත්ත අැතුල් කරන්න ඔින කියන ඒක හා මේකෙන් අපිට දත්තයක් පිලිතුරක් විදියට ඒලියට ගන්න පුලුවන් කියන දේ.
VAR කියන්නෙ අපි කලින් කීවා වගේම variables වලට පාවිච්චි වෙන වචනයක්.
ඊලගට තියෙන්නෙ program body ඒක.
BEGIN END කියන කොටස අැතුලෙ තියෙන්නෙ ඒක. Write කියන කොටසෙන් අපිට පෙන්වන්නෙ output ඒකක්. Read කියන වචනෙන් අපිට පෙන්වන්නෙ අපි ලබා දෙන්න ඔින input ඒකක් ගැන.
අන්තිම පෝලිමට කලින් පෝලිමේ තියෙන Writeln('  Sum of x and y =  ',sum:8:3); පෝලිම තමයි මේකෙ වැදගත්ම පෝලිම.

Writeln වලින් කියන්නෙ output ඒකක් ගැන කියලානම් හැමෝටම තේරෙනවා අැති. ඒත් sum:8:3 කියන කොටස ගැන කථා කරනවානම් මේකෙ පලවෙනි වචනයෙන් ලැබෙන්න ඔින sum කියන variable ඒකේ අගය,  ඊලග ඉලක්කම වුන 8 න් කියවෙන්නෙ character positions කීයක් උත්තරයේ තියෙන්න ඔිනද කියන කාරණාව, අන්තිම ඉලක්කම වුන 3න් කියවෙන්නේ දශම ඉලක්කම් කීයක් යොදන්න ඔිනද කියන ඒකයි.

යාලුවන්ගෙ අදහස් මට බොහොම වටිනවා. තවත් කරුණූ ඒකතු කරන්න මට මාර වටිනවා ඔබතුමන්ලාගෙ අදහස් හා යෝජනා සියල්ලම.

ඊලගට මේ ලිපියේ දෙවෙනි කොටසත් අරගෙන නැවතත් ඒන්නම්....
  

Sunday, July 31, 2016

Networking ඉගෙන ගනිමු - 2 පාඩම

ඔන්න අපි Networking දෙවෙනි පාඩමත් අරගෙන අායෙත් අාවා.අද අපි කථා කරන්න හිතුවෙ Networking නිර්මාණය වෙන්න වුවමනා කරන දේවල් ගැන කථා කරන්න.
පරිගණක , Servers, Workstations, NICs, Repeaters, Hubs, bridges, switches, Modems, Routers වගේ දේවල් මේ ගොඩට අයිති වෙනවා...

Network ඒකක් කියන්නෙ පරිගණක 2ක් හෝ ඊට වඩා ගණනක් ඒකිනෙකට සම්බන්ධ වීමක්.

Server :- සාමාන්‍යයෙන් server ඒකක් කියන්නෙ පරිගණයක්ම තමයි.විවිධ වර්ග වල ජාල ක්‍රියාකාරකම් වලට අදාල වෙන මෘදුකාංග ක්‍රියාත්මක  වෙනවා මේකෙ. අදාල network ඒකේ පවතින අනෙක් පරිගණක වලට අදාල සේවා සපයනවා මේ ගොල්ලො. server ඒකක් පාරිභෝගිකයෝ රාශියක් වෙනුවෙන් සේවා සපයනවා වගේම ඔවුන්ට අවශ්‍ය සම්පත් ලබාදෙනවා...
සාමාන්‍යයෙන් යම් විශේෂ කාර්යයක් වෙනුවෙන් තමයි මේවා නිර්මාණය වෙන්නෙ.
  1. File Server :- network ඒකේ තියෙන විවිධ මෘදුකාංග හා දත්ත ගොනුවල ගබඩාවක් 
  2. Mail Server :- email function ඒකෙන් වැඩ කරගන්න පාවිච්චි වෙන තැපැල් කන්තෝරුවක් කියන්න පුලුවන්.
  3. Printer Server :- network ඒකට අදාල ප්‍රින්ටර් උපකරණ සමග ගනුදෙනු කරනවා.
  4. Web Server :-  Hypertext Transfer Protocol නැත්නම් HTTP ඒක run කරන ගමන් වෙබ් සම්බන්ධ ක්‍රියාකාරකම් කළමණාකරණය කර ගන්නවා.
 Workstations :- තනි PC ඒකකට වඩා වේගවත් වගේම දරාගැනීමේ හැකියාව වැඩියි. තනිවම වැඩ කරන පරිසරයක වගේම පරිගණක ජාලයක කොටසක් වශයෙනුත් පවතින්න පුලුවන්. අවශ්‍ය වෙන ඔිනෑම වෙලාවක පරිගණක ජාලයේ පරිගණක වලට සම්පත් සපයන්න පුලුවන්.

Network  Interface Cards :- සාමාන්‍යයයෙන් පරිගණකයක් network ඒකකට connect වෙන්නනම් පරිගණකයට අනිවාර්යයෙන්ම NIC ඒකක් සවි කරලා තියෙන්න ඔින. Network card නැත්නම් Network Adapter ඒකක් කියන්නෙත් මේකටම තමයි ඉතින්. වර්තමානය වෙනකොට බාහිරින් වගේම රැහැන් රහිත NIC පවා දැක ගන්න පුුලුවන්.

Repeaters :- සාමාන්‍යයෙන් සංඥා නැත්නම් Signal  සාමාන්‍ය රැහැනකින් හරි වාතය නැත්නම් අවකාශය හරහා ගමන් කරද්දී ක්‍රම ක්‍රමයෙන් දුර්වල වෙනවා. Repeater ඒකකින් දුර්වල සංඥා  වර්ධනය කරනවා ඉහල කොටසකට යන්න කලින්. Repeater ඒකක් පාවිච්චි කරලා network ඒක  විශාල ප්‍රදේශයක හරි ප්‍රමාණයෙන් වැඩි දිගකට අැදගන්න පුලුවන්. මේ නිසාම Repeater ඒකකට Extender කියන නමත් පාවිච්චි වෙනවා. රැහැන් සහිත Repeater ඒකකට රැහැන් රාශියක් සම්බන්ධ කරන්න පුලුවන් වගේම රැහැන් රහිත ඒකකට ජාල පරාසය නැත්නම් Network Range ඒක වැඩි කරන්න පුලුවන්.

Hubs :- හබ් පාවිච්චි වෙන්නෙ ඒක් ඒක් උපකරණ සම්බන්ධ කරන්න.ඒක් ඒක් උපකරණ කියන්නෙ workstations, servers, printers වගේ ඔිනෑම දෙයක්. මේක ports කියන කුඩා කුහර වලින්  තමයි මේකට උපකරණ සම්බන්ධ වෙන්නෙ. Ports 4,8,12 වශයෙන් පවතිනවා.

Bridges :- පාලමකින් කරන්නෙ ගොඩබිම් 2ක් යා කරන ඒකනෙ. මේ bridges වලිනුත් කරන්නෙ වෙන්ව පවතින network 2ක් සම්බන්ධ කිරීමක් හරි තනි network ඒකක් ජාල 2කට වෙන් කිරීමක් හරි. 2 layer switch නැතිනම් ලේයර් 2ක switch උපකරණයක් විදියටත් මේක හදුන්වන්න පුලුවන්. Bridge ඒකකට හුගක්  දුරට hubs තමයි සම්බන්ධ වෙන්නෙ.

Switches :- switch ඒකක් කියන්නෙ හුගක් වෙලාවට තනි ජාලයකට පරිගණක කිහිපයක් සම්බන්ධ කරන්න ගන්න උපකරණයක්. සාමාන්‍යයෙන් අපි කියනවා හබ් ඒකකට වඩා ස්විච් ඒකක් බුද්ධිමත් කියලා. අපේ පරිගණක ජාලයේ තියෙන පරිගණකයකට තවත් ඒකක් හා සම්බන්ධ වෙන්න ඔිනනම් හබ් ඒක නැත්නම් මේ ස්විච් ඒක මැද්දෙන් යන්න ඔින.

අපි හිතමු 1 පරිගණකය 9 පරිගණකයට සම්බන්ධ වෙන්න ඔින කියලා, ඉතින් මේ 1 PC ඒක ඒ පනිවිඩය හබ් ඒකට හරි ස්විච් ඒකට හරි දෙනවා. හබ් ඒක මේ පනිවිඩය අරගෙන හැමෝම ලගට යනවා. ඒයාගෙන් 9කියලා තහවුරු වුනොත් තමයි ඒයාට පනිවිඩේ බාර දෙන්නෙ. ඒ්ත් ස්විච් ඒකක් ඒ පනිවිඩය අරගෙන කෙලින්ම හරි කෙනා ගාවට යනවා. ඒ නිසයි ඒයා බුද්ධිමත් බවින් වැඩියි කියන්නෙ...
ඒ වගේම switch ඒකත් හුගක් වෙලාවට bridge ඒකක් වගේම තමයි, ඒත් bridge ඒකකට වඩා වේගය හා හැකියාව කාර්යක්ෂමතාව sweitch ඒකේ වැඩියි. ස්විච් ඒකක් multiple bridge ඒකක් විදියට පැහැදිලි කරන්න පුලුවන්.

Modem(Modulator, Demodulator) :- දුරකථන රැහැන් හරහා පරිගණකයේ ඩිජිටල් සංඥා, අැනලොග් සංඥා බවට හරවන්නෙ මෙයා. ඒ වගේම ඒ ක්‍රියාවලියෙ අනිත් පැත්ත කරන්නත් මේකට පුලුවන්. පරිගණක modem භාවිතයෙන් තවත් පරිගණකයක් ඒක්ක දුරකථන රැහැන් හරහා සම්බන්ධ වෙන්න පුලුවන්.

Routers :- නෙට්වර්ක් 2ක් හෝ ඊට වැඩි ගණනක් ඒකිනෙකට රැහැන් සහිත හෝ රහිතව සෙට් කරලා ඒවා අතර තියෙන දත්ත හුවමාරු කර ගන්නවා. ඒ දත්ත වල හුගක් වෙලාවට අන්තර්ගත වෙනවා address information, මේවා භාවිතයෙන් router ඒකට පුලුවන් මේ දත්ත යන්නෙ network දෙකකටද නැත්නම් තනි ඒකේම දෙපැත්තකටද කියලා.

මේ පාර ලිපිය මෙතනින් ඉවරයි, හිතනවා මේ ලිපියත් ඔයාලට වැදගත් වේවි කියලා, ඊලග ලිපියෙන් අපි කථා කරමු network ඒකක් කොටස් වලට බෙදන්න පුලුවන් ක්‍රම ගැන...

Tuesday, July 19, 2016

Networking ඉගෙන ගනිමු - 1 පාඩම

පහුගිය කාලෙ අපි කථා කරපු පාඩම් මාලාවලින් පස්සෙ අද අපි අලුතින්ම කථා කරන්න පටන් ගත්තෙ Networking ගැන. ගොඩක් ගැඹුරට යන පාඩම් මාලාවක් පුලුවන් තරම් සරලව ඉදිරිපත් කරන්න අපි බලාපොරොත්තු වෙනවා.

අපි මුලින්ම කථා කරමු Networking වල ඉතිහාසය ගැන. Networking  කියන්නෙ මොකක්ද, ඒකෙ අැතිවීමට බලපාපු දේවල් මොනවාද කියන දේ...

අපි මුලින්ම කථා කළොත් 1950 යුගයේ පරිගණක ගැන.ඒ කාලෙ තමයි පරිගණක වල මුල්ම යුගය. මේ කාලේ පරිගණක කාමරයකට වඩා විශාලයි.ඒ වගේම අධික මිලකට තමයි මේවා පැවතුනෙත්. බොහොම වැදගත් අායතනයක වුනත් වැඩිම වුනොත් පරිගණක 2ක් හෝ 3ක් තියෙන්න අැති. ඒ වගේම අපි අාදානයන් සමූහයක් (Batch) ලබා දීලා ප්‍රතිදානයක් ගන්න අායෙත් වෙන වෙලාවක් වෙනකන් බලන් ඉන්න වෙනවා. මේවට තමයි අපි කියන්නෙ Batch Processing Systems කියලා. මේ systems පදනම් වෙලා තියෙන්නෙ Mainframe ඒකකයක් මත. User අාදාන විදිහට භාවිතා කරන්නෙ punch cards. user punch cards වල දත්ත හා code ඒක අාදානය කරලා operator දත්ත පරිගණකයට අැතුල් කරනවා. userට result ලැබෙන්නෙ ටික වෙලාවක් ගියාට පස්සෙ. මේ Batch Processing System ඒකක අඩුපාඩු ගොඩක් තිබුනා. ලොකුම අඩුපාඩුව තමයි ගොඩක් වෙලාව නාස්ති වුන ඒක. ඒ වගේම පාරිභෝගිකයන්ට තමන්ගෙ කැමැත්ත අනුව වැඩ කරගන්න බැරි වුන නිසා මේක ඒපා වෙන්න පටන් ගත්තා. ඒ වගේම userට බැරි වුනා වෙන process ඒක හදිස්සියකදි වෙනස් කරගන්නවත්...

මේ ප්‍රශ්නත් ඒක්කම 1960 යුගය වෙනකොට පරණ තිබුණු ප්‍රශ්න වලට පිලිතුරු විදියට Multi Terminal Systems කරලියට අාවා. මේකෙන් usersලා කිහිප දෙනෙක්ට ඒකම වෙලාවෙ වැඩ කරන්න පුලුවන්. ඒ වගේම මේ computer ඒක කලින් ඒක වගේ නෙමෙයි අාපහු ප්‍රතිචාර දක්වන speed ඒකත් වැඩියි . ඒ නිසා වැඩ කරන අයට දැනෙන්නෙ නෑ මේකෙ usersලා ගොඩක් වැඩ කරනවා කියලා. terminal ගොඩක් තියෙනවා දත්ත අාදානය කරන්න. network ඒකක් වගේම තමයි හුගක් වෙලාවට.

Networking වල අාරම්භය විදියට අපි සලකන්නෙ මේ Multi terminal systems.

  • SAGE - Semi Automatic Ground Environment.
මේක Air Defense System ඒකක්. සෝවියට් රාජ්යය ඒල්ල කරපු න්‍යෂ්ටික බෝම්බ වලින් බේරෙන්න 1958දි North American Aerospace Defense Command කණ්ඩායමේ හැදුවේ අැමරිකන් ගුවන් හමුදාව වෙනුවෙන්... ප්‍රධාන මධ්‍යස්ථාන 3ක් පදනම් කරගෙන දිශා මධ්‍යස්ථාන 24ක් හා දුර ගමන් රේඩාර් මධ්‍යස්ථාන 100 කටත් වැඩියෙන් මත මේක ගොඩනැගුනේ.
සම්පූර්ණයෙන්ම සන්නද්ධ ගත වුනේ 1963දී. දත්ත හුවමාරුවට දුරකථන මාර්ග හා රේඩියෝ සංඥා පාවිච්චි වුනේ...
පසුකාලීනව සෝවියට් රුසියාව intercontinental ballistic missiles නිකුත් කරන්න පටන් ගත්තා. මේ මිසයිල වලින් SAGEට ගැලවීමක් තිබුනෙ නෑ. මේ මිසයිල ප්‍රහාරයකින් ප්‍රධාන මධ්‍යස්ථානයක් බිද වැටුනට පස්සෙ අනෙකුත් සියලුම ජාල බිද වැටුනා. මේකට විසදුමක් විදියට ගෙනාවෙ බලය විහිදුවන ලද පද්ධතියක්.

  • ARPANET - Advanced Research Projects Agency Network
1969දි මේක නිර්මාණය වුනේ.SAGE වලදි භාවිතා කරලා තිබ්බෙ ඒකම විදිහෙ යන්ත්‍ර, නමුත් මේකෙදි විවිධ වර්ග වල පරිඝණක ඔවුන් යොදාගත්තා. මේවා ඒකිනෙකට සම්බන්ධ කළේ IMP- Interface Message Processor මගින්. මේකෙ ප්‍රාථමික අරමුණ වුනේ අාරක්ෂක මර්මස්ථාන, විශ්ව විද්‍යාල  ඒකිනෙකට සම්බන්ධ කරන්න. අවසානයේදී මුලු අැමරිකාව පුරාම මේ ජාලය පැතිරුණා. අන්තර්ජාලයේ මූලික පියවරක් විදියට මේක දක්වන්න පුලුවන්.
ARPANET නිසා ලෝකයට ලැබුනු දායාදයන් කිහිපයක්ම පැහැදිලිවම දක්වන්න පුලුවන්.

  1. Email - 1971 
  2. Telnet - 1972
  3. FTP - 1973 - File Transfer Protocol
  • NSFNET - National Science Foundation Network
NFS අායතනය ඔවුන්ගේ තියෙන සුපිරි පරිගණක 6 ඒකිනෙකට සම්බන්ධ කරන්න පුලුවන් විදියේ  Backbone Network (ප්‍රධාන ජාලයක්) ඒකක් ගොඩනැගුවා. ඒ වගේම මේක සියලුම විශ්ව විද්‍යාල පර්යේෂණ කණ්ඩායම් වලට විවෘත ජාලයක් කලා. ඒකිනෙක අාසන්නයේ තිබ්බ ප්‍රාදේශීය ජාල 20කට අාසන්න ප්‍රමාණයක් ඒකතු කරලා දහස් ගානක් විශ්වවිද්‍යාල වලට, පර්යේෂණාගාර වලට, පුස්තකාල වලට, කෞතුකාගාර වලට ඒවා භාවිතා කරන්න පහසුකම් හදලා දුන්නා.

1990 වන විට backbone network සංකල්පය බිද වැටුනා.ඒ වෙනුවට වාණිජ තරගකාරී බවට හැරවිය හැකි පද්ධතියක් නිර්මාණය වුනා. අපි හදුන්වනවා මේක අන්තර්ජාලයේ මුලික අාරම්භක අවස්ථාවක් විදියට.

අපි ඊලග දවසේ අපි කථා කරමු Network ඒකක් කියන්නෙ මොකක්ද, හා ඒකේ භාවිතයන් ගැන.





Wednesday, June 22, 2016

Software Engineering ඉගෙන ගනිමු - 7 පාඩම

ඔන්න අද Software Engineering වල අන්තිම පාඩමත් අරගෙන අාවා. අද අපි කථා කරන්නෙ අවදානම් කලමණාකරණය ගැන. නැත්නම් Risk Management.

අවදානම් කළමණාකරණයෙදි කථා කරන්නෙ අවදානම් හදුනාගැනීම හා ඒකෙන් ව්‍යාපෘතියට වන හානිය පුලුවන් තරම් අවම කරගන්න අාකාරය ගැන.අවදානමක් කියන්නෙ සම්භාවිතාවයක්  යම් පීඩාකාරී
ප්‍රතිපලයක් අැති කරන්න පුලුවන්. 
ඒක කාල සටහනට වගේම අපට තියෙන සම්පත් වලටත් බලපාන්න පුලුවන්. ඒක අපි සංවර්ධනය කරන software ඒකේ quality නැත්නම් ප්‍රමිතිය ගැන වගේම software ඒකේ performance ඒක නැත්නම් කාර්යඵලයට බලපෑම් අැති කරන්න පුලුවන්.
හදලා ඉවර වුනාට පස්සෙ ඒක රෑක බලාගන්න කාලයේදි ව්‍යාපාරික වශයෙන් අවදානම් වලට ලක්වෙන්න පුලුවන්. 

අවදානම් කලමණාකරනය ප්‍රධාන පියවර 4ක් යටතේ වර්ග කරන්න පුලුවන්.
  1. Risk Identification - අවදානම් හදුනාගැනීම - ව්‍යාපෘතියට තියෙන සියලුම අවදානම් මාෙනාද කියලා හදුනාගන්න ඔින.
  2. Risk analysis - අවදානම් විශ්ලේෂණය - අවදානමක් වෙන්න තියෙන ඉඩ ප්‍රමාණය හා ඒකෙන් පස්සෙ වෙන්න පුලුවන් ප්‍රතිවිපාක ගැන 
  3. Risk Planning - අවදානම් ඉවත් කිරීම් සැලසුම් කිරීම - අවදානම් නිසා වෙන්න පුලුවන් හානි වලක්වගන්න හරි අවම කරගන්න හරි සැලසුම් කරනවා.
  4. Risk Monitoring - අවදානම් පාලනය කිරීම -  ව්‍යාපෘතියේ සියලුම අවදානම් පාලනය කිරීම
  • Risk Identification
අවදානම් හදුනාගැනීම ප්‍රධාන කොටස් 5කට වෙන් කරන්න පුලුවන්.
  1. Technology Risks - තාක්ෂණික අවදානම් - database ඒකක අැතිවෙන්න පුලුවන් ප්‍රශ්න ඒක උදාහරණයක්
  2. People Risks - මිනිසුන් නිසා අැතිවන අවදානම් - staff ඒකේ අැතිවන ප්‍රශ්න
  3. Organizational Risks - සංවිධානය නිසා අැතිවන අවදානම් - Organization ඒකේ පාලනය මාරු වෙලා වෙනස් මූනු තනතුරු වලට පත්වීම
  4. Requirements Risks - ව්‍යාපෘතියේ අවශ්‍යතා නිසා අැතිවන අවදානම් - පාරිභෝගිකයාට අවශ්‍යතා ගැන තේරෙන්නෙ නැති වුනාට පස්සෙ
  5. Estimation Risks - ව්‍යාපෘතිය අැස්තමේන්තු ගත කිරීමේදී වන අවදානම් - අැස්තමේන්තු ගත කරපු කාලය වගේම අැස්තමේන්තු ගත කරපු කාලය වෙනස් වීම
  • Risk Analysis 
අවදානම් වෙන වෙනම අරගෙන ඒවාගෙ සම්භාවිතාව හා බරපතලකම තේරුම් ගන්නවා. සම්භාවිතාව very low, low, moderate ,high, very high විදියටත් බරපතලකම catastrophic, serious, tolerable, insignificant විදියටත් බෙදන්න පුලුවන්.
  • Risk Planing
 අවදානම් පාලනය කරගන්න උපාය මාර්ග පාවිච්චි කරනවා.
  1. වලක්වාගන්නා උපායමාර්ග
  2. හානි අවම කරගන්නා උපායමාර්ග
  3. අවිනිශ්චිත උපායමාර්ග
  • Risk Monitoring
හදුනාගත්තු ඒක් ඒක් අවදානම් පිලිවෙලට තීරණය කරනවා වෙන්න තියෙන සම්භාවිතාවන් විශාලද කුඩාද කියන දේ. අවදානම් නිසා ඉස්සර අැතිවුනු බලපෑම්මද තවමත් අැතිවෙන්නෙ කියන දේ. මේ ඒක් ඒක් කාරණාවන් ප්‍රගති රැස්වීම් වල කථා කරන ඒකත් Risk Monitoring වලට තමයි අයිති වෙන්නෙ.

මෙන්න මේ විදියට Software Engineering පාඩම් මාලාව අපි මෙතනින් නිමා කරනවා. ලැබුනු ඉල්ලීම් කිහිපයක් අතරින් හොදම ඉල්ලීමට තැනක් දෙන්න අපි බලාපාෙරොත්තු වෙනවා. 






What is PowerShell -1

PowerShell mainly using by system administrators and system engineers to their daily work.  This task based command line mainly created by ...