Müzeyyen Hıştıroğlu


030401028


Bilgisayar Mühendisliği 2




SIRALI ÇALIŞMA(STRICT ALTERNATION)

Yarış koşulu(race condition) için üretilen çözüm yöntemlerinden biri de sıralı çalışma(strict alternation)dır. Bu çözümde işlemlerin kritik kısımlarına sıralı olarak girmesi vasıtasıyla karşılıklı dışarlama sağlanmaktadır . Peşpeşe yapılan işlerin birbirini beklemeden, sıralı olarak (Pipeline) yapılmasına sıralı çalışma(strict alternation) denir. Bu durumda, sistemin ortalama hızını belirleyen faktör, sıra içerisinde yer alan ve en uzun zaman dilimine gereksinim gösteren işin süresidir. Bu tür yaklaşımlarda, her işlemci belirli bir zaman içinde belirli bir işi yapmak zorundadır. Bulduğu sonuçları, kendisini bekleyen işlemciye iletmekle sorumludur .Süreç temin edebilmek için bilgi tekrar başlayabilir.Süreç kontrol bloğu(process control block) ne kadar CPU kullanılacak ve süreç ne zaman başlayacak gibi bilgileri tutar. Sizin sadece bilgini bir örneğini tutmalısınız.Başka bir bilgi daha vardır ki;süreç kontrol bloğu kullanılan dosyalarla ve sürecin kullandığı bellek ile zerrekadar ilgili değildir.

Örnek: A ve B isimli işlemlerimiz olsun. Sıralı kritik kısma girmeyi modellemek için Sıra isimli bir değişken kullanacağız ve başlangıçta bu değişken 0 değerine sahiptir. Sıra 0 iken A, Sıra 1 iken B kritik kısmına girebi lir. Örneğin Sıra 0 iken A kritik kısmına girer, B bekler. A kritik kısmını terk ederken Sıra'yı 1 yaparak B'nin kritik kısmına girmesine olanak tanır. A?nın tekrar kritik kısmına girmesi B'nin kritik kısmını tamamlaması ile mümkün olur.

Dezavantajları:
-Eğer Süreç0 Süreç1'den daha hızlıysa Süreç0 Süreç1'in işlem zamanının bitmesi için beklerken sürekli olarak bloklar oluşturur. -Bir süreç diğer süreçten daha yavaş ise bu çözüm yöntemi uygun bir çözüm yöntemi değildir. -İşlemler farklı hızlarda çalışabilecek olmalarına rağmen ancak sıralı şekilde çalışmak zorundadır. Bu da gereksiz yere bekleme problemine sebep vermektedir. Bekleme blok durumda gerçekleşmediğinden MİB?nin kullanılmasına sebep olur. Bu da kaynak israfıdır.Eğer işlemlerden birisi biterse diğer işlem en fazla bir iterasyon sonunda boş beklemede sonsuz döngüye girer.

Sıralı Çalışma Algoritması(Strict Alternation Algorithm)
while(1)
{/*Süreç0*/
while(turn!=0;/*Spin lock:Not my turn)*/
critical_section();
turn=1;/*Release 1*/
remainder_section();
}/*Süreç1(Process1)*/
while(1)
{/*Süreç1*/
while(turn!=1;/*Spin lock:Not my turn)*/
critical_section();
turn=1;/*Release 0*/
remainder_section();
}/*Süreç1(Process0)*/
Bu program yarış koşulu(race condition) için bir çözümdür . Fakat bu çözümde başarı garanti değildir.