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



Yüklə 3,32 Mb.
Pdf görüntüsü
səhifə211/253
tarix07.01.2024
ölçüsü3,32 Mb.
#209072
1   ...   207   208   209   210   211   212   213   214   ...   253
os

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.

Yüklə 3,32 Mb.

Dostları ilə paylaş:
1   ...   207   208   209   210   211   212   213   214   ...   253




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin