şükela:  tümü | bugün soru sor
  • üretici/tüketici (producer/consumer ya da bounded buffer) problemi olarak da bilinir.

    --- spoiler ---

    üretici-tüketici probleminde, üreticinin görevi yeni bir ürün ürettiğinde ortaklaşa kullanılan bir alana bırakmaktır, tüketicinin görevi ise bu alandan alarak bu ürünü kullanmaktır. bu ortak alanın belli bir büyüklük sınırı vardır. değişik sayıda üretici ve tüketici olabilir, problemin daha kolay anlaşılması için bir üretici ve bir tüketici olduğu kabul edilecektir.
    ortak kullanılan alana aynı anda sadece bir erişim hakkı (üretici ya da tüketici) verilir. bunu sağlamak için mutex (mutual exclusion’ın kısaltması) isimli semafor kullanılır. mutex sadece iki değer alır; 1 ise kritik kesime giriş yapılabilir, 0 ise beklenir. ikinci koşul, ortak alan boş ise tüketicinin bekletilmesidir, bu amaç için full semaforu kullanılır. üçüncü koşul ise, ortak alanın dolması durumunda üreticinin bekletilmesidir, empty semaforu kullanılır. proseslerin n boyutlu bir bellek alanını ortaklaşa kullandığı varsayılırsa, full ve empty semaforları 0 ile n arasındaki tamsayı değerlerini alabilen sayan (counting) semaforlardır.*
    --- spoiler ---