İşletim Sistemleri - Hafta 6

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

İskenderun

Teknik
Üniversitesi

Fakülte: Mühendislik ve Doğa Bilimleri Fakültesi


Bölüm: Bilgisayar Mühendisliği Bölümü
Ders: İşletim Sistemleri Teorisi
Dönem: 2019 – 2020 (Bahar)
6.
Öğretim üyesi: Dr. Öğr. Üyesi Mehmet SARIGÜL Hafta
• Çoklu programlama ile çalışan bir bilgisayarda işlemci
sırası bekleyen birden fazla proses ve iplik
bulunmaktadır.
• İşletim sistemi üzerinde çalışan ve hangi prosesin ne
kadar süre ile işlemciği kullanacağına karar veren
programa ‘Zamanlayıcı(Scheduler)’ denir.
• Zamanlayıcının nasıl çalışacağına dair bir çok algoritma
bulunmaktadır. Bunlara da ‘Zamanlama algoritmaları’
(Scheduling algorithms) denir.

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ı

Zamanlama Algoritmalalarının Çeşitleri


• Yığın işletim sistemleri büyük şirketlerde periyodik
işlemleri yapan bilgisayarlar üzerinde çalışan işletim
sistemleridir. Üzerlerinde bekleyen kullanıcılar olmadığı
için önleyici olmayan zamanlama algoritmaları
kullanabilirler.
• Her bir prosese saatler ayırmalarında bir sakınca yoktur.
Bu nedenle anahtarlama işlemleri oldukça azdır.
Performansı maksimize eden zamanlama algoritmaları
kullanılır.

Yığın (Batch) Ortamı


• İnteraktif sistemlerde önleyici zamanlama algoritmaları
kullanmak daha uygundur. Hizmet alan birden çok
kullanıcı vardır. Tüm kullanıcıların olabildiğince kısa
sürede hizmet alması sağlanmalıdır.
• Sunucu bilgisayarlar bu kategoriye girerler.

İ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.

Gerçek Zamanlı Ortam


• Tüm sistemler için
• Adil paylaşım – Her proses işlemci zamanı kullanmalı
• Politika – İzlenen zamanlama politikasına uygunluk
• Denge – Tüm donanımları olabildiğince meşgul tutmak
• Yığın sistemler
• Yapılan işi maksimize etmek
• İşin alınması ve bitirilmesi arasındaki zamanı minimize etmek
• İşlemciyi sürekli çalışır durumda tutmak
• İnteraktif sistemler
• Kullanıcılara hızlı dönüş sağlamak
• Gerçek Zamanlı Sistemler
• İşlem bitiş zamanlarını kaçırmamak, veri kaybetmemek

Zamanlamanın Hedefleri
• 1. İlk gelen ilk hizmet alır
• 2. En kısa iş önce
• 3. En kısa işi kalan önce

Yığın Sistem Sıralama Algoritmaları


• Bu algoritmada hazır olan prosesler bağlı bir listede
tutulur ve sırayla çalıştırılır. Prosesler işlemci kullanmaya
başladığı zaman bitmesi ya da bloklanması beklenir.
• Bu algoritmanın dezavantajı giriş/çıkış işlemi yoğun
prosesler çok geç biter.

İlk gelen ilk hizmet alır


• Bu algoritmada işlemciyi an kısa süre kullanacak hazır
durumdaki proses işlemci üzerinde çalıştırılır.

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.

En kısa işi kalan en önce


• 1. Round-robin Sıralama
• 2. Öncelik Tabanlı Sıralama
• 3. En kısa iş önce
• 4. Garantili Sıralama
• 5. Loto Sıralama
• 6. Adil-Paylaşımlı Sıralama

Interaktif Sistemlerde Zamanlama


• En eski, basit, adil ve çok kullanılan algoritma Round-
Robin algoritmasıdır.
• Hazır olan prosesler bir bağlı listede tutulur. Sırası gelen
proses belirli bir işlem zamanı çalışır ve listenin sonuna
alınır.
• Her prosese sırası geldiğinde eşit süre hizmet verilir.

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.

Öncelik tabanlı sıralama


Öncelik Tabanlı Sıralama
• En kısa çalışma zamanı kalmış prosesin işlemci üzerinde
çalıştırılmasını öneren algoritmadır.
• Ama hangi prosesin ne kadar çalışma zamanı kaldığı nasıl
hesaplanacak?
• Bu konuda proseslerin önceki çalışamalarının bilgisi
değerlendirilerbilir.

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.

Gerçek Zamanlı Sistemlerde Sıralama


• Bazı gerçek zamanlı sistemlerde prosesler periodik olarak
çalışmak isterler, bazılarında periyodik olmayan işlemler
daha yoğundur.
• Bütün bunlar ele alınarak sisteme özgü doğru bir sıralama
algoritması geliştirilmesi gerekmektedir.

Gerçek Zamanlı Sistemlerde Sıralama


Ders Sonu

You might also like