Bir önceki ders videosundan devam edecek olursak, bakalım programınızda kilitlenme
durumunun ortaya çıkması için aynı anda gerçekleşmesi zorunlu ve gerekli olan dört koşul nedir?
Yani dört koşul, karşılıklı dışlama bekletme ve bekleme, ön alma yok ve dairesel bekleme koşullarıdır.
Dolayısıyla, birinci koşul uyarınca, programınızın kaynağı paylaşılamaz bir özelliğe sahip olmalıdır.
Programınızın sahip olduğu iki veya bir kaynak aynı anda birden fazla iş parçacığı tarafından erişilebilir
olmamalıdır.
Bu tür bir kaynağın gerçek dünyadaki örneği, aynı anda yalnızca bir kişi tarafından kullanılabilen ev tuvaletlerinizdir.
Değil mi?
Dolayısıyla, kilitlenmenin meydana gelmesi için, sürecinizin kullandığı kaynakların, belirli bir zamanda yalnızca
bir iş parçacığının bu kaynağa erişmesine izin verilmesi gereken bir özelliğe sahip olması gerekir.
Doğru.
Bu nedenle, programınızın kullandığı kaynaklar, kaynakların paylaşılamaz olması gerektiğine dair bir özelliğe sahip olmalıdır.
Yani, belirli bir zamanda yalnızca bir iş parçacığı bu kaynağa erişebilir.
İkinci özellik ise tut ve bekle.
Bu basitçe, bir sürecin iş parçacıklarından birinin bir programın kaynaklarından biri üzerinde bir kilide sahip olduğu
ve aynı programın başka bir kaynağı üzerinde bir kilide sahip olmak istediği anlamına gelir.
Değil mi?
Yani bir iş parçacığı en az bir kaynağı tutuyor ve aynı zamanda diğer kaynak üzerinde kilitlenmeyi
bekliyor.
Dolayısıyla, kilitlenmenin gerçekleşmesi için bekletme ve bekleme durumunun da gerçekleşmesi gerekir.
Yani bekletme ve bekleme koşulu da bu diyagramda görselleştirilebilir.
Konu.
Örneğin T1, R2 kaynağını zaten günlüğe kaydetmiştir ve aynı zamanda R1 kaynağı üzerinde bir kilide sahip olmak
istemektedir.
Doğru.
Yani T1 iş parçacığı R1 kaynağını beklerken R2 kaynağını kilitliyor veya tutuyor.
Yani bekle ve gör.
Üç numaralı madde, iş parçacığı kendi isteğiyle kaynağı serbest bırakmadıkça bir kaynağın iş parçacığından
alınamayacağını söyler.
Doğru.
Bir iş parçacığı, kaynağı gerçekten serbest bırakması için harici bir varlık tarafından zorlanamaz.
Ya da başka bir deyişle, T1 iş parçacığının kaynağı t2 iş parçacığından alamayacağını söyleyebilirsiniz.
Doğru.
Kapkaç yok.
Herkes oldukça disiplinli.
Ve son koşulda dairesel bir koşuldan bahsediliyor.
Bekle.
Bu diyagramda bir daire oluşturulduğunu görebilirsiniz, değil mi?
İş parçacığı, dairesel bir şekilde başka bir iş parçacığı tarafından işgal edilen kaynağı beklemelidir.
Yani bir dizi iş parçacığı dairesel bir biçimde birbirini bekliyor.
Doğru.
Dolayısıyla kilitlenme yalnızca bu dört koşulun tamamı doğru olduğunda meydana gelir.
Aynı zamanda, bu koşullardan biri yanlış olsa bile.
Bir kilitlenme meydana gelemez.
Değil mi?
Yani karşılıklı dışlama bekleyin ve bekleyin.
Ön alma ve genelge yok.
Bekle.
Bunlar kilitlenmenin gerçekleşmesi için gerekli dört koşuldur.
Bu oldukça ders kitabı temelli bir konudur ve referansını internette veya standart ders kitaplarınızda kolayca
bulabilirsiniz.