Professional Documents
Culture Documents
İşletim Sistemleri - Hafta 6
İşletim Sistemleri - Hafta 6
İşletim Sistemleri - Hafta 6
Teknik
Üniversitesi
Zamanlama (Scheduling)
• Zamanlayıcı hangi programın ne kadar süre ile
çalışacağına nasıl karar vermelidir?
• Eğer bir kişisel bilgisayarda o anda aktif çalışan tek bir
proses var ise zamanlayıcının işi kolaydır.
• Eğer kullanıcı birden fazla programı çalıştırıyor ise,
kullanıcı iki programın da çıktısını beklediğinden aslında
zamanlayıcının hangisine zaman verdiği gene de çok
önemli değildir.
Zamanlama
• Bir ağ sunucusunu düşünelim. Bu ağ sunucusu üzerinde
müşterilere hizmet veren prosesler olsun. Bir de istatistik
toplayan başka bir proses olsun.
• Zamanlayıcının hangi prosese işlemci zamanı vermesi
gerekir?
Zamanlama
• Prosesleri anahtarlamak oldukça maliyetli bir işlemdir.Bu
nedenle çok fazla anahtarlama yapmak performansı
düşürecektir.
Zamanlama
• Aslında bir proses iki işlem türü arasında sürekli geçiş
yapar. Bunlar hesaplama yapmak ya da giriş/çıkış
beklemektir.
• Proses giriş/çıkış beklerken bloklanmış durumdadır.
Proses Davranışı
Proses Davranışı
• Bu figürde iki tane proses bulunmaktadır. Kalın olan çizgi
işlemci üzerinde çalışılan zamanı, ince olan çizgi ise giriş
çıkış bekleme zamanını göstermektedir.
• Proses a hesaplama zamanını daha uzun kullanmaktadır.
Proses b ise giriş çıkış işlemleri daha yoğun bir prosestir.
• Hangi proses daha öncelikli çalışmalıdır?
Proses Davranışı
• İşlemcilerin hızı arttıkça hesaplama hızından ziyade
okuma/yazma hızı daha fazla önem kazanmaktadır.
Çünkü günümüz diskleri işlemcilere göre hantal
kalmaktadır.
• Bu nedenle genel kanı giriş/çıkış yoğun proseslerin
öncelikli olarak işlemci üzerinde çalıştırılması ve
hesaplama işini bitirip bloklanmış moda geçişinin
sağlanmasıdır.
Proses Davranışı
• Zamanlayıcı anahtarlama işlemini yaparken bir çok
problem ile karşılaşır.
• İlk olarak ‘fork’ ile bir çocuk proses oluşturulduğunu
düşünelim. İlk olarak ‘anne’ proses mi çalışacak yoksa
‘çocuk’ proses mi işlemci üzerinde çalışacak?
• İkinci olarak bir proses işini bitirip çıktığında sonrasında
hangi prosese işlemci zamanı verilecek?
Nasıl Zamanlamalı?
• Bir proses giriş/çıkış bekleme durumuna geçince hangi
proses işlem yapacak. Bazı durumlarda blok durumuna
geçen prosesin, blok nedeni karar vermede değerli olabilir.
A prosesi kritik bölgeye giremediği için uykuya geçmiştir. B
ise kritik bölgededir. B’yi çalıştırmak sonrasında A
prosesine işlem zamanı vermeye izin verebilir.
• Dördüncü olarak, bir giriş/çıkış işlemi sonlandığında, bu
giriş/çıkış’ı bekleyen proses mi çalışacak, yoksa hiç
çalışmamış durumda olan hazır proseslerden mi seçilecek?
Nasıl Zamanlamalı?
• Saat kesmeleri kullanılarak bir zamanlama algoritması
geliştirilebilir. Saat kesmelerini kullanma biçimlerine
göre algoritmalar ikiye ayrılır.
• Önleyici Zamanlama Algoritmaları
• Önleyici Olmayan Zamanlama Algoritmaları
Nasıl Zamanlamalı?
• Önleyici olmayan zamanlama algoritmalarında saate
bağlı kesmelerde bir zamanlama işlemi gerçekleştirilmez.
• İşlemciye sahip olan proses bitene ve ya bloklanmış
duruma gelene kadar işlemciyi kullanmaya devam eder.
• İşlemciyi kullanan proses gönüllü olarak işlemci
zamanından vazgeçebilir.
Nasıl Zamanlamalı?
• Önleyici zamanlama algoritmalarında ise belirli sürelerde
işletim sistemi anahtarlama yapar. Her bir proses işlemci
üzerinde eşit zaman alır ve çalışır.
Nasıl Zamanlamalı?
• İşletim sistemlerinin çeşidine göre zamanlama
algoritmaları da farklılık gösterirler. 3 farklı çalışma
ortamını ele alalım.
• Yığın (Batch)
• İnteraktif
• Gerçek Zamanlı
İnteraktif Ortam
• Gerçek zamanlı ortamlarda isteklerin hızlı bir biçimde
cevaplanması gerekir. Bu nedenle bu tip ortamlarda
çalışan yazılımlar buna uygun olarak geliştirilmiştir.
• Çalışan yazılım olabildiğince hızlı bir biçimde işini
yaparak uyku moduna geri döner.
• Bu sistem üzerinde çalışan zamanlama algoritmaları
önleyici olarak adlandırılabilir.
Zamanlamanın Hedefleri
• 1. İlk gelen ilk hizmet alır
• 2. En kısa iş önce
• 3. En kısa işi kalan önce
En kısa iş en önce
• ‘En kısa iş önce’ algoritmasının önleyici zamanlayıcı olan
versiyonudur.
• Burada proseslerin anahtarlanma durumu söz konusudur.
Kısa hazır bir iş var ise önce kısa olan iş gerçekleştirilir.
• Ortalama bekleme zamanını azaltmak için kullanılır.
Round-Robin Algoritması
• Peki hizmet süresi ne kadar olacak?
• Hizmet süresi çok kısa – Çok fazla anahtarlama
• Hizmet süresi çok uzun – Losa proseslerin çok uzun süre
beklemesi
• 20-50 ms ideal olarak düşünülür.
Round-Robin Algoritması
• Round-robin sıralaması etkilidir ama tüm proseslere eşit
olarak yaklaşılır. Bazı sistemlerde bazı prosesler daha
önceliklidir ve işlemcinin hızlıca o proseslere verilmesi
gerekir.
• Öncelik tabanlı sıralamada öncelik değeri en yüksek olan
proses işlemci üzerinde çalışır.
• Aynı önceliğe sahip prosesler var ise bu prosesler kendi
içerisinde round-robin mantığı ile döndürülebilir.
En kısa iş en önce
• Bu çalışma biçiminde eğer n tane proses var ise her
prosesin 1/n işlemci zamanı kullanması garanti altına
alınır.
Garantili Zamanlama
• Her proses işlemci zamanı için bir bilet ile
numaralandırılır. Rastgele seçilen bir bilet numarası ile
seçilen prosese işlemci zamanı verilir.
Loto Sıralama
• Bu sıralama algoritması çok kullanıcılı sistemler için
uygundur. Bir sistem üzerinde 2 kullanıcı olduğunu
varsayalım. İlk kullanıcı A,B,C ve D proseslerini çalıştırmış
olsun. İkinci kullanıcı da E prosesini çalıştırmış olsun.
• Round-robin’de çalışma şu şekilde olacaktır.
• ABCDEABCDEABCDE...
• Bu çalışmada ilk kullanıcı işlemci zamanının %80’ini kullanır.
• Adil-Paylaşımlı sıralamada ise kullanıcılara eşit zaman verilir.
Çalışma şu şekilde olur:
• AEBECEDEAEBECEDEAEBECEDE...
Adil-Paylaşımlı Sıralama
• Gerçek zamanlı sistemlerde proseslere hızlı cevap vermek
oldukça önemlidir. Bir cd çaları düşünelim. Müziğin
düzenli bir biçimde çalınması gerekir. Eğer müziği
işleyen prosese gereken zamanda cevap verilmez ise
müzik takılacaktır.
• Gerçek zamanlı sistemler iki türdür, yumuşak ve katı
kurallı sistemler. Katı kurallı sistemlerde proseslerin
istenilen zamana kadar işlenmesi zorunludur, yumuşak
kurallı sistemlerde ise zaman zaman proseslerin aksaması
tolere edilebilir.