Bilgisayar mühendisliğinde, uyuyan berber sorunu işletim sistemleri konusunda klasik bir sorundur. Berber ve müşteriler prosesler olarak düşünülebilir.
Gerçekleme
- Aşağıdaki sözde kod berber ve müşteriler için ölümcül kilitlenme olmayan bir çözümdür ancak yol açabilir.
Semaphore Müşteriler = 0 Semaphore Berber = 0 Semaphore sandalyelereErişim = 1 # mutex int BoşSandalyeSayısı = N # toplam sandalye sayısı def Berber(): while true: # Bir sonsuz döngü içinde çalış. P(Müşteriler) # Bir müşteri yakalamaya çalış. Eğer uygun bir müşteri yoksa uyu. P(sandalyelereErişim) # Uyandım - uygun sandalye sayısını değiştir. BoşSandalyeSayısı++ # Bir sandalye boşa çıktı. V(Berber) # Tıraşa hazırım. V(sandalyelereErişim) # Artık sandalyeler üzerinde kilide ihtiyaç yok. # (Tıraş) def Müşteri(): while true: # Bir sonsuz döngü içinde çalış. P(sandalyelereErişim) # Sandalyelere ulaşmaya çalış. if BoşSandalyeSayısı > 0: # Eğer boşta sandalye varsa: BoşSandalyeSayısı-- # bir sandalyeye otur V(Müşteriler) # müşteri bekleyen berberi uyar V(sandalyelereErişim) # artık sandalyeler üzerinde kilide ihtiyaç yok P(Berber) # sıra bu müşterinin, fakat berber meşgulse bekle. # (Tıraş) else: # boşta sandalye yok; şanssızlık... V(sandalyelereErişim) # sandalyeler üzerindeki kilidi bırakmayı unutma! # (Tıraş olmadan ayrıl)
Kaynakça
- Modern Operating Systems (3rd Edition) by Andrew S. Tanenbaum
- The Little Book of Semaphores by Allen B. Downey, http://greenteapress.com/semaphores 11 Haziran 2011 tarihinde Wayback Machine sitesinde .
Ayrıca bakınız
Bilgisayar ile ilgili bu madde seviyesindedir. Madde içeriğini genişleterek Vikipedi'ye katkı sağlayabilirsiniz. |
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bilgisayar muhendisliginde uyuyan berber sorunu isletim sistemleri konusunda klasik bir sorundur Berber ve musteriler prosesler olarak dusunulebilir GerceklemeAsagidaki sozde kod berber ve musteriler icin olumcul kilitlenme olmayan bir cozumdur ancak yol acabilir Semaphore Musteriler 0 Semaphore Berber 0 Semaphore sandalyelereErisim 1 mutex int BosSandalyeSayisi N toplam sandalye sayisi def Berber while true Bir sonsuz dongu icinde calis P Musteriler Bir musteri yakalamaya calis Eger uygun bir musteri yoksa uyu P sandalyelereErisim Uyandim uygun sandalye sayisini degistir BosSandalyeSayisi Bir sandalye bosa cikti V Berber Tirasa hazirim V sandalyelereErisim Artik sandalyeler uzerinde kilide ihtiyac yok Tiras def Musteri while true Bir sonsuz dongu icinde calis P sandalyelereErisim Sandalyelere ulasmaya calis if BosSandalyeSayisi gt 0 Eger bosta sandalye varsa BosSandalyeSayisi bir sandalyeye otur V Musteriler musteri bekleyen berberi uyar V sandalyelereErisim artik sandalyeler uzerinde kilide ihtiyac yok P Berber sira bu musterinin fakat berber mesgulse bekle Tiras else bosta sandalye yok sanssizlik V sandalyelereErisim sandalyeler uzerindeki kilidi birakmayi unutma Tiras olmadan ayril KaynakcaModern Operating Systems 3rd Edition by Andrew S Tanenbaum The Little Book of Semaphores by Allen B Downey http greenteapress com semaphores 11 Haziran 2011 tarihinde Wayback Machine sitesinde Ayrica bakinizMakarna yiyen dusunurler sorunuBilgisayar ile ilgili bu madde taslak seviyesindedir Madde icerigini genisleterek Vikipedi ye katki saglayabilirsiniz