Merhaba dostlarım,
Kaldığımız yerden devam ediyoruz. Konuları sırası ile takip etmeniz ve o şekilde okumanız daha sağlıklı olacaktır.
İşlemci Nasıl Çalışır ?
Önceki bölümde öğrendiğimiz gibi, işlemci kendisine gelen veri ve komutları alır, gerekli işlemleri yapar ve işlem sonuçlarını yazıcı veya ekran gibi çıktı aygıtlarında bizlere gösterir.
Bir işlemcinin bir işi yapması veya bir komutu çalıştırması dört aşama ile açıklanır.
Bunlar:
1 - Fetch (Komut Al)
2 - Decode (Komutu Çöz)
3 - Execute (Komutu Çalıştır)
4 - Store (Varsa Sonucu Kaydet)
Bu aşamalar bir programcı için oldukça önemlidir. Çünkü herşey bu aşamalarda meydana gelir. Eğer bu aşamaları iyi bilirseniz daha iyi program yazarsınız. Bu nedenle sizlere bu aşamaları çooook basit bir şekilde ve mümkün olduğunca kafa karıştırmadan anlatmaya çalışacağım.
Fetch (Komut Al)
Yazılan programlar bilgisayara yüklenir ve daha sonra da belli bir görevi gerçekleştirmek için çalıştırılır. Çalıştırılan programların RAM belleğe taşındığını öğrenmiştik. İki sayının toplamını bulan bir program yazdığımızı ve çalıştırdığımızı düşünelim. Bu program RAM bellekte aşağıdaki şekilde görüldüğü gibi alt alta komutlar şeklinde bulunmaktadır. Normalde RAM bellekte kodlar makine dili olarak bulunur ama ben anlaşılması kolay olsun diye pseudo kod olarak göstereceğim. Bahsi geçen işlemci de benim kafadan uydurduğum hayali bir işlemcidir. Ama diğer işlemciler de aynı mantıkla çalışır.

PC (Program Counter)
Çalıştırılması gereken komutu gösterir. CPU, çalıştırılması gereken komutu öğrenmek için PC' a bakar. Daha sonra PC' ın gösterdiği yere (RAM bellek adresine) gidip oradaki komutu alır, yani fetch eder.
Komut fetch edildikten sonra PC bir sonraki komutu göstermeye başlar, yani bir alt komuta kayar.
Decode (Komutu Çöz)
Komut fetch edildikten sonra sıra bu komutla ne yapılacağına karar vermeye gelir. PC (Program Counter) tarafından gösterilen komut alınır ve ne anlama geldiği çözülür. Buradaki komutumuz programın başlatılmasını sağlayan BAŞLA komutudur. BAŞLA komutunu alan ve komutu çözerek hangi işin yapılacağına karar veren CPU bir sonraki aşamaya geçer.
Execute (Çalıştır)
Fetch edilerek RAM bellekten alınan komut, decode edilmiş ve ne iş yapılacağına karar verilmiştir. Bu aşamada artık gerekli işlem yapılacak yani komut çalıştırılacaktır. Buradaki komut BAŞLA komutudur ve programın çalışmasını sağlar.
Store (Kaydet)
Bu aşamada, eğer execute işlemi sonunda bir değer ortaya çıkmışsa kaydedilir. BAŞLA komutu sadece programın başlamasını sağlar ve herhangi bir değer veya sonuç ortaya çıkarmaz. Bu nedenle burada store işlemi yapılmaz. Ama daha sonraki aşamalarda göreceğiniz gibi, eğer execute aşamasında bir değer (örneğin iki sayının toplamı sonucu) ortaya çıkarsa RAM belleğe kaydedilir.
Store işleminden sonra CPU bir sonraki komut için PC' a baka. Burada fetch edilmesi gereken komutu görür ve alır. Fetch işleminden sonra PC bir sonraki komutu gösterir, yani PC bir alta kayar. Daha sonra alınan komut decode edilir ve ne iş yapılması gerektiğine karar verilir. OKU X komutu dişarıdan bir sayı alınmasını ve X değişkeni içinde saklanmasını emreder. (Değişkenler dışarıdan alınan verileri saklamaya yarayan belleklerdir) Komut execute edilir, dışarıdan alınan değer A kayıtçısına yerleştirilir. (Kayıtçılar, CPU içinde bulunan ve dışarıdan alınan verileri geçici olarak saklamaya yarayan belleklerdir.) Store işlemi gerekmediğinden bir sonraki komuta geçilir ve OKU Y komutu için de aynı şeyler yapılır. Farklı olarak alınan veri B kayıtçısına yerleştirilir.
yukarıdaki işlemler sonucunda X ve Y sayıları CPU içindeki kayıtçılara taşınmış, RAM bellek ve işlemci aşağıdaki gibi olmuştur.

Sıradaki komut şekilden de görüldüğü gibi TOPLAM=X+Y komutudur. Bu komut ile X ve Y toplanır (Bu işlem ALU ile yapılır.) ve işlem sonucu Akümülatör' de saklanır. (Akümülatör işlemlerin yapıldığı ve sonuçların saklandığı kayıtçıdır.) Bu işlem sonucunda bir değer elde edildiğinden, execute işleminden sonra store işlemide yapılır ve bulunan sonuç akümülatöre kaydedilir.
Daha sonraki komutla bulunan işlem sonucu ekrana veya başka bir cihaza yazdırılır ve program bitirilir.
Eğitim müfredatına bakmak isterseniz: https://imhateam.org/forum/threads/linux-bash-script-bolum-0-tanitim-ve-mufredat.29447/
Bir sonraki bölümde görüşmek dileğiyle hepinize başarılar diliyorum.....
Kaldığımız yerden devam ediyoruz. Konuları sırası ile takip etmeniz ve o şekilde okumanız daha sağlıklı olacaktır.
İşlemci Nasıl Çalışır ?
Önceki bölümde öğrendiğimiz gibi, işlemci kendisine gelen veri ve komutları alır, gerekli işlemleri yapar ve işlem sonuçlarını yazıcı veya ekran gibi çıktı aygıtlarında bizlere gösterir.
Bir işlemcinin bir işi yapması veya bir komutu çalıştırması dört aşama ile açıklanır.
Bunlar:
1 - Fetch (Komut Al)
2 - Decode (Komutu Çöz)
3 - Execute (Komutu Çalıştır)
4 - Store (Varsa Sonucu Kaydet)
Bu aşamalar bir programcı için oldukça önemlidir. Çünkü herşey bu aşamalarda meydana gelir. Eğer bu aşamaları iyi bilirseniz daha iyi program yazarsınız. Bu nedenle sizlere bu aşamaları çooook basit bir şekilde ve mümkün olduğunca kafa karıştırmadan anlatmaya çalışacağım.
Fetch (Komut Al)
Yazılan programlar bilgisayara yüklenir ve daha sonra da belli bir görevi gerçekleştirmek için çalıştırılır. Çalıştırılan programların RAM belleğe taşındığını öğrenmiştik. İki sayının toplamını bulan bir program yazdığımızı ve çalıştırdığımızı düşünelim. Bu program RAM bellekte aşağıdaki şekilde görüldüğü gibi alt alta komutlar şeklinde bulunmaktadır. Normalde RAM bellekte kodlar makine dili olarak bulunur ama ben anlaşılması kolay olsun diye pseudo kod olarak göstereceğim. Bahsi geçen işlemci de benim kafadan uydurduğum hayali bir işlemcidir. Ama diğer işlemciler de aynı mantıkla çalışır.

PC (Program Counter)
Çalıştırılması gereken komutu gösterir. CPU, çalıştırılması gereken komutu öğrenmek için PC' a bakar. Daha sonra PC' ın gösterdiği yere (RAM bellek adresine) gidip oradaki komutu alır, yani fetch eder.
Komut fetch edildikten sonra PC bir sonraki komutu göstermeye başlar, yani bir alt komuta kayar.
Decode (Komutu Çöz)
Komut fetch edildikten sonra sıra bu komutla ne yapılacağına karar vermeye gelir. PC (Program Counter) tarafından gösterilen komut alınır ve ne anlama geldiği çözülür. Buradaki komutumuz programın başlatılmasını sağlayan BAŞLA komutudur. BAŞLA komutunu alan ve komutu çözerek hangi işin yapılacağına karar veren CPU bir sonraki aşamaya geçer.
Execute (Çalıştır)
Fetch edilerek RAM bellekten alınan komut, decode edilmiş ve ne iş yapılacağına karar verilmiştir. Bu aşamada artık gerekli işlem yapılacak yani komut çalıştırılacaktır. Buradaki komut BAŞLA komutudur ve programın çalışmasını sağlar.
Store (Kaydet)
Bu aşamada, eğer execute işlemi sonunda bir değer ortaya çıkmışsa kaydedilir. BAŞLA komutu sadece programın başlamasını sağlar ve herhangi bir değer veya sonuç ortaya çıkarmaz. Bu nedenle burada store işlemi yapılmaz. Ama daha sonraki aşamalarda göreceğiniz gibi, eğer execute aşamasında bir değer (örneğin iki sayının toplamı sonucu) ortaya çıkarsa RAM belleğe kaydedilir.
Store işleminden sonra CPU bir sonraki komut için PC' a baka. Burada fetch edilmesi gereken komutu görür ve alır. Fetch işleminden sonra PC bir sonraki komutu gösterir, yani PC bir alta kayar. Daha sonra alınan komut decode edilir ve ne iş yapılması gerektiğine karar verilir. OKU X komutu dişarıdan bir sayı alınmasını ve X değişkeni içinde saklanmasını emreder. (Değişkenler dışarıdan alınan verileri saklamaya yarayan belleklerdir) Komut execute edilir, dışarıdan alınan değer A kayıtçısına yerleştirilir. (Kayıtçılar, CPU içinde bulunan ve dışarıdan alınan verileri geçici olarak saklamaya yarayan belleklerdir.) Store işlemi gerekmediğinden bir sonraki komuta geçilir ve OKU Y komutu için de aynı şeyler yapılır. Farklı olarak alınan veri B kayıtçısına yerleştirilir.
yukarıdaki işlemler sonucunda X ve Y sayıları CPU içindeki kayıtçılara taşınmış, RAM bellek ve işlemci aşağıdaki gibi olmuştur.

Sıradaki komut şekilden de görüldüğü gibi TOPLAM=X+Y komutudur. Bu komut ile X ve Y toplanır (Bu işlem ALU ile yapılır.) ve işlem sonucu Akümülatör' de saklanır. (Akümülatör işlemlerin yapıldığı ve sonuçların saklandığı kayıtçıdır.) Bu işlem sonucunda bir değer elde edildiğinden, execute işleminden sonra store işlemide yapılır ve bulunan sonuç akümülatöre kaydedilir.
Daha sonraki komutla bulunan işlem sonucu ekrana veya başka bir cihaza yazdırılır ve program bitirilir.
Eğitim müfredatına bakmak isterseniz: https://imhateam.org/forum/threads/linux-bash-script-bolum-0-tanitim-ve-mufredat.29447/
Bir sonraki bölümde görüşmek dileğiyle hepinize başarılar diliyorum.....
Bu içeriği görmek için giriş yapın.