Bankacılık Sistemlerinde Görünmez Tehlike: ATM’den Para Çekerken Arkada Neler Oluyor?
Bir ATM’den para çektiğinizi düşünün. Siz işleminizin birkaç saniye içinde tamamlanmasını beklersiniz. Ancak aynı anda binlerce kişi para…
Bankacılık Sistemlerinde Görünmez Tehlike: ATM’den Para Çekerken Arkada Neler Oluyor?
Bir ATM’den para çektiğinizi düşünün. Siz işleminizin birkaç saniye içinde tamamlanmasını beklersiniz. Ancak aynı anda binlerce kişi para transferi yapıyor, kredi kartı ödemesi gerçekleştiriyor ve bakiye sorguluyor olabilir. Tüm bu işlemler arka planda aynı veritabanı kaynaklarını kullanır.
Peki ya iki işlem birbirinin kullandığı kaynağı beklemeye başlarsa? İşte burada işletim sistemleri ve veritabanlarının en klasik problemlerinden biri olan deadlock (çıkmaz) ortaya çıkar.

Görsel 1: ATM üzerinden gerçekleştirilen bankacılık işlemlerinin temsili görünümü.
Deadlock Nedir?
En basit tanımıyla deadlock (çıkmaz); iki veya daha fazla sürecin, ilerleyebilmek için ihtiyaç duydukları kaynakları dairesel bir zincir şeklinde birbirlerinden beklemesi ve hiçbirinin bir adım bile ileri gidememesi durumudur.
Bu soyut kavramı, bankacılık dünyasından çok tanıdık, somut bir senaryo ile canlandıralım. Elimizde iki aktif kullanıcı ve iki farklı banka hesabı olsun: Hesap A ve Hesap B.
İşlem T1 (ATM İşlemi): Bir kullanıcı ATM’den Hesap A’dan Hesap B’ye para göndermek istiyor. Sistem, veri tutarlılığını korumak için ilk adım olarak Hesap A üzerinde bir yazma kilidi (exclusive lock) alıyor. Bir sonraki adımda Hesap B’ye erişmek ve onu da kilitlemek istiyor.
İşlem T2 (Mobil Uygulama İşlemi): Tam o mikrosaniyede, başka bir kullanıcı mobil uygulamadan Hesap B’den Hesap A’ya para transferi başlatıyor. Sistem, benzer şekilde Hesap B üzerinde bir yazma kilidi alıyor ve işlemi tamamlamak için Hesap A’nın kilidini talep ediyor.
Şimdi tablonun dışından sisteme bakalım:
T1 işlemi, T2'nin elinde tuttuğu Hesap B’nin kilidini bekliyor.
T2 işlemi ise, T1'in elinde tuttuğu Hesap A’nın kilidini bekliyor.
Sonuç? T1 ilerlemek için T2’yi, T2 ise T1’i beklemektedir. Zaman durur, kuyruklar şişer ve hiçbir harici müdahale olmadığı sürece bu iki işlem sonsuza kadar bu kör düğümün içinde kalır. Sistem tam anlamıyla bir çıkmaza girmiştir.
Bu Neden Oluyor?
İşletim sistemi teorisine göre bir deadlock’un oluşabilmesi için dört koşulun aynı anda gerçekleşmesi gerekir:
- Mutual Exclusion (Karşılıklı Dışlama): Kaynak aynı anda yalnızca bir işlem tarafından kullanılabilir.
- Hold and Wait (Tut ve Bekle): İşlem elindeki kaynağı bırakmadan başka kaynak bekler.
- No Preemption (Zorla Geri Alamama): Sistem kaynağı zorla geri alamaz.
- Circular Wait (Döngüsel Bekleme): İşlemler arasında döngüsel bekleme oluşur.
Bankacılık sistemlerinde bu dört koşulun tamamı zaman zaman ortaya çıkabilir.
Sorunun Etkileri
Deadlock sadece bir işlemin gecikmesi anlamına gelmez.
Büyük ölçekli sistemlerde:
- İşlem kuyrukları büyür.
- Veritabanı performansı düşer.
- Kullanıcılar zaman aşımı hataları alır.
- Sunucu kaynakları verimsiz kullanılır.
Özellikle yoğun işlem hacmine sahip finansal sistemlerde bu durum ciddi operasyonel problemlere yol açabilir.
İşletim Sistemi Bu Problemi Nasıl Çözer?
İşte burada preemption devreye girer.
Sistem deadlock’u tespit ettiğinde, döngü içindeki işlemlerden birini seçer ve sonlandırır.
Bu işleme genellikle victim selection (kurban işlem seçimi) denir.
Sonlandırılan işlem:
- Geri alınır,
- Tuttuğu kilitleri bırakır,
- Diğer işlemlerin devam etmesine izin verir.
Böylece sistem tekrar çalışabilir hale gelir.
Daha İyi Bir Yaklaşım Mümkün mü?
Modern sistemler deadlock oluştuktan sonra müdahale etmek yerine, oluşmasını zorlaştırmaya çalışır.
Bunun için:
- Tutarlı kilit sıralaması kullanılır.
- İşlem süreleri kısa tutulur.
- Kilit sayısı azaltılır.
- Retry mekanizmaları uygulanır.
- Dağıtık sistemlerde iş akışları yeniden tasarlanır.
Bu yöntemler deadlock olasılığını önemli ölçüde azaltır.

Görsel 2: Bankacılık sistemlerinde kullanılan sunucu ve veri merkezi altyapısını temsil eden görünüm.
Sonuç
Deadlock, işletim sistemleri ve veritabanı yönetim sistemlerinin onlarca yıldır mücadele ettiği temel problemlerden biridir. Özellikle bankacılık sistemleri gibi yüksek eşzamanlılık gerektiren ortamlarda, kaynak yönetimi kritik öneme sahiptir.
Doğru tasarlanmış bir kilit yönetimi, etkili deadlock tespiti ve preemption mekanizmaları sayesinde sistemler hem güvenilir hem de yüksek performanslı şekilde çalışmaya devam edebilir.
Kaynakça
- GeeksforGeeks. (2024). Deadlock in DBMS. GeeksforGeeks. (Veritabanı yönetim sistemlerinde deadlock tespiti, Wait-For Graph (WFG) analizi ve kurban seçimi (victim selection) algoritmalarını açıklar.) https://www.geeksforgeeks.org/deadlock-in-dbms/
- OSfin. (2023). Concurrency control in databases. OSfin Blog. (Eşzamanlı işlem yönetiminde veri bütünlüğünü koruma yöntemlerini, İki Fazlı Kilitleme (2PL) protokolünü ve kilit çakışmalarını tanımlar.) https://www.osfin.ai/blog/concurrency-control
- AlmaBetter. (2024). Deadlock in OS: Prevention, Detection, and Recovery. almabetter.com. (İşletim sistemlerinde kilitlenme süreçlerinin tespiti, kaynak tahsis grafikleri ve sistemin preemption ile kör düğümden kurtarılma adımlarını inceler.) almabetter.com/bytes/articles/deadlock-in-os

메타데이터
- post_id
- 0c00fc841a35
- slug
- bankacılık-sistemlerinde-görünmez-tehlike-atmden-para-çekerken-arkada-neler-oluyor-0c00fc841a35
- url
- https://medium.com/huawei-student-developers-turkiye/bankac%C4%B1l%C4%B1k-sistemlerinde-g%C3%B6r%C3%BCnmez-tehlike-atmden-para-%C3%A7ekerken-arkada-neler-oluyor-0c00fc841a35
- canonical_url
- https://medium.com/huawei-student-developers-turkiye/bankac%C4%B1l%C4%B1k-sistemlerinde-g%C3%B6r%C3%BCnmez-tehlike-atmden-para-%C3%A7ekerken-arkada-neler-oluyor-0c00fc841a35
- author_url
- https://medium.com/@hsdtopkapi
- status
- ok
- fetched_at
- 2026-06-16 19:09:56