Оролт гаралт

Оролт гаралт буюу Input/Output, IO нь компьютер болон гадны өөр төхөөрөмж (өөр компьютер, дагалдах төхөөрөмж, эсвэл хүн гэх мэт) хоорондын холбоо юм. Оролт нь тухайн компьютерийн хүлээж авах өгөгдөл эсвэл дохио, гаралт нь тус компьютераас илгээж буй өгөгдөл, дохиог хэлнэ.

Зохицуулах аргачлалууд:
Channel I/O
Memory-mapped I/O

Оролт гаралтын төхөөрөмж
Оролтын төхөөрөмж гэдэг нь боловсруулах төхөөрөмжид ямарваа нэгэн өгөгдлийг оруулах үйлдэл хийдэг төхөөрөмж юм. Гаралтын төхөөрөмж гэдэг бол таны оруулсан өгөгдлийг дүрс,дуу авиа,текст хэлбэрээр таньд хүргэх үйлдэл хийдэг төхөөрөмж юм. Түүнчлэн оролт гаралтын төхөөрөмж нь одоо үед бидний хэрэглээ болсон компьютерийн бүтцийн нэг томоохон хэсэг нь болдог билээ. Яагаад томоохон хэсэг болж байна вэ гэвэл компьютерийн бүтэц нь Төв Процессорын Байгууламж, Үндсэн санах ой, түгээгүүр (bus), оролт гаралтын төхөөрөмж (input and output devices) гэсэн хэсэгүүдээс тогтох бөгөөд боловсруулах төхөөрөмж болох Төв Процессорын Байгууламж нь гаднаас бидний боловсруулахыг хүссэн өгөгдлийг оролтын төхөөрөмжөөс авч, гаралтын төхөөрөмж дээр хүнд ойлгох боломжтой болгон дүрслэн харуулдаг.

Компьютерийн үндсэн хоёр үйлдэл нь оролт гаралт ба тооцоололт юм. Үйлдлийн систем нь Оролт гаралтын үйлдэл ба төхөөрөмжүүдийг удирдах, хянах ажилыг гүйцэтгэдэг. Компьютерт маш олон төрлийн оролт гаралтын төхөөрөмжүүд ашигладаг ба тэдгээрийг оновчтойгоор удирдах нь компьютерийн систем зохион бүтээгчдэд маш их хүндрэл учруулдаг. Компьтерийн хурд сүүлийн хэдэн жилд, жил бүр 50% - 80%- оор нэмэгдэж байна. Гэтэл Оролт гаралтын төхөөрөмжийн хурд жилээс жилд 5% орчмоор л нэмэгдэж байна. Amdahl-ийн хуулиар "системийн ажиллах хурд нь уг системийн хамгийн удаан бүрдэл хэсгийн хурдаар тодорхойлогдно".

Компьютерт маш олон төрлийн оролт гаралтын төхөөрөмж байдаг. Үйлдлийн системийн кодын томоохон хэсэг нь оролт гаралтыг зохицуулахад хэрэглэгддэг. Компьютерийн системийн ерөнхий ач холбогдолын бүрэлдэхүүнд СРU ба олон төхөөрөмжийн удирдлага тэдгээрийн шууд холболтын энгийн түгээгүүр хэрэг болдог. Ямар нэгэн удирдлагын төхөөрөмж нь тодорхой төрлийн төхөөрөмжийг цэнэглэдэг. Удирдлагын хамаарал, энэ нь хавсралт төхөөрөмжөөс олон тооны байдаг. Жишээ татахад 6 болон түүнээс олон төхөөрөмж жижиг Компьютерийн системийн зохион байгуулалтын удирдлагыг ажиллуулж чаддаг. Оролт гаралтын үйлдэл эхэлхэд, төхөөрөмж таниулагч тохиромжтой  Регистрийг төхөөрөмжийн удирдлага руу ачаалладаг. Ерөнхий буфферийн өгөгдлөөс төхөөрөмж рүү шилжсэн шилжилтийг удирдлага эхлүүлдэг. Тасалдал удирдагч оролт гаралт нь жижиг хэмжээтэй өгөгдөлтэй зохицож чаддаг гэвч дискний оролт гаралт шиг ажиллаж чаддаг том хэмжээтэй өгөгдөлийг өндөр түвшинд боловсруулж чаддаг.

Оролт гаралтын төхөөрөмжтэй холбоотой ойлголт:
Харьцах объкет – Хүн буюу машинтай харьцах эсвэл дэд системүүдийг холбох зэрэгт оролт гаралтын төхөөрөмжийг ашигладаг.
Мэдээлэл дамжуулах хурд – Гар буюу хулгана нь маш бага хурдтайгаар мэдээлэл дамжуулдаг (секундэд хэдэн арван байт) бол график карт, gigabit Ethernet (гитабитийн сүлжээ) зэрэг нь секундэд хэдэн сая байт мэдээлэл дажуулдаг. 
Ашиглах програм хангамж – Төхөөрөмжийг удирдах, харьцах програм хангамж нь төхөөрөмж бүрд ялгаатай байдаг. Гар буюу хулганыг удирдах програм хангамж нь энгийн байхаас гадна үйлдлийн системд бага зэрэглэлтэй байхад (ашиглах давтамж багатай тул) харин график карт, өндөр хурдтай сүлжээний төхөөрөмжүүдийг удирдах програм хангамж нь үйлдлийн системд маш өндөр зэрэглэлтэй байдаг. 

Үйлдлийн систем нь Оролт гаралтын төхөөрөмжтэй харьцахын тулд уг төхөөрөмжийн удирдлагын регистрт удирдлагын мэдээлэлийг бичих эсвэл унших уг төхөөрөмжийн хаягаас мэдээлэлийг унших эсвэл бичих аргаар харьцана. Зарим Оролт гаралтын төхөөрөмжийн үндсэн санах ойн нэг хэсэг байдлаар хаягладагийг (memory mapping буюу санах ойн хаяглалт) тэмдэглэн хэлэх нь зүйтэй. Үүнд төхөөрөмжийн санах ойг үндсэн санах ойн нэг хэсэг болгон хаяглах эсвэл удирдлагын регистрүүдийг үндсэн санах ойн нэг хэсэг болгон хаяглах нь төхөөрөмж үйлдлийн системээс шалтгаалдаг.

Interlock
Зарим тохиолдолд санах ой дахь хуудсуудыг түгжих шаардлагатай байдаг учир нь хуудсууд нь хуудаслагдаагүй байдаг.

Жишээ нь: Оролт гаралтын үйлдэл-хүрээ нь солигдох шаардлагагүй бичигдэхээр төлөвлөгдсөн оролт гаралтын төхөөрөмж рүү орох Оруулж ирсэн шинэ хуудас - хараахан хандагдаагүй болон тодорхойлогдоогүй учир хуудсыг солих шаардлагатай.

Шаардлагатай хуудаслалт ашиглагдсан үед санах ойд зарим хуудсуудыг түгжих хэрэгтэй болдог. Энэхүү нөхцөл нь виртуал санах ойд эсвэл ойгоос оролт гаралт хийгдсэн үед үүсдэг. Оролт гаралт нь ихэвчлэн оролт гаралтын тусгай процессороор хэрэгжүүлэгддэг. Жишээлбэл: USB хадгалах төхөөрөмжийн контроллер нь ерөнхийдөө буфферт зориулсан санах ойн хаяг болон дамжуулах байтын дугаарыг олгодог. Дамжуулалт бүрэн хийгдсэн үед CPU түүнийг таслана. Процесс нь оролт гаралтын хүсэлт илгээж, оролт гаралтын төхөөрөмжид дараалал илгээнэ. Энэ хооронд CPU өөр процессуудыг жагсаана. Процессууд нь хуудасны алдаанаас болж хүлээгдэж буй процесст санах ойн буфферт агуулагдах хуудсийг солино. Хуудсууд хуудаслагдаж дуусна.

Заримдаа оролт гаралтын хүсэлт нь төхөөрөмжийн дарааллийн оройд нэмэгдэхэд оролт гаралт нь заагч хаягийг үзүүлнэ. Гэсэн хэдий боловч хүрээ нь бусад процесст харьяалагдаж буй өөр хуудаст ашиглагдсаар байна. Энэхүү асуудлыг шийдвэрлэхэд хоёр төстэй арга байна. Үүнд: Хэрэглэгчийн санах ойд оролт гаралтыг биелүүлэхгүй байх. Оронд нь өгөгдөлийг системийн санах ой болон хэрэглэгчийн санах ойн хооронд хуулах. Оролт гаралт нь зөвхөн системийн санах ой болон оролт гаралтын төхөөрөмжийн хооронд явагдана. Соронзон туузанд блокийг бичихэд эхлээд блокыг системийн санах ой руу хуулаад дараа нь соронзон туузанд бичнэ. Энэхүү нэмэлт хуулалтын үр дүн нь илүү ашиггүй зардалыг бий болгоно. Нөгөө арга нь санах ой руу түгжигдэх хуудсыг зөвшөөрөх. Үүнд түгжээний бит хүрээ болгонтой холбогдоно. Хэрэв хүрээ цоожлогдвол сонгогдож эсвэл солигдох боломжгүй болно. Энэ аргын дагуу соронзон туузанд блокыг бичихэд түгжигдсэн хуудсыг агуулж буй санах ой руу түгжих хэрэгтэй болно. Ингээд систем хэвийн үргэлжилнэ. Түгжигдсэн хуудсуудыг солих боломжгүй. Оролт гаралт бүрэн дууссан үед хуудсуудын түгжээ үгүй болно. Түгжээний битүүд олон төрлийн төлөвт хэрэглэгдэнэ. Олонхи үйлдлийн системд кернелээс үүдэлтэй хуудасны алдаа гардаг учир зарим эсвэл бүх үйлдлийн системийн кернел нь санах ойд түгжигдсэн байдаг. Түгжээний бит нь энгийн хуудас солилтын үед хэрэглэгдэнэ. Доорх дараалсан байдлыг авч үзвэл: Бага зэрэглэлтэй процесс алдаа заана. Солилтын хүрээг сонгож хуудаслалтын систем санах ой руу шаардлагатай хуудсыг уншина. Үргэлжлүүлэхдээ бэлдэн, бага зэрэглэлтэй процесс дараалалд орохдоо бэлдэн CPU г хүлээнэ. Бага зэрэглэлтэй процессээс хойш CPU-н цаг төлөвлөгчөөр сонгогдоогүй байж болно. Бага зэрэглэлтэй процесс хүлээгдэж байх зуур өндөр зэрэглэлтэй процесс гачигдана. Түгжээний битийг ашиглах нь аюултай байж болно. Үүнийг асааж болох боловч хэзээ ч унтрааж болдоггүй. Үүнээс үүдэн түгжигдсэн хүрээ хэрэглэж болохооргүй болох аюултай.

Ангилал:Үйлдлийн систем