CPU Algoritması Nasıl Çalışır? « Teknoloji ve İnternet
Bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynak CPU dur. GÖREV bir programın işletimi sırasında aldığı addır. Her program için en az bir görev tanımlanır.CPU’nun yönetimine, Görev Yönetimide denir. CPU Algoritması bu noktada devreye girer.
Bu haber 23 Şubat 2016 - 14:06 'de eklendi ve 427 kez görüntülendi.
CPU Algoritması Nasıl Çalışır
Bilgisayar sistemlerinin verimli kullanımı, ana işlem birimi (CPU), ana bellek ve giriş/çıkış (I/O) birimleri gibi kaynakların, programlar arasında paylaşılmasını gerektirir. Bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynak CPU dur. GÖREV bir programın işletimi sırasında aldığı addır. Her program için en az bir görev tanımlanır.CPU’nun yönetimine, Görev Yönetimide denir. CPU Algoritması bu noktada devreye girer.
CPU’nun, paralel işletimi sağlamak üzere bir işletimi bırakıp diğer bir işletime geçmesi belirli önlemler
alınmadan yapılamaz. işletimin yarım bırakıldığı andaki durum bilgilerinin saklanması gerekir. Bu nedenle, her görev için işletim sistemi tarafından bir veri yapısı tutulur. CPU Algoritması çeşitleri ise aşağıdaki gibidir.
İlk gelene önce servis verilen algoritma (First Come First Served‐FCFS):
Proseslerin hazır kuyruğuna geliş sırasına göre işletildiği yani proseslere aynı öncelik düzeyinin atandığı bir algoritmadır. Servis, bekleme ve işin bitiş süresini göz önünde bulundurmaz. Kolaylıkla gerçeklenebilir ancak performans kıstaslarını gözetmediğinden başarımı yüksek bir algoritma değildir ve pek sık kullanılmaz.
İşletim süresi en kısa olan işe önce servis verilen algoritma (Shortest Job First‐SJF):
Minimum servis süresi gerektiren proses en yüksek önceliğe sahiptir. Servis süresi daha az olan prosese öncelik verildiğinden ortalama bekleme süresini minimize eden bir algoritmadır. Ancak, kısa servis süresi
olan prosesler önce servis alacağından uzun servis süresi olan proseslerin uzun süre hazır kuyruğunda
beklemeleri olasıdır. FCFS algoritmasının aksine proseslerin hazır kuyruğuna geliş sırasının bir önemi
Öncelik tabanlı planlama algoritması (Priority Scheduling) :
Bu algoritmada proseslere kullanıcı tarafından belirlenen öncelik düzeyi atanır. Genellikle bu planlama algoritmasında öncelik düzeyi sabit bir değerdir ve sayıca düşük öncelik değerine sahip proses yüksek önceliklidir. Ayrıca öncelik düzeyinin sabit olmadığı dinamik yapı da tercih edilebilir. Dinamik yapıda, 6 proseslerin bekleme süreleri dikkate alınarak öncelik düzeyleri değiştirilebilir. Hazır kuyruğunda uzun süredir beklemekte olan bir prosesin öncelik düzeyi sayıca azaltılarak önemi arttırılabilir.
Zaman dilimli Planlama(Round Robin (RR)):
En sık kullanılan planlama algoritmalarından biridir. CPU talebinde bulunan tüm proseslere, eşit işlem zamanı tanınması prensibi vardır. Eşit işlem zamanı programlanabilen bir iç zamanlayıcıyla sağlanır. Özelikle interaktif ve çoklu programlamayı destekleyen işletim sistemlerinde kullanılır. İşlem zamanının seçimi önemlidir; şayet kısa işlem zamanı seçilirse prosesler arasındaki anahtarlama sıklığından dolayı CPU daha çok boşta kalır. Uzun işlem zamanı seçildiğinde ise interaktif işlem kalitesi düşer (FCFS algoritması gibi çalışır). Bu algoritmada, hazır kuyruğundaki prosesler CPU’ya sırayla anahtarlanırlar. İşlem süresi biten proses, hazır kuyruğunun sonuna aktarılır ve kuyruğun başındaki proses CPU’ya anahtarlanır. Şayet işlem süresi bitmeden prosesin işletimi tamamlanırsa veya hazır olmayan bir kaynak talebi olursa, planlayıcı sıradaki prosesi derhal işletime alır. Bekler durumdaki proseslere kaynak tahsisi yapıldığında ise bu prosesler hazır kuyruğuna tekrardan geri alınarak sırası geldiğinde tahsis edilen işlem süresince işletimine devam edilir.
Çok kuyruklu planlama (Multiple Queues):
Diğer planlama algoritmalarında, tüm proseslerin tek bir hazır kuyruğunda bulunduğu varsayılarak bu prosesler arasında seçim yapılmaktaydı. Oysa ele alınan görevler çok farklı nitelikte olabilir. Bazı görevlerin derhal, bazı görevlerin belli zaman dilimlerinde ve etkileşime ihtiyaç duyulmayan bazı görevlerin de daha az öncelikli olarak işletime alınması gerekir. Bu planlama, iki aşamalı olarak düşünülür. Planlayıcı, ilk olarak hangi öncelik düzeyinden seçim yapacağına daha sonra da seçimini yaptığı öncelik düzeyinden hangi prosesi seçeceğine karar verir. Her bir aşamada farklı algoritmalar kullanılabilir. En yalın haliyle, yüksek öncelikli kuyruktan ve bu kuyruğun başındaki prosesin işletime alınması esas olabilir. Ancak, düşük öncelikli görevlerin işletiminin gecikme olasılığına karşı, yüksek öncelikli kuyruklara daha çok, düşük öncelikli kuyruklara da daha az zaman tanınabilir. Farklı nitelikteki görevlere, farklı planlama algoritmalarının kullanılabilmesi, bu algoritmaların tek başlarına kullanıldığında ortaya çıkan zaaflarını bir ölçüde ortadan kaldırır.