Semafor (Semaphore, Flama, İşaret)

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:

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.

Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


697 views

4 responses to “Semafor (Semaphore, Flama, İşaret)”
  1. viensdans says:

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

  2. Hakan says:

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

  3. X dili ile C dilini mi kastediyorsunuz?

  4. Ahmet says:

    POSIX uyumlu dil. örneğin c olabilir.

Leave a Reply


altı * 3 =

Benzer Yazılar:

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Semafor (Semaphore, Flama, İşaret)' isimli yazı 30 Mar 2009 tarihinde, saat: 16:30 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam697 defa okunmuştur.

Benzer yazıları bilgisayar felsefesi, işletim sistemleri, Programlama Dilleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Category: bilgisayar felsefesi, işletim sistemleri, Programlama Dilleri