Buridan'ın Eşeği Peter J. DENNİNG'ten Çeviren Nilüfer Güngören 14. yüzyıl Jean Buridan, iki eşit miktarda yiyecek arasında açlıktan ölen eşeğin paradoksunu anlatır (Rescher, 1967). Her biri aynı ölçüde çekici iki seçenekle karşılaşan herkes ne yapacağını bilemem duygusunu yaşamıştır. Ama bunun bilgisayar devrelerinin ve yazılımının aynı kaynakları kullanmak zorunda kaldıklarında karşılaştıkları sorunları güvenilir bir biçimde çözümleme yetkisini sınırlayacak kadar temel bir mesele olduğu kimin aklına gelirdi? Bilgisayar seri olarak yeniden kul- lanılabilir kaynak taleplerinden biri- ni seçen bir seferde yalnız bir işlemci tarafından kullanılabilen seçici adlı devreler içerirler. Bellek bankaları, aritmetik fonksiyon birimleri ve ileti- şim kanalları gibi genel donanim araç- ları bu türden kaynaklardır. Özel da- hili değişkenli alt-programlar ve data dosyaları gibi yazılımlar da bu türe gi- rer. Bir seçici neredeyse eş zamanlı olan iki sinyal arasında bir seçme yap- mak zorunda kalırsa ne olur? Talihsiz eşek gibi, seçici de başka devrelerce varsayılan süre içinde seçi- mini yapamazsa, sonuçlar her şeyi al- tüst edebilir. Seçme başarısızlıkların- dan biri, hiçbir işlemcinin devreye gir- memesiyle bilgisayarın durmasıdır. Bir başkasında ise, birçok işlemci ay- ni anda devreye girerek ortak kaynak- ta tutarsızlığa, böylelikle de bütün sis- temin iflasına (““crash'') yol açar. Sorunu kısaca özetleyelim N- girişli bir seçicinin N girdisi vardır (hber işlemci için 1) ve tutarlı olarak tam N <—- 1 çıktı durumuna sahip olması gerekir. Herhangi bir N girdisi için i durumu, i işlemcisinin seçildiğini ve ortak kaynağı kullandığını, o durumu ise hiçbir işlemci- nin seçilmediğini ve kaynağın serbest oldu- ğunu gösterir. Seçici o durumdayken i iş- lemcisi sinyal verirse, sinyal muhafaza edi- lir ve işlemci bekler. İşlemciler girdileri birbirinden ayrı zamanlarda verdiğinde se- çicinin işlemini izlemek kolay olur. Sorun, iki işlemci taleplerini yaklaşık aynı anda bildirdiğinde başlar. Bu durumda seçicinin aynı anda, i ve j için ayrı ayrı, O-i ve 0-j menzillerini izlemesi istenir. O zaman se- çici, i ve j hedefleri arasında eşit ve tam bir dengede kalabilir. Kalıcı olmayan bu den- geye METASTABL DURUM adı verilir. Seçici metastabl durumda olduğu sürece, çıktı satırlarının bir anlamı yoktur. Çıktı devinimleri ya tam olarak iki tabanlı 0” ya da “1” olarak yorumlanamayacak ara değerler alırlar, ya iki ya da daha faz- la seçmeyi işaret ederler, ya da arada salı- nırlar. Mertastabi durumlar, sabit durumlar arasındaki normal geçişlerde gidilip gelinen geçici durumlar gibi değildir. Metastabi durum süresiz devam eden bir denge noktasıdır. Buna karşılık geçici durum bir denge noktası değildir, süresi kısa ve sınırlıdır. Yeniden sabit duruma gelme süre- si, seçicinin girdileriyle metastabl du- rumun ne kadar yakınına getirildiği- ne ve geçiş hızına bağlıdır. Bu durum bir kayanın tepesinde hareketsiz du- ran topunkine benzer. Topun kayadan düşüp yerde durma noktasına gelme- si kayanın tepesinde ne kadar iyi den- gelendiğine ve kayanın eğimine bağ- lıdır. Nasıl topun kayanın üstünde ne kadar kalacağı tam olarak bilinemez- se, seçicinin metastabl durumunun ne kadar süreceği de tam olarak bilin- mez. Seçme başarısızlığını önlemenin yo- lu yok mudur? Kolayca akla gelen: Evet, her şey ortak bir saate bağla- nıp, sinyallerin çıkarıldığı ve kullanıl- dığı anlar ayrı saatlere bölüştürülür. O zaman, seçici devreler yalnızca sin- yal yollayan devrelerin gönderdiği de- ğişmez sinyalleri görür. Bu hipotezin yürümeyen yanı bazı sinyaller geldi- ğinde kontrolün olanaksızlaşmasıdır. Örneğin bir dosya aktarımının sonu- nu bildiren kesme sinyali tam olarak | kontrol edilemez, çünkü diskin dön- me süresi bütünüyle kontrol edilemez. Birlikte gelen iki sinyalden hiç değil- se biri tam olarak kontrol edilemiyor- sa, çakışma anında seçme başarısızlı- Bı ortaya çıkabilir. O zaman sürekli çalışan bir saatle seçme sorunu çözümleniyor demektir. Peki saat durdurulabilirse ne olur? Cambridge Üniversitesi Bilgisayar La- boratuvarı'ndan David Wheeler, Cam- bridge CAP Bilgisayarı için bir seçici