bilgisayar mühendisliği yüksek lisans bilim sınavı Test 1

Soru 04 / 10

Paralel programlamada 'race condition' (yarış durumu) nedir?

A) İki veya daha fazla thread'in aynı anda aynı kaynağa erişmeye çalışması ve sonucun tahmin edilemez olması
B) Bir thread'in diğerinden daha hızlı çalışması
C) Thread'lerin birbirleriyle senkronize bir şekilde çalışması
D) Bir thread'in sonsuz döngüye girmesi

Paralel programlama, birden fazla görevin (thread veya işlem) aynı anda çalıştırılması anlamına gelir. Bu, programların daha hızlı çalışmasını sağlayabilir. Ancak, bu tür ortamlarda bazı zorluklar ortaya çıkabilir. İşte 'race condition' (yarış durumu) da bunlardan biridir.

  • Race Condition (Yarış Durumu) Nedir?
  • Bir programda birden fazla thread (iş parçacığı) veya işlem aynı anda çalışırken, ortak bir kaynağa (örneğin, bir değişken, bir dosya veya bir veritabanı kaydı) erişmeye ve onu değiştirmeye çalıştığında ortaya çıkan bir durumdur.
  • Bu thread'lerin erişim sırası önceden belirlenemediği için, her çalıştırmada farklı sonuçlar elde edilebilir. Sonuç, hangi thread'in kaynağa önce eriştiğine veya hangi sırayla işlem yaptığına bağlı olarak değişir. Bu da programın davranışını tahmin edilemez hale getirir.
  • Basit Bir Örnekle Anlayalım:
  • Bir banka hesabınız olduğunu ve bu hesaba aynı anda iki farklı işlemle (örneğin, bir maaş yatırma ve bir fatura ödeme) erişildiğini düşünün.
  • Hesabınızda başlangıçta 100 TL var.
  • İşlem 1 (Maaş Yatırma): Hesaba 50 TL ekleyecek. (Okur: 100 TL, Ekler: 50 TL, Yazar: 150 TL)
  • İşlem 2 (Fatura Ödeme): Hesaptan 20 TL çekecek. (Okur: 100 TL, Çıkarır: 20 TL, Yazar: 80 TL)
  • Eğer bu işlemler sırayla çalışsaydı (önce maaş, sonra fatura), sonuç 100 + 50 - 20 = 130 TL olurdu.
  • Ancak, bir yarış durumu oluşursa:
  • İşlem 1, hesabı 100 TL olarak okur.
  • Hemen ardından İşlem 2 de hesabı 100 TL olarak okur (İşlem 1 henüz yazma işlemini bitirmedi).
  • İşlem 1, kendi hesaplamasını yapar (100 + 50 = 150) ve hesaba 150 TL yazar.
  • İşlem 2, kendi hesaplamasını yapar (100 - 20 = 80) ve hesaba 80 TL yazar.
  • Sonuç olarak, hesapta 80 TL kalır! Oysa doğru sonuç 130 TL olmalıydı. Bu, veri tutarsızlığına yol açan bir yarış durumudur.
  • Seçenekleri Değerlendirelim:
  • A) İki veya daha fazla thread'in aynı anda aynı kaynağa erişmeye çalışması ve sonucun tahmin edilemez olması: Bu tanım, yukarıda açıkladığımız yarış durumunu (race condition) tam olarak ifade eder. Birden fazla thread'in ortak kaynağa eş zamanlı erişimi ve bu erişim sırasının belirsizliği nedeniyle ortaya çıkan öngörülemeyen sonuçlar, yarış durumunun temel özellikleridir.
  • B) Bir thread'in diğerinden daha hızlı çalışması: Thread'lerin hız farkı, yarış durumunun bir nedeni olabilir ancak doğrudan tanımı değildir. Önemli olan hız farkından ziyade, bu hız farkının ortak kaynağa erişim sırasını nasıl etkilediğidir.
  • C) Thread'lerin birbirleriyle senkronize bir şekilde çalışması: Senkronizasyon, yarış durumlarını önlemek için kullanılan bir yöntemdir. Yani, yarış durumu senkronizasyonun tam tersi, senkronizasyonun olmadığı veya yetersiz olduğu durumlarda ortaya çıkan bir problemdir.
  • D) Bir thread'in sonsuz döngüye girmesi: Sonsuz döngü, bir programlama hatasıdır ve bir thread'in belirli bir koşul sağlanmadığı sürece sürekli olarak aynı kod bloğunu çalıştırması anlamına gelir. Bu, bir yarış durumu değildir, ancak paralel programlamada başka sorunlara (örneğin, kaynakların boşa harcanması) yol açabilir.

Cevap A seçeneğidir.

↩️ Soruya Dön
✨ Konuları Gir, Yapay Zeka Saniyeler İçinde Sınavını Üretsin!
1 2 3 4 5 6 7 8 9 10
Geri Dön