Yazan : Şadi Evren ŞEKER

Bilgisayar bilimlerinde özellikle de işletim sistemi ve müşterek programlamada (concurrent programming, eş zamanlı programlamada)  sıkça kullanılan bir eşleme (synchronization) yöntemidir. Yani birden fazla işin (process) aynı anda çalışması halinde birbirleri için risk arzettikleri kritik zamanlarda (critical sections) birbirlerini beklemesini sağlayan bir mekanizmadır.

Basitçe bir değişken veya bir mücerret veri yapısı (abstract data type, soyut veri tipi, adt) üzerine kurulmuş olup, bu veri yapısı içerisindeki bilgiye ve fonksiyonlara göre çalışmaktadır.

Semaforların çalışması sırasında bölünmezlik (atomicity) ön plandadır. Yani bir semafor’un içerisinde yapılan birden fazla iş, program tarafından sanki tek bir iş gibi algılanmalı ve araya başka işin girmesine izin verilmemelidir.

Semaforlar kullanım alanları ve tasarımları itibariyle ikiye ayrılır:

  • ikili semaforlar (binary semaphores)
  • tam sayı semaforları (integer semaphores)

ilk semafor tipi olan ikili semaforlar sadece iki işlem (process) arasında eşleme (Synchornization) sağlar ve üçüncü bir iş için tasarlanmamıştır. Tam sayı semaforları ise istenilen miktarda işlemi kontrol edebilir.

Yorumlar

  1. viensdans

    3 klasik senkronizasyon probleminin aciklamasi yapacak birisi?
    üretici tüketici problemi
    yazma okuma problemi
    ve filosoflarim aksam yemegi problemi

  2. Hakan

    Merhaba hocam, semaphorelarda linuxde x dilinde Cigarette-smokers problemini nasıl yapabilirim POSIX ile yardımcı olur musunuz acaba bana?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


yedi − = 6