Program Nedir?

0
1546

akinsoft_robotik_1Bu sayıda bilgisayar programlarının nasıl bir şey olduğunu, bu dünya ile ilgisi olmayan ama merak edenler için basitçe açıklamaya çalışacağız. Bilgisayarlar, önceden belirlenmiş komutları, kendi düzeni içerisinde sırayla icra eden, icra ederken kendisi dışında bir kaynaktan (klavye, fare, kamera, internet, sensör, başka bir bilgisayar, cd, dvd, usb bellek vb.) bilgi alan veya almayan, icra ettiği komutların sonuçlarını bilgisayarı kullanan kişiye aktaran veya aktarmayan makinelerdir. Önceden belirlenmiş kodlar derken anlatmaya çalıştığımız şey bilgisayar programlarıdır. Bugün hepimizin kullandığı işletim sistemleri de (örn. Windows) programdır, film izlediğiniz ekran da programdır, birisi sizi aradığında telefon ekranında arayanın adını gösteren, telefonun zilini çaldıran şey de programdır, markette kasaya gittiğinizde elinizdeki ürünleri “dıt- dıt” diye ses çıkartarak fişe yazdırılmasını ve ödeme tutarınızın hesaplanmasını sağlayan şey de programdır, televizyonunuzun uzaktan kumandası ile oturduğunuz yerden kanal değiştirmenizi sağlayan şey de bir programdır.

Bir makinenin bilgisayar olabilmesi için içermesi gereken birkaç temel ünite bulunmaktadır. İlk önce enerji ki bu mekanik enerji de olabilir, elektrik enerjisi de olabilir. Dünyanın ilk otomatik makineleri yani bilgisayarları mekanik enerjiden faydalanarak periyodik hesaplamaları yapabilmekteydiler. Saat veya takvim amaçlı kullanıldılar. Gökyüzü haritası olanları da vardı. Sürekli aynı sabit programı icra etmeleri onları bilgisayar olmaktan çıkartmaz. Yine arka planda çalıştırdıkları bir algoritmaları vardır. İşte o algoritma o makinenin gömülü programıdır (daha yaygın haliyle embedded application). Tıpkı kol saatiniz gibi. Saat, belirli bir andan başlayarak teorik anlamda sonsuza kadar, saniyeleri, milisaniyeleri, mikrosaniyeleri toplayarak şimdiki zamanı hesaplayan bir makinedir. Yani toplama yapabilen bir ünitesi vardır. İşte günümüzdeki bilgisayarlar da kol saatiniz gibi toplama çıkarma çarpma bölme adı verilen temel matematiksel işlemleri gerçekleştirebilen Aritmetik Ünite ye sahiptir.

Bilgisayarlar sadece aritmetik işlemler (+ – X /) yaparak, çalışma kuralları (komutları, algoritması) kullanıcı tarafından değiştirilebilen, programlanabilen makineler özelliği kazanamazlar. Karar verme davranışlarını geliştirebilmemiz için mantık işlemleri de yapabilmeleri gerekmektedir. Örnek vererek açıklayalım. Çalar saatiniz sizi her gün sabah 7 de uyandırıyor. İşe gitmek, okula gitmek, ders çalışmak vs. için…Çalar saat makinesi şimdiki zamana bakıyor, sizin ayarladığınız sınırdan önceyse hiçbir şey yapmıyor. Zaman sınıra varmış ise alarmı çalıştırıyor. Genelde de sizi yerinizden kaldırıp düğmesine bastırana kadar da susmuyor. Saatin programı, şimdiki saat, ayarlanan alarm saatinden büyük mü küçük mü karşılaştırması yapıyor. Alarmı susturma düğmesine basıldı mı basılmadı mı karşılaştırması yapıyor. Büyüktür “>” , küçüktür “<” , eşittir “==” , eşit değildir “!=” , büyük veya eşittir “>=” , küçük veya eşittir “<=” gibi durumların sonuçlarını hesaplayan Mantık Ünitesi sayesinde program davranışları değiştirilebilir. Düğmeye basıldıysa lamba yakılır, sensör hareket algıladıysa avm nin döner kapısı çalışır vb…

Bilgisayarlar mimarisinde aritmetik ve mantık üniteleri ayrı parçalar şeklinde değil ALU (Aritmetik Lojik Ünite) adı verilen tek bir birim olarak yer almaktadırlar. Bunun dışında bir de topladığımız sayıların, eşitmi büyükmü diye kontrol ettiğimiz verilerin tutulduğu, programın komutlarının icra edildiği süre boyunca verilerin alınıp, geri koyulduğu, yenisinin oluşturulduğu ya da silindiği bellek adı verilen ünite bulunmaktadır yani Bellek Ünitesi. Önceki örneğimizden devam edelim. Çalar saati saat 7 ye ayarladık. Program bu 7 sayısını belleğe kaydeder. Güncel saat bilgisini de sürekli saniyeleri toplayarak hesaplıyordu zaten. Bu güncel bilgi de bellekte kayıtlıdır. Programı gereği sürekli olarak bellekteki güncel saat bilgisini alır, yine bellekteki alarm saatini alır sonra bu ikisini alarm kontrol algoritmasındaki komutlar gereği ALU vasıtasıyla büyüktür küçüktür karşılaştırmasına sokar. Çıkan sonuca göre de alarmı çalıştırır veya çalıştırmaz. Yani veriler Bellek Ünitesinde depolanır, tutulur, saklanır, aritmetik ve mantık ünitesinde de işlenir. Burada bahsedilen bellek makine çalıştığı sürece verileri saklar, makinenin enerjisi kesilirse bu bellek sıfırlanır. Sıfırlanmayan bellekler de vardır örneğin filmlerinizi kaydettiğiniz usb hard diskler ve flash bellekler. Ancak bu belek çeşidi ilk paragrafta bahsettiğimiz dış veri kaynaklarıdır. Bilgisayarın ana mimarisinde yer almazlar.

Buraya kadar bahsettiklerimizi gözden geçirelim. Bir programın çalıştırılabilmesi için ihtiyaç duyulan 3 temel üniteden bahsettik. Enerji, Hesaplayıcı (ALU) ve Saklayıcı (Bellek). Daha pek çok teknik detay bulunmakla birlikte amacımız basite indirgemek olduğu için şunu rahatlıkla söyleyebiliriz. Bizim bilgisayar alırken kataloglardan okuduğumuz intel mi olsun, amd mi alsak, 4 çekirdek mi 8 çekirdek mi gibi cümleler içinde yer alan işlemci ve çekirdek kelimelerinin tam manası ALU dur. Yani işlemci dediğimiz şey işlem yapan kısım, yani aritmetik ve lojik işlemlerin yapıldığı birimdir. Çeşitliliğin bol olması, şimdilik göz ardı ettiğimiz diğer ünitelerinin yetenekleri ve işlem yapabilme hızları ile ilgilidir. Yine aynı kataloglardan baktığımız 4 cigabayt – 8 cigabayt (cigabayt : gb, Gigabyte) ifadeleri ise Bellek Ünitesi diye bahsettiğimiz teknolojisi bakımından RAM diye bilinen ünitedir. Ne kadar büyük kapasiteli olursa o kadar çok veriyi kısa zaman aralıklarında işleme kapasitesi vardır. Bu da kümülatif olarak bilgisayarın daha hızlı çalışmasını sağlar.

CEVAP VER

Please enter your comment!
Please enter your name here