Semafor (programlama) - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Tarihçesi
  • 2 Semafor türleri
    • 2.1 Saymalı semafor
  • 3 Semaforların kullanım alanları
  • 4 Kaynakça

Semafor (programlama)

  • العربية
  • Català
  • Čeština
  • Dansk
  • Deutsch
  • Ελληνικά
  • English
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Français
  • Galego
  • עברית
  • हिन्दी
  • Magyar
  • Bahasa Indonesia
  • İtaliano
  • 日本語
  • Қазақша
  • 한국어
  • Кыргызча
  • Lietuvių
  • മലയാളം
  • Монгол
  • Nederlands
  • Polski
  • Português
  • Русский
  • Srpskohrvatski / српскохрватски
  • Slovenčina
  • Српски / srpski
  • Svenska
  • தமிழ்
  • Українська
  • Tiếng Việt
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Bu madde hiçbir kaynak içermemektedir. Lütfen güvenilir kaynaklar ekleyerek madde içeriğinin geliştirilmesine yardımcı olun. Kaynaksız içerik itiraz konusu olabilir ve kaldırılabilir.
Kaynak ara: "Semafor" programlama – haber · gazete · kitap · akademik · JSTOR
(Haziran 2025) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin)

Semafor, birden fazla programın veya iş parçacığının aynı anda çalıştığı durumlarda, ortak kaynaklara erişimi sıraya koymak ve düzenlemek için kullanılan bir kontrol mekanizmasıdır. Çoklu iş parçacıkları arasında çakışmayı önlemek, kritik bölgeleri korumak ve işlemler arasında düzen sağlamak amacıyla kullanılır. Programlama dillerinde ve işletim sistemlerinde sıkça kullanılan temel senkronizasyon yöntemlerinden biridir.

Tarihçesi

[değiştir | kaynağı değiştir]

Semafor kavramı, ilk kez 1965 yılında Hollandalı bilgisayar bilimcisi Edsger W. Dijkstra tarafından ortaya atılmıştır. Dijkstra, bilgisayar programlarında birden fazla işlemin aynı anda çalıştığı durumlarda, veri çakışmalarını önlemek için bu yöntemi geliştirmiştir.

Başlangıçta P ve V adını verdiği iki işlemle semaforu tanımlamıştır. Bu işlemler, kaynaklara sırayla ve güvenli bir şekilde erişilmesini sağlar. Daha sonra bu işlemler, wait() ve signal() adlarıyla programlama dillerine girmiştir.

Semaforlar, zamanla birçok işletim sisteminde kullanılmaya başlanmış ve çoklu işlem veya iş parçacığı ile çalışan programlarda yaygın bir senkronizasyon aracı haline gelmiştir.

Semafor türleri

[değiştir | kaynağı değiştir]
Saymalı semafor
[değiştir | kaynağı değiştir]

Bu semafor, bir sayı tutar. Aynı anda birden fazla işlemin veya iş parçacığının kaynağı kullanmasına izin verir. Örneğin, 3 değerine sahip bir saymalı semafor, aynı anda 3 kişinin bir yazıcıyı kullanmasına izin verir.

İkili semafor

Bu semafor sadece 0 veya 1 değerini alır. Yani, kaynağa aynı anda sadece bir kişi erişebilir. Bu, bir tür kilit gibi çalışır.

Semaforların kullanım alanları

[değiştir | kaynağı değiştir]

Semaforlar, çoklu işlem ve çoklu iş parçacığı ortamlarında, paylaşılan kaynaklara eşzamanlı erişimi düzenlemek amacıyla kullanılır. Örneğin, bir yazıcı gibi tek bir kaynağa aynı anda yalnızca bir iş parçacığının erişebilmesi semaforlar sayesinde sağlanır. Ayrıca, sınırlı sayıda eş zamanlı erişime izin verilen kaynaklarda (örneğin veritabanı bağlantıları), saymalı semaforlar kullanılarak erişim kontrolü gerçekleştirilir.

Semaforlar, kritik bölgelerin korunmasında kritik rol oynar; bu bölgelerde aynı anda yalnızca bir iş parçacığı çalışabilir. Ayrıca, üretici-tüketici ve okuyucu-yazıcı gibi klasik senkronizasyon problemlerinde, veri tutarlılığının sağlanması ve yarış koşullarının önlenmesi için semaforlar sıklıkla tercih edilir.

Kaynakça

[değiştir | kaynağı değiştir]
  • g
  • t
  • d
Tasarım örüntüleri kitabı
Yaratım
  • Fabrika yöntemi
  • Örnek
  • Soyut fabrika
  • Yapıcı
  • Yegâne
Yapısal
  • Bileşik
  • Cephe
  • Dekoratör
  • Köprü
  • Sinek siklet
  • Uyumlayıcı
  • Vekil
Davranış
  • Arabulucu
  • Durum
  • Gözlemci
  • Kalıp yordamı
  • Komut
  • Sorumluluk zinciri
  • Yadigâr
  • Yineleyici
  • Yorumlayıcı
  • Ziyaretçi
(sınıf örüntüleri eğik yazıyla)
  • g
  • t
  • d
Paralel hesaplama
Genel
Yüksek başarımlı hesaplama · Kümesel hesaplama · Dağıtık hesaplama · Dağıtımlı hesaplama · Bulut bilişim · Grafik işlemci biriminde genel amaçlı hesaplama · Bilgisayar ağı
Koşutluk düzeyleri
Bit · Komut · Veri · Görev
İzlekler
Üst izlekleme · Yüksek izlekleme
Kuram
Amdahl yasası · Gustafson yasası · Karp-Flatt ölçütü · Yavaşlama · Hızlanma
Ögeler
İşlem · İzlek · Lif · PRAM · Buyruk penceresi · Dizi
Eşgüdüm
Çoklu işleme · Çoklu izlekleme · Bellek tutarlılığı · Ön bellek tutarlılığı · Engel · Eşzamanlılaştırma · Aşamalı uygulama denetimi
Programlama
Modeller (Gizli koşutluk · Açık koşutluk · Koşutzamanlılık)
Donanım
Flynn Sınıflandırması (SISD • SIMD • MISD • MIMD) · Boru hattı yöntemi · Çoklu işleme (Bakışımlı · Bakışımsız) · Bellek (NUMA · COMA · Dağıtık · Paylaşımlı · Dağıtık paylaşımlı) · SMT
MPP · Sayılüstü · Dizi işlemcisi · Süper bilgisayar · Beowulf
APIler
POSIX Threads · OpenMP · MPI · OpenCL · UPC · Intel İzlekleme Yapıtaşları · Boost.Thread · Evrensel Diziler · Charm++ · Cilk · CUDA · PVM
Sorunsallar
Olağanüstü koşutluk · Büyük Sorun · Yazılım durağanlığı  · Ölçeklenebilirlik  · Yarışma koşulları  · Deadlock  · Gerekirci algoritma
  • Kategori Kategori
  • Commons sayfası Paralel hesaplama
"https://tr.wikipedia.org/w/index.php?title=Semafor_(programlama)&oldid=35464525" sayfasından alınmıştır
Kategoriler:
  • Senkronizasyon
  • Koşut zamanlılık
  • Paralel hesaplama
  • Bilgisayar aracılı iletişim
  • Edsger W. Dijkstra
  • Hollandalı icatları
Gizli kategori:
  • Kaynakları olmayan maddeler Haziran 2025
  • Sayfa en son 17.33, 12 Haziran 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Semafor (programlama)
Konu ekle