dolaylı referans) yöntemiyle çağıra- biliriz. (Bu yöntemin ne olduğunu öğ- renmek için 68000'in Assembler'ını öğrenmek zahmetine katlanamaya- caklar için; bunun maksimum esnek- liği sağladığını belirtelim.) Böylece herhangi bir compiler'da (veya as- sembler'da) bir library'yi asıl adresi- ni bilmeden kullanmak mümkün. (Aslında sistemde bulunan tüm kod'a, alette yalnızca tek sabit adre- si bilip referans etmek olası, ve bu da isteyen her programa sağlanabilecek bir bilgi.) Device, library'den türemiş bir kavram. Görevi ise 1/O (giriş/çıkış) aletlerine üniform ve esnek bir şekil- de erişmeyi sağlıyor. Dikkat ettiyseniz, tüm sistemin ta- sarımında, esnek kullanım olayı ön planda tutulmuş. Gerçek bir *multitasking' işletim sistemindeki tüm işlerin birbirine karışmadan yü- rümesi için vazgeçilmez bir ölçü bu. 7. EXEC SİSTEMİ Exec sistemi, AMIGĞA'da hayati önemi olan çok önemli altprogram- lardan oluşmuş. Yaptığı işler, listeler ve veri kuyrukları (gueue) yaratıp, İş- lemek, yapılan işleri önceliklerine gö- re kontrol etmek ve yürürlüğe sok- mak, interrupt'ları işlemek ve servis vermek, çevresel bilgi giriş/çıkışını düzenlemek ve diğer fonksiyonları yerine getirmektir. AMIGA'da list-node adı verilen veri yapısı çok önemli bir yer tutar. List-node, bulunduğu listedeki, ken- dinden önce ve sonraki node'lara po- inter (göstergeç) içeren veri bloğudur. Exec'in içindeki birçok altprogram- lar yardımıyla, kullanıcıyı zahmete sokmazsanız bu tip listeler oluştur- mak, araya bir liste sokmak veya ara- dan bir liste çıkarmak mümkündür. (Burada sözü edilen programlama yöntemi sayesinde hafızada parça parça bulunan birçok bilgi parçasını, -bunlar veri veya program olabilir-, birbirleriyle birleştirmek veya arala- rındaki ilişkiyi kesmek mümkün ol- maktadır. Mesela, bir program çalı- şırken kullandığı bellek parçaları bir- birlerinin hemen arkasından gelme- yebilir. Arada diğer programların ve- rileri bulunabilir. Birkaç programın aynı anda çalıştığı zaman belleğin karmakarışık bir yapıya bürüneceği kesin! Fakat tüm programlar, EXEC sistemi sayesinde belleği kullanıp, o'- nun gönderdiği parametrelere uyar- larsa hiç bir sorun çıkmıyor.) EXEC'in içindeki diğer bir grup altprogramlar da yapılacak işleri dü- zenlemenizi sağlıyor. Yapılan işler işin tipi ve önceliğine göre ayırt edi- liyorlar ve bunlar yüksek öncelikliden alçak öncelikli olana doğru işleniyor- lar. AMIĞA'da birçok program ve- ya işlem iş (task) olarak muamele gö- rür. İşlerin önceliği için ayrılmış alan, -128 ile 4 127 arasında bir sayı içe- rir. Bu sayı işlerin işleneceği sırayı be- lirler. Aynı öncelikli işlemler, AMI- GA'nın zaman dilimlerinden daha evvelden belirtilmiş bir bölümünü kullanarak işlenirler. O anda yapılan işlemden daha yüksek öncelikli bir iş- lem sıraya girerse hemen o anki işlem kesilir ve yüksek öncelikli olanı işle- me konulur. Her işlemin durumu, re- gister'leri ve bilgi yığını ayrı olduğu için, o işlem kaldığı yerden devam edebilir. Bunun sağladığı bir avantaj da, beraber yürüyen programların birbirini nasıl etkileyecekleri gibi bir sorunun bulunmayışı. Çünkü yürü- yen her programın bütün ihtiyaçları öyle düzenli gideriliyor ki, tüm sis- temde tek kendi çalışıyor zannediyor. (Burada da bir örnek verme gereksi- nimi duyuyorum; diyelim ki bir prog- ram kullanıcıdan herhangi bir uyarı bekliyor. Böyle bir durumda o prog- ram bir bakıma donuyor ve tüm fonksiyonları duruyor. Ta ki istedi- ği bilgi ve uyarıları alana kadar. Sağ- lanan avantaj ise, bekleme durumla- rı içeren programların bu durum- larda sistem zamanının hiçbir mikro- saniyesini(!) ziyan etmemeleri.) Commodore 8. SİSTEM BUS'INI PAYLAŞMA Düşünün ki AMIGA aynı anda diski okuyor, dört kanallı müzik ça- hyor, 16 renkli düşük çözünürlüklü grafik gösteriyor, üstünde de sekiz adet sprite, fakat gene de 68000'in hı- zında görünür bir düşme olmuyor. Tabii ki, böyle bir şeyin gerçekleşmesi ancak sistem bus'ının (taşıtının) çe- şitli alt sistemler tarafından paylaşıl- masıyla olur. AMIĞA'nın 68000 ana işlem üni- tesi (herhalde artık ezberlediniz!) 7.15909 MHZz hızında çalışıyor. Ay- nı anda, RAM bellek elemanları ise bunun iki katı hızda çalışıyor. 68000'in birçok işlemleri bus'ı kullan- mak ve kendi içinde işlemler yapmak arasında gidip geliyor. Tabii bu ara- da bellek elemanları tüm hızda çalı- şıp diğer zamanlarda boş kalmakta. Bus'ın paylaşılmasında senkroni- zasyon olayı elektron tabancasının bir yatay çizgi çekme süresi (yaklaşık 64 mikrosaniye) içinde gerçekleşiyor. Bu süre her biri 280 nanosaniye uzun- luğunda 226 hafıza erişimi içeriyor. COPPER, BLITTER ve 680dü çift sayılı darbeleri (O, 2, 4,..) kullanıyor- lar. Tek sayılı darbelerin dördü dina- mik ram'leri refresh eden DMA ka- nalına, üçü disk DMA'sına, dördü ses DMA'sına (dört kanal ses için ye- terli), onaltısı sprite DMA'sına (sekiz sprite'a yetiyor) ve sekseni ise ekranı çizen bit-plane DMA'sına (16 renkli düşük çözünürlüklü grafik için yeter- li) kullanılıyor. Her çip'in kendi için- deki DMA devreleri kendi zamanı geldiğini anlayıp kimseyle karışma-