İşletim Sistemleri Giriş
İşletim sistemleri, bilgisayarlar üzerindeki kaynakların paylaşılmasından sorumlu yazılımlardır.
Temel görevleri:
Hafıza yönetimi
Sistem taleplerinin önceliğinin belirlenmesi
Giriş çıkış aygıtlarının yönetimi
Ağ ve dosya sisteminin kontrolü
Çoğu işletim sistemi kullanıcı arayüzü kullanmaktadır (kullanıcı arayüzleri gui veya command line interpreter olabilir) dolayısıyla kullanıcı iletişimi de görevleri arasında sayılabilir.
Çalışan her program bir processtir.
Burada Von Neumann mimarisi bilinmelidir.
Her işlemin tek bir işlemcide çalışması prensibine dayanır. Günümüz çok işlemcili ve paralel sistemlerinden farklıdır. Ayrıca stored program mantığını içermez, yani control unit tamamen problem odaklı olarak tasarlanır. Örnek günümüzde kullanılan hesap makineleri.
Burada 3 seviye işlem
Von neumann bottleneck (çıkmazı) . İşlemci ve hafızanın ayrılması sonucunda ortaya çıkar, çünkü işlemcinin işlemek için daha çok veriye ihtiyacı oldukça, hafıza ile işlemci arasındaki iletişim ihtiyacı artmaktadır dolayısıyla veri yolu dar kalır.
Bu bilgisayar yapısında universal Turing machine kullanılır.
Turin makinesinin anlaşılması için önce FSM anlaşılmalıdır.
Başlangıç ve bitiş değerleri (states) arasında eylemler bulunan makinedir.
Örnek Turing makinesi bu durumda:
Örneğimizdeki Turing makinesi sembol havuzu (yani alfabe) olarak {'B', '1'} kullanmaktadır. Bu makineni amacı, verilen girdinin en sağına 1 ekleyip girdinin en soluna geri dönmektir.
Bu amaca ulaşabilmek için, {'d0', 'd1', 'd2'} şeklinde üç durum kullanacağız. Bu durumların geçiş tablosu ise şu şekilde olacak:
Güncel Okunan İşlem Yeni
Durum Sembol Durum
- - - - - - - - - - - - - - - - - - - - - - - -
d0 1 Sağa git d0
d0 B 1 yaz d1
d1 1 Sola git d1
d1 B Sağa git d2
Makine, ilk başta d0 durumunda olacak. Bu tabloya bakarak görebiliriz ki, d2 son durum olacak ve makinenin kafası şu işlemi yapacak:
Birkaç denemeyle bu makinenin istediğimiz işlemi yaptığını görebiliriz.
Örnek 2.
Sürekli 1 0 1 0 … yazdıran bir Turing makinesi
Modern işletim sistemleri bu yapıyı kullanmazlar, bunun yerine multi tasking desteklemektedirler. Ancak her task (iş) kendi içinde bir tek iş özelliği göstermektedir.
Multi Tasking kısaca aynı anda birden fazla işin çalışması ve kaynakları paylaşması demektir.
Scheduling problemi çıkmaktadır.
İşletim sisteminin bir programdan başka programa geçişine context switch denilmektedir.
Schedulerlar 3 grupta incelenebilir
Uzun dönem (long term scheduler) , admission scheduler olarak da kabul edilir, buradaki önemli nokta i/o intensive veya cpu intensive kararını vermektir. Bir işletim sisteminden çok real time (gerçek zamanlı) bilgisayarda kullanılır ve işin bitiş süresini takip etmeye dayanır.
IO bound process: von neummann bottleneck’inin yaşanması mümkündür. Aynı zamanda cpu’nun işlemini keserek bir i/o kaynağından veri okuması gerektiği unutulmamalıdır (bottleneck tanımından)
CPU bound process: kısaca işin çoğunun (çoğu zaman tamamının) cpuda gerçekleştiği işlerdir.
Orta dönem (mid term scheduler) Virtual memory ve paging gibi işlemlerde karşımıza çıkar.
Short term scheduler (dispatcher olarak da bilinir) ve işlemler (process) arası düzenleme işini yapar.
Örnekler: Shortest Job first
FIFO, LIFO, round robin
Önemli kavramlar : Starvation (bir processin sırasının gelmeme ihtimali)
Deadlock: Bir processe hiç sıra gelmemesi ihtimali
System Idle Process
Windows sistemlerinde kullanılan bir process türüdür.
Linux işletim sistemlerinde process 0 dır. Görevi yeni bir interrupt gelene kadar cpu’yu durdurmaktır (halt) böylelike enerji tasarrufu sağlamış olur ve fazla ısınmayı önler.
Register, cache ve random Access memory
İşletim sistemi tasarımları kernel
Disk and file system
Networking and file system
Device Drivers