Mühazirə 7  Bir dəfəlik əməliyyatlar və Çox dəfəli əməliyyatlar

|
Mühazirə 7 Bir dəfəlik əməliyyatlar və Çox dəfəli əməliyyatlar
|
bet | 14/54 | Sana | 04.12.2023 | Hajmi | 1,95 Mb. | | #110636 | Turi | Mühazirə |
Bog'liq Əməliyyat sistemləri muhazire konspekti (1) Mühazirə 7 Bir dəfəlik əməliyyatlar və Çox dəfəli əməliyyatlar
Kompüterdə prosesin mürəkkəb həyat yolu onun həyata gəlməsindən başlayır. Proseslər konsepsiyasını dəstəkləyən istənilən əməliyyat sistemi onların yaradılması üçün vasitələrə malik olmalıdır. Çox sadə sistemlərdə (məsələn, yalnız bir konkret əlavənin işi üçün layihələndirilmiş sistemlərdə) bütün proseslər sistemin start mərhələsində törənə bilərlər. Daha mürəkkəb əməliyyat sistemləri lazım gəldikcə, prosesləri dinamiki yaradırlar. Əməliyyat sisteminin startından sonra yeni prosesin törənmə təşəbbüskarı kimi ya xüsusi sistem çağrışını təşkil edən istifadəçinin prosesi, ya da əməliyyat sisteminin özü, yəni son nəticədə, yenə də müəyyən bir proses çıxış edə bilər. Yeni prosesin yaradılma təşəbbüskarı olan prosesi proses-valideyn (parent process), yeni yaradılmış prosesi isə - proses-uşaq (child process) adlandırmaq qəbul olunmuşdur. Proses-uşaqlar öz 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.
|
| |