|
Operatsion tizimning qurilmalarni boshqarish vazifalari
|
bet | 40/129 | Sana | 18.11.2023 | Hajmi | 4,88 Mb. | | #100808 |
Bog'liq a12b69867f018f785135aa04d3624799 Operatsion tizimlar грифли 100 шт
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.
Protsessor va kiritish/chiqarish qurilmalarini parallel ravishda ishlashi
Kiritish/chiqarish qurilmalari va protsessorni parallel ravishda ishlashi mazkur qurilmaga tegishli kontroller va drayverni o‘zaro harakatda bo‘lish yo‘li bilan tashkil etiladi. Kontroller muntazam ravishda drayverdan qurilmaga chiqariladigan ma’lumotlar, hamda, bu ma’lumotlarga nisbatan qanday amallar bajarilish kerakligini bildiruvchi (masalan, ekranning ma’lum qismiga matn ko‘rinishda ma’lumotni chiqarish yoki diskning aniq sektoriga yozish) boshqaruv ko‘rsatmalarni qabul qiladi. Kontroller boshqaruvi ostida qurilma o‘z amallarini ma’lum bir vaqt davrida mustaqil tarzda, markaziy protsessor va OT tomonidan e’tibor talab qilmagan holda, bajarishi mumkin. Bu vaqt ko‘p omillarga bog‘liq – chiqarilayotgan ma’lumotlarning hajmi, qurilmaning ishlash tezligi va hokazo. Xatto eng oddiy, sodda funksiyalarni bajaradigan kontroller odatda protsessor tomonidan navbatdagi ko‘rsatmani olganidan keyin mazkur funksiyani bajarish uchun bir muncha ko‘p vaqt sarflaydi. Bunday xulosa murakkab kontrollerlarga nisbatan ham o‘rinli, chunki barcha kiritish/chiqarish qurilmaning, hatto eng katta tezlik bilan ishlaydigan, ishlash tezligi odatda protsessorning tezligidan sezilarli darajada past. Demak protsessor tomonidan buyruqlar berilishi o‘rtasidagi davrlarda kontrollerlar o‘z amallarini OT ga bog‘lanmagan holda bajaradi. OT ning kiritish/chiqarish kichik tizimidan “faqat” tegishli kontrollerlardan har bir drayverning unga keluvchi to‘xtatish signallarga javob berishning ma’qul vaqtini ta’minlagan holda, kompyuter tarkibiga kiritilgan barcha kiritish/chiqarish qurilmalarning drayverlarini ishga tushurish va vaqtinchalik to‘xtatish talab etiladi. Bunda protsessorning kiritish/chiqarishni ta’minlashga sarflaydigan vaqti foydalanuvchilar jarayonlari foydasiga minimallashtirilgan bo‘lishi lozim. Mazkur vazifa real vaqtda ishlaydigan tizimlarda jarayonlarni rejalashtirish/dispetcherlashtirishning klassik topshirig‘i deb hisoblanadi va odatda to‘xtatish bo‘yicha ko‘p darajali ustuvorlik sxema asosida hal etiladi. Javob berishning ma’qul darajasini ta’minlash uchun barcha drayverlar (yoki drayverlarning bir qismi) mazkur qurilmaga ruxsat berilgan javob berish vaqti va tegishli drayverni bajarish uchun jarayon sarflaydigan vaqtga ko‘ra bir nechta
ustuvor darajalar bo‘yicha taqsimlanadi. Ustuvorlik sxemasini amalga oshirish uchun, odatda OT ning to‘xtatishlar dispetcheri ishlatiladi.
Almashinuv tezliklarini muvofiqlashtirish va ma’lumotlarni keshlash
Ma’lumotlar almashinuvida doimo tezliklarni muvofiqlashtirish masalasi paydo bo‘ladi. Masalan, agar bir foydalanuvchi jarayon ayrim ma’lumotlarni ishlab chiqib, ularni operativ xotira orqali boshqa foydalanuvchi jarayonga uzatayotgan bo‘lsa, bu vaziyatga umuman olganda ma’lumotlarni generatsiya qilish va ularni o‘qish tezligi bir- biriga mos kelmaydi. Amaliy jarayonlar o‘rtasida ma’lumotlar almashinuvi paytida tezlikni muvofiqlashtirish odatda operativ xotiradagi ma’lumotlarni buferlash va jarayonlarni buferdan foydalanishini sinxronlash hisobiga erishiladi.
Shunga o‘xshash yo‘l bilan kiritish/chiqarish kichik tizimda almashinuv tezliklarini muvofiqlashtirish muammosi hal etiladi. Bunda operativ xotirada ma’lumotlarni bufferlash usulidan keng foydalaniladi. Kiritish/chiqarishni yuqori tezligini ta’minlash birinchi navbatdagi vazifa deb hisoblangan ixtisoslashgan operatsion tizimlarda (real vaqtda boshqarish, tarmoq fayl xizmatlari va hokazo) operativ xotiraning asosiy qismi amaliy dasturlar kodlariga emas, balki ma’lumotlar buferlariga ajratiladi. Lekin faqat kiritish/chiqarish kichik tizimning operativ xotirasi asosida bufferlash yetarli emas, chunki jarayonlar ishlov talab etiladigan ma’lumotlarni joylashtiradigan operativ xotira bilan almashinuvning tezligi va tashqi qurilmaning ishlash tezligi o‘rtasidagi tafovut operativ xotirani vaqtinchalik bufer sifatida foydalanish uchun ko‘pincha xaddan tashqari juda katta bo‘ladi; uning hajmi shunchaki (oddiygina) yetmasligi mumkin. Katta hajmdagi ma’lumotlar almashinuvi zaruratida kiritish/chiqarish tizimlarda spulingdan foydalaniladi; bunda ma’lumotlar diskning alohidagi, diskli fayl yoki spul-fayl deb nomlanuvchi, qismida bufferlanadi. Spul-fayl qo‘llanishining yaqqol misoli deb ma’lumotlarni printerga chiqarishni tashkil etish hisoblanadi. Chop etiladigan hujjatlarning bir nechta o‘n megabayt hajmda bo‘lishi tez-tez uchraydigan hol, shuning uchun ularni vaqtinchalik saqlash uchun (har bir hujjatni chop etish bir necha daqiqadan boshlab o‘n daqiqalargacha vaqt talab etadi) operativ xotiraning hajmi shubhasiz yetarli emas. Bu muammoning boshqa
yechimi – bu tashqi qurilmalar kontrollerlarida katta hajmli bufer xotirasidan foydalanish. Bunday yondashuv ma’lumotlarni diskka joylashtirish almashinuvni haddan tashqari sekinlashtirgan (yoki ma’lumotlar diskning o‘ziga chiqarilgan) hollarda ayniqsa foydali. Masalan, grafik displeylarning kontrollerlarida hajmi operativ xotira bilan taqqoslanadigan bufer xotira qo‘llaniladi, va bu grafik shakllarni ekranga chiqarishni sezilarli darajada tezlashtiradi. Kiritish/chiqarishda ma’lumotlarni buferlash nafaqat protsessor va tashqi qurilmaning ishlash tezliklarini muvofilashtiradi, balki boshqa masalani hal etadi, ya’ni ma’lumotlarni keshlash hisobiga kiritish/chiqarish real amallari sonini qisqartiradi. Diskli kesh deyarli barcha operatsion tizimlarni kiritish/chiqarish kichik tizimlarining ajralmas qismi bo‘lib, saqlanayotgan ma’lumotlardan foydalanish vaqtini sezilarli darajada qisqartiradi.
Qurilma va ma’lumotlarni ajratish
Kiritish/chiqarish qurilmalari jarayonlarga ham yakka (monopol), ham ajratilgan tarzda foydalanish uchun berilishi mumkin. Bunda OT jarayonlarni hisoblash tizimining boshqa resurslardan foydalanish usullaridan kontrollerlarga ham foydalanishni ta’minlashi kerak, ya’ni jarayon bajariluvchi nomidan foydalanuvchi yoki foydalanuvchilar guruhining qurilma ustidan u yoki bu amalni bajarishga huquqlarini tekshirish. OT faqat ma’lum qurilmadan foydalanish emas, balki bu qurilma saqlaydigan ma’lumotlarning ayrim qismlaridan foydalanish ustidan nazorat qilishi mumkin. Diskli fayllar va kataloglardan foydalanishni nazorat qilish muhim bo‘lgan qurilmaning yaqqol misolidir. Ohirgi vaqtlarda qurilmadan umumiy holda birgalikda foydalanish rejimi topshirig‘i zaruriy shart bo‘lib qolgan. Bitta qurilma vaqtning turli davrlarida ham ajratilgan, ham yakka rejimlarda ishlashi mumkin. Shunga qaramasdan faqat bitta rejimda ishlash xos bo‘lgan qurilmalar mavjud, masalan ketma-ket portlar va alifbo-raqamli terminallar ko‘pincha yakka rejimda foydalaniladi, disklar esa – birgalikda foydalanish rejimida. Birgalikda foydalanilgan hollarda, umumiy unumdorlikni oshirish maqsadida OT turli jarayonlar uchun kiritish/chiqarish amallar ketma-ketligini optimallashtirishi kerak. Masalan, bir nechta jarayonlarni disk bilan ma’lumotlar almashinuvida amallar ketma-ketligi shunday tartibga solish mumkinki, bunda kallaklarni unumsiz xarakatlanish vaqt sarfi
sezilarli kamayadi (bunda ayrim jarayonlar uchun kiritish/chiqarish amallari ma’lum darajada sekinlashishi mumkin). Qurilmaning jarayonlar o‘rtasida taqsimlanishida jarayonlar ma’lumotlarini bo‘lish zarurati paydo bo‘lishi mumkin. Odatda bunday ehtiyoj ketma-ketligi qurilmalardan birgalikda foydalanish paytida vujudga keladi, chunki bunday qurilmalar to‘g‘ridan-to‘g‘ri foydalaniladigan qurilmalardan farqli ravishda manzillanmaydi. Bunday qurilmaning yaqqol vakili – bu printer. Bunday qurilmalar uchun chiqarish ketma-ketligi topshirig‘i tashkil etiladi, bunda har bir vazifa ma’lumotlarning bo‘lib bo‘lmaydigan bir qismi, masalan, chop etishga mo‘ljallangan hujjat, shaklida bo‘ladi. Vazifalar ketma-ketligini saqlash uchun spul-fayl ishlatiladi, u printer va operativ xotiraning tezliklarini muvofiqlashtiradi, hamda, ma’lumotlarni mantiqiy qismlarga bo‘linishini tashkil etishga imkon beradi. Ma’lumotlarni spul-fayldagi o‘zining qismlariga joylashtirib, jarayonlar ularni printerga bir vaqtda chiqarishi mumkin.
|
| |