İşletim Sistemleri Giriş

 

İşletim Sistemi Nedir?

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

 

Process mng.

Ç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

  1. hot wired
  2. Control unit
  3. Processor

 

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.

 

Memory mng.

Register, cache ve random Access memory

 

İşletim sistemi tasarımları kernel

 

Disk and file system

 

Networking and file system

 

Device Drivers