Operatsion tizimning ichki qismida iloji boricha chuqurroq bo'lishi kerak, shuning uchun Osning imkon qadar kichik qismi ular bilan ishlaydi. Eng yaxshi usul, i / u operatsiyasini boshlagan jarayonni hal qilish, operatsiya tugagunga qadar o'zini blokirovka qilish va uzilish boshlanishidir. Jarayon, masalan, semafor uchun pastga qo'ng'iroq qilish yoki o'zgaruvchan holat uchun kutish yoki xabarni kutish uchun qabul qilish chaqiruvidan foydalanib, o'zini bloklashi mumkin. Agar uzilishlar yuzaga kelsa, interruptni qayta ishlash jarayoni up, SIGNAL yoki jarayonga xabar yuborish orqali i / u operatsiyasini boshlagan jarayonni qulfdan chiqaradi. Har qanday holatda, uzilishning ta'siri, ilgari bloklangan jarayon endi amalga oshishini davom ettiradi.
Qurilma drayverlari
Barcha qurilmaga bog'liq kod qurilma haydovchisiga joylashtiriladi. Har bir haydovchi bir xil turdagi qurilmalarni yoki ehtimol bitta sinfni boshqaradi.
Operatsion tizimda faqat qurilma drayveri har qanday qurilmaning o'ziga xos xususiyatlaridan xabardor. Misol uchun, faqat disk drayveri izlar, tarmoqlar, silindrlar, bosh o'rnatish vaqti va diskning to'g'ri ishlashini ta'minlaydigan boshqa omillar bilan shug'ullanadi.
Qurilma drayveri dasturiy qatlam qurilmalaridan so'rovni qabul qiladi va uni qanday bajarishni hal qiladi. Odatda, bir talab n ma'lumotlar bloklari o'qish hisoblanadi. Agar haydovchi so'rovni qabul qilish vaqtida bepul bo'lsa, u darhol so'rovni boshlaydi. Agar u boshqa so'rovga xizmat ko'rsatish bilan mashg'ul bo'lsa, yangi kelgan so'rov mavjud so'rovlarning navbatiga qo'shiladi va u o'z navbatida amalga oshiriladi.
I / u so'rovini amalga oshirishdagi birinchi qadam, masalan, disk uchun, uni mavhum shakldan o'ziga xos shaklga aylantirishdir. Disk drayveri uchun bu blok raqamlarini silindr, bosh, sektorlar raqamlariga aylantirish, vosita ishlayotganligini tekshirish, bosh to'g'ri silindrning ustida joylashganligini anglatadi. Muxtasar qilib aytganda, qaysi nazorat qilish operatsiyalari va qaysi tartibda amalga oshirilishi kerakligini hal qilish kerak.
Buyruqni tekshirgichga topshirgandan so'ng, haydovchi belgilangan operatsiya tugagunga qadar uni blokirovka qilishga qaror qilishi kerak. Agar operatsiya ma'lum bir ma'lumot blokini chop etishda bo'lgani kabi muhim vaqtni talab qilsa, operatsiya tugagunga qadar haydovchi bloklanadi va interrupt handler uni qulflamaydi. Agar i / u buyrug'i tezda bajarilsa (masalan, Ekranni siljitish), haydovchi uni blokirovka qilmasdan tugatishni kutadi.
Do'stlaringiz bilan baham: |