İşletim Sistemlerinde Yarış Durumu ve Çözümleri

İşletim Sistemlerinde YARIŞMA DURUMU

Çoklu programlama  nın en büyük dezavantajı aynı anda kullanılına ortak veri erişimleridir.

Farklı 2 işlemin aynı anda aynı veriye erişme durumunda bir tutarsızlık oluşacaktır.

Örneğin bir karı ve kocanın aynı hesapdan aynı anda farklı atmlerde işlem yaptığını düşünelim

BAŞLANGIÇTA HESAPDA 1000 TL VARDIR.

KADIN 500 TL ÇEKECEKTİR.

KOCASI İSE 200 TL YATIRACAKTIR.

SENERYO 1

KADIN VE KOCASININ yaptığı bütün işlemlerin aynı anda oldugunu varsayalım..

KADIN atm ye gelir ve hsapta 1000 tl oldugunu görür 500 tl çeker artık bakiye 500 olmuştur

KOCASI aynı anda başka bir atm ye gelir ve hesapda 1000 oldugunu görür ve hesbına 200 tl yatırır.Artık bakiye 1200  olmuştur.

 

Görüldüğü gibi bir yarış durumu oluşmuştur.Yani bakiye değişkenimizin bir zaman diliminde YALNIZ bir işlem tarafından kullanılması diğer işlemleri dışlaması gerekmektedir.

İşletim sistemlerinde yarışma durumuna çözüm olarak KARŞIKLI DIŞLAMA kavramı kullanılmaktadır.

İşlemlerin ortaklaşa kullandıkları veri alanlarına erişip veri okuma ve yazma işlemlerini yaptıkları program parçalarına kritik kısım (critical section) denir.

Yani Kritik Kısıma giren işlem kritik kısımdan çıkana kadar Diğer bütün işlemleri BLOKE eder.O an Mikroİşlemci Birimiini sadece kendisi kullanılır.Diğer bütün işlemler BLOKE durumdadır.İşini bitridkten sonra çıkar.

Birden fazla işlem aynı anda KRİTİK KISIMDA BULU-N-A-M-A-Z

ÇOKLU PROGRAMLAMA PARALELLİK SAĞLAR.PARALELLİK DE YARIŞ DURUMUNA SEBEB OLUR.YARIŞ DURUMUNU DA KARŞILIKLI DIŞARLAMA İLE ÇÖZERİZ.

YARIŞ DURUMUNA ÇÖZÜMLER

KRİTİK KISIMLARIN KARŞILIKLI DIŞARLANMA YÖNTEMLERİ

İşkesmenin Engellenmesi (Disabling Interrupts)

En kolay ve en masrafsızı budur.Ancak en büyük dezavantajı kritik kısma giren işlemin sonsuz döngü olması ile sonsuza kadar kritikkısımdan çıkamamaktır.Donanımsaldır.

Kilit Değişkenler ile

While (kilit==1) {
kilit=1
Kritik KısımA
kilit=0 }

Tam olarak çözüm sağalyamaz yinede yarışma durumu oluşabilir.

Sıralı Çalışma

Sıra değişkeni oluştur.Sıra=0 iken A sıra=1 iken B girer.Ancak işlemler birrbirini beklettiği için Mikroİşlemci Birimini fazlasıyla bekletir.

Test and Set Deyimi

Semaforlar

0 da dahil bütün pozitif tamsayılardır.DJSKTRA tarafından bulunmuştur.

Monitörler ve koşul değişkenleri

Win7,ubuntu ve ios gibi işletim sistemlerinde bu yöntem kullanılır.

Mesaj Gönderme alma

Dağıtık sistemlerde kullanılır. 2 türdür.Bloke eden /etmeyen gönderme ve Bloke eden/etmeyen alma

Yorum yapın