Üye Kayıt Üye Giriş
biz-sizi-arayalim
biz-sizi-arayalim
Bilgisayarlı Muhasebe Eğitim Seti
Masaüstü bilgisayarı cebe sığdırdılar
Masaüstü bilgisayarı cebe sığdırdılar
Avast ve Windows Güncellemeleri Çakışınca!
Avast ve Windows Güncellemeleri Çakışınca!
Toshiba'nın İddialı Bilgisayar Tableti!
Toshiba'nın İddialı Bilgisayar Tableti!
Yeni Microsoft'un Windows tanıtılıyor
Yeni Microsoft'un Windows tanıtılıyor
Skype 7, Mac ve Windows İçin Yayınlandı!
Skype 7, Mac ve Windows İçin Yayınlandı!
kpss-egitim-setleri

Semaforlar


LYS Görüntülü Eğitim Seti

Semaforlar

Mutex Unix/Linux ve Win32 sistemlerinde thread tarafından ele geçirilen senkronizasyon
nesnesidir. Oysa bazı durumlarda bir kritik koda tek bir kişi değil, örneğin n değişik kişinin
girmesi istenebilir. Semaforlar bu bakımdan mutex nesnelerinin sayaçlı biçimleridir.


Semaforlar aşağı yukarı tüm işletim sistemlerinde benzer kullanıma sahiptir. Semafora girmek
ile çıkmak biçiminde iki kavram vardır. Semaforların bir sayacı bulunur. Bu sayaç başlangıçta
semaforu yaratan kişi tarafından set edilir. Bir kod semafora girdiğinde sayaç azaltılır,
çıktığında artırılır. Bir kod semafora girerken işletim sistemi semafor sayacına bakar. Sayaç
0’dan büyükse girme hakkını elde eder ve sayaç bir eksiltilir. Sayaç 0 ise semafora girmek
isteyen kod semafor içerisinde bloke edilir. Başka bir kod semafordan çıktığında sayaç
artırılır. Bekleyen kodlardan en yüksek öncelikli olan kod semafora giriş sağlar. Böylece
mutex’lerde olduğu gibi kritik koda sadece tek bir kişi değil, aynı anda n kişi girebilmektedir.
Win32 sistemlerinde semafor CreateSemaphore API fonksiyonuyla yaratılır. Yaratan kişi
sayacı belirler. Kritik kod WaitForXXX ile ReleaseSemaphore fonksiyonları arasına alınır.
WaitForXXX fonksiyonları semafor sayacı 0’dan büyükse azaltma işlemini yapıp kritik koda
giriş işlemini yaparlar. Semafor sayacı 0 ise WaitForXXX fonksiyonları threadi çizelge dışı
bırakmaktadır. ReleaseSemaphore fonksiyonu semafor sayacını artırmaktadır.
WaitForSingleObject(hSemphore, INFINITE);
// ...
ReleaseSemaphore(hSemaphore, 1);

ALES Eğitim Seti
Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER

SEO En İyi SEO Firması Opencart Opencart E Ticaret İngilizce Öğren Fransızca Öğren Rusça Öğren Arapça Öğren Almanca Öğren Çince Öğren Japonca Öğren İspanyolca Öğren Hollandaca Öğren Kürtçe Öğren