Mikrodenetleyicideki CPU Kullanım Oranı Nedir

Hepimiz zaman zaman bilgisayarımızdaki anlık olarak fazla yüklenmelerden kaynaklı yavaşlamalar yaşamışızdır. Böyle durumlarda; bilgisayarımızdaki görev yöneticisini açarak, CPU kullanım oranına bakarak hangi iş parçacığının ne kadar CPU kapladığını rahatlıkla kontrol edebiliriz ve bilgisayarımızın neden yavaş çalıştığını da gözlemleyebiliriz.

Bu yazımızda, her bir görevin veya iş parçacığının CPU kullanımdan değil, tek çipli mikrobilgisayarın genel CPU kullanımından bahsedeceğiz. CPU kullanımı ne kadar yüksek olursa, sistem o kadar yoğun olur ve bazı şeylere verilen geç yanıt verir. Örneğin; bilgisayarınızın CPU kullanımı %90’ın üzerindeyse, yazmanın ve fare hareketinin daha yavaş olduğunu göreceksiniz. Bunun nedeni, CPU kullanımının çok yüksek olmasından kaynaklıdır, bu durumda; sistemin klavyenizi ve farenizi işlemek için çok geç kalmasına neden olur.

Bilgisayar, gerçek zamanlı bir sistem değildir, dolayısıyla yüksek gereksinimlere ihtiyaç duymazlar. Yani bilgisayarınız yavaşlasa hatta çökse dahi sonuçları çok ciddi olmaz fakat gömülü sistemin arızalanması; özellikle savunma ve tıp sektöründe feci sonuçlara neden olabilir. Örneğin, hastanedeki bir ventilatörün aniden arızalanması, hasta için bir felakettir, bu yüzde tıp endüstrisindeki ürünler sıkı testlerden geçirilirler, testleri geçemeyen ürünlerin piyasaya sürülmesine izin verilmez.

CPU Dış Bilgilere Hızlı Bir Şekilde Nasıl Yanıt Verir?

Kullanılan gömülü sistemlerin çoğu, dış dünyadaki çeşitli durumlara çok hızlı yanıt vermesi gereken RTOS adı verilen gerçek zamanlı işletim sistemlerine sahiptir, aksi takdirde tasarlanan sistem sorunlu olarak kabul edilir. CPU’nun dış bilgilere hızlı yanıt vermesi; tamamen CPU kullanımına bağlıdır. CPU kullanım oranı ne kadar düşük olursa, yanıt o kadar hızlı olur.

Bu yüzden bir sistem tasarlanırken, yüksek önceliğe sahip bir görevin, CPU’yu çok uzun süre meşgul etmesine izin vermeyecek şekilde tasarlanır. CPU’yu uzun süre meşgul edecek öncelikli görevleri çalıştırmak yerine, mümkünse olabildiğince bölmeniz gerekir. Aksi takdirde düşük öncelikli görevler, sistemin sıkışmasından kaynaklı olarak; zamanında çalışmayabilir.

Boşta Kalan Görevlerin Özellikleri Nelerdir?

Boşta kalan görevler, CPU’da en düşük önceliğe sahip görevlerdir ve boşta kalan görevlerin askıya alınmasına izin verilmez, yani görev her zaman hazır durumdadır. Bu görevler özellikleri nedeniyle, özel bir konumdadırlar, aynı zamanda CPU kullanımını hesaplama yeteneğimizin de çekirdeğini oluşturmaktadır. CPU kullanım hesaplaması, önce boşta kalan görevlerin çalışma süresini hesaplamak, ardından diğer görevlerin çalışma süresini tersine çevirmek içindir.

Bu durumu bir örnek ile açıklayacak olursak; boşta bir görev 1 saniyede 700 milisaniye çalışırsa boşta kalan görevin CPU kullanım oranı %70, tersine çevirirseniz diğer görevlerin kullanım oranı %30 olur. Ancak, boşta kalan görevin 700 milisaniye çalıştığı gerçeğine özellikle dikkat edin. Bu, boşta kalan görevin 700 milisaniye boyunca sürekli çalıştığı anlamına gelmez. Diğer görevlerin yürütülmesiyle serpiştirilir. Diğer görevlerin yürütülmesi için serpiştirilen süre 300 milisaniyedir.

İşletim Sistemindeki Aktif ve Pasif Anahtarlamalar

Aktif anahtarlamanın görevi; görevin kendisinin yürütmeyi bitirdiğini düşünmesi ve ardından sistem gecikme işlevi vb. gibi sistem işlevlerini aktif olarak anahtarlamaya çağırmasıdır.

Pasif anahtarlama ise farklıdır; pasif anahtarlama her zaman gerçekleşir, çünkü koşullar sağlandığı sürece, göreviniz tam olarak yürütülemeyebilir, önce yürütmek için diğer görevlere geçebilirsiniz.

İşletim sisteminde bu kontrol genellikle bir timed interrupt ile tamamlanır ( Stm32’de işletim sistemi için özel olarak hazırlanmış timed interrupt yani SysTick vardır )

Kesinti, tüm görevleri ( veya dizileri ) geçersiz kılan süper bir görev olsa da denetim süresi ( kesinti süresi ) de çok özeldir. Denetim süresi çok kısaysa, tüm sistem görevleri değiştirmekle meşgul olacak ve görev değiştirme için harcanan zaman büyük bir paya sahip olacaktır. Genel olarak konuşursak, görev değiştirmenin CPU oranının %1 içinde olması daha iyidir.

CPU kullanım oranını nasıl hesaplayacağınızı öğrendiğinizde, farklı kesme sürelerinin, CPU kullanımlarında farklı olduğunu ve bunun nedeninin işletim sisteminin kendisinin tüketimi olduğunu göreceksiniz.

 

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here