21-Ma’ruza. Kompyuter tizimida ma’lumotlarni kiritish-chiqarish tizimini tashkil etish. Kontrollerlar Reja
Download 21.62 Kb.
|
21-Ma’ruza. Kompyuter tizimida ma’lumotlarni kiritish-chiqarish tizimini tashkil etish. Kontrollerlar Reja: 1. K/CH qurilmalarining jismoniy tashkil etilishi 2. K/CH dasturiy ta'minotini tashkil etish 3. Maxsus dasturiy ta'minot qatlami OTning asosiy vazifalaridan biri kompyuterning barcha kiritish-chiqarish qurilmalarini boshqarishdir. OT buyruqlarni qurilmalarga uzatishi, uzilishlarni ushlab turishi va xatolarni boshqarishi kerak; shuningdek, qurilmalar va tizimning qolgan qismi o'rtasida interfeysni ta'minlashi kerak. Rivojlanish maqsadlarida interfeys barcha turdagi qurilmalar uchun bir xil bo'lishi kerak (qurilma mustaqilligi). K/CH qurilmalarining jismoniy tashkil etilishi Kirish-chiqarish qurilmalari ikki turga bo'linadi: blokga yo'naltirilgan qurilmalar va baytga yo'naltirilgan qurilmalar. Blokka yo'naltirilgan qurilmalar ma'lumotni har biri o'z manziliga ega bo'lgan qat'iy o'lchamli bloklarda saqlaydi. Eng keng tarqalgan blok yo'naltirilgan qurilma diskdir. Baytga yo'naltirilgan qurilmalar manzilli emas va qidiruv operatsiyasiga ruxsat bermaydi; ular baytlar ketma-ketligini hosil qiladi yoki iste'mol qiladi. Masalan, terminallar, chiziqli printerlar, tarmoq adapterlari. Biroq, ba'zi tashqi qurilmalar hech qanday sinfga tegishli emas, masalan, soat, bir tomondan, manzilga ega emas, ikkinchi tomondan, baytlar oqimini hosil qilmaydi. Ushbu qurilma faqat vaqti-vaqti bilan uzilish signalini chiqaradi. Tashqi qurilma odatda mexanik va elektron komponentdan iborat. Elektron komponent qurilma boshqaruvchisi yoki adapter deb ataladi. Mexanik komponent haqiqiy qurilmani ifodalaydi. Ba'zi kontrollerlar bir nechta qurilmalarni boshqarishi mumkin. Agar tekshirgich va qurilma o'rtasidagi interfeys standartlashtirilgan bo'lsa, u holda mustaqil ishlab chiqaruvchilar mos keluvchi kontrollerlar va qurilmalarni ishlab chiqarishi mumkin. Operatsion tizim odatda qurilma bilan emas, balki boshqaruvchi bilan shug'ullanadi. Tekshirish moslamasi odatda oddiy funktsiyalarni bajaradi, masalan, bit oqimini bayt bloklariga aylantirish, xatolarni kuzatish va tuzatish. Har bir kontroller markaziy protsessor bilan aloqa qilish uchun ishlatiladigan bir nechta registrlarga ega. Ba'zi kompyuterlarda bu registrlar jismoniy manzil maydonining bir qismidir. Bu kompyuterlarda maxsus kiritish-chiqarish operatsiyalari mavjud emas. Boshqa kompyuterlarda ko'pincha portlar deb ataladigan kiritish-chiqarish registr manzillari maxsus kiritish-chiqarish operatsiyalarini kiritish orqali o'zlarining manzil maydonini tashkil qiladi (masalan, i86 protsessorlarida IN va OUT buyruqlari). OT boshqaruvchi registrlarga buyruqlar yozish orqali kiritish-chiqarishni amalga oshiradi. Masalan, IBM PC disket boshqaruvchisi READ, WRITE, SEEK, FORMAT va boshqalar kabi 15 ta buyruqni qabul qiladi. Buyruq qabul qilinganda protsessor kontrollerni tark etadi va boshqa ishlarni bajaradi. Buyruq tugagach, boshqaruvchi protsessorni boshqarishni operatsion tizimga o'tkazish uchun uzilishni tashkil qiladi, bu operatsiya natijalarini tekshirishi kerak. Protsessor natijalar va qurilma holatini tekshirgich registrlaridagi ma'lumotlarni o'qish orqali oladi. K/CH dasturiy ta'minotini tashkil etish Kirish-chiqarish dasturiy ta'minotini tashkil etishning asosiy g'oyasi uni bir necha darajalarga bo'lishdan iborat bo'lib, pastki darajalar apparat xususiyatlarini yuqoridan himoya qilishni ta'minlaydi va bu o'z navbatida foydalanuvchilar uchun qulay interfeysni ta'minlaydi. Qurilmaning mustaqilligi asosiy printsipdir. Dasturning turi floppi diskdan yoki qattiq diskdan ma'lumotlarni o'qishiga bog'liq bo'lmasligi kerak. Qurilmaning mustaqilligi g'oyasiga juda yaqin bo'lgan yagona nomlash g'oyasi, ya'ni qurilmalarni nomlashda yagona qoidalar qabul qilinishi kerak. Kirish-chiqarish dasturiy ta'minoti uchun yana bir muhim masala - xatolarni qayta ishlash. Umuman olganda, xatolar imkon qadar apparatga yaqinroq bo'lishi kerak. Agar tekshirgich o'qish xatosini aniqlasa, uni tuzatishga harakat qilishi kerak. Agar u muvaffaqiyatli bo'lmasa, qurilma drayveri xatoni tuzatish bilan shug'ullanishi kerak. Ko'p xatolar kiritish / chiqish operatsiyalarini takroriy urinishlar bilan yo'qolishi mumkin, masalan, o'qish boshlarida yoki diskda chang zarralari mavjudligi sababli xatolar. Va faqat quyi daraja xatoni bartaraf eta olmasa, u xato haqida yuqori darajaga xabar beradi. Yana bir asosiy masala - blokirovka qiluvchi (sinxron) va bloklanmaydigan (asenkron) uzatishlardan foydalanish. Ko'pgina jismoniy kirish / chiqish asinxron tarzda amalga oshiriladi - protsessor uzatishni boshlaydi va uzilish sodir bo'lguncha boshqa ishga o'tadi. Agar kiritish-chiqarish operatsiyalari bloklangan bo'lsa, foydalanuvchi dasturlarini yozish ancha oson bo'ladi - READ buyrug'idan so'ng, ma'lumotlar dastur buferiga kirgunga qadar dastur avtomatik ravishda to'xtatiladi. Operatsion tizim kiritish-chiqarish operatsiyalarini asinxron bajaradi, lekin ularni sinxron tarzda foydalanuvchi dasturlariga ochib beradi. Oxirgi muammo shundaki, ba'zi qurilmalar umumiy, boshqalari esa ajratilgan. Disklar umumiy qurilmalardir, chunki bir vaqtning o'zida bir nechta foydalanuvchining diskka kirishi muammo emas. Printerlar maxsus qurilmalardir, chunki siz turli foydalanuvchilar tomonidan chop etilgan qatorlarni aralashtira olmaysiz. Maxsus qurilmalarning mavjudligi operatsion tizim uchun ba'zi muammolarni keltirib chiqaradi. Belgilangan muammolarni hal qilish uchun kiritish-chiqarish dasturini to'rtta qatlamga bo'lish tavsiya etiladi (2.30-rasm): • Interrupt bilan ishlash, • Qurilma drayverlari, • Operatsion tizimning qurilmadan mustaqil qatlami, • Maxsus dasturiy ta'minot qatlami. Guruch. 2.30. K/CH quyi tizimini ko'p darajali tashkil etish Ishlov berishni uzish Interruptlar operatsion tizimning ichaklarida iloji boricha chuqur yashirin bo'lishi kerak, shuning uchun operatsion tizimning imkon qadar kamroq qismi ular bilan shug'ullanishi kerak. Eng yaxshi usul - kirish/chiqarish operatsiyasini boshlagan jarayonga operatsiya tugaguncha va uzilish sodir bo'lgunga qadar o'zini blokirovka qilishga ruxsat berishdir. Jarayon, masalan, semafor uchun DOWN qo'ng'irog'i yoki shart o'zgaruvchisi uchun WAIT chaqiruvi yoki xabarni kutish uchun RECEIVE qo'ng'irog'i yordamida o'zini bloklashi mumkin. Uzilish sodir bo'lganda, uzilish xizmati tartibi UP, SIGNAL qo'ng'iroqlari yoki jarayonga xabar yuborish orqali kiritish-chiqarish operatsiyasini boshlagan jarayonni blokdan chiqaradi. Har qanday holatda, uzilishning ta'siri shundan iboratki, avval bloklangan jarayon endi uning bajarilishini davom ettiradi. Qurilma drayverlari Barcha qurilmaga xos kod qurilma drayveriga joylashtiriladi. Har bir drayver bir xil turdagi yoki bir xil sinfdagi qurilmalarni boshqaradi. Operatsion tizimda faqat qurilma drayveri qurilmaning o'ziga xos xususiyatlari haqida biladi. Masalan, diskning to'g'ri ishlashini ta'minlash uchun faqat disk drayveri treklar, sektorlar, silindrlar, boshni joylashtirish vaqtlari va boshqa omillar bilan shug'ullanadi. Qurilma drayveri dasturiy ta'minot qatlami qurilmalaridan so'rovni qabul qiladi va uni qanday bajarishni hal qiladi. Oddiy so'rov n ta ma'lumot blokini o'qishdir. Agar so'rov kelganda haydovchi bo'sh bo'lsa, u darhol so'rovni bajarishni boshlaydi. Agar u boshqa so‘rovga xizmat ko‘rsatish bilan band bo‘lgan bo‘lsa, yangi kelgan so‘rov mavjud so‘rovlar qatoriga qo‘shiladi va uning navbati kelganda u bajariladi. Masalan, disk uchun kiritish-chiqarish so'rovini amalga oshirishning birinchi bosqichi uni mavhum shakldan aniq shaklga aylantirishdir. Disk drayveri uchun bu blok raqamlarini silindr, bosh, sektor raqamlariga aylantirish, vosita ishlayotganligini tekshirish, boshning kerakli silindr ustida bo'lishini anglatadi. Muxtasar qilib aytganda, u qaysi kontroller operatsiyalarini va qanday ketma-ketlikda bajarilishini hal qilishi kerak. Buyruqni boshqaruvchiga yuborgandan so'ng, haydovchi belgilangan operatsiya oxirigacha o'zini blokirovka qilish yoki qilmaslik haqida qaror qabul qilishi kerak. Agar operatsiya ma'lum bir ma'lumotlar blokini chop etishda bo'lgani kabi uzoq vaqt talab qilsa, u holda drayver operatsiya tugaguniga qadar blokirovka qiladi va uzilishni ishlov beruvchi uni blokdan chiqaradi. Agar kiritish-chiqarish buyrug'i tezda bajarilsa (masalan, ekranni aylantirish), u holda haydovchi blokirovka qilmasdan uning tugashini kutadi. Qurilmadan mustaqil operatsion tizim qatlami Kirish-chiqarish dasturlarining aksariyati qurilmadan mustaqildir. Drayvlar va qurilmadan mustaqil dasturlar o'rtasidagi aniq chegara tizim tomonidan belgilanadi, chunki mustaqil ravishda amalga oshirilishi mumkin bo'lgan ba'zi funktsiyalar samaradorlik yoki boshqa sabablarga ko'ra drayver sifatida amalga oshiriladi. Qurilmadan mustaqil qatlam uchun odatiy funktsiyalar: • qurilma drayverlari uchun umumiy interfeysni ta'minlash, • qurilmalarni nomlash, • qurilma himoyasi, • mustaqil blok hajmini ta'minlash, • buferlash, • blokga yo'naltirilgan qurilmalarda xotirani ajratish, • ajratilgan qurilmalarni ajratish va chiqarish, • xato xabari. Keling, ushbu ro'yxatning ba'zi funktsiyalariga to'xtalib o'tamiz. Dasturiy ta'minotning yuqori qatlamlari uchun har xil o'lchamdagi bloklar bilan ishlash qulay emas, shuning uchun bu qatlam bitta blok hajmini ta'minlaydi, masalan, bir nechta turli bloklarni bitta mantiqiy blokga birlashtirib. Shu munosabat bilan, yuqori qatlamlar jismoniy sektorning o'lchamidan qat'i nazar, bitta mantiqiy blok hajmidan foydalanadigan mavhum qurilmalar bilan shug'ullanadi. Fayl yaratish yoki uni yangi ma'lumotlar bilan to'ldirishda unga yangi bloklarni ajratish kerak. Buning uchun OT bepul disk bloklari ro'yxatini yoki bitmapini saqlashi kerak. Bo'sh disk maydoni mavjudligi haqidagi ma'lumotlarga asoslanib, bo'sh blokni qidirish algoritmi qurilmadan mustaqil ravishda ishlab chiqilishi va haydovchi qatlami ustida joylashgan dasturiy ta'minot qatlami tomonidan amalga oshirilishi mumkin. Maxsus dasturiy ta'minot qatlami Garchi kiritish-chiqarish dasturiy ta'minotining aksariyati OT ichida joylashgan bo'lsa-da, ularning bir qismi foydalanuvchi dasturlari bilan bog'langan kutubxonalarda mavjud. Kirish-chiqarish qo'ng'iroqlari bilan bog'liq tizim qo'ng'iroqlari odatda kutubxona tartiblari tomonidan amalga oshiriladi. Agar C dasturida qo'ng'iroq mavjud bo'lsa count = write (fd, buffer, nbytes), keyin yozish kutubxonasi protsedurasi dastur bilan bog'lanadi. Bunday protseduralar to'plami kiritish-chiqarish tizimining bir qismidir. Xususan, kirish yoki chiqishni formatlash kutubxona tartiblari bilan amalga oshiriladi. Misol tariqasida C printf funksiyasini keltirish mumkin, u format satrini va ehtimol ba'zi o'zgaruvchilarni kiritish sifatida qabul qiladi, so'ngra ASCII belgilar qatorini quradi va ushbu qatorni chiqarish uchun yozishni chaqiradi. Standart kiritish-chiqarish kutubxonasi kiritish-chiqarishni amalga oshiradigan va foydalanuvchi dasturining bir qismi sifatida ishlaydigan ko'p sonli protseduralarni o'z ichiga oladi. Kiritish-chiqarish dasturiy ta'minotining yana bir toifasi spouling quyi tizimidir. Spooling - ko'p dasturlash tizimidagi maxsus qurilmalar bilan ishlash usuli. Oddiy biriktiruvchi qurilma - chiziqli printerni ko'rib chiqing. Har bir foydalanuvchiga printer bilan bog'langan maxsus faylni ochishga ruxsat berish texnik jihatdan oson bo'lsa-da, bu xavfli, chunki foydalanuvchi jarayoni printerni o'zboshimchalik bilan vaqt davomida monopollashtirishi mumkin. Buning o'rniga maxsus jarayon yaratiladi - monitor, bu qurilmadan foydalanish uchun eksklyuziv huquqlarni oladi. Spool katalogi deb ataladigan maxsus katalog ham yaratiladi. Faylni chop etish uchun foydalanuvchi jarayoni chiqishni ushbu faylga joylashtiradi va uni spool katalogiga joylashtiradi. Process Monitor spool katalogidagi barcha fayllarni birma-bir chop etadi. Download 21.62 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling