növbəsində yeni uşaqları törədə bilərlər və i.a., ümumi halda, sistem daxilində proseslərin genealoji
ağaclar məcmusu – genealoji meşə təşkil olunur. Genealoji meşəyə aid misal şək.2.4-də verilmişdir.
Qeyd etmək lazımdır ki, bütün istifadəçi prosesləri əməliyyat sisteminin bəzi prosesləri ilə
birlikdə eyni bir meşə ağacına məxsusdurlar. Bir sıra hesablama sistemlərində meşə ümumiyyətlə,
bu cür bir ağac kimi törənir.
Şək.2.4. Proseslərin sadələşdirilmiş genealoji meşəsi.
(Ox - valideyn-uşaq münasibəti deməkdir)
Prosesin törənməsi zamanı sistem törəmə prosesi vəziyyətli yeni PCB təşkil edir və onu
doldurmağa başlayır. Yeni proses özünün unikal identifikasiya nömrəsini əldə edir.
Prosesin
identifikasiya nömrəsinin saxlanılması üçün əməliyyat sistemində bitlərin məhdud sayı ayrıldığı
üçün, nömrələrin unikallığına riayət olunması üçün orada eyni zamanda iştirak edən proseslərin sayı
məhdud olmalıdır. Hər hansı bir proses bitdikdən sonra, onun boşalmış identifikasiya nömrəsi təkrar
olaraq, digər proses üçün istifadə oluna bilər.
Adətən, öz funksiyalarının yerinə yetirilməsi üçün proses-uşaq müəyyən resurslar tələb edir:
yaddaş tutumu, faylları, giriş-çıxış qurğularını və i.a. Onların ayrılması üçün iki yanaşma
mövcudur. Yeni proses öz sərəncamına valideyn resurslarının müəyyən bir hissəsini götürür,
mümkün ola bilər ki, proses-valideyn və digər proses-uşaqlarla onlara olan hüquqları bölüşdürsün və
ya öz resurslarını bilavasitə əməliyyat sistemindən əldə etsin. Ayrılmış resurslar barəsində
informasiya PCB-ə daxil olunur.
Proses-uşağı resurslarla
təmin etdikdən sonra, onun ünvan fəzasına proqram kodunu,
verilənlərin qiymətlərini daxil etmək, proqram sayğacını quraşdırmaq lazımdır. Burada, həmçinin,
iki həll mümkün ola bilər. Birinci halda proses-uşaq registr və istifadəçi kontekstləri üzrə proses-
valideynin dublikatı olur, bu halda, proses-oxşarlardan kimin kim üçün valideyn olmanın təyin
edilmə üsulu mövcud olmalıdır. İkinci halda isə proses-uşaq yeni proqram vasitəsilə hər hansı bir
fayldan yüklənilir. Unix əməliyat sistemi yalnız birinci üsulla törənməyə icazə verir; yeni proqramın
yüklənilməsi üçün əvvəlcə proses-valideynin surəti yaradılır, sonra isə proses-uşaq xüsusi sistem
çağırışı köməkliyi ilə özünün istifadəçi kontekstini əvəz etməlidir. VAX/
VMS əməliyyat sistemi
yalnız ikinci həllə icazə verir. Windows NT-də hər iki variant mümkündür (müxtəlif APİ-də).
Proses-valideyn dublikatı kimi yeni prosesin törənməsi işləməsi üçün birdən artıq prosesin
təşkil olunduğu proqramların (yəni, icra olunan faylların) mövcudluğu imkanına gətirib çıxarır.
Prosesin istifadəçi kontekstinin onun işinin gedişatındə əvəz edilmə mümkünlüyü (yəni, yeni
proqramın icra olunması üçün yüklənilməsi) ona gətirib çıxarır ki, eyni bir proses çərçivəsində bir
neçə müxtəlif proqramlar ardıcıl olaraq, yerinə yetirilə bilirlər.
Prosesin tərkibi doldurulandan sonra, PCB-yə yerdə qalan informasiya əlavə olunur və yeni
prosesin vəziyyəti “hazır olma” vəziyyətinə dəyişdirilir. Proses-uşaqların törən-məsindən sonra,
proses-valideynlərin özlərini necə aparmaları barəsində bir qədər məlimat verək. Proses - valideyn
özünün yerinə yetirilməsini eyni zamanda proses-uşaqla birlikdə davam etdirə bilər, ya da bəzi
uşaqların və ya bütün öz “uşaqlarının” işlərinin bitməsini gözləyə bilər.
Prosesin həyat tsiklinin bitməsinə gətirib çıxara bilən səbəblər üzərində biz ətraflı
dayanmayacayıq. Proses öz işini bitirdikdən dərhal sonra, əməliyyat sistemi onu “icranı bitirdim”
vəziyyətinə çevirir və prosesin idarə olunma blokunda uyğun yazıları qeyd edərək,
onunla
assosialaşan bütün resursları azad edir. Bu halda PCB-nin özü məhv olunmur və məyyən müddət
ərzində sistemdə qalır. Bu, onunla əlaqəlidir ki, “proses-valideyn” “proses-uşağı” bitirdikdən sonra,
onun tərəfindən törənmiş prosesin “ölüm” səbəbini və/və ya onun işi barəsində statistik
informasiyanı əməliyyat sistemindən sorğu edə bilər. Bu cür informasiya “proses-valideynin”
sorğusundan əvvəl və ya onun fəaliyyətinin sonundan əvvəl prosesi işləyib ödəyən PCB-də
saxlanılır, bundan sonra, bitmiş prosesin bütün izləri sistemdən tamamilə itirlər. Unix əməliyyat
sistemində “icranı bitirdim” vəziy-yətində olan prosesləri proses-zombi adlandırmaq
qəbul
olunmuşdur.
Qeyd etmək lazımdır ki, bir sıra əməliyyat sistemlərində (məsələn, VAX/VMS) “proses-
valideynin” məhvi onun bütün “uşaqlarının” işlərinin bitməsinə gətirib çıxarır. Digər əmə-liyyat
sistemlərində (məsələn, Unix-də) “proseslər-uşaqlar” “proses-valideyn” işinin bitməsindən sonra da,
özünün mövcudluğunu davam etdirirlər. Bu halda PCB-dəki “proseslər-uşaqlar”-da proseslərin
genealoji meşəsinin bütövlü-yünü saxlamaqdan ötrü, onları törədən proses barəsində
informasiyasının dəyişilmə zəruriyyəti əmələ gəlir. Aşağıdakı misalı nəzərdən keçirək.
Tutaq ki,
2515 nömrəli proses 2001 nömrəli proses tərəfindən törədilmişdir və onun işi bitdikdən sonra,
hesablama sistemində qeyri-məhdud uzun müddət qalır. Onda istisna olunmur ki, 2001 nömrəsi
tamamilə digər bir proses üçün əməliyyat sistemi tərəfindən təkrarən istifadə olunacaqdır. Əgər
2515 prosesi üçün “proses-valideyn” barəsindəki informasiyanı dəyişdirməsək, o zaman proseslərin
genealoji meşəsi korrekt olmayacaqdır – 2515 prosesi 2001 yeni prosesi öz valideyni kimi hesab
edəcək, 2001 prosesi isə gözlənilməyən nəsildən boyun qaçıracaqdır.
Bir qayda olaraq, “yetim
qalmış” proseslər, əməliyyat sisteminin startı zamanı törənən və əməliyyat sisteminin işlədiyi bütün
vaxt ərzində işləyən sistem proseslərinin biri tərəfindən “oğulluğa” götürüləcəklər.
Dostları ilə paylaş: