ഇൻപുട്ട് ഔട്ട്പുട്ട്

വിവരസാങ്കേതിക മേഖലയിൽ കമ്പ്യൂട്ടർ പോലുള്ള ഉപകരണങ്ങളിൽ പുറം ലോകവുമായി പരസ്പരം ആശയം കൈമാറാനുപയോഗിക്കുന്ന ഉപാധിയാണ് **ഇൻപുട്ട്/ഔട്ട്‌പുട്ട്** അഥവ ഐ‌ഒ (IO) എന്നറിയപ്പെടുന്നത്.  ഉപകരണത്തിനു ലഭിക്കുന്ന വിവരങ്ങളാണ് ഇൻപുട്ട് എന്നറിയപ്പെടുന്നത്. വിവരശേഖരണം നടന്നു കഴിഞ്ഞാൽ വിവിധ പ്രക്രിയകൾ വഴി അതിനെ വിശകലനം ചെയ്തു കിട്ടുന്ന വിവരമാണ് ഔട്ട്‌പുട്ട് എന്നു വിളിക്കുന്നത്. വിവരങ്ങൾ  നൽകാനും, വിശകലനശേഷം തിരികെ ലഭിക്കാനും മറ്റുചില ഉപകരണങ്ങളും ഇതിനാവശ്യമാണ്. കമ്പ്യൂട്ടറുമായി ആശയവിനിമയം നടത്തുവാനായി ഉപയോഗിക്കുന്ന ഉപകരണങ്ങളാണ് ഐ/ഒ ഉപകരണങ്ങൾ. കീബോർഡും മൗസും കമ്പ്യൂട്ടറിന്റെ ഇൻപുട്ട് ഉപകരണങ്ങളാണ്. നെറ്റ്‌വർക്കിങ് ഉപകരണങ്ങളായ മോഡം, നെറ്റ്‌വർക്ക് കാർഡുകൾ എന്നിവ ഇൻപുട്ട്, ഔട്ട്‌പുട്ട് പ്രവർത്തനങ്ങൾ ഒരുമിച്ചു നടത്തുന്നു.  കമ്പ്യൂട്ടർ സ്ക്രീനുകൾ, പ്രിന്ററുകൾ, സ്പീക്കറുകൾ തുടങ്ങിയവ പ്രധാനപ്പെട്ട ഔട്ട്‌പുട്ട് ഉപകരണങ്ങളാണ്.

മൗസും കീബോർഡുകളും ഉപയോക്താവ് പുറപ്പെടുവിക്കുന്ന ശാരീരിക ചലനങ്ങൾ എടുക്കുകയും അവയെ കമ്പ്യൂട്ടറിന് മനസ്സിലാക്കാൻ കഴിയുന്ന ഇൻപുട്ട് സിഗ്നലുകളായി പരിവർത്തനം ചെയ്യുകയും ചെയ്യുന്നു; ഈ ഉപകരണങ്ങളിൽ നിന്നുള്ള ഔട്ട്‌പുട്ട് കമ്പ്യൂട്ടറിന്റെ ഇൻപുട്ടാണ്. അതുപോലെ, പ്രിന്ററുകളും മോണിറ്ററുകളും ഒരു കമ്പ്യൂട്ടർ ഇൻപുട്ടായി നൽകുന്ന സിഗ്നലുകൾ എടുക്കുന്നു, മാത്രമല്ല അവ ഈ സിഗ്നലുകളെ ഉപയോക്താക്കൾക്ക് മനസ്സിലാക്കാൻ കഴിയുന്ന തരത്തിൽ പരിവർത്തനം ചെയ്യുന്നു. ഉപയോക്താവിന്റെ വീക്ഷണകോണിൽ, ഇവ വായിക്കുന്നതോ കാണുന്നതോ ആയ പ്രക്രിയയ്ക്ക് ഔട്ട്പുട്ട് ലഭിക്കുന്നു; കമ്പ്യൂട്ടറുകളും മനുഷ്യരും തമ്മിലുള്ള ഇത്തരത്തിലുള്ള ഇടപെടൽ മനുഷ്യ-കമ്പ്യൂട്ടർ ആശയവിനിമയം സാധ്യമാക്കുന്നു.

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

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

## അവലംബം
വർഗ്ഗം:കമ്പ്യൂട്ടറുകൾ