|
Operatsion tizimning qurilmalarni boshqarish vazifalari
|
bet | 76/222 | Sana | 15.05.2024 | Hajmi | 5,84 Mb. | | #236377 |
Multidasturli OTning kiritish/chiqarish kichik tizimi (Input/Output Subsystem) orqali kompyuterni tashqi qurilmalar bilan ma’lumotlar almashinuvida qator umumiy vazifalarni bajarishi kerak, shularning eng muhimlari quyidagilardan iborat:
Kiritish/chiqarish qurilmalari va protsessorni parallel ravishda ishlashini tashkil etish;
almashinuv tezliklarini muvofiqlashtirish va ma’lumotlarni keshlash;
qurilmalar va ma’lumotlarni jarayonlar o‘rtasida taqsimlash;
qurilmalarga qulay dasturiy interfeyslarni taqdim etish;
tizimga yangi drayverni oson ulash imkoniyati shakllangan holda drayverlar keng spektrini ishlashini ta’minlash;
drayverlarni dinamik tarzda yuklash va tizimdan chiqarish;
sinxron va asinxron kiritish/chiqarish amallar ishlashini ta’minlash.
Ushbu barcha vazifalar ushbu ma’ruzada keyinchalik batafsil ko‘rib chiqiladi.
Shaxsiy kompyuterlar uchun kiritish/chiqarish vazifalari uch xil usulda bajarilishi mumkin:
Dasturlanadigan kiritish/chiqarish yordamida. Bu holda protsessorga kiritish/chiqarish bilan bog‘liq buyruq uchratilsa u bu buyruqni kiritish/chiqarish kontrolleriga tegishli buyruqlarni yuborish yo‘li bilan bajaradi. Bu qurilma tegishli amalni bajaradi, keyin esa kiritish/chiqarish holati registrlarida tegishli bitlarni o‘rnatadi va boshqa hech qanday signallarini, shu jumladan to‘xtatish signallarini, yubormaydi. Kiritish/chiqarish amalni yakunlanganligini tekshirish maqsadida protsessor kiritish/chiqarish modulning holatini muntazam ravishda tekshirib boradi. Shunday qilib protsessor kiritish/chiqarish amallarni, shu jumladan qurilma holatini aniqlash, o‘qish-yozish buyruqlarini jo‘natish va ma’lumotlarni uzatishni bevosita boshqarib boradi. Protsessor kiritish/chiqarish kontrolleriga kerakli buyruqlarni jo‘natadi va joriy jarayonni kiritish/chiqarish amalini yakunlanishini
kutish holatiga o‘tkazadi. Mazkur usulni kamchiligi – bu kiritish/chiqarishni boshqarish bilan bog‘liq jarayon vaqtining katta yo‘qotishlaridir.
To‘xtatishlar bilan boshqariladigan kiritish/chiqarish. Protsessor kiritish/chiqarish kontrolleriga kerakli buyruqlarni jo‘natadi va joriy jarayonni bajarishni davom etadi, agar kiritish/chiqarish amallar bajarishni kutishda zarurat bo‘lmasa. Aks holda joriy jarayon kiritish/chiqarish yakunlanganligi to‘g‘risida uzilish signali olingunga qadar vaqtinchalik to‘xtatiladi, protsessor esa boshqa jarayonni bajarishga o‘tkaziladi. To‘xtatishlar mavjudligini protsessor bajarilayotgan buyruqlarni har bir siklining oxirida tekshiradi. Bunday kiritish/chiqarish dasturlanadigan kiritish/chiqarishga nisbatan anchagina samaraliroq, chunki bunda protsessorning behuda bekor turishi bilan bog‘liq keraksiz kutishga yo‘l qo‘yilmaydi. Lekin bu holda ham kiritish/chiqarish baribir protsessorning katta miqdorda vaqtini iste’mol qiladi, chunki xotiradan kiritish/chiqarish moduli (kontroller)ga uzatiladigan har bir so‘z yoki teskari amal albatta protsessor orqali o‘tishi kerak.
Xotiraga to‘g‘ridan-to‘g‘ri kirish (DMA) kontrolleri yordamida. Xotirada kiritish/chiqarish qurilmasi tasvirlanishini qo‘llab-quvvatlashni mustaqil bo‘lishi uchun markaziy protsessorga u bilan ma’lumotlar almashish uchun kontroller qurilmasini manzillash kerak bo‘ladi. Protsessor bayt asosida kontrollerdan ma’lumotlarni so‘rashi mumkin. Agar ma’lumotlarni katta blokli qurilmadan qabul qilish talab etilsa (masalan, disk), vaqtning katta qismi uni ishga tushirishga sarflanadi. Ushbu sabab bo‘yicha xotira bilan birga ishlash uchun xotiraga to‘gridan-to‘gri kirish (Direct Memory Access, DMA) deb ataladigan usul ishlatiladi, ko‘plab kompyuterlar bunday kontrollerlarga ega (4.3-rasm). Ba’zida DMAkontrollerlar boshqa kontrollerlarga qo‘yiladi (masalan diskni o‘quvchi kontrollerlar), lekin har bir qurilmaga talab qilinadi. Tizimlar ko‘pincha yagona DMAkontrolleriga ega bo‘ladilar, ya’ni odatda ona plataga joylashtiriladi. U parallel ravishda ko‘plab kiritish/chiqarish qurilmalarida ma’lumotlar almashishni boshqaradi.
DMA kontroller o‘qish va yozish uchun protsessorga kirishga ruhsati bor bir nechta registrlarga ega: manzil registri, baytlarni hisoblagich va qator boshqaruv registrlari. Kiritish/chiqarish portidan so‘nggi foydalanadigan bir davrda jo‘natuvchi ma’lumotlar (bayt yoki
so‘z) va bayt sonlari almashadi, ma’lumotlar almashishni yo‘naltiradi (o‘qiydi yoki yozadi).
DMA funksiyasini aniqlashtirib olish uchun dastlab xotiraga to‘g‘ridan-to‘g‘ri kirish mavjud bo‘lmagan diskli o‘qishni amalga oshirilishini ko‘rib chiqamiz. Dastlab kontroller bitdan bitgacha ketma-ketlikda kontroller ichki buferi ko‘rsatilmagunga qadar blok (bir yoki bir nechta sektor) deb hisoblaniladi. So‘ng nazorat summasi hisoblaniladi va mavjud xatolar tekshiriladi. Hisoblash, siklik, baytli yoki so‘zli ko‘rinishda amalga oshiriladi. Bayt (so‘z) hisoblangandan so‘ng u asosiy xotirada saqlanadi, xotira manzili ko‘payadi, hisoblagich qolgan elementlarni dekrementlaydi. Hisoblagich nolga teng bo‘lganda sikl to‘xtatiladi. Xotiraga to‘g‘ridan-to‘g‘ri kirish protsedura tavsifini o‘zgartiradi.
4.3-rasm DMA-kontrolleri ishlashi
Dastlab protsessor DMAkontrollerni dasturlaydi, uning registriga yozuvlarni yozadi (qayerga jo‘natilishi kontrollerda ko‘rsatilgan (4.3-rasmda 1-qadam). So‘ng kontrollerga o‘zining ichki buferida diskdagi ma’lumotlarni hisoblash buyrug‘ini jo‘natadi va nazorat summasini tekshiradi. DMA ma’lumotlari kontrollerda paydo bo‘lgandan so‘ng ishlashni boshlashi mumkin bo‘ladi.
DMAkontroller ma’lumotlarni ko‘chirishni boshlaydi, o‘qish so‘rovini shina bo‘yicha disk kontrolleriga jo‘natadi (2-qadam). Bu so‘rov o‘qishga odatiy so‘rov bo‘ladi, chunki diskni kontroller markaziy protsessordan yoki DMAkontrolleridan jo‘natilganligini bilmaydi. Xotira manzili odatda manzilli shinada joylashgan bo‘ladi, o‘zining ichki buferidan keyingi so‘zlarni qayerga jo‘natish kerakligi to‘g‘risida boxabar bo‘ladi. Xotirada yozish shinaning yana bir standart sikli bo‘ladi. (3-qadam). Yozish tugagandan keyin disk kontrolleri shina bo‘yicha DMAkontrollerini qo‘llab-quvvatlaydigan signalni jo‘natadi (4-qadam). So‘ng DMAkontroller xotirada foydalanilgan manzilni inkrementlaydi va hisoblagich bayt qiymatini dekrementlaydi. Shundan so‘ng hisoblagich nolga teng bo‘lgunga qadar 2-4- qadamlar takrorlanadi. DMAkontrollerida ko‘chirish (nusxa olish) sikli tugashi bo‘yicha protsessor to‘xtatiladi. Operatsion tizimga xotiradan diskli blokni ko‘chirish kerak emas. U allaqachon u yerda joylashgan bo‘ladi. Kontrollerga ichki xotira ikki sabab tufayli zarur. Birinchisi ichki buferlash hisobiga disk kontrolleri xotiraga ma’lumotlar jo‘natilish boshlanishigacha nazorat summasini tekshira olishi mumkin bo‘ladi. Agar qiymatlar mos kelmasa, xatolik to‘g‘risida signal shakllantiriladi va ma’lumotlarni uzatish amalga oshirilmaydi.
Ikkinchidan diskni o‘qish operatsiyasi boshlanganda bitlarni kontroller qabul qilish va qilmasligiga bog‘liq bo‘lmagan holda doimiy tezlik bilan kelib tushishi boshlanadi. Agar disk kontrolleri bu ma’lumotlarni xotiraga to‘g‘ridan-to‘g‘ri yozishga harakat qilsa, uni tizimli shina bo‘yicha amalga oshiradi. Agar navbatdagi so‘zni uzatishda shina biron bir boshqa qurilma bilan band bo‘lsa disk kontrolleri kutishiga to‘g‘ri keladi. Agar keyingi so‘z kontroller kechikishlarni saqlashini amalga oshirishga ulgurishiga nisbatan diskda avval kelgan bo‘lsa kontroller avvalgi so‘zni yo‘qotadi yoki uni yana bir bor xotirlaydi (esga oladi). Agar shina intensiv foydalanilsa kontroller bir nechta so‘zlarni shu zahoti saqlashi kerak bo‘ladi va ko‘plab xizmat ishlarini bajaradi. Xotiraga to‘g‘ridan- to‘g‘ri kirish operatsiyasi boshlanmagunga qadar shina ichki buferi mavjud bo‘lishi zarur emas. Natijada diskli qurilma soddaroq bo‘ladi, chunki vaqtinchalik parametrlarni xotiraga to‘g‘ridan-to‘g‘ri kirishi qiyin bo‘lmaydi.
|
| |