Görev Yönetimi Bilgisayar sistemlerinin verimli kullanımı, ana işlem birimi (CPU), ana bellek ve giriş/çıkış birimleri gibi kaynakların, programlar arasında paylaşılmasını gerektirir. Bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynak ana işlem birimi (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. Ana işlem biriminin yönetimine (CPU), Görev Yönetimi de denir 1 Görev Yönetimi CPU’nun bir programın işletimini, devam etmek üzere bırakıp diğer bir programın işletimine geçmesi anahtarlanma olarak adlandırılır. Programların hangi sıra ve kurallar çerçevesinde anahtarlanacağını görev yönetimi düzenler. Program durgun komut satırlarıdır. Görev ise bu komut satırlarının işletimidir. Programların, ana belleğe yüklenebilmeleri, Giriş/çıkış birimlerinden okuma-yazma yapabilmeleri, Ek bellek alanlarını elde edebilmeleri, Görevlerin ana işlem birimine anahtarlanarak çalıştırılmaları sonucu gerçekleşebilir. 2 Görev Yönetimi Ana işlem biriminin, 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. Bu yapı, görev denetim öbeği, görev iskeleti gibi adlarla anılır. 3 Görev Durum Çizeneği Bir program, işletimi sonlanana değin değişik işletim evrelerinden geçer. Sunuş İşlem çalışmaya alınıyor Bitiş Çalışır Hazır İşlem kesiliyor Bekler 4 (1) İşler, sisteme çalıştırılmak üzere sunulduklarında, iskeletleri çatılarak görev yada görevlere dönüştürülürler. Tanımları yapılan bu görevler hazır görev sınıfına girerler (2) Hazır görevlerden biri, bazı kıstaslara dayanılarak, ana işlem birimine anahtarlanır ve çalışır göreve dönüşür. 5 (3) Çalışmakta olan bir görev değişik nedenlerle bu özelliğini yitirebilir. İşlem tümüyle sonlanmadan işletimine devam edemeyeceğinden bekler görev durumuna geçer ve ana işlem birimini bırakır. (4) Çalışmakta olan bir görev, işletiminin bitmesi durumunda ana işlem biriminin yanı sıra genelde sistem içindeki tanımını ve varlığını da yitirir. 6 (5) Görevler ana işlem birimini kendilerinden kaynaklanmayan nedenlerle de bırakmak zorunda kalabilirler. (6) Giriş/çıkış istemi, zaman uyumlama gibi nedenlerle bekler duruma geçen görevler, istemin yerine gelmesi halinde yeniden çalışmaya hazır görev durumuna dönerler 7 KISA DÖNEMLİ PLANLAMA Hazır görev durumundan çalışır duruma geçişler hazır görevler kuyruğundan merkezi işlem birimine anahtarlanma işlemleri görev yönetimince kısa dönemli planlama olarak ele alınır. Hazır görevler kuyruğunda bir görevin eksilmesi, yada kuyruğa yeni bir görevin eklenmesi, durumlarında GÖREV YÖNETİCİ ana işlem birine anahtarlanarak kendisinden sonra işletilecek görevin belirlenmesini sağlar. 8 ORTA DÖNEMLİ PLANLAMA Çalışan bir görevin bitmesi sonucu ana bellekte yer açılması yada hazır görevler kuyruğunda bekleyen görev sayısının azalması durumlarında; Orta dönemli planlama kesimi, dönem dönem işletime girerek bellekte yer bekler kuyruğundan hazır görevler kuyruğuna girdi sağlayan bir kesim olarak düşünülür 9 UZUN DÖNEMLİ PLANLAMA Sisteme toplu işlem düzeninde sunulan işler, toplu işlem kuyruğuna bağlanırlar. Bu kuyrukta bekleyen işlerin hazır görevler kuyruğuna bağlanmaları İŞ YÖNETİMİ kapsamında ele alınır. Bazen işler, toplu işlemin yanı sıra etkileşimli işlem bağlamında da sunulurlar. Ancak etkileşimli işlem düzeninde sunulan işler beklemeksizin doğrudan görevlere dönüştürülüp, hazır görevler kuyruğuna eklenirler. 10 11 Yönetim Algoritmaları Sistem başarısını gözeten görev yönetimi Ana işlem biriminin verimli kullanımı Birim sürede sonlandırılan iş sayısı Ortalama iş tamamlanma süresi Bekleme süresi Yanıt süresi Gibi kıstasları gözeten algoritmalar kullanır. 12 Yönetim Algoritmaları İlk gelen önce: Görevlerin eş öncelikli olarak ele alındığı ve görevlerin, hazır görevler kuyruğuna geliş sırasında işletildiği, çok yalın bir yönetim algoritmasıdır. En kısa işletim süresi kalan önce:En kısa işletim süresi kalan göreve öncelik sağlanarak bir an önce sistemden çıkması ve bu yolla en kısa ortalama bekleme süresinin elde edilmesi amaçlanır. Diğer algoritmalar içinde, kuramsal olarak, ortalama bekleme süresi yönünden en iyi sonucu veren algoritmadır. Ancak kalan işletim süresi ölçülebilen bir değer değildir. 13 Yönetim Algoritmaları Öncelik tabanlı: Her görevin bir önceliği bulunur. Bu öncelik değeri görev iskeleti içinde, öncelik alt alanında tutulur. çok yüklü sistemlerde, yüksek öncelikli işlerin, sistemde hiç eksik olmaması yüzünden düşük öncelikli işlerin işletimleri, aşırı boyutlarda gecikebilir. Zaman dilimli: Hazır görevler kuyruğunda bekleyen görevler, eşit uzunluktaki zaman dilimleri içinde ana işlem birimine, sırayla anahtarlanır. Çok kuyruklu: Değişik yönetim algoritmalarının olumlu yanlarını bir araya getirmek ve sakıncalarını azaltmak üzere kullanılır. 14 Görevler Arası KİLİTLENME Kilitlenme, bekleme durumundaki görevlerin, hazır görev durumuna geçebilmek için bir diğerinin sağlayacağı koşulu karşılıklı beklemelerine verilen addır. Görevlerin her birinin bekler olması ve çalışabilmek için bir diğerinin işletilmesinin gerekmesi durumu, görevlerin hiçbir zaman gerçekleşmeyecek bir koşulu beklemeleri sonucunu doğurur. 15 Görevler arası kilitlenmeyi ortaya çıkaran koşullar 1. Karşılıklı Dışlama: Bir kaynağın aynı anda yalnız bir görev tarafından kullanılabilmesi 2. İstem üzerine kaynak atama: Görevin gereksediği kaynakları, teker teker, işletim aşamasında elde etmesi. 3. Atanan kaynakların, görevler serbest bırakmadıkça geri alınamaması. 4. Döngüsel Bekleme: Bir görevin elinde tuttuğu kaynaklardan bir yada daha çoğunun, diğer görevlerce de istenmesi. Bu koşullardan dördünün de aynı anda bulunduğu durumlarda kilitlenme oluşur. Kilitlenmeleri önlemek üzere, bu koşullardan en az birinin oluşmasını engellemek yeterlidir. 16 Kilitlenmelerden Korunma Kilitlenmeler sistem kaynaklarının işlemler arasında paylaşım zorunluluğundan doğar. Kilitlenmelerin önlenmesi için: Birlikte çalışan işlemler programlanırken tüm işlemler birlikte düşünülerek kaynak atamalarını buna göre yapılmalıdır. İşletim sisteminde kilitlenmelerden koruma ve kilitlenmeleri çözme algoritmalarının olması gerekir 17