കമ്പ്യൂട്ടർ മൾട്ടിടാസ്കിംഗ്

കമ്പ്യൂട്ടിംഗിൽ, **മൾട്ടിടാസ്കിംഗ്** എന്ന് പറയുന്നത് നിരവധി ടാസ്കുകൾ (അഥവാ പ്രോസസ്സുകൾ) ഒരു നിശ്ചിത സമയം അല്ലെങ്കിൽ സമയത്തിന്റെ ഇടവേളയിൽ ഒന്നിച്ച് പ്രവർത്തിപ്പിക്കുന്ന പ്രക്രിയയാണ്. ഇത് കമ്പ്യൂട്ടറിന് വ്യത്യസ്ത ജോലികൾ ഒരേസമയം ചെയ്യാൻ സഹായിക്കുന്നു. പുതിയ ടാസ്കുകൾ ആരംഭിക്കുന്നതിന് മുമ്പ്, പഴയ ടാസ്കുകൾ അവസാനിക്കാൻ കാത്തിരിക്കുന്നതിന് പകരം, അവ ഇടയ്ക്ക് തടഞ്ഞ് പുതിയ ടാസ്ക് ചെയ്യാൻ സാധിക്കുന്നു. അതിനാൽ, ഒരു കമ്പ്യൂട്ടർ ഒരേ സമയത്ത് നിരവധി ടാസ്കുകൾ ചെയ്യുന്നതിനായി ഓരോ ടാസ്കിന്റെയും ചെറിയ ഭാഗങ്ങളെ മാറ്റിമറിച്ച് പ്രവർത്തിപ്പിക്കുന്നു. ഇത് ടാസ്കുകൾ തമ്മിൽ ഒരുമിച്ച് പ്രവർത്തിക്കുന്ന രീതിയാണ്, എന്നാൽ ഒരു ടാസ്കും പൂർണ്ണമായും കഴിഞ്ഞിട്ടില്ല. ഈ ടാസ്കുകൾ  സെൻട്രൽ പ്രോസസിംഗ് യൂണിറ്റും(സിപിയു) പ്രധാന മെമ്മറിയും  ഒരുമിച്ച് പ്രോസസ്സിംഗ് വിഭവങ്ങൾ പങ്കുവെക്കുകയും ചെയ്യുന്നു. ഒരു പ്രോഗ്രാമിന്റെ പ്രവർത്തനം നിർത്തുമ്പോൾ, ആ പ്രോഗ്രാമിന്റെ നിലവിലെ വിവരങ്ങൾ (ഉദാഹരണത്തിന്, പ്രോഗ്രാം പ്രവർത്തിക്കുന്ന സ്ഥിതി, അതിന്റ റിസൾട്ട്, മെമ്മറി ഉള്ളടക്കം, കമ്പ്യൂട്ടർ രജിസ്റ്ററിലെ വിവരങ്ങൾ എന്നിവ സൂക്ഷിക്കുന്നു) കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിൽ സൂക്ഷിച്ചിരിക്കുന്നു. പിന്നീട്, മറ്റൊരു പ്രോഗ്രാമിന്റെ വിവരങ്ങൾ എടുത്ത് അതിന്റെ പ്രവർത്തനം തുടങ്ങുന്നു. ഇതോടെ, എല്ലാ പ്രോഗ്രാമുകളും സ്വിച്ച് ചെയ്യുമ്പോഴും, ഏത് പ്രോഗ്രാമും അതിന്റെ തുടർച്ചയായ പ്രവർത്തനം നിലനിർത്തുന്നു. കോൺടക്റ്റ് സ്വിച്ച് എന്നത് ഒരു പ്രോഗ്രാമിന്റെ പ്രവർത്തനം മാറ്റുന്ന പ്രക്രിയയാണ്, ഇതിന്റെ വഴി പല പ്രോഗ്രാമുകളും ഒരേ സമയത്ത് പ്രവർത്തിക്കുന്നതായി കാണപ്പെടുന്നു. പ്രീ-എംപ്റ്റീവ് മൾട്ടിടാസ്കിംഗിൽ, സിസ്റ്റം ഒരു പ്രോഗ്രാമിന്റെ പ്രവർത്തനം നിർത്തി മറ്റൊരു പ്രോഗ്രാമിന്റെ പ്രവർത്തനം തുടങ്ങാൻ തീരുമാനിക്കുന്നു, ഇത് സമയക്രമങ്ങൾ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. കോ-ഓപ്പറേറ്റീവ് മൾട്ടിടാസ്കിംഗിൽ, പ്രോഗ്രാമുകൾ തമ്മിൽ കൈകാര്യം ചെയ്ത്, ഒന്നിന്റെ പ്രവർത്തനത്തിന് ഇടം നൽകാൻ ഒരു പ്രോഗ്രാമിന് അധികാരമുണ്ട്. അതായത്, ഓരോ പ്രോഗ്രാമും തന്നെ മറ്റൊന്നിന്റെ പ്രവർത്തനത്തിന് സമയം നൽകാൻ തീരുമാനമെടുക്കും. ഇത് ഒരാൾ മറ്റുള്ളവർക്ക് ഇടം നൽകുന്നത് പോലെയാണ്. 

മൾട്ടിടാസ്കിങ്ങ് എന്നത് ഒരേ സമയത്ത് വിവിധ കാര്യങ്ങൾ ചെയ്യാൻ ശ്രമിക്കുന്നതല്ല. യഥാർത്ഥത്തിൽ, ഒരു സമയം ഒരു കാര്യത്തെക്കാൾ കൂടുതൽ കാര്യങ്ങൾ ചെയ്യാൻ സാധ്യമാകുന്നത്, അവയെ ചെറിയ ഭാഗങ്ങളായി വിഭജിച്ച് ഒരു സമയത്തിലേക്കായി ഓരോ ജോലി ചെയ്യുന്നതിന്റെ ഫലമാണ്.  സിപിയുകളുടെ എണ്ണം കുറഞ്ഞാലും, പല കാര്യങ്ങളും ഒരേ സമയം ചെയ്യാൻ സാധ്യമാക്കുന്നു. അത് എങ്ങനെ എന്നാൽ, ഓരോ കാര്യത്തിലും ചെറിയ മാറ്റങ്ങൾ വരുത്തി, സിപിയുവിനെ എല്ലായ്പ്പോഴും ഉപയോഗപ്പെടുത്തുന്നു. 

മൾട്ടിടാസ്കിങ്ങ് 1960 കൾ മുതൽ കമ്പ്യൂട്ടറുകൾ ഉപയോഗിക്കുന്ന ഒരു സവിശേഷതയാണ്. ഒരുപാട് പ്രോഗ്രാമുകൾ ഒരേ സമയത്ത് പ്രവർത്തിക്കാൻ കഴിയും, ഉദാഹരണത്തിന്, ഒരു പ്രോഗ്രാം കാത്തിരിക്കുമ്പോൾ തന്നെ, മറ്റൊരു പ്രോഗ്രാമിന് വേണ്ടി സെൻട്രൽ പ്രോസസർ ഉപയോഗിക്കാൻ സാധിക്കും. ടൈം-ഷെയറിംഗ് സിസ്റ്റത്തിൽ, പല ആളുകളും ഒരേ പ്രൊസസർ ഉപയോഗിക്കുന്നെങ്കിലും, ഓരോരുത്തരും അത് അവർക്കായി പ്രത്യേകമായി ലഭിക്കുന്നത് പോലെ തോന്നും. പിന്നിൽ, കമ്പ്യൂട്ടർ എല്ലാവർക്കും അവർക്കാവശ്യമായ പ്രോഗ്രാമുകൾ ഒന്നിച്ചു നടത്തുന്നു. മൾട്ടിപ്രോഗ്രാമിംഗ് സിസ്റ്റത്തിൽ, ഒരു പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ അതിന് കാത്തിരിക്കേണ്ടതായി വന്നാൽ അല്ലെങ്കിൽ സിസ്റ്റം മറ്റൊരു പ്രോഗ്രാമിലേക്ക് മാറണമെങ്കിൽ അത് താൽക്കാലികമായി നിർത്തപ്പെടുന്നു. പിന്നെ, സിസ്റ്റം മറ്റൊരു പ്രോഗ്രാമിനെ പ്രവർത്തിപ്പിക്കാൻ സിപിയു ഉപയോഗിക്കുന്നു. റിയൽ-ടൈം സിസ്റ്റങ്ങളിൽ റോബോട്ടുകൾ പോലുള്ള യന്ത്രങ്ങൾ നന്നായി പ്രവർത്തിക്കാൻ സമയം അനുസരിച്ച് കൃത്യമായ പ്രവർത്തനം ആവശ്യപ്പെടുന്നു. ഇവിടെ, ഒരു പ്രൊസസർ പല കാര്യങ്ങൾ മെഷീന്റെ നീക്കം, സമ്പർക്കം, ഉപയോക്തൃ ഇന്റർഫേസ് എല്ലാം ചെയ്യുന്നു. ഈ പ്രൊസസർ ഒരു സമയത്ത് പല ജോലികളും നിർവഹിച്ച്, യന്ത്രം ദ്രുതഗതിയിലുള്ള നടപടികൾ എളുപ്പത്തിൽ ചെയ്യാൻ സഹായിക്കുന്നു.

മൾട്ടിടാസ്കിങ്ങ് സിസ്റ്റങ്ങളിൽ, പല ജോലികൾ ഒരേ സമയം ചെയ്യുമ്പോൾ, ചില ജോലികൾ കൂടുതൽ പ്രധാനപ്പെട്ടവ ആയിരിക്കും. അതിനാൽ, ഈ സിസ്റ്റങ്ങൾ പ്രാധാന്യം ഉള്ള ജോലികൾക്ക് കൂടുതൽ സമയം അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, വലിയ പ്രോഗ്രാമുകൾ അല്ലെങ്കിൽ അത്യാവശ്യമായ പ്രവർത്തനങ്ങൾ കൂടുതൽ സിപിയു സമയം ഉപയോഗിച്ച് ദ്രുതഗതിയിൽ പൂർത്തിയാക്കപ്പെടുന്നു. ഓപ്പറേറ്റിങ്‌ സിസ്റ്റത്തിന്റെ അടിസ്ഥാനത്തിൽ, ഒരു ടാസ്‌ക് ആകെ ഒരു ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിന്റെതായിരിക്കും, അല്ലെങ്കിൽ വലിയ പ്രോഗ്രാമിന്റെ ഭാഗങ്ങൾ ചെയ്യുന്നതിന് ചെറിയ ത്രെഡുകൾ (threads) ആയി വിഭജിക്കപ്പെട്ടിരിക്കും(ത്രെഡുകൾ എന്നത് ഒരു പ്രോഗ്രാമിന്റെ ചെറിയ പ്രവർത്തന ഘടകങ്ങളാണ്, ഓരോ ത്രെഡും പ്രോഗ്രാമിന്റെ ഓരോ ഭാഗത്തെ സ്വതന്ത്രമായി പ്രവർത്തിപ്പിക്കും. ഇതിന്റെ ഫലമായി, ഒരേ സമയം നിരവധി കാര്യങ്ങൾ ചെയ്യാൻ കഴിയും). അതായത്, ഒരു പ്രോഗ്രാമിന്റെ ചില ഭാഗങ്ങൾ എങ്ങനെ പ്രവർത്തിക്കും എന്ന് മനസ്സിലാക്കി, അവ തിരിച്ചുകൊണ്ടുള്ള പ്രവർത്തനം പ്രോസസർ വിഭജിച്ചു നടത്തും.

മൾട്ടി ടാസ്കിംഗ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കായി ഉപയോഗിക്കുന്ന പ്രൊസസ്സറുകളിൽ പല ടാസ്കുകളെ സുരക്ഷിതമായി പിന്തുണയ്ക്കുന്നതിനുള്ള പ്രത്യേക ഹാർഡ്‌വെയർ ഉണ്ടായിരിക്കും. ഇതിൽ മെമ്മറി പ്രൊട്ടക്ഷൻ, പ്രൊട്ടക്ഷൻ റിങ്ങുകൾ തുടങ്ങിയ സവിശേഷതകൾ ഉൾപ്പെടുന്നു.  സൂപ്പർവൈസറി സോഫ്റ്റ്‌വെയറിനെ ഉപയോക്തൃ പ്രോഗ്രാമുകൾ പിഴവുകളിൽ നിന്ന് സംരക്ഷിക്കുന്നു.

"മൾട്ടി ടാസ്കിംഗ്" എന്ന പദം ആഗോളതലത്തിൽ ഉപയോഗിക്കുന്ന ഒരു പദമായി മാറി, കാരണം ജർമ്മൻ, ഇറ്റാലിയൻ, ഡച്ച്, റോമാനിയൻ, ചെക്ക്, ഡാനിഷ്, നോർവീജിയൻ എന്നിവിടങ്ങളിലെ പല ഭാഷകളിലും അതേപടി ഉപയോഗിക്കപ്പെടുന്നു.
## മൾട്ടിപ്രോഗ്രാമിംഗ്
കമ്പ്യൂട്ടറിന്റെ ആദ്യകാലങ്ങളിൽ, സിപിയു സമയം വളരെ വിലയേറിയതായിരുന്നു. സിപിയു ഒരു പ്രോഗ്രാമിന്റെ നിർദ്ദേശങ്ങൾ വളരെ വേഗത്തിൽ പ്രവർത്തിപ്പിക്കുന്നതായിരുന്നു, എന്നാൽ പെരിഫറൽ ഉപകരണങ്ങൾ (ഉദാഹരണത്തിന്, പ്രിന്റർ അല്ലെങ്കിൽ ഡിസ്‌ക്) വളരെ മന്ദഗതിയിൽ പ്രവർത്തിക്കുന്നവയായിരുന്നു, അതിനാൽ കമ്പ്യൂട്ടർ ഒരു പ്രോഗ്രാമിൽ നിന്നുള്ള ഡാറ്റ പെരിഫറൽ ഉപകരണത്തിലേക്ക് അയയ്ക്കുമ്പോൾ, സിപിയു ആ സമയം പ്രവർത്തനം മുടക്കി കാത്തിരിക്കേണ്ടിവന്നു. ഇതിന്റെ ഫലമായി, സിപിയു ആവശ്യമായ പ്രവർത്തനങ്ങൾ ചെയ്യാതെ നിർത്തിയിരുന്നു. ഇത് സാധാരണയായി അനാവശ്യമായി സമയ നഷ്ടം ഉണ്ടാക്കുകയും ചെയ്തിരുന്നു. മൾട്ടി പ്രോഗ്രാമിങ്ങ് എന്നത്, ഒരേ സമയം പല പ്രോഗ്രാമുകളും കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്ത് പ്രവർത്തിപ്പിക്കാൻ സഹായിക്കുന്ന ഒരു രീതി ആണ്. ഇതിലൂടെ സിപിയുവിന്, പ്രോഗ്രാമുകൾക്കിടയിൽ വേഗത്തിൽ മാറി പ്രവർത്തിക്കാൻ സാധിക്കുന്നതാണ്.
ഇത് മൂലം സി.പി.യു കൂടുതൽ കാര്യക്ഷമമായി ഉപയോഗിക്കാൻ സഹായിക്കുന്നു, കാരണം പ്രോഗ്രാമുകൾ ഐ/ഒ (ഇൻപുട്ട്/ഔട്ട്പുട്ട്) പ്രവർത്തനങ്ങൾ പൂർത്തിയാക്കാൻ കാത്തിരിക്കുമ്പോൾ, സി.പി.യു മറ്റു ജോലികൾ ചെയ്യാനായി ഉപയോഗിക്കും.

ബുൾ ഗാമ 60, 1960-ൽ പുറത്തിറങ്ങിയ ആദ്യകാല കമ്പ്യൂട്ടറായിരുന്നു, ഇത് ഒരു സമയത്ത് പല പ്രോഗ്രാമുകളും പ്രവർത്തിപ്പിക്കാൻ സാധ്യമാക്കുന്ന രീതിയിൽ രൂപകൽപ്പന ചെയ്യപ്പെട്ടിരുന്നു. അതിന്റെ പ്രത്യേകത, 25 പ്രോസസ്സിംഗ് യൂണിറ്റ് പ്രോഗ്രാമുകളും ഡാറ്റയും ലഭിക്കുന്നതിന് ഒരു കേന്ദ്ര മെമ്മറി ഉണ്ടാക്കുകയും, അത് ഉപയോഗിച്ച് ഒരേ സമയം പല ജോലികളും ചെയ്യാനാകുന്നു. ഇതിന് ശേഷം കമ്പ്യൂട്ടർ സിസ്റ്റങ്ങൾ കൂടുതൽ ഫലപ്രദമായി ഒരേ സമയം കൂടുതൽ പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കാൻ കഴിയുമെന്ന് വന്നു.

ലിയോ III, 1961-ൽ പുറത്തിറങ്ങിയ മറ്റൊരു കമ്പ്യൂട്ടർ പ്രവർത്തിക്കുമ്പോൾ, പല പ്രോഗ്രാമുകളും ഒരു സമയത്ത് പ്രവർത്തിപ്പിക്കാൻ സിസ്റ്റം രൂപകൽപ്പന ചെയ്തിരുന്നു. ഒരു പ്രോഗ്രാമിന്റെ പ്രവർത്തനം ഒരുപക്ഷേ ഐ/ഒ ഉപകരണങ്ങൾ (പെരിഫറൽ) ഉപയോഗിച്ച് കാത്തിരിക്കുമ്പോൾ, അത് സിപിയു ഉപയോഗിച്ചുകൊണ്ട് മറ്റൊരു പ്രോഗ്രാമിന്റെ പ്രവർത്തനത്തിന് അവസരം നൽകും. ഇതിലൂടെ ഒരു പ്രോഗ്രാമും നഷ്ടപ്പെടാതെ, എല്ലാ പ്രോഗ്രാമുകളും സമയം പൂർത്തിയാക്കാൻ കഴിയും.

വെർച്വൽ മെമ്മറി വെർച്വൽ മെഷീൻ സാങ്കേതികവിദ്യകളുടെ ഉപയോഗം, മൾട്ടി പ്രോഗ്രാമിങ്ങിനെ കൂടുതൽ കാര്യക്ഷമമാക്കാൻ സഹായിച്ചു. ഓരോ പ്രോഗ്രാമും അതിന്റെ പ്രവർത്തനത്തിന് വേണ്ട മെമ്മറിയും സിസ്റ്റം വിഭവങ്ങളും മറ്റുള്ള പ്രോഗ്രാമുകൾ ഇല്ലാത്തപോലെ ഉപയോഗിക്കാൻ കഴിയും. അതായത്, ഒരു പ്രോഗ്രാമിന് മറ്റുള്ളവയെ ബാധിക്കാതെ തന്നെ പ്രവർത്തിക്കാൻ സാധിക്കും. ഇതു വഴി ഓരോ പ്രോഗ്രാമും എളുപ്പത്തിൽ പ്രവർത്തിക്കാനും, സിസ്റ്റം കൂടുതൽ ഫലപ്രദമായി പ്രവർത്തിക്കാനും കഴിഞ്ഞു.

മൾട്ടി പ്രോഗ്രാമിങ്ങ് ഒരേ സമയം നിരവധി പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കാൻ കഴിയും, എന്നാൽ ഓരോ പ്രോഗ്രാമും നിശ്ചിത സമയത്തിനുള്ളിൽ പ്രവർത്തനം പൂർത്തിയാക്കുമെന്ന് ഗാരണ്ടി നൽകുന്നില്ല. ഉദാഹരണത്തിന്, ഒരു പ്രോഗ്രാമിന് പെരിഫറലുകൾ ആവശ്യപ്പെടുന്നില്ലെങ്കിൽ(പെരിഫറലുകൾ (Peripherals) എന്നത് കമ്പ്യൂട്ടറിന്റെ പ്രധാന ഭാഗങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കുന്ന ഉപകരണങ്ങളാണ്. ഉദാഹരണത്തിന്, പ്രിന്റർ, കീബോർഡ്, മൗസ്, ഡിസ്ക് ഡ്രൈവ് എന്നിവയും പെരിഫറലുകളിൽ പെടുന്നു) സിപിയുവിന് തടസ്സം കൂടാതെ നീണ്ട സമയം പ്രവർത്തിക്കാൻ കഴിയും, കാരണം ഇത് മറ്റൊരു ഉപകരണത്തിൽ നിന്നുള്ള ഡാറ്റയ്ക്ക് കാത്തിരിക്കേണ്ട ആവശ്യമില്ല. ഉപയോക്താവ് പഞ്ച് കാർഡുകൾ കമ്പ്യൂട്ടർ ഓപ്പറേറ്റർക്ക് കൈമാറുന്നു. ആ ഓപ്പറേറ്റർ കാർഡുകൾ കമ്പ്യൂട്ടറിലേക്ക് അയച്ച് പ്രോസസ്സ് ചെയ്യുന്നു. പല പ്രോഗ്രാമുകൾ ഒരേ സമയം പ്രവർത്തിപ്പിക്കുന്നതിന് മൾട്ടി പ്രോഗ്രാമിങ്ങ് ഗുണകരമായി, കാത്തിരിപ്പിന്റെ സമയം കുറച്ചു.
## കോ-ഓപ്പറേറ്റീവ് മൾട്ടിടാസ്കിംഗ്
പഴയ കാല മൾട്ടിടാസ്ക്കിംഗ് കമ്പ്യൂട്ടറുകളിൽ, ഓരോ പ്രോഗ്രാമുകളും മാറി മാറി മറ്റുള്ളവയ്ക്ക് പ്രവർത്തിക്കാനുളള അവസരം കൊടുക്കുകയായിരുന്നു. ഇതിനെ കോ-ഓപ്പറേറ്റീവ് മൾട്ടിടാസ്ക്കിംഗ് എന്ന് വിളിക്കുന്നു. ആദ്യം മൈക്രോസോഫ്റ്റ് വിൻഡോസും ക്ലാസിക് മാക് ഒ.എസും ഇതേ രീതിയിലാണ് ഒരേ സമയം പല പ്രോഗ്രാമുകളും പ്രവർത്തിപ്പിച്ചത്. ഇന്നത്തെ സാങ്കേതികവിദ്യയിൽ ഇത് വിരളമാണെങ്കിലും, റിസക് ഒഎസ്(RISC OS) സിസ്റ്റങ്ങൾ ഇപ്പോഴും ഈ രീതിയിൽ പ്രവർത്തിക്കുന്നു.

കോ-ഓപ്പറേറ്റീവ് മൾട്ടിടാസ്ക്കിംഗ് സിസ്റ്റത്തിൽ, ഓരോ പ്രോഗ്രാമും മറ്റുള്ളവയ്ക്ക് സമയം നൽകുന്ന രീതിയിലാണ് പ്രവർത്തനം. പക്ഷേ, തെറ്റായി തയ്യാറാക്കിയ ഒരു പ്രോഗ്രാം എല്ലാകാലവും സിപിയു കൈക്കലാക്കിയാൽ, മറ്റൊരു പ്രോഗ്രാമിനും പ്രവർത്തിക്കാനാകില്ല, ഇതുവഴി സിസ്റ്റം നിലയ്ക്കും. സെർവറുകളിലോ മറ്റ് പ്രധാനപ്പെട്ട കംപ്യൂട്ടറുകളിലോ ഇത് പൂർണ്ണ തകരാറിന് കാരണമാകാം, ഒന്ന് വീണാൽ എല്ലാം തകർന്നുപോകുന്ന പോലെ.

## അവലംബം