CPU Utilization (MİB Meşguliyeti)
Yazan : Şadi Evren ŞEKER
Bilgisayar bilimlerinde en önemli kaynaklardan birisi de merkezi işlem birimidir (MİB, central processing unit CPU). Özellikle işletim sistemi çalışmaları sırasında bir işletim sisteminin bu en kıymetli kaynağı daha verimli kullanması amaçlanır.
MİB Meşguliyeti (Utilization) ise işlemcide çalışmak için bekleyen işlemler (process) için sistemin meşguliyet oranını (utilization) bulmaya yarayan bir hesaplamadır.
Aslında çalışacak olan her işlem bekleme sırası (ready queue) ismi verilen bir sırada bekler. İşletim sisteminde görevlendirici (dispatcher) ismi verilen bir işlem ise bu sıradan işlemci zamanlama algoritmasına (cpu scheduling algorithm) uygun olan bir işlemi alarak işlemcide çalıştırır. Bu sırada sistemin ne kadar işleme cevap verebildiği (arz) ile sistemde üretilen ve işlemcide çalıştırılmak için bekleyen işlemlerin (talep) oranı işlemcinin meşguliyeti olarak hesaplanır.
Basitçe sıra teorisinde (queue teory) aşağıdaki şekilde gösterilen oranla bulunan meşguliyet değeridir:
ρ = λ / μ
Çeşitli işletim sistemlerinde bu değeri okumak için yöntemler bulunur. Örneğin windows işletim sistemlerinde CPU Usage (CPU Kullanımı) olarak geçen bu terim, task manager (görev yöneticisinden) okunabilir:

Yukarıdaki resimde bu değer %91 olarak verilmiştir. Yani bir yoruma göre işlemcinin gelen taleplerin %91′ini karşıladğını söyleyebiliriz.
Örneğin Linux sistemlerde top komutu çalıştırıldığında aşağıdakine benzer bir ekran çıkar ve burada işlemci kullanımı görülebilir:

Yukarıda işletim sistemlerinin göstermiş olduğu işlemci meşguliyetinin nasıl hesaplandığını bir örnek üzerinden görmeye çalışalım.
Örnek olarak 3 işlemin çalıştığı sistemimizdeki her işlemin, işlemci zamanları (CPU time) ms cinsinden aşağıdaki şekilde verilmiş olsun:

Ayrıca sistemimizdeki işlemci zamanlama algoritmasının (CPU Scheduling Algorithm), round robin algoritması olduğunu ve zaman bölmesi (time quantum) olarak 20ms olduğunu kabul edelim. Sistemin ilk çalışması sırasında da sistemdeki bekleme sırasında (ready queue), işlemlerin A,B ve C sırasıyla bulunduğunu kabul edelim. Ayrıca soru kapsamında yer değiştirme zamanının (context switch) 1ms olduğunu kabul edelim. Bütün bu verilen şartlarda işlemci meşguliyetini (CPU Utilization) hesaplamaya çalışalım:
- İlk işlem 1. zaman bölmesinde çalışacak ve bitecektir. (zaman bölmesi 20ms ve işlem 11ms olduğu için)
- Ardından 1ms süresince yer değiştirme (context switch) olacaktır.
- İkinci işlem 12. ms’de çalışmaya başlayacak ve zaman bölmesi olan 20ms çalıştıktan sonra bekleme sırasına geri konulacaktır. (ikinci işlem olan B’nin bitmesi için 1ms zaman kalacaktır)
- Ardından 1ms süresince yer değiştirme (context switch) olacaktır.
- C işlemi 33. ms’de çalışmaya başlayacak ve zaman bölmesi olan 20ms çalıştıktan sonra bekleme sırasına geri konulacaktır. (ikinci işlem olan C’nin bitmesi için 11ms zaman kalacaktır)
- Ardından 1ms süresince yer değiştirme (context switch) olacaktır.
- Sıradaki işlem olan B işlemi 54. ms’de tekrar çalıştırılacak ve bitmesi için gereken 1ms süresince işlemciyi meşgul edecektir. Sonuçta 55. ms’de işlem bitecek ve yer değiştirme olacaktır.
- ms süresince yer değiştirme (context switch) olduktan sonra
- 56. ms’de C işleminin kalanı yapılmak üzere işlemciye yüklenecek ve kalan 11ms boyunca işlemciyi meşgul edecektir. Sonuçta 67. ms’de C işlemi de bitecektir.
İşlemci meşguliyetini bulmak için çalışan işlemlerin toplam zamanına bakalım :
A + B + C = 11 + 21 + 31 = 63 ms’dir.
Sistemin bu işlemleri ne kadar zamanda çalıştırdığına bakalım: 67 ms olarak yukarıda bulduk.
Dolayısıyla :
ρ = λ / μ
oranında
ρ = 63 / 67
ρ = 0.94
olarak bulunur.
« Meşguliyet (Utilization, Kullanım) | fstream (File Stream, Dosya Akışı) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'CPU Utilization (MİB Meşguliyeti)' isimli yazı 19 Apr 2009 tarihinde, saat: 21:23 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 527 defa okunmuştur.
Benzer yazıları Bilgisayar Matematiği, işletim sistemleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
- tuncay çavuşoğlu: Şadi bey teşekkürler.Kısa ve...
- attila: hocam bunun bir örneginide Visual Basic diliyle...
Yakın Yazılar
Bağlantılar