Kiritish/chiqarish dasturiy ta’minoti Kiritish/chiqarish dasturiy ta’minotini ishlab chiqish
konsepsiyasi qurilmadan mustaqilligi bilan ma’lum. Bu konsepsiya
aniq bir qurilmani ko‘rsatmasdan turib istalgan kiritish/chiqarish
qurilmasiga kirishga ruhsat olish yo‘llari yozilgan dastur
imkoniyatlarini bildiradi. Kiruvchi fayldagi m a’lumotlarni o‘quvchi
dastur disket, qattiq disk yoki kompakt-diskdagi fayllar bilan bir xil
ishlay olishi kerak. Aynan nimaga dasturda hech qanday
o‘zgarishlarsiz, masalan, quyidagiga o‘xshash buyruqlarni bajarish
uchun kerak
sort output
Bu buyruq kiritish qurilmalari sifati - yumshoq disk, IDEdisk,
SCSIdisk yoki klaviaturalar bilan ishlay olishi kerak. Chiqarish
qurilmasi sifatida xam ekran, diskdagi istalgan fayl yoki printer bilan
bir xil ishlay olishi kerak. Asosiy muammo operatsion tizim yechishi
kerak bo‘lgan ushbu qurilmalar bilan bog‘lanishlarning farqli
ekanligidadir. Fayl nomi yoki qurilma sodda matn qatoridan yoki
butun qiymat va fizik qurilmaga bog‘liq bo‘lmagan ko‘rinishga ega
bo‘lishi kerak.
Kiritish/chiqarish qurilmasining boshqa bir muhim jihatlari
xatolarni qayta ishlashida. Xatolar apparaturaga yaqin k o‘rinishda
qayta ishlanishi mumkin. Agar kontroller o‘qish jarayonida xatolikni
aniqlasa, u bu xatoni o‘zi o‘zgartirish imkoniyatlari asosida xarakat
qilib ko‘rishi kerak. Agar buni bajarishga uni ku chi yetmasa, u holda
qurilma drayverda qayta ishlanishi kerak. Ko‘pincha xatolar
vaqtinchalik bo‘lishi mumkin. Masalan, o‘quvchi moslamadagi
changni chiqishi tufayli xato o‘qishi. Bunday xatolar blokni takroran
o‘qish jarayonida sodir bo‘lmaydi. Faqat agar past pog‘onada
muammo paydo bo‘lsa bu haqda yuqori pog‘onaga axborot beradi.
Ko‘p holatlarda xatodan so‘ng qayta tiklangandan yuqori pog‘ona
uchun aniq bo‘lgan past pog‘onada qilish afzal ko‘riladi, unda mavjud
uzilishlar haqida yuqori pog‘ona xabardor bo‘lmasligi ham mumkin
bo‘ladi.
Yana bir kalit so‘z - ma’lumotlarni uzatish usuli: asinxronga
(to‘xtalishlarni boshqarish) teskari sinxronli (bloklovchi). Fizik
pog‘onada kiritish/chiqarish ko‘plab operatsiyalari asinxronli
(markaziy protsessor ma’lumotlar uzatishni boshlaydi va to‘xtalish
bo‘lmagunga qadar unga e’tibor bermaydi) bo‘ladi. Foydalanuvchi
dasturlarini kiritish/chiqarish operatsiyalarini q o‘llaydigan (chaqiriq
tizimiga murojaat qilingandan so‘ng receive dasturi buferda
ma’lumotlar paydo bo‘lmagunga qadar avtomatik to‘xtatadi) dasturni
yozish sezilarli darajada oson. Kiritish/chiqarish operatsiyasi uchun
asinxronli, foydalanuvchi dasturi uchun esa operatsion tizimda
ishlaydigan bloklovchi bo‘ladi.
Kiritish/chiqarish dasturiy ta’minoti haqida gapirganda
buferlashgae’tibor berish kerak bo‘ladi. Ma’lumotlar ko‘pincha
qurilmadan kelib tushadi, u oxirgi nuqtasiga darrov saqlashning
imkoniyati yo‘q. Masalan, paket tarmoq orqali kelganda, operatsion
tizim bu paket nimaga kerakligini o‘rganib chiqmaguncha uni qayerga
joylashtirishni bilmaydi. Bundan tashqari, real vaqtda ishlaydigan
boshqa ko‘plab qurilmalar uchun ma’lumotlarni kelib tushish
muddatini ko‘rsatuvchi parametrlar muhim hisoblaniladi (masalan,
raqamli ovozni qayta tiklovchi qurilmalar), shu sababli qabul qilib
olingan ma’lumotlar buferni to‘ldirish tezligiga bog‘liq bo‘lmagan,
ovoz chiqaruvchi buferdan chiqarib olishda tezlik uchun avvaldan
chiquvchi buferda joylashtiriladi. Buferlashda sezilarli miqdorda
ma’lumotlarni ko‘chirishi nazarda tutiladi. Ko‘pincha
kiritish/chiqarish operatsiyasini samarodoligini pasaytiruvchi omil
sifatida ko‘riladi.
Bu tushuncha so‘ngida ajratish qurilmasi va qismlarga bo‘lish
qurilmalari bo‘ladi. Diskga o‘xshash ba’zi kiritish/chiqarish
qurilmalari ko‘p sonli foydalanuvchilar bilan bir vaqtda ishlay olishi
mumkin. Shu sababli bir nechta foydalanuvchilar bitta diskda bitta
faylni ochganda muammo paydo b o‘lmasligi kerak. Magnit tasmali
tarqatgich kabi boshqa qurilmalar ushbu qurilmada u
yakunlanmagunga qadar bir foydalanuvchilik bo‘ladi. Agar bir
vaqtning o‘zida ikki va undan ortiq foydalanuvchilar bitta tasmaga
aralash bloklarni yozishsa, yaxshi narsa olinmaydi. Ajratilgan
(monopol foydalaniladigan) qurilmasi birgalikda bloklash kabi
muammolarni keltirib chiqaradi. Operatsion tizim qismlarga ajratish
va ajratilgan qurilmalarini boshqarish va turli xil muammolarni
mustaqil yecha olishi kerak.
Bu muammolarni hal qilish uchun kiritish/chiqarish dasturiy
ta’minotini to‘rtta pog‘onaga ajratiladi:
To‘xtalishlarni qayta ishlovchi (past pog‘ona);
Qurilma drayveri;
Apparatura kodidan mustaqil operatsion tizimlar;
Foydalanuvchi dasturlari (yuqori pog‘ona).