Bilgisayarın Çalışma Mantığı
Çalışma mantığını kavramak için öncelikle bilgisayarın bir işi nasıl yaptığını ve bilgisayarın parçalarını incelemek gerekir.
Bilgisayar bir işi,komutu 3 aşamada gerçekleştirir.
- Bilgi girişi
- Bilginin işlenmesi
- Bilgi Çıkışı
Bu durumu örneklerle inceleyelim.
Örnek 1: Cd içerisindeki bir word dosyasını yazıcıdan yazdırmak için şu işlemler gerçekleşir.
- Giriş: Cd’deki word dosyası bilgisayar tarafından okunur.
- İşlem: Okunan bilgi bilgi işlemci tafaından yazıcının anlayacağı şekle çevrilir.
- Çıkış: Son olarak çevrilen bilgi çıktı olarak yazıcıya gönderilir.
Örnek 2: Sabit diskteki resim dosyasını paint ile düzenleyip Cd’ye yazdırmak için şu işlemler gerçekleşir.
- Giriş: Sabit diskteki resim dosyası bilgisayar tarafından okunur.
- İşlem: Okunan resim painte aktarılır ve düzenlenir.
- Çıkış: Son olarak düzenlenen resim çıktı olarak Cd’ye gönderilir.
Bilgi girişi, bilginin işlenmesi ve bilgi çıkışı sırasında kullanılan bilgisayar parçalarını yaptıkları işe göre 5 gruba ayırabiliriz.
- Girdi Üniteleri: Bilgilerin bilgisayara aktarılmasını sağlar. Örneğin: Klavye, fare, tarayıcı, kamera yada mikrofon.
- Merkezi İşlem Birimi: Veriyi işlemeyi sağlar. Bilgisayardaki sadece 1 tane merkezi işlem birimi vardır, o da işlemcidir.
- Çıktı Üniteleri: İşlemcinin çıkan sonuçları dışarı aktarabilmesini sağlar. Örneğin: Monitör, yazıcı, sürücüler yada haporlör.
- Hafıza Birimi: Bilgisayar tarafından işlenecek bilgileri, programları depolamayı sağlar. Örneğin: Ram bellek, sabit disk, Cd yada Dvd.
- Veriyolu: Bilgisayarda, bir birimden diğerine veri aktarmak için veriyolları kullanılır. Örneğin: Klavyeden basılan bir tuşun bilgisi işlemciye veriyolu vasıtasıyla iletilir.
Bigilerin alınması,işlenmesi ve çıktı olarak istenilen yere gönderilmesi işlemcinin yönetiminde gerçekleşir. İşlemciyi yöneten şey ise programdaki komutlardır.
Peki nedir bu komutlar: Bu komutlar 0 ve 1 ‘lerden oluşmuş sayı dizileridir. Her bir komutun işlemcide yaptığı bir iş vardır. Ve bu 0-1’ler bizim istediğimiz sırada çalıştırıldığında bir işi gerçekleştirir. Bu komutların bütününe ise program, yazılım deriz. Yazılım bilgisayarda bir işi yapan komutlar bütünüdür. Biz bir yazılımı bilgisayardaki simgesine tıklayarak çalıştırdığımızda aslında yaptığımız şey yazılımın içindeki kodları hafızaya yüklemektir. Bu yüklenen kodlar ise sırası geldiğinde çalışarak programı yürütürler ve program ne için tasarlanmışsa o işi yaparlar. Örneğin bilgisayarda müzik dinlemek, oyun oynamak, v.s.
Makine Dili
Makine dili, geliştirilen ilk programlama dilidir. Bu dilde yazılan tüm komutlar 0 ve 1 lerden oluşur. Makine dili örneği
- Bu program ekrana “Hello world” yazısını yazar.
- 101110110100010001 0000000110111001 0000110100000000 1011010000001110
- 1000101000000111 0100001111001101 0001000011100010 1111100111001101
- 0010000001001000 0110010101101100 0110110001101111 0010110000100000
- 0101011101101111 0111001001101100 0110010000100001
İkili Sayı Sistemi
İkili sayılar sayıların 2 tabanında yazılmasıyla elde edilir. Dolayısıyla tüm sayılar 0 ve 1 rakamları kullanılarak ifade edilirler. Günümüz bilgisayarlarının neredeyse tamamında kullanılırlar.
Günlük hayatta sayıları ifade etmek için onluk taban [decimal] kullanılır. Bunun anlamı, her sayının 0, 1, 2, 3, 4, 5, 6, 7, 8 ve 9 rakamları kullanılarak ifade edilmesidir. İkili sayılarda ise fark 10 yerine taban olarak 2’nin kullanılmasıdır. Dolayısıyla kullanabileceğimiz rakamlar 0 ve 1’dir.
- {\displaystyle 101_{2}=(1\times 2^{2})+(0\times 2^{1})+(1\times 2^{0})=4+0+1=5_{10}}
Bilgisayarda ikili sayı sisteminin kullanılma nedeni: bilgisayarın temelde sadece iki durumu ölçebilmesindendir. Bu durumu Sinyal yok 0, sinyal var 1 şeklinde özetleyebiliriz. Aslında bilgisayarların tüm bildiği, ölçebildiği budur. Fakat saniyede milyarlarca işlemi ardarada yapabilirler ve programla dilleri kullanılarak programlanabilirler.
Derleyici
Bir programlama dili ile yazılmış olan kaynak kodu makine koduna çeviren yazılımdır.
Örneğin, şu satırı bir programın kaynak kodunda (programın okunabilir hali) düşünelim:
{\displaystyle X=2+Y}
Alttaki assembly’de yazılmış satırlar, aynı programın derlenmiş halidir:
LOAD A [0] ;; belleğin 0 adresindeki veriyi A siciline yükle ADD A BX ;; A siciline BX sicilindeki adreste bulunan veriyi ekle STOR A [100] ;; sonucu 100 adresine yaz
Bu örnekte çevirinin hedefi, programcının anladığı kaynak kodundan işlemcinin anladığı 0 ile 1 den oluşan makina dili kodunu üretmek (LOAD,ADD ve STOR komutları 0001, 0011 ve 0010 olarak yorumlanır)
0001 01 00 00000000 0011 01 10 00000010 0010 01 00 00000100 ---- -- -- --------- | | | |_________bellek adresi | | |____________işaret | |______________sicil |_________________komut
Özetle derleyici yazdığımız kodu makinenin anlayacağı ikili sayı sistemine çevirir.