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


Download 3.88 Mb.
Pdf ko'rish
bet201/242
Sana06.10.2023
Hajmi3.88 Mb.
#1693882
1   ...   197   198   199   200   201   202   203   204   ...   242
Bog'liq
a12b69867f018f785135aa04d3624799 Operatsion tizimlar грифли 100 шт

 
Linux tizimida jarayonlar 
 
Linux tizimidagi asosiy faol obyektlar - bu jarayonlar. Har bir 
jarayon bitta dasturni bajaradi va dastlab bitta boshqaruv oqimini 
oladi. Boshqacha qilib aytganda, jarayonda keyingi bajariladigan 
ko‘rsatmalarni kuzatib boradigan bitta ko‘rsatma hisoblagichi mavjud. 
Linux qo‘shimcha jarayonlarni yaratishga imkon beradi (bajarishni 
boshlaganidan keyin). Linux - ko‘p vazifali tizim va bir vaqtning 
Tizim chaqiruvi 
Uzilishlar Dispetcher 
Virtual fayl tizimi 
Terminallar 
Belgili 
qurilmalar 
drayverlari 
K/Ch komponentlari 
Aloqa
li
niyas

Soketlar 
Tarmoq 
qurilmalari 
drayverlari 
Fayl 
tizimlari
Umumlash- 
tirilgan blok
darajasi 
K/Ch 
rejalashti-
ruvchisi 
Blokli 
qurilmalar 
drayverlari 
Tarmoq 
protokollari 
Jarayonlarni 
boshqarish 
komponentlari 
Xotirani boshqarish
komponentlari 
Virtual 
xotira 
Ko‘chirish 
sahifasini 
almashtiris

Sahifa 
keshi 
Signalni 
qayta 
ishlash
Protsessor 
va 
oqimlarni 
yaratish/ 
tugatish 
Virtual 
xotira 


345 
o‘zida bir nechta mustaqil jarayonlar ishlashi mumkin. Bundan 
tashqari, har bir foydalanuvchi bir vaqtning o‘zida bir nechta faol 
jarayonlarga ega bo‘lishi mumkin, shuning uchun bir vaqtning o‘zida 
yuzlab va hatto minglab jarayonlar katta tizimda ishlashi mumkin. 
Aslida, bitta foydalanuvchi ishchi stansiyalarida o‘nlab fon jarayonlari 
mavjud, ular demonlar (daemons) deb nomlanadi. Ular tizim 
qobig‘idan ishga tushganda boshlanadi. Oddiy demon - bu cron. 
Ushbu demon sizga Linux tizimingizni bir necha daqiqa, soat, kun va 
hatto oylar davomida rejalashtirishga imkon beradi. Masalan, 
foydalanuvchi keyingi seshanba kuni soat 3 da tish shifokoriga borishi 
rejalashtirilgan deb tasavvur qilamiz. Belgilangan kun va vaqt 
kelganda, cron demon o‘z ishini ko‘radi va o‘z vaqtida ovozli signal 
dasturini (yangi jarayon shaklida) boshlaydi. Cron demon shuningdek, 
vaqti-vaqti bilan vazifalarni bajarish uchun ishlatiladi, masalan, har 
kuni soat 4.00 da diskdan nusxa olish. Demonlar Linux tizimida juda 
sodda tarzda amalga oshiriladi, chunki ularning har biri boshqa 
jarayonlarga qaramasdan alohida jarayon hisoblanadi. Linux 
operatsion tizimida jarayonlar yaratish juda oddiydir. Fork tizim 
chaqiruvi asl jarayon nusxasini yaratadi, ona jarayoni (parent process) 
deb ataladi. Yangi jarayon farzand jarayoni (child process) deb 
ataladi. Ona va farzand jarayonlari o‘zlarining shaxsiy xotira 
maydoniga ega. Agar ona jarayoni keyinchalik biron bir o‘zgaruvchini 
o‘zgartirsa, unda bu o‘zgarishlar farzand jarayoniga ko‘rinmaydi (va 
aksincha). Ochiq fayllar ona va farzand jarayonlari o‘rtasida 
almashiladi. Bu shuni anglatadiki, agar biron-bir fayl fork tizim 
chaqirig‘idan oldin ona jarayonida ochilgan bo‘lsa, kelajakda ikkala 
jarayonda ham ochiq qoladi. Ushbu faylga biron bir jarayon 
tomonidan kiritilgan o‘zgartirishlar boshqasiga ko‘rinadigan bo‘ladi. 
Bu xatti-harakatlar yagona oqilona usuldir, chunki bu o‘zgarishlar 
ushbu faylni ochadigan har qanday boshqa jarayon uchun ham 
ko‘rinadi. 
Linux operatsion tizimida jarayonni yaratish
pid = fork( ); /* agar fork muvaffaqiyatli tugatilsa, pid > 0 
ona jarayonida */ 
if (pid < 0) {
handle_error(); /* fork muvaffaqiyatsiz tugadi (masalan, xotira 
yoki qandaydir jadval to‘lib qolsa) */ 
} else if (pid > 0) { /* bu yerda ona kodi joylashgan */ 


346 
} else { /* bu yerda farzand kodi joylashgan */ 

Jarayonlar o‘zlarining PID-lariga ega bo‘ladilar (PID-jarayon 
identifikatori). Yuqorida aytib o‘tilganidek, jarayon yaratilganda
uning 
PID-si 
yangi 
jarayonning 
onasiga 
beriladi. 
Jarayon 
identifikatorlari turli xil usullarda qo‘llaniladi. Masalan, farzand 
jarayoni tugaganda, uning onasi yangi tugatilgan farzand jarayonining 
PID-ni oladi. Bu juda muhim bo‘lishi mumkin, chunki ona jarayonida 
ko‘plab farzand jarayonlari bo‘lishi mumkin. Farzand jarayonning 
ham farzand jarayonlari bo‘lishi mumkin. Linux tizimida jarayonlar 
bir-birlari bilan xabarlarning biron bir shaklidan foydalangan holda 
aloqa o‘rnatishi mumkin. Siz ikkita jarayon o‘rtasida kanal 
yaratishingiz mumkin, bunda bitta jarayon baytlar oqimini yozishi 
mumkin, boshqa jarayon esa o‘qishi mumkin. Ushbu kanallar ba’zan 
kanallar (pipes) deb ataladi. Jarayonni sinxronizatsiya qilish bo‘sh 
kanaldan ma’lumotlarni o‘qiyotganda jarayonni blokirovka qilish 
orqali amalga oshiriladi. Kanalda ma’lumotlar paydo bo‘lganda, 
jarayon blokdan chiqariladi. Jarayonlar boshqa usulda - dasturiy 
uzilishlardan foydalangan holda aloqa o‘rnatishi mumkin. Jarayonlar 
tizimga kiruvchi signal kelganida qanday harakatlar qilish kerakligini 
aytishi mumkin.

Download 3.88 Mb.

Do'stlaringiz bilan baham:
1   ...   197   198   199   200   201   202   203   204   ...   242




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling