Aclığa qarşı çıxılmaz
Ölməzlik və aclıq arasındakı əsas fərq onların arasındakı səbəb-nəticə əlaqəsidir; aclığa səbəb olan dalana dirənişdir. Çıxış və aclıq arasındakı digər maraqlı fərq, aclıq bəzən çıxılmaz vəziyyətdən çıxmağa kömək edə bildiyi halda, çıxılmaz vəziyyətin problem olmasıdır. Kompüter dünyasında, kompüter proqramı yazarkən, proqrama tələb olunan xidməti yerinə yetirmək üçün bir-birinin ardınca eyni vaxtda işləyəcək birdən çox proses/iplik olacaq. Buna görə də, ədalətli bir sistemə sahib olmaq üçün proqramçı bütün proseslərin / mövzuların ehtiyac duyduğu resurslara kifayət qədər çıxış əldə etməsini təmin etməlidir. Əks halda, çıxılmaz vəziyyət yaranacaq və bu, sonradan aclığa gətirib çıxaracaq. Ümumiyyətlə, ədalətli sistemdə heç bir dalana dirənmə və aclıq yoxdur. Kilidlər və aclıqlar əsasən bir çox başlıqlar məhdud resurslar üçün rəqabət apardıqda baş verəcək.
Deadlock nədir?
Ölməzlik iki mövzunun və ya prosesin tapşırığı tamamlamaq üçün bir-birini gözlədiyi zaman yaranan vəziyyətdir. Onlar yalnız telefonu bağlayacaqlar, lakin heç vaxt işini dayandırmayacaq və ya bitirməyəcəklər. Kompüter elmində çıxılmaz vəziyyətləri hər yerdə görmək olar. Tranzaksiya verilənlər bazasında, hər biri öz tranzaksiya daxilində iki proses eyni iki məlumat cərgəsini yenilədikdə, lakin əks ardıcıllıqla, dalana səbəb olacaq. Paralel proqramlaşdırmada iki rəqabətli hərəkət bir-birinin irəliləyişini gözlədiyi zaman çıxılmaz vəziyyət yarana bilər. Telekommunikasiya sistemlərində siqnalların itməsi və ya pozulması səbəbindən çıxılmaz vəziyyət yarana bilər.
Hazırda çoxprosesli sistemlərdə və paralel hesablamalarda dayanma əsas problemlərdən biridir. Həll kimi, proqram təminatı və eləcə də aparat üçün proses sinxronizasiyası adlı kilidləmə sistemi tətbiq edilir.
Aclıq nədir?
Tibb elmi lüğətindən aclıq həyatın davam etdirilməsi üçün lazım olan qida maddələrinin kəskin və ya tam çatışmazlığının nəticəsidir. Eynilə, kompüter elmində aclıq birdən çox mövzu və ya proseslər eyni resursu gözlədiyi zaman rast gəlinən problemdir ki, bu da çıxılmaz vəziyyət adlanır.
Bir dalandan çıxmaq üçün proseslərdən və ya iplərdən biri imtina etməli və ya geri çəkilməlidir ki, digər mövzu və ya proses resursdan istifadə edə bilsin. Əgər bu davamlı olaraq baş verirsə və eyni proses və ya ip hər dəfə imtina etməli və ya digər proseslərə və ya iplərə resursdan istifadə etməyə icazə verərkən geri çəkilməli və ya geri çəkilməli olacaqsa, geriyə yuvarlanan seçilmiş proses və ya iplik aclıq adlanan vəziyyətə məruz qalacaq. Buna görə də çıxılmaz vəziyyətdən çıxmaq üçün aclıq həll yollarından biridir. Buna görə də bəzən aclıq bir növ diri quşu adlanır. Çoxlu yüksək prioritetli proseslər və ya mövzular olduqda, daha aşağı prioritetli proses və ya başlıq həmişə çıxılmaz vəziyyətdə qalacaq.
Resurslarda ac qalmaq və CPU-da ac qalmaq kimi bir çox aclıq ola bilər. Aclıq haqqında çoxlu ümumi nümunələr var. Onlar Oxucu-yazıçı problemi və daha məşhur olan yemək filosof problemidir. Spagetti qabları olan dəyirmi masa arxasında beş səssiz filosof oturub. Çəngəllər bitişik filosofların hər bir cütü arasında yerləşdirilir. Hər bir filosof növbə ilə düşünməli və yeməlidir. Bununla belə, bir filosof spagettini yalnız sağ və sol çəngəlləri olduqda yeyə bilər.
“Yeməkli Filosoflar”
Ölümlə Aclıq arasındakı fərq nədir?
Proses:
• Dalanda iki başlıq və ya proses bir-birini gözləyəcək və hər ikisi irəli getməyəcək.
• Aclıqda, iki və ya daha çox mövzu və ya proses eyni resursu gözlədikdə, biri geri çəkiləcək və ilk olaraq başqalarına resursdan istifadə etməsinə icazə verəcək, sonra isə aclıq çəkən mövzu və ya proses yenidən cəhd edəcək. Buna görə də, bütün mövzular və ya proseslər hər halda irəliləyəcək.
Geri döndərilir:
• Dalanda həm yüksək prioritet mövzular/proseslər, həm də aşağı prioritet mövzular/proseslər sonsuz olaraq bir-birini gözləyəcək. Heç bitməz.
• Lakin, aclıq zamanı aşağı prioritetlər gözləyəcək və ya geri çəkiləcək, lakin yüksək prioritetlər davam edəcək.
Gözləyir və ya Kilidlənir:
• Çıxış dairəvi gözləmədir.
• Aclıq bir növ canlı kiliddir və bəzən çıxılmaz vəziyyətdən çıxmağa kömək edir.
Çıxılmazlıq və Aclıq:
• Tıxanma aclığa səbəb olur, lakin aclıq dalana səbəb olmur.
Səbəblər:
• Qarşılıqlı istisna, gözləyin və gözləyin, heç bir üstünlük və ya dairəvi gözləmə səbəbindən çıxılmaz vəziyyət yaranacaq.
• Aclıq resursların qıtlığı, resursların nəzarətsiz idarə edilməsi və proses prioritetləri səbəbindən baş verir.
Xülasə:
Aclığa qarşı çıxılmaz
Çıxılma və aclıq proqramlaşdırma, eləcə də aparat tətbiqi zamanı baş verən məlumat yarışları və yarış şərtləri səbəbindən yaranan bəzi problemlərdir. Çıxılmaz vəziyyətdə, iki mövzu icra etmədən sonsuz olaraq bir-birini gözləyəcək, aclıqda bir ip geri dönəcək və digər iplik resurslardan istifadə etməyə imkan verəcəkdir. Çıxılmaz vəziyyət aclığa səbəb olar, aclıq isə ipin çıxılmaz vəziyyətdən çıxmasına kömək edər.