🎓 Bounlu tarafından hazırlandı
14.946 görüntülenme

Senkronizasyon ve Ölümlü Kilitlenme Önleme Nedir?

Çoklu işlemci sistemlerinde, birden fazla işlemin aynı anda paylaşılan kaynaklara erişmesi durumunda veri tutarlılığını sağlamak için senkronizasyon mekanizmaları kullanılır. Bu mekanizmaların yanlış kullanımı veya eksikliği, sistemin tamamen durmasına neden olabilen ölümlü kilitlenme (deadlock) sorununa yol açabilir.

Kısa cevap

Senkronizasyon, paylaşılan kaynaklara erişimi koordine ederek veri bütünlüğünü koruma işlemidir. Ölümlü kilitlenme ise, bir grup işlemin birbirlerinin kaynaklarını bekleyerek sonsuz bir döngüye girmesi durumudur ve önlenmesi gerekir.

01

Adım adım çözümlü örnekler

İki işlemin (P1 ve P2) aynı anda bir dosyaya (F) yazmaya çalıştığı durumu ele alalım. Senkronizasyon olmadan ne olur?

Senkronizasyon olmadan, P1 ve P2 aynı anda dosyaya yazmaya başlarsa, dosyadaki veriler karışabilir ve bozulabilir. Bu, veri tutarsızlığına yol açar. Senkronizasyon mekanizması (örneğin, bir kilit) ile bu durum engellenir; böylece bir işlem dosyaya yazarken diğeri bekler.

Bir ölümlü kilitlenme örneği verebilir misiniz?

İşlem A, Kaynak X'i tutarken Kaynak Y'yi istiyor. Aynı anda, İşlem B, Kaynak Y'yi tutarken Kaynak X'i istiyor. Bu durumda, A, B'nin bıraktığı Y'yi; B ise A'nın bıraktığı X'i bekler. Her iki işlem de sonsuza kadar birbirini bekler ve sistem kilitlenir.
02

Bilgi kartları

03

Mini test

S1.Aşağıdakilerden hangisi ölümlü kilitlenmenin temel koşullarından biri DEĞİLDİR?

Doğru cevap: D. Adil kaynak ataması ölümlü kilitlenmeyi önlemeye yardımcı olabilir ancak bir koşul değildir. Ölümlü kilitlenme için gerekli dört koşul şunlardır: karşılıklı dışlama, tutma ve bekleme, dışlama olmaması ve dairesel bekleme.

S2.Bir grup işlemin birbirlerinin kaynaklarını beklemesi sonucu sistemin tamamen durması durumuna ne ad verilir?

Doğru cevap: B. Bu durum, ölümlü kilitlenme (deadlock) olarak adlandırılır.

S3.Paylaşılan kaynaklara erişimi koordine ederek veri tutarlılığını sağlamak için kullanılan mekanizmalara ne denir?

Doğru cevap: C. Paylaşılan kaynaklara erişimi koordine ederek veri tutarlılığını sağlayan mekanizmalara senkronizasyon denir.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Senkronizasyon sadece tek işlemcili sistemlerde önemlidir.Doğrusu: Senkronizasyon, özellikle çoklu işlemci ve dağıtık sistemlerde, paylaşılan kaynaklara erişim nedeniyle kritik öneme sahiptir.

Ölümlü kilitlenme kendiliğinden çözülür.Doğrusu: Ölümlü kilitlenme, sistemin tamamen durmasına neden olur ve manuel müdahale veya özel algoritmalarla çözülmelidir.

05

Sıkça sorulan sorular

Senkronizasyon ve ölümlü kilitlenme arasındaki temel fark nedir?

Senkronizasyon, veri tutarlılığını sağlamak için erişimi koordine eden bir mekanizmadır. Ölümlü kilitlenme ise, senkronizasyonun doğru yönetilmemesi veya eksikliği sonucu ortaya çıkan ve sistemin durmasına neden olan bir durumdur.

Ölümlü kilitlenmeyi önlemek için hangi stratejiler kullanılır?

Ölümlü kilitlenmeyi önlemek için dört ana strateji vardır: ölümlü kilitlenmeyi engelleme (koşullardan birini ortadan kaldırmak), ölümlü kilitlenmeden kaçınma (kaynak tahsisini dikkatli planlamak), ölümlü kilitlenmeyi tespit etme ve kurtarma (kilitlenme olduğunda tespit edip sistemi eski haline getirmek) ve ölümlü kilitlenmeyi göz ardı etme (sistemde olabileceğini varsaymak ama önlememek).

Hangi programlama dili yapıları senkronizasyon için kullanılır?

Java'da 'synchronized' anahtar kelimesi, C++'ta mutex'ler ve semoforlar, Python'da 'threading' modülündeki araçlar gibi birçok dil, senkronizasyon için özel yapılar sunar.

İlgili konular