Sobes.tech
Junior — Middle

Resursların qarşılıqlı kilidlənməsi nədir və sistemlərdə hansı vəziyyətlərdə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Əlaqədar bloklama (deadlock) çoxlu tapşırıq sistemlərində, iki və ya daha çox prosesin (və ya axınların) bir-birini sonsuz müddətə bloklaması vəziyyətidir, digərinin istifadə etdiyi resursların azad olunmasını gözləyirlər.

Bu, bütün dörd şərt eyni vaxtda yerinə yetirildikdə baş verir:

  1. Əks əlaqə — resurs yalnız bir proses tərəfindən tutulabilir.
  2. Qalmaq və gözləmək — proses bir resursu saxlayır və başqa birini gözləyir.
  3. Məcburi azad etmənin mümkün olmaması — resurs prosesdən məcburən alınmaz, yalnız onun könüllü azad etməsindən sonra.
  4. Dairəvi gözləmə — proseslərin dövrü var, hər biri növbəti tərəfindən tutulan resursu gözləyir.

Misal üçün: A prosesi resurs 1-i tutub və resurs 2-ni gözləyir, B prosesi isə resurs 2-ni tutub və resurs 1-i gözləyir — hər ikisi sonsuz müddətə bloklanıb.

iOS və digər sistemlərdə, deadlocklar çox vaxt sinxronizasiyanın düzgün istifadə edilməməsi nəticəsində baş verir, məsələn, müxtəlif ardıcıllıqla çoxsaylı kilidləri əldə etmək.

Deadlockların qarşısını almaq üçün istifadə olunur:

  • resursların əldə olunma ardıcıllığını tənzimləmək;
  • vaxt limitləri qoymaq;
  • digər resurslar gözlənilərkən resursları saxlamağı qarşısını almaq;
  • ixtisaslaşmış sinxronizasiya mexanizmlərindən istifadə etmək.