Aksariyat kiritish-chiqarish qurilmalari protsessorga qaraganda sekinroqdir. Har bir kiritish/chiqarish ma'lumotlarini uzatishni sinxronlashtirish uchun I/U qurilmasining qo'l siqish chiziqlaridan foydalanish kerak. Har bir kiritish-chiqarish qurilmasi ma'lumotlarni uzatishga tayyor bo'lganda apparatning qo'l siqish chizig'ini (ya'ni, kirish tayyor, chiqish tayyor) belgilaydi. Har bir yangi ma'lumotni kiritish-chiqarish qurilmasi ma'lumotlar portiga o'tkazishdan oldin, protsessor yoki boshqa jihozlar qurilmaning qo'l siqish chizig'ini o'qish va tekshirish orqali I/U qurilmasi tayyorligini tekshirishi kerak. Qo'l siqish liniyasi bitlari odatda holat porti deb ataladigan boshqa I/U portiga ulanadi. Odatda, qurilma holati porti ma'lumotlar kiritish-chiqarish portidan keyingi kirish/chiqarish manziliga ega (bu manzil dekoder uskunasini ham saqlaydi, chunki u bir nechta ketma-ket manzillar bilan bo'lishishi mumkin). Uchta asosiy yondashuv mavjud ma'lumotlarni kiritish-chiqarish qurilmalariga uzatish uchun ishlatiladi. Bular dasturlashtiriladigan kiritish-chiqarish (shuningdek, so'ralgan yoki dasturiy ta'minot bilan boshqariladigan kiritish-chiqarish deb ataladi), uzilishlar bilan boshqariladigan kiritish-chiqarish va to'g'ridan-to'g'ri xotiraga kirish (DMA). Ularning har birida apparat/dasturiy taʼminotning bir-biridan farqi va talablari mavjud.
Dasturiy ta'minot bilan boshqariladigan kiritish-chiqarish transferlari
To'g'ridan-to'g'ri xotiraga kirishga (DMA) asoslangan kiritish-chiqarish transferlari Qurilmadan mustaqil kiritish-chiqarish va fayllar uchun OS qo'llab-quvvatlaydi
Dasturlashtiriladigan kiritish-chiqarishda protsessor har qanday ma'lumotlarni uzatishdan oldin kiritish-chiqarish tayyor bitlarini to'g'ri qiymatga o'qishi va solishtirishi kerak. Buning uchun holat portini o'qish, tayyor bitni bit bo'yicha VA (C da "&") bilan maskalash, tayyor bitning to'g'ri qiymatini tekshirish va 2.2 -misolda ko'rsatilganidek, qurilma tayyor bo'lgunga qadar aylanish kerak .
// =1 chiqishga tayyor bo'lgunga qadar aylanish
qil {
status = read_IO_port (status_port_IO_manzil);
output_ready = holat & 0x01;
}
while (output_ready == 0);
// bajarildi, shuning uchun yangi ma'lumotlar qiymatini chiqaring
write_IO_port(ma'lumotlar_port_IO_manzili, ma'lumotlar_qiymati);
2.2. Dasturlashtiriladigan kiritish-chiqarish chiqish protsedurasi psevdokodi. Dastur kodi doimiy ravishda holat porti orqali aylanishi va yangi ma'lumotlar qiymatini chiqarishdan oldin chiqish tayyor bitni kutishi kerak.
Qurilma tayyor bo'lgach, protsessor ma'lumotlar qiymatini kiritish yoki chiqarish qurilmasiga kiritadi yoki chiqaradi. Protsessor ma'lumotlar portini o'qiganda yoki yozganda, qo'l siqish chizig'i odatda apparat tomonidan nolga qaytariladi.
Bunday yondashuv odatda bir nechta kiritish-chiqarish moslamalari bo'lgan oddiy tizimlar bilan chegaralanadi, chunki barcha kiritish-chiqarish qurilmalarining tayyor bitlarini tekshirish uchun dasturiy ta'minot bo'ylab doimiy ravishda aylanishi kerak bo'lgan katta protsessor yuki mavjud. Ko'pgina hollarda, bu protsessorning quvvatni tejash rejimlariga kirishiga ham to'sqinlik qiladi, bu batareya bilan ishlaydigan qurilmalar uchun muhim e'tibordir. Ko'p vazifali operatsion tizimlar, odatda, kiritish/chiqarish uchun protsessorni kamroq talab qiladigan va boshqa jarayonlar uchun protsessor vaqtini bo'shatgan boshqa usullardan foydalanadi.