Tuesday, August 7, 2012

MySQL - Basics

MySQL - Basics
දැන් MySQL හි භාවිතා වන මූලික command ගැන සලකා බලමු.
show databases ;
දැනට පවතින MySQL Databases වල list එකක් ලබා ගැනීම සඳහා භාවිතා කරයි.
create database ;
අළුතින් database එකක් නිර්මාණය කිරීම සඳහා භාවිතා කරයි.
උදා : create database myDB ;
drop database ;
දැනට පවතින database එකක් delete කිරීම සඳහා භාවිතා කරයි.
උදා : drop database myDB ;
use ;
Database එකක් open කර ගැනීමට භාවිතා කරයි.
උදා : use myDB ;
show tables ;
දැනට Open කර ඇති database එකේ ඇති tables වල list එකක් ලබා ගැනීම සඳහා භාවිතා කරයි.
desc ;
දෙන ලද table එකක meta data ලබා ගැනීම සඳහා භාවිතා කරයි.
උදා : desc myTable ;
01
NOTE :
create සහ drop commands සඳහා if exists හෝ if not exists යන යෙදුම් භාවිතා කිරීමෙන් ඒවා‍ ක්‍රියාත්මක වීමේදී ඇතිවන errors නවතාලිය හැක. එසේ MySQL Script එකක් run කරවීමේදී ඇති විය හැකි errors අවම කලයුතු අතර මන්දයත්, මෙම errors නිසා සමහර විට අපගේ ඉතිරි commands run නොවීමට ඉඩ ඇති බැවිනි.
පැහැදිලි කිරීම :
create database myDB ; ලෙස ලබා දුන් විට දැනටමත් myDB ලෙස database එකක් පවතී නම් error එකක් ලබා දේ.
එවිට create database if not exist myDB; ලෙස ලබා දුන් විට myDB ලෙස database එකක් නැතිනම් පමණක් එය නිර්මාණය කරයි.
drop database myDB ; ලෙස ලබා දුන් විට දැනට myDB ලෙස database එකක් නැතිනම් error එකක් ලබා දේ.
එවිට drop database if exist myDB; ලෙස ලබා දුන් විට myDB ලෙස database එකක් තිබේ නම් පමණක් එය ඉවත් කරයි.

Tables නිර්මාණය කිරීම

මේ සඳහා create tablecommand එක භාවිතා කරයි.මෙහි syntax එක විස්තර කරනවාට වඩා උදාහරණ මගින් පැහැදිලි කරන විට වඩා හොඳින් අවබෝධ කරගත හැකි වනු ඇත.NOTE:
MySQL Scripts run කිරීම සඳහා අප භාවිතා කරන්නේ MySQL CommandLine Client බැවින් type කරන commands edit කර ගැනීම අපහසුය. එනිසා ඒවා වෙනම text file එකක type කර පසුව MySQL CommandLine Client හි paste කරන්න.එවිට type කල command එක දෝෂ සහගත වුවත් text file එකේ ඇති copy එක වෙනස් කර නැවත භාවිතා කල හැක.
සරල Table එකක් නිර්මාණය කිරීමට ලියා ඇති සරලම ආකාරයේ MySQL script එකක් පහත දැක්වේ.
(මෙය run කිරීමට පෙර ඔබට අවශ්‍ය database එක නිර්මාණය කර use command එක මගින් එය තුලට ඇතුලත් වී තිබිය යුතුය.)
create table student(student_id varchar(10) not null,student_name varchar(50) not null,age int(2) default 5);
මෙය කියවීමට අපහසු බැවින් පහත පරිදි එය පේලි වලට වෙන් කර type කිරීම සම්ප්‍රදායිකව සිදු කරනු ලබයි.
 create table student(
  student_id varchar(10) not null,
  student_name varchar(50) not null,
  age int(2) default 5
 );
පැහැදිලි කිරීම :
  • create table student - මෙහි student යනු නිර්මාණය වීමට අවශ්‍ය table එකේ name එක වේ.
  • ; - ඕනෑම MySQL command එකක් අවසානයේ semi-colon ( ; ) එකක් යෙදිය යුතුය.
  • student_id varchar(10) not null
    student_id යනු අදාල column එකේ name එකයි.
    varchar(10) හි varchar යනු student_id සඳහා ලබාදෙන data type එකයි. වරහන් තුල ලබා දී ඇත්තේ ඒ සඳහා තිබිය හැකි උපරිම අකුරු ගණන වේ.
    not null යන්නෙන් නිරූපණය වන්නේ student_id සඳහා අනිවාර්යෙන්ම value එකක් තිබිය යුතු බවයි.
  • student_name varchar(50) not null - ඉහත අයුරින්ම වේ.
  • age int default 5
    age යනු අදාල column එකේ name එකයි.
    int යනු age සඳහා ලබාදෙන data type එකයි.
    default 5 යන්නෙන් නිරූපණය වන්නේ age සඳහා value එකක් ලබා නොදුනහොත් ඒ සඳහා MySQL විසින් ලබාදිය යුතු default value එකයි.

Columns සඳහා යෙදිය හැකි ප්‍රධාන data types

varcharVariable Charactersඅකුරු, ඉලක්කම් වැනි ගණිතමය වටිනාකමක් රහිත විවිධ දිගින් යුත් text සඳහා භාවිතා කරයි.
උපරිම අකුරු ගණන 255 කි.

උදා :
varchar(10) ලෙස ඇති නම් උපරිම වශයෙන් අකුරු 10 කින් යුත් text සඳහා භාවිතා කරයි.
charCharactersදී ඇති නිශ්චිත දිගකින් යුත් අකුරු, ඉලක්කම් වැනි ගණිතමය වටිනාකමක් රහිත text සඳහා භාවිතා කරයි.
උපරිම අකුරු ගණන 255 කි.

උදා :
nic char(10) ලෙස ඇති නම් අනිවාර්යෙන් අකුරු 10 කින් යුත් text සඳහා භාවිතා කරයි.
intIntegersනිඛිල (Integers) ගබඩා කිරීමට භාවිතා කරයි.
-2147483648 සිට 2147483647 දක්වා හෝ 0 සිට 4294967295 දක්වා UNSIGNED (ධන සංඛ්‍යා පමණක්) වශයෙන් භාවිතා කලහැක.

උදා :
int points ලෙස ඇති නම්
int age unsigned ලෙස ඇති නම් තිබිය හැක්කේ ධන සංඛ්‍යා පමණි.

int(5) වශයෙන් ලියූ විට ZeroFill on කර තිබේ නම් ඉලක්කමක අනිවාර්යෙන් තිබිය යුතු ඉක්කම් ගණන නිරූපණය කලහැක.එම ඉලක්කම් ගණනට අඩුවෙන් ඉලක්කම් ඇති අගයක් දුන් විය ඉතිරිය 0 වලින් පිරේ.

උදා :
int(5) distance unsigned zerofill ලෙස ඇති විට එම column එකට 3 ඇතුලත් කල විට එය ගබඩා වන්නේ 00003 ලෙසයි.
doubleFloating Point Numbersදශම සංඛ්‍යා ගබඩා කිරීමට භාවිතා කරයි.
-1.7976931348623157E+308 සිට -2.2250738585072014E-308 දක්වා, 0, සහ 2.2250738585072014E-308 සිට 1.7976931348623157E+308 ඉලක්කම් භාවිතා කලහැක.
double(7,2) වශයෙන් ලියූ විට ගබඩා කලහැකි ඉලක්කම් වල උපරිම වශයෙන් සංඛ්‍යා 7ක් ද දශම තිතෙන් පසුව උපරිම වශයෙන් ඉලක්කම් 2 ක් ද තිබිය හැකි බව නිරූපණය කලහැක.

උදා :
qty double(6,2) ලෙස ඇති නම් උපරිම වශයෙන් ඉලක්කම්(දශම සංඛ්‍යාද ඇතුළුව) 6 ක් තිබිය හැකි අතර දශම කොටසේ ඉලක්කම් 2ක් උපරිම වශයෙන් තිබිය හැකි බව නිරූපණය කරයි.
booleanTrue/Falsetrue හෝ false ගබඩා කර ගබා ගනී.

උදා :
isProcessed boolean
dateDateYYYY-MM-DD ආකාරයේ දිනයක් ගබඩා කර ගබා ගනී.
'1000-01-01' සිට '9999-12-31' දක්වා දිනයන් ඇතුලත් කලහැක.

උදා :
joinedDate date
timeTimeHH:MM:SS ආකාරයේ වේලාවක් ගබඩා කර ගබා ගනී.
'-838:59:59' සිට '838:59:59' දක්වා වේලාවන් ඇතුලත් කලහැක.

උදා :
retunTime time
datetimeDate & TimeYYYY-MM-DD HH:MM:SS ආකාරයෙන් දිනයක් සහ වේලාවක එකතුවක් ගබඩා කර ගබා ගනී.
'1000-01-01 00:00:00' සිට '9999-12-31 23:59:59' දක්වා ඇතුලත් කලහැක.

උදා :
fileCreated datetime

MySQL - හැඳින්වීම

MySQL - හැඳින්වීම

mysql
MySQL යනු SQL(Structured Query Language) මගින් ව්‍යුත්පන්න වූ Free and Open DBMS(Database Management System) එකකි. මෙය Server එකක් ලෙස ක්‍රියා කරන බැවින් එය හා සම්බන්ධ වීමට අපට තවත් මෘදුකාංග ඉතා සහසුවෙන් භාවිතා කල හැක.තවද වෙනත් පරිගණක භාෂාවන් සමඟ වුවද ඉතාමත් පහසුවෙන් සම්බන්ධ කල හැකි නිසා අද වන විට ඉතාමත් ජනප්‍රිය වී ඇත.එමෙන්ම මෙය පරිගණක ජාලයක් තුල වුවද ඉතාමත් පහසුවෙන් ස්ථාපිත කර භාවිතා කලහැකි බැවින් Servers වල දත්ත කළමණාකරණය සදහා භාවිතා කරන ප්‍රභල මෙවලමක් වී ඇත.

MySQL හි විශේෂතා

  • MySQL Server එක සඳහා අවශ්‍ය වන ඉඩ ප්‍රමාණය අඩුය.(උපරිම වශයෙන් 100Mb)
  • ස්ථාපනය කිරීමට වෙනත් Software අනවශ්‍යයි.
  • වෙනත් පරිගණක භාෂා(Java,PHP) මගින් පහසුවෙන් MySQL Server එකට සම්බන්ධ විය හැක.
  • සාමාන්‍ය ඉංග්‍රීසි වචන භාවිතා වන නිසා ඉගෙන ගැනීම සහ භාවිතය පහසුය.

MySQL භාවිතා කිරීමට නම්....

  • පළමුව MySQL Server එක download කරගෙන install කරගත යුතුය.
  • Server Side Programming කිරීමට බලාපොරොත්තු වේ නම්(උදා:PHP) WAMP,XAMPP,LAMP වැනි Package එකක් වුවද install කර ගතහැක.
  • එය නිවැරදිය configure කරගත යුතුය.
  • Third Party Software අවශ්‍ය නම් ඒවාද install කර ගන්න.
  • උදා:
    • MySQL Query Browser
    • Heidi SQL
    • MySQL GUI Tools
    • MySQL Administrative Tools
    • PHPMyAdmin(PHP සහිත server එක්ක භාවිතා කරන්නේ නම් පමණි.)
  • දත්ත සමුදා කළමණාකරණය ගැන න්‍යායික දැනුම.
  • නිවැරදිව Database එකක් නිර්මාණය කර එය නිවැරදිව හා කාර්යක්ෂමව ක්‍රියා කරවීම සදහා න්‍යායික කරුණු අත්‍යාවශ්‍ය වේ

පර්යන්ත උපක‍්‍රම (Peripheral Devices)

පර්යන්ත උපක‍්‍රම (Peripheral Devices)
 
පරිගණක පද්ධතියට සම්බන්ධ/ඈඳුම් (connect) කර ඇති උපක‍්‍රම පර්යන්ත උපක‍්‍රම ලෙස හැඳින්වේ. මේවා ප‍්‍රධාන සැකසුම් ඒකකයේ (Central Processing Unit - CPU) පිටතින් පවතින නමුත් පරිගණකයේ පාලනය සතු වේ. පර්යන්ත උපක‍්‍රම ප‍්‍රධාන වශයෙන් කොටස් තුනකට බෙදා වෙන්කර දැක්විය හැකිය.
1. ආදාන උපක‍්‍රම (Input devices)
2. ප‍්‍රතිදාන උපක‍්‍රම (Output devices)
3. ගබඩා උපක‍්‍රම (Storage devices)


පරිගණක පද්ධතියකට සැකසීම (Process) සඳහා දත්ත ඇතුළත් කරන උපක‍්‍රම ආදාන උපක‍්‍රම ලෙස හැඳින්වේ. එසේ පරිගණකය මඟින් සකසන ලද දත්ත පරිගණකයෙන් පිට කිරීම (Output) සඳහා යොදාගන්නා උපක‍්‍රම ප‍්‍රතිදාන උපක‍්‍රම (Output devices) ලෙස හැඳින්වේ. ඇතැම් උපක‍්‍රම භාවිත කරන්නේ දත්ත ගබඩා කර තබාගැනීම පිණිසය. මේවා ගබඩා උපක‍්‍රම (Storage devices) ලෙස හැඳින්වේ.
ප‍්‍රදාන ප‍්‍රතිදාන ගබඩා
(input) (Output) (storage)
මූසිකය (mouse) මුද්‍රකය (Printer) දෘඩතැටිය (Hard disk)
යතුරු පුවරුව (Key board) ස්පීකරය (Speaker) නම්‍ය තැටිය (Floppy disk)
සංගෘහිත තැටි ධාවක(CD players)
නම්‍ය තැටි ධාවක (Floppy disk drive)






අප දැන් මුලින්ම ප‍්‍රදාන උපක‍්‍රම (Input devices) අධ්‍යයනය කරමු.

1. මූසිකය (Mouse)

පරිගණක තිරයේ ඇති කර්සරය (Curser) චලනය කිරීමට හෝ යමක් සක‍්‍රිය (Activate) කිරීමට අවශ්‍ය වූ විට මූසිකය යොදා ගනී. භාවිත කරන්නාගේ අතෙහි චලනය සහ තද කිරීම් (Click) සංවේදනය කර, ඒවා පරිගණකය වෙත සංඥා ලෙස ලබාදීම මෙමඟින් සිදුකරයි. එවිට පරිගණකය මඟින් ඊට අදාලව ඉක්මණින් ප‍්‍රතිචාර (Response) ලැබේ. මූසික ක‍්‍රියාත්මක වන ආකාරය අනුව දෙවර්ගයකි.
  • සාමාන්‍ය මූසිකය (Normal mouse)
  • ප‍්‍රකාශ මූසිකය (Optical mouse)

  • වර්තමානයේ ප‍්‍රකාශ මූසිකය ඉතා ප‍්‍රචලිත වී ඇත. ඊට හේතුව ඒවා ඕනෑම මුහුණතක් මත (Surface) තබා භාවිත කිරීමට හැකි වීමයි. නඩත්තු කිරීමේ අවශ්‍යතාවය අඩුවීම ද මෙහි ඇති වාසියකි.
    පරිගණක යතුරු පුවරු (Computer Keyboard)

  • යතුරු -101 වැඩි දියුණු කරන ලද යතුරු පුවරුව (101-Key Enhanced Keyboard)
  • යතුරු -104 වින්ඩෝස් යතුරු පුවරුව (104-Key Windows Keyboard)
  • යතුරු -82 ඇපල යතුරු පුවරුව (82-Key Apple Standard Keyboard)
  • යතුරු -108 ඇපල් දිගු යතුරු පුවරුව (108-Key Apple Extended Keyboard)

  • ඕනෑම යතුරු පුවරුවක පහත දැක්වෙන යතුරු ආකාර 4 පවතී.
  • ටයිප් කරන යතුරු (Typing Keys)
  • අංකමය යතුරු පුවරුව (Numeric Keypad)
  • ක‍්‍රියාකාරී යතුරු (Function Keys)
  • පාලන යතුරු (Control Keys)

ටයිප් කිරීම සඳහා අක්‍ෂර යතුරු (Letter keys) භාවිතා වේ. මෙම අක්‍ෂර වල පිහිටීම සමාන්‍ය යතුරු ලියනයක (Type writer) යතුරු වල පිහිටීම ගනී. බොහෝ යතුරු පුවරු (Qwerty) වින්‍යාසය ගනී. එනම්, යතුරු පුවරුවේ මුල් කොටසේ එක පිළිවෙලට ඇති අක්‍ෂර පිළිවෙල (Qwerty) යි. යතුරු 17 කින් සමන්විත අංක සහ කාරක (Operators) වලින් සැදුම් ලත් කොටස අංකමය යතුරු පුවරුවයි. (Numeric keypad) මෙහි අරමුණ වන්නේ ඉක්මණින් පරිගණකය වෙත දත්ත ඇතුළත් කිරීමයි. යතුරු පුවරුවේ ඉහළ කොටසේ එක පෙළට ඇති විශේෂ කි‍්‍රයාකාරී යතුරු (Function keys) ලෙස හැඳින්වේ. පරිගණකයේ මෙහෙයුම් පද්ධතියට (Operating system) මෙම යතුරු වලට විවිධ විධාන (Commands) පැවරීමට හැකියාව ඇත. කර්සරයේ (Curser) හා තිරයේ (Screen)ඇති යම් යම් දේ පාලනය කිරීමට පාලන යතුරු (Control keys) යොදා ගනී. කර්සරයේ පිහිටීම කුඩා අවකාශ (space)වල සිට විශාල පරතරයක් දක්වා වෙනස් කිරීමට ඊ සළකුණු යතුරු (Arrow keys) සහ (Tab) යතුර භාවිතා කළ හැක. තවද, ලිපි ලේඛනයක් (Document) කියවීමේ දී (Home, End, Page, up, Page down)වැනි පාලන යතුරු වල උපකාරය ද ලබාගත හැක. ඇතැම් වින්ඩෝස් යතුරු පුවරු වල අමතර පාලන යතුරු තිබේ. උදාහරණ ලෙස (Winkey) දැක්විය හැකිය. මෙය තද කිරීමෙන් ඔබට වින්ඩෝස් හි (‘Start menu’) ක්‍ෂණිකව විවෘත කරගැනීමට හැකිය. මීට අමතරව පරිගණකයේ ශබ්දය අඩු වැඩි කිරීමට, විද්‍යුත් තැපැල් ලිපි වලට යාමට සහ තවත් විවිධ කාර්යයන් සඳහා පාලන යුතුරු ඇතැම් යතුරු පුවරු වලට ඇතුළත් කර තිබේ.
යතුරු වර්ග උදාහරණ



  • ටයිප් කරන යතුරු A....Z, spacebar, tab,shift




  • අංකමය යතුරු 0-9, *, 1,




  • ක‍්‍රියාකාරී යතුරු F1 - F




  • පාලන යතුරු Home, End, Insert, Delete, Page up, Page down, Control, Alternate, Escape


  • නම්‍ය තැටි (Floppy Disk)

    නම්‍ය තැටි කැසට් පටයකට (Cassette tape) බොහෝ සෙයින් සමානය. එහි චුම්භකනය (Magnetize) කළ හැකි ද්‍රව්‍යයක් අලේපිත වෘත්තාකාර ප්ලාස්ටික් තහඩුවක් අඩංගු වේ. ප‍්‍රමාණයෙන් මේවා අඟල් 3 1/2 සිට අඟල් 5 1/2 ලෙස ලබාගත හැකි අතර, භාවිත කරන්නාට අවශ්‍ය නම් එහි අඩංගු දත්ත වෙනත් අයට භාවිතා කිරීමට හෝ වෙනස් කිරීමට (Modify)නොහැකි වන අන්දමින් එය යතුරු ලීමට (Lock) හැක. අඟල් 3 1/2 තැටියක ධාරිතාව මෙගා බයිට් 1.44 :1ග44 ඵඊ* වේ.

    තොරතුරු ක්‍ෂණිකව ගබඩා කරීමට ඇති හැකියාව, ඒවා මැකීමට :ෑර්ිැ* හැකිවීම, නැවත නැවතත් භාවිතා කිරීමට හැකි වීම (Reuse) , මිලෙන් අඩුවීම සහ භාවිතයට පහසු වීම නම්‍ය තැටි වල ඇති වාසි වේ.

    නමුත් ධාරිතාව අඩුවීම මේවායේ ඇති ප‍්‍රධාන අවාසියයි.

    මෙහෙයුම් පද්ධති (Operating Systems)

    මෙහෙයුම් පද්ධති (Operating Systems)

    පරිගණකයක් මත ධාවනය වන වැදගත්ම වැඩසටහන (Program) වන්නේ එහි මෙහෙුයම් පද්ධතියයි. යෙදීම් මෘදුකාංග (Application Software) සහ පද්ධති ම`ෘදුකාංග (System Software) ලෙස පරිගණක මෘදුකාංග නැතහොත් මෙහෙයුම් පද්ධති සඳහා හිමි වන්නේ වැදගත් ස්ථානයකි. මක්නිසා ද යත් යෙදීම් මෘදුකාංග ධාවනය කිරීමට මෙහෙයුම් පද්ධතිය අත්‍යවශ්‍ය වන බැවිනි. යතුරු පුවරුව, මූසිකය වැනි අදාන උපක‍්‍රම (Input devices) වලින් ලැබෙන ආදාන හඳුනා ගැනීම, අදාන හඳුනාගැනීම, සැකසූ ප‍්‍රතිදානයන් දර්ශන තිරය (Display Screen) වෙත යැවීම සහ දෘඩ තැටි, මුද්‍රක වැනි පර්යන්ත උපක‍්‍රම (Peripheral devices) පාලනය කිරීම වැනි මූලික කාර්යයන් මෙහෙයුම් පද්ධතිය මඟින් ඉටු වේ.

    මෙහෙයුම් පද්ධති වර්ග පහත ලෙස වර්ගීකරණය කළ හැකිය.
    1) බහු පරිශීලක (Multi User) මෙහෙයුම් පද්ධතිය
    2) බහු සැකසුම් (Multi Processing) මෙහෙයුම් පද්ධතිය
    3) බහු කටයුතු (Multi Tasking) මෙහෙයුම් පද්ධතිය
    4) බහු සම්බන්ධක (Multi Threading) මෙහෙයුම් පද්ධතිය
    5) බහු කාල (Real Time) මෙහෙයුම් පද්ධතිය
    ඉහත එක් එක් මෙහෙයුම් පද්ධති වර්ග සවිස්තරව සළකා බලමු.
    Multi User Operating System (බහු පරිශීලක මෙහෙයුම් පද්ධති)
    එකම අවස්ථාවක දී පරිශීලකයන් දෙදෙනෙකුට හෝ වැඩි ගණනකට පරිගණක වැඩසටහන් ධාවනය කිරීමට ඉඩ දෙයි. මෙම වර්ගයට අයත් ඇතැම් මෙහෙයුම් පද්ධති 100 සිට 1000 දක්වා සමකාලික පරිශීලකයන් (Concurrent Users) සංඛ්‍යාවට පරිගණක ප‍්‍රවේශය ලබා දෙයි.
    සියළුම ප‍්‍රදාන සැකසුම් පරිගණක (Mainframe Computers) සහ කුඩා පරිගණක (Mini Computers) මෙම ගණයට අයත් වේ. පුද්ගල පරිගණක හෝ ක්‍ෂුද්‍ර පරිගණක (Micro Computers) මෙම වර්ගයට අයත් නොවේ. ඇතැම් විට මේවා කාලය බෙදාදීම් (Time Sharing) මෙහෙයුම් පද්ධති ලෙස ද හැඳින්වේ.
    Multi Tasking Operating System (බහු සැකසුම් මෙහෙයුම් පද්ධති)
    යම්කිසි ක‍්‍රියාදාම හෝ වැඩසටහන් කිහිපයක් එකවර ධාවනය කිරීම සඳහා සහය වීමට බහු සැකසුම් මෙහෙයුම් පද්ධතියක් අඩංගු පරිගණකයකට හැකියාව ඇත. බහුලව යොදාගන්නා බහු සැකසුම් පද්ධතියක් සඳහා උදාහරණයක් ලෙස UNIX දැක්විය හැක. තනි සැකසුම් මෙහෙයුම් පද්ධති (Single Process) වලට වඩා බහු සැකසුම් මෙහෙයුම් පද්ධති වඩාත් සංකීර්ණ වෙතැයි අපේක්‍ෂා කළ හැක. ඊට හේතු වන්නේ තරඟකාරී වැඩසටහන් සඳහා සාධාරණ ආකාරයට පරිගණක සම්පත් (Resources) වෙන් කළ යුතු බැවිනි.
    Multi Tasking Operating System (බහු කටයුතු මෙහෙයුම් පද්ධති)
    මධ්‍ය සැකසුම් ඒකක (CPU) එකක් පමණක් යොදා ගනිමින් එකම අවස්ථාවේ දී ක‍්‍රියාදාම කිහිපයක් ඉටු කිරීමට පරිගණකය සතු හැකියාව, බහු කටයුතු හැකියාවයි. මෙවැනි මෙහෙයුම් පද්ධති බහු කටයුතු මෙහෙයුම් පද්ධති ලෙස හැඳින්වේ. බහු කටයුතු මෙහෙයුම් පද්ධති බහු සැකසුම් මෙහෙයුම් පද්ධති වලට සමානතාවයක් දක්වන නමුත් බහු කටයුතු පද්ධති වලදී යොදා ගන්නා මධ්‍ය සැකසුම් ඒකක (CPU) ගණන එකක් පමණක් ද බහු සැකසුම් පද්ධති වලදී මධය සැකසුම් ඒකක 1 කට වඩා වැඩි ගණනක් ද යොදා ගැනීම ඒවායේ ඇති වෙනස්කම්ය.
    බහු කටයුතු මෙහෙයුම් පද්ධති ආකාර දෙකකි. මධ්‍ය සැකසුම් ඒකකයේ කාලය (CPU time) කුඩා කොටස් වෙලට බෙදා එක් එක් වැඩසටහන් වලට ලබා දෙන (Preemptive) ඒවා එක් වර්ගයකි. පරිගණක වැඩසටහනට අවශ්‍ය තරම් CPU කාලයක් ලබාගෙන අනවශ්‍ය වූ විට වෙනත් වැඩසටහනකට තාවකාලිකව ලබාදෙන (Cooperative) ඒවා තවත් වර්ගයකි. OS/2, Windows, Windows NT සහ 'Amiga' මෙහෙයුම් පද්ධති ඉහත පළමු ගණයට ද Widows X-3 සහ 'Multifinder' දෙවන ගණයට ද අයත් වේ.

    Multithreading Operating System


    'Threads' නමින් හැඳින්වෙන පරිගණක වැඩසටහන් විවිධ කොටස් ක‍්‍රියාත්මක කිරීමට හැකියාවක් ඇති මෙහෙයුම් පද්ධති මෙලෙස හැඳින්වේ. සියළුම Thread එකිනෙක අතර බාධා ඇති කර නොගනිමින් එකම වේලාවේ ධාවනය වීමට හැකි වන පරිදි වැඩසටහන්ගතකරු විසින් පරිගණක වැඩසටහන් ප‍්‍රවේශමෙන් සැලසුම් කළ යුතුය.
    Real time Operating System (සත්‍යකාල මෙහෙයුම් පද්ධති)
    ආදානයක් (Input) ලැබුණු විගසින් එයට ප‍්‍රතිචාරයක් දැක්විය හැකි පරිගණක මෙහෙයුම් පද්ධති මෙනමින් හැඳින්වේ. ප‍්‍රතිදානය සහ ආදානය අතර සැලසුම් යුතු ප‍්‍රමාදයක් නොතිබිය යුතු අවස්ථා වලදී මෙම මෙහෙයුම් පද්ධති වර්ගය යොදා ගත යුතුය.
    උදාහරණයක් ලෙස රළු වාහන නිරීක්‍ෂණය හා පාලනයේ දී (Traffic light control) බාධාවකින් තොරව ගලා එන ඒකාකාර අදාන තොරතුරු සඳහා පරිගණක ක්ක්‍ෂිකව ප‍්‍රතිචාර දැක්විය යුතුය. බොහෝ පොදු අරමුණු මෙහෙයුම් පද්ධති (General power OS) ප‍්‍රතිචාරයන් දැක්වීම සඳහා තත්පර කිහිපයක් හෝ ඇතැම් විට මිනිත්තු ගණනක් ගතවන බැවින් ඒවා මෙම වර්ගයේ මෙහෙයුම් පද්ධති වලට අදාළ නොවේ.
    සත්‍ය කාල මෙහෙයුම් පද්ධති කාර්මික රොබෝ යන්ත‍්‍ර, අභ්‍යවකාශ යානා (Spacecraft) කාර්මික පාලනය (Industrial control) සහ විද්‍යාත්මක පර්යේෂණ උපකරණ සඳහා යොදා ගත හැක.
    සත්‍ය කාල මෙහෙයුම් පද්ධතියක් සඳහා උදාහරණයක් ලෙස ඇමෙරිකානු ගුවන් සේවය සහ IBM ආයතනය මඟින් ගුවන් ගමන් වෙන් කිරීමේ (Airline Reservation) සඳහා වැඩිදියුණු කරන ලද 'Control Program' දැක්විය හැකිය.

    පරිගණක වල පරිණාමය

    Evolution of Computers
    සිව්වන පරම්පරා පරිගණක(1971 - 1991) (Fourth generation Computers)
    ක්ෂුද්‍ර සකසනය - Microprocessor
    1971
    Micro Computer සමාගමේ ගිල්බට් හයට් (Gilbert Hytt) විසින් ක්ෂුද්‍ර සකසනයට (Microprocessor) පේටන්ට් බලපත‍්‍රය ලබා ගන්නා ලදි.

    Intel හි ටෙඞ් හොෆ් (Ted Hoff) විසින් 1971 පෙබරවාරි මාසයේ දී බිටු 4 (4 Bit) 4004 ක්ෂුද්‍ර සකසනය හඳුන්වා දෙන ලදි. එය අති විශාල පරිමාණ සංගෘහිත පරිපථ(VLSI) ආකාරයේ වූ අතර කොටස් 2300 කින් පමණ සමන්විත විය. ගණක යන්ත‍්‍රයක තනි චිපයක් (chip) සඳහා ජපන් සමාගමක් විසින් මෙය යොදා ගන්නා ලදි.

    IBM සමාගම එවකට මතක තැටිය (Memory disk) ලෙස හැඳින්වුණු අඟල් 8 තැටිය (පසුව නම්‍ය තැටිය ලෙස හැඳින්විණි) හඳුන්වා දෙන ලදි.

    1971 නොවැම්බර් මාසයේ Intel සමාගම විසින් MCS - 4 ප‍්‍රථම සූක්‍ෂම පරිගණකය (Micro computer) හඳුන්වා දෙන දි.

    නෝලන් බුෂ්නෙල් (Nolan Bsushnell) ප‍්‍රථම වාණිජ ආර්කේඞ් වීඩියෝ ක‍්‍රීඩාව (Arcade Video Game) වන "computer space" සැලසුම් කරන ලදි.
    1972
    Intel සමාගම බිටු 8 හි (8 bit) 8008 සහ 8080 ක්ෂූද්‍ර සකසන (micro processor) නිෂ්පාදනය කරන ලදි. නම්‍ය තැටි ධාවක (floppy disk drive) 8080 ක්ෂුද්‍ර සකසනය සමඟ ක‍්‍රියාකරවීමට උපදෙස් දීම සඳහා ගේරි කිල්ඩෝල් Gary kildall විසින් පාලන වැඩසටහනක් (control program) ලියන ලදි.
    1974
    බුෂ්නෙල් a (bushnell) විසින් Atari නිර්මාණය කරන ලද අතර සාර්ථක pong ක‍්‍රීඩාව හඳුන්වා දෙන ලදි. Xerox විසින්PARC‍ හිදී Alto පරිගණකය වැඩි දියුණු කරන ලදි. එහි මොනිටරයක් (Monitor) චිත‍්‍රමය අන්තර් මුහුණතක් (Graphical User interface), මූසිකයක් (Mouse) සහ ජාලකරණ සඳහා ජාල කාඞ් පතක් (ethernet card) අඩංගු විය.
    1975
    Altair පුද්ගල පරිගණකය (personal computer) කුඩා ආකාරයකින් (kit form) අලෙවි කරන ලදි. ස්ටීව් ජොබ්ස් (Steve jobs) සහ ස්ටීව් වොස්නියැක් (Steve Wozniak) මෙය පිළිබඳව උනන්දුවක් දැක්වූහ.
    1976
    ජොබ්ස් (Jobs) සහ වොස්නියැක් (Wozniak) Apple ්චචකැ පුද්ගලික පරිගණකය වැඩි දියුණු කරන ලදි. ඇලන් ෂූගාර්ට් (Alan Shugart) අඟල් 5.25 නම්‍ය තැටිය හඳුන්වා දෙන ලදි.
    1977
    ජපානයේ Nintendo සමාගම පරිගණක ක‍්‍රීඩා නිපදවීම ආරම්භ කරන ලදි. ක‍්‍රීඩාවක් නිෂ්පාදනය කිරීමට ඩොලර් කිහිපයක් වැය වුවද එ්වා ඩොලර් 40 ක පමණ මිලකට අලෙවි කරන ලදි. මෙම පරිගණක ක‍්‍රීඩා දත්ත ගබඩා කිරීමට කාටි‍්‍රජ (Cartridge) වල ඇති චිප (chip) යොදා ගන්නා ලදි.

    මෙම සමාගම විසින් හඳුන්වා දෙන ලද ජනප‍්‍රිය ක‍්‍රීඩාවලට උදාහරණ වශයෙන් Donkey king (1981), Super Mario Bros (1985) දැක්විය හැක.
    1948
    Harvard Mark iii ලෙස හැඳින්වූ රික්ත ටියුබ් 5000 කින් සමන්විත ඉලෙක්ට්‍රොනික පරිගණකය(Howard Aiken) හොවර්ඞ් අයිකන් විසින් වැඩි දියුණු කරන ලදි.
    1980
    IBM සමාගම ඔවුන්ගේ නව පුද්ගල පරිගණකයට මෙහෙයුම් පද්ධතියක් (Operating System) ලබාගැනීම සඳහා Microsoft සමාගමේ බිල් ගේට්ස් (Bill Gates) පෝල් ඇලන් (Paul Allen) සහ ස්ටීව් බාමර් (Steve Ballmer) යන අය සමඟ ගිවිසුමක් (Contract) අත්සන් කරන ලදි.
    1984
    Apple computers විසින් ජනවාරි 24 වන දින Macintosh පුද්ගල පරිගණකය හඳුන්වා දෙන ලදි.
    පස්වන පරම්පරා පරිගණක :වර්තමාන හා අනාගත වර්ෂ
    (Fifth Generation Computers)
    1991
    ටිම් බර්නර්ස් ලී (Tim berners Lee) විසින් වැඩි දියුණු කරන ලද විශ්ව විසිරි වියමන (www) CERN විසින් නිකුත් කරන ලදි.
    1993
    ප‍්‍රථම වෙබ් බ‍්‍රවුසරය (Web Browser) වන Mosaic මාර්ක් ඇන්ඩි‍්‍රසන් (Mark Andreesen) සිසුවා සහ එරික් බිනා නම් ක‍්‍රමලේඛනගතකරු (Programmer) විසින් මාසතුනක කාලයකදී නිර්මාණය කරන ලදි.
    1994
    දෙසැම්බර් මාසයේ Netscape Navigator 1.0 අනුවාදය නිකුත් කරන ලදි. එය නොමිලයේ බෙදා හැරුණු අතර වෙළෙඳ පොලේ 75% පමණ පාරිභෝගිකයින් ලබා ගන්නා ලදි.
    1996
    Microsoft සමාගම Explorer 3.0 නම් වූ වැඩි දියුණු කළ වෙබ් බ‍්‍රව්සරය නිකුත් කරන ලදි.

    තාර්කික ද්වාර සහ බූලීය වීජ ගණිතය

    තාර්කික ද්වාර සහ බූලීය වීජ ගණිතය

    Logic gates and Boolean Algebra

    හැඳින්වීම
    පරිගණක හා ඩිජිටල් (Digital) ලෝකයේ සියල්ල පදනම් වී ඇත්තේ ද්වීමය සංඛ්‍යා පද්ධතිය (Binary Number System) මතය. ද්වීමය සංඛ්‍යා පද්ධතියේ දී භාවිතා වන සංකේත දෙක 0 හා 1 බව ඔබ දැනටමත් දනී. සංඛ්‍යාංක තර්කයේ දී (Digital Logic) ද්විමය සංඛ්‍යා පද්ධතියට අදාළ 0 අසත්‍ය ලෙස ද (False) 1 සත්‍ය (True) ලෙස ද සැලකිය හැක. මේ අනුව සෑම තත්වයක්ම සත්‍ය හෝ අසත්‍ය වලින් එකක් පමණක් විය යුතුය. ඒ දෙකම වීම හෝ දෙකෙන් එකක්වත් නොවීම සිදුවිය නොහැක. තාර්කික ක‍්‍රියාවලි (Logical Operations) ද්වීමය සංඛ්‍යා පද්ධති මත පදනම් කිරීමට මූලික හේතුව වී ඇත්තේ ඒවා භාවිතයෙන් පැහැදිලිව අර්ථ දක්වා ඇති අවස්ථා (States) අතර මාරු විය හැකි සරල ස්ථායී (Stable) ඉලෙක්ට්‍රොනික පරිපථ සැලසුම් කිරීමට පහසු බැවිනි. එක් තාර්කික අවස්ථාවකට (State) අදාළ ලක්‍ෂණය අනෙක් තාර්කික අවස්ථාවේ දී ප‍්‍රතිවිරුද්ධ බව පහත වගුවෙන් ඔබට මනාව අවබෝධ කරගත හැක.
    සත්‍යතා වගු (Truth Tables)
    සත්‍යතා වගු භාවිතයෙන් ගැටළුවක දී යොදා ගන්නා තාර්කික විල්‍යයන් ගේ (Logical Variables) අවස්ථා සංයෝජන (State Combinations) විශ්ලේෂණය කළ හැක. සත්‍යතා වගුවක සෑම විචල්‍යයක් සඳහාම ඇත්තේ අගයන් දෙකක් පමණක් බැවින්, විචල්‍ය n ප‍්‍රමාණයක් ඇති ප‍්‍රකාශනයක් සඳහා සත්‍යතා වගුවකට අවශ්‍ය වන්නේ 2n පෙළ (Raw) ප‍්‍රමාණයකි. විචල්‍ය ඕනෑම ගණනකට සත්‍යතා වගු නිර්මාණය කිරීමේ හැකියාව තිබුණ ද මෙම විෂයයේ දී අප යොදා ගන්නා උපරිම විචල්‍ය ගණන 3 දක්වා සීමා කර ඇත.
    OR මෙහෙයුම (OR Operations)
    මෙය තේරුම් ගැනීමට ප‍්‍රථමයෙන් පහත සරල පරිපථය සලකා බලමු.
    බල්බයක්, ස්විච දෙකක් සහ වියලි කෝෂයකින් සමන්විත සරල පරිපථයක් සළකමු. මෙහි S1, S2 වෙන වෙනම සංවෘත කළ විට බල්බය දැල්වේ. S1 සහ S2 දෙකම සංවෘත කළ විටද බල්බය දැල්වේ. බල්බය නොදැල්වෙන්නේ ී1 සහ ී2 දෙකම විවෘත වී ඇති විට දී පමණි. මෙහිදී යම් ස්විචයක අවස්ථාව (සංවෘත ද විවෘත ද යන්න) විචල්‍යයක් ලෙස යොදාගත හැක. ස්විචය වසා ඇති විට ඊට අනුරූප විචල්‍ය අගය නැතහොත් තාර්කික අවස්ථාව (Logical State) 1 ලෙස ද ස්විචය විවෘත කර ඇති විට ඊට අනුරූප අවස්ථාව විචල්‍ය අගය 0 ලෙස ද යොදා ගනිමු.
    මේ අනුව ඉහත සරල පරිපථය ද්වි-ප‍්‍රදාන (Two-input) තාර්කික පරිපථයක් (Logic Circuit) ලෙස සැලකිය හැක.
    ප‍්‍රදාන (input) දෙකකින් එකක් පමණක් හෝ දෙකම සක‍්‍රිය විට (1 විට) ප‍්‍රතිදානය ද (output) සක‍්‍රිය වේ. ප‍්‍රදාන දෙකම අක‍්‍රිය වූ විට පමණක් ප‍්‍රතිදානය ද අක‍්‍රිය වේ. මෙම තොරතුරු පහත වගුව යොදා ගෙන ලියා දැක්විය හැක.
    OR මෙහෙයුමේ ප‍්‍රතිදානය B සඳහා පහත ප‍්‍රකාශනය ලියා දැක්විය හැක.
    B = S1 + S1
    මෙහි '+' යනු OR කාරකය මිස සාමාන්‍ය එකතු කිරීම නොවන බව සැලකිල්ලට ගත යුතුය. මේ අනුව, OR මෙහෙයුමේ දී ප‍්‍රතිදානය අක‍්‍රිය වන්නේ සෑම ප‍්‍රදානයක්ම අක‍්‍රිය වූ විට පමණි. අන් සෑම සංයෝජනයක් සඳහාම ප‍්‍රතිදානය සක‍්‍රිය වේ.
    OR මෙහෙයුම සඳහා දාන 3 කින් සමන්විත තාර්කික පරිපථයක් සඳහා සත්‍යතා වගුවක් පහත දැක්වේ.
    AND මෙහෙයුම (AND Operation)
    පහත සරල පරිපථය සළකා බලමු.
    බල්බය දැල්වීමට නම් ඉහත පරිපථයේ ස්විච දෙකම සංවෘත කළ යුතු බව ඔබ දනී. එනම් AND මෙහෙයුමේ දී ප‍්‍රදාන සියල්ලම සක‍්‍රිය වූ විට පමණක් ප‍්‍රතිදානය ද සක‍්‍රිය වේ. අන් සෑම සංයෝජනයක් සඳහාම ප‍්‍රතිදානය අක‍්‍රිය වේ.
    AND මෙහෙයුමේ දී ප‍්‍රතිදානය B සඳහා පහත ප‍්‍රකාශනය ලියා දැක්විය හැක.
    B = S1 * S2
    මෙහි * සංකේතය AND මෙහෙයුම සඳහා යොදා ගන්නා සංකේතයයි. එය ගණිතයේ දී ගුණකිරීම (Multiplication) නොවේ. එම තොරතුරු පහත සඳහන් සත්‍යතා වගුවේ දැක්වේ.
    මේ අනුව AND මෙහෙයුමේ දී ප‍්‍රතිදානය සක‍්‍රිය වෙන්නේ ප‍්‍රදාන දෙකම සක‍්‍රිය වූ විට බව පැහැදිලිය. AND මෙහෙයුම සඳහා ප‍්‍රදාන 3 කින් සමන්විත තාර්කික පරිපථයක් සඳහා සත්‍යතා වගුවක් පහත දැක්වේ.
    NOT මෙහෙයුම (NOT Operation)
    OR මෙහෙයුම සහ AND මෙහෙයුම මෙන් නොව, NOT මෙහෙයුම ඉටුකර ගැනීමට අවශ්‍ය වන්නේ ප‍්‍රදාන 1 ක් (Single Input) පමණි. ප‍්‍රදානය A වන NOT මෙහෙයුමක් සඳහා ප‍්‍රතිදානය X පහත පරිදි ලියා දැක්විය හැකිය.
    X = A'
    මෙහි ‘'’ යන්න NOT මෙහෙයුම සඳහා යොදා ගන්නා සංකේතයයි. මෙය ‘ප‍්‍රතිවිරුද්ධ දෙය’ නැතහොත් ප‍්‍රතිලෝමය (inverse) ලෙස ද ඇතැම් විට හඳුන්වයි.
    NOT මෙහෙයුම සඳහා සත්‍යතා වගුවක් පහත දැක්වේ.