• Yadro vazifalarini rejalashtirish va yadroda sinxronlash
  • U. R. Xamdamov, dj. B. Sultanov, S. S. Parsiyev, U. M. Abdullayev




    Download 3,88 Mb.
    Pdf ko'rish
    bet211/253
    Sana18.05.2024
    Hajmi3,88 Mb.
    #242375
    1   ...   207   208   209   210   211   212   213   214   ...   253
    Bog'liq
    5OfV58kCMfx51CyXWMAb2yRfaqPrL3Ub5oRCsjhh

    Jarayonlar va oqimlar 
    Linuxda jarayon va oqimlar uchun bitta umumiy tasavvurdan 
    foydalaniladi. Linux dagi oqim – bu umumiy manzil maydonini ona 
    jarayon bilan birga foydalanidigan yangi jarayon. Farqi faqat clone 
    tizim chaqiruvi bilan yangi oqim yaratilishida namoyon bo‘ladi:

    fork klassik tizim chaqiruvi batamom yangi kontekstli, yangi 
    jarayonni yaratadi; 

    clone tizim chaqiruvi o‘zining yangi shaxsiy identifikatoriga 
    ega yangi jarayonni tashkil etadi, lekin unga o‘zining ona jarayoni 
    bilan birga ma’lumotlar tuzilmasidan birgalikda foydalanishga ruxsat 
    berilgan.
    Clone tizim chaqiruvidan foydalanish jarayonlarga oqimlar 
    tomonidan qanday resurslardan birgalikda foydalanishi ustidan 
    ochiqdan-ochiq nazorat qilishga imkon beradi. 
    Yadro vazifalarini rejalashtirish va yadroda sinxronlash 
    Eslatib o‘tamiz, rejalashtirish – bu operatsion tizim protsessori 
    vaqtining turli vazifalar o‘rtasida taqsimlash. OT larning aksariyatida 
    rejalashtirish deyilganida jarayonlarni ishga tushurish va vaqtinchalik 
    uzilishlar nazarda tutilsa, Linux da rejarashtirishga yadroning turli 
    vazifalarini bajarish ham kiritiladi. Yadro vazifalarini bajarish o‘z 


    349 
    ichiga ham mazkur jarayon tomonidan so‘ralgan ma’lumotlar 
    bo‘yicha vazifalar, hamda drayver ishlashi jarayonida bajariladigan 
    vazifalar ham kiradi. Yadro rejimida bajarish bo‘yicha so‘rov ikki 
    vaziyatda paydo bo‘lishi mumkin: 

    bajarilayotgan dastur ochiqdan-ochiq tizim so‘rovi yordamida 
    yoki pinhoniy, masalan, sahifa buzilishida OT ning xizmatini so‘rashi 
    mumkin; 

    qurilma drayveri apparat uzilishlarini ishga tushurishi 
    mumkin, natijada protsessor yadro rejimida mazkur uzilishning ishlov 
    beruvchisi vazifasini bajarishni boshlashi mumkin.
    Yadroda sinxronlash yadroning muhim bo‘limlari boshqa muhim 
    bo‘limlar tomonidan uzilishlarsiz bajarilishini talab qiladi.
    Linux muhim bo‘limlarini himoyalashning ikki usulidan 
    foydalanadi: 
    1.
    Yadroning oddiy kodi – to‘xtatilmaydi. Agar jarayon 
    yadroning tizimli xizmat ko‘rsatish kichik dasturi bajarilayotgan 
    paytida vaqt bo‘yicha uzilish qabul qilingan bo‘lsa, need_ resched 
    bayrog‘i tizim chaqiruvi tugashi va boshqaruv imtiyozsiz kodga 
    uzatilishi kerak bo‘lganida rejalashtiruvchi ishga tushishi uchun 
    ko‘rsatma sifatida xizmat qiladi. 
    2.
    Ikkinchi usul 
    uzilishlarga 
    ishlov 
    berish 
    servislarida 
    bajariladigan yadronining muhim bo‘limlariga nisbatan qo‘llaniladi. 
    Muhim bo‘limni bajarilishi paytida uzilishlarni o‘chirish uchun 
    protsessorning uzilishlarni boshqaradigan appraturadan foydalanib, 
    yadro ma’lumotlarning umumiy tuzilmalariga bir vaqtda murojaat 
    qilishining xavfsiz bajarilishini kafolatlaydi.
    Unumdorlikda yo‘qotishlarga yo‘l qo‘ymaslik uchun Linux 
    yadrosi muhim bo‘limlar ko‘pchiligini muhim bo‘lim bajarilishini 
    to‘la vaqtiga uzilishlarni o‘chirish zarurligi bo‘lmasdan, bajarilishiga 
    imkon beruvchi sinxronlash arixitekturasidan foydalaniladi.
    Uzilishlarga ishlov berish xizmatlari yuqori yarmiga (top half) 
    va pastki yarmiga (bottom half) bo‘linadi: 

    yuqori yarmi – bu rekursiv uzilishlarni o‘chirish tarzda 
    bajariladigan uzilishlarga ishlov berishning oddiy protsedurasi; 

    pastki yarmi – uzilishlar rejimi yoqilgan holda, kichik 
    yarimlar 
    bir-birini 
    to‘xtatmasligini 
    ta’minlovchi 
    mini-
    rejalashtiruvchidan foydalanib bajariladi. 


    350 
    Bu arixitektura yadroning oddiy kodi bajarilishida pastki 
    yarimlarni tanlash mexanizmi bilan to‘ldiriladi. 9.3- rasmda 
    uzilishlarni himoyalashning darajalari ko‘rsatilgan.
    9.3- rasm. Uzilishlarni himoyalashning darajalari 
    Har bir darajaning kodi yuqoriroq darajali kod bilan to‘xtatilishi 
    mumkin, lekin teng yoki pastroq darajali kod bilan hech qachon 
    to‘xtatilmaydi. 
    Foydalanuvchi jarayoni doimo boshqa jarayon bilan to‘xtalishi 
    mumkin, agar uzilish vaqtni taqsimlash rejimida rejalashtiruvchi 
    tomonidan amalga oshirilsa.
    Linux 
    jarayonlar 
    rejalashtirishning 
    ikki 
    algoritmidan 
    foydalanadi: 

    jarayonlar o‘rtasida uzilishlarni teng huquqli ravishda 
    rejalashtirish uchun vaqtni taqsimlash algoritmi; 

    teng huquqlikka nisbatan absolyut ustuvorlik muhimroq 
    bo‘lishi hollari uchun real vaqtli algoritmi.
    Jarayonni rejalashtirish sinfi aynan qaysi algoritm qo‘llanilishini 
    belgilaydi. Vaqtni taqsimlash jarayonlari uchun Linux ishonch 
    (credits) asosidagi ustuvorliklar (priority) qo‘llaniladigan algoritmdan 
    foydalanadi. credits := credits / 2 + priority qoidasi ham jarayon 
    tarixini, ham uning ustuvorligini inobatga oladi. Bunday tizim 
    bo‘yicha interaktiv yoki kiritish/chiqarishni bajaruvchi jarayonlarning 
    ustuvorliklari avtomatik ravishda belgilanadi. Linux rejalashtirishda 
    quyidagi algoritmlardan foydalanadi: FIFO va Round Robin; ikkala 
    vaziyatda faqat ayrim rejalashtirish klassi emas, balki har bir jarayon 
    Yuqori yarmidagi uzilishlarga ishlov beruvchilar 
    Pastki yarmidagi uzilishlarga ishlov beruvchilar 
    Yadroning xizmat ko‘rsatadigantizimli kichik dasturlar 
    tizimlari (uzilib qolmaydigan) 
    Foydalanuvchi darajasidagi kichik dasturlar (uzulib 
    qoladigan) 
    Ustuvorliklarni 
    ko‘paytirish 


    351 
    ustuvorlikka ega. Rejalashtiruvchi jarayonni eng yuqori ustuvorlik 
    bilan ishga tushiradi; teng ustuvorlikka ega jarayonlaridan eng ko‘p 
    vaqt kutib qolgan jarayon bajariladi. FIFO – jarayonlar tugaguncha 
    yoki blokirovka qilinguniga qadar bajariladi. Round-robin – jarayon 
    ma’lum vaqt o‘tgach to‘xtatiladi va rejalashtirish navbatining oxiriga 
    joylashtiriladi; shuning uchun teng ustuvorlikka ega. RR-jarayonlar 
    vaqtni avtomatik tarzda o‘zaro taqsimlaydi. Linux 2.0 versiyasi SMP 
    qurilmalarni qo‘llab-quvvatlovchi Linux ning birinchi yadrosi 
    bo‘lgan; turli jarayonlar yoki oqimlar bir nechta protsessorlarda 
    parallel ravishda bajarilishi mumkin. Yadroning uzilishlarsiz bajarish 
    talabiga rioya qilish uchun SMP quyidagi cheklashni o‘rnatadi: har bir 
    onda bittadan ko‘p bo‘lmagan jarayon yadro rejimida kodni bajarishi 
    mumkin.

    Download 3,88 Mb.
    1   ...   207   208   209   210   211   212   213   214   ...   253




    Download 3,88 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    U. R. Xamdamov, dj. B. Sultanov, S. S. Parsiyev, U. M. Abdullayev

    Download 3,88 Mb.
    Pdf ko'rish