İŞLETİM SİSTEMLERİ - Ünite 3: İşletim Sistemi Fonksiyonları Özeti :

PAYLAŞ:

Ünite 3: İşletim Sistemi Fonksiyonları

Giriş

Bir işletim sisteminin en önemli işlevleri donanım aygıtlarını, işlemleri, bellekleri ve dosyaları yönetmektir. Ayrıca her işletim sistemi aşağıdaki fonksiyonları yerine getirebilmelidir:

  • Program çalıştırma
  • Giriş/Çıkış (G/Ç) işlemleri
  • Dosya sistemini işletme
  • İletişim
  • Hata tespiti
  • Kaynak paylaştırma
  • Hesap tutma
  • Koruma

Aygıt Yönetimi

Bir işletim sistemi, tüm donanım aygıtlarının yönetiminden sorumludur. Donanım aygıtları Girdi-Çıktı birimleri olarak üçe ayrılır:

  • Sadece veri girişi yapanlar (klavye, fare vb.)
  • Sadece veri çıktısı verenler (yazıcı, hoparlör vb.)
  • Hem veri girişi hem de veri çıktısı yapanlar (modem, kamera vb.)

Aygıt yönetimi bu donanım aygıtlarını izleyerek belirlenmiş olan prensiplere göre hangi işlemin aygıtı ne kadar süre kullanacağını belirleyerek bunları ilgili işlemlere tahsis eder veya o işlemden aygıtı geri alır.

Aygıt yönetiminin iki birimi bulunmaktadır:

  • Aygıt bağımlı (Aygıt sürücüsü)
  • Aygıt bağımsız

Aygıt bağımlı birim donanımının sürücüsüdür. Aygıt sürücü de denilmektedir.

Aygıt bağımsız birim sürücüden gelen veri giriş ve çıkış isteklerini işletim sisteminin ilgili bölümlerine yöneltir.

Aygıt yönetimi birimleri, aygıt bağımsız birim, işletim sisteminin temel aygıt yönetimi içerisinde yer almaktadır.

Aygıt yönetiminin bu şekilde ikiye ayrılması ile bilgisayara yeni bir donanım eklemek çok kolay hâle gelmiştir.

İşlem Yönetimi

Birçok işletim sistemi;

  • İşlem (process),
  • İş parçacığı (thread),
  • Kaynak yönetimini

birlikte ele almaktadır.

İşlem programın ana bellekte çalışan halidir. Bir veya birden fazla iş parçacığından oluşabilir. İşlem ana bellekte depolanır ve bilgisayar kapatıldığında yok olur.

İş parçacığı ise bilgisayarda en düşük kaynağa ihtiyaç duyan bir işlemin parçasıdır. İş parçacığı, işleme ayrılmış bellek alanını kullanır.

İşlem yönetimi, işlem ve iş parçacıklarını senkronize ederek kaynakları bunlar arasında paylaştırır. Program hard diskte, işlem ana bellekte yer alır. Aynı programa ait birden fazla işlem olabileceği gibi, bir işlemde birden fazla iş parçacığı da olabilir.

İşlemin yapısı ve durumu: Bir işlem kontrol bloğunda yer alan öğeler:

  • İşlem durumu
  • İşlem numarası
  • Program sayacı
  • Merkezi İşlem Birimi (MİB) kaydedicileri
  • MİB zamanlama bilgisi
  • Bellek yönetimi bilgisi
  • Hesap bilgileri
  • G/Ç durum bilgisi

İşlem durumu işlemin hangi durumda olduğunu gösterir ve bu durum işlemin ömrü boyunca şu şekilde değişebilir:

  • Yeni
  • Çalışıyor
  • Bekliyor
  • Hazır
  • Bitti

İşlemci zamanlayıcısı (dispatcher) işlemleri kuyruktan alarak MİB’ne gönderen ve MİB’den gelen işlemleri tekrar kuyruğa gönderir;

Kesme isteği (IRQ) donanımların MİB’de çalıştırdığı programı geçici olarak durdurarak bunun yerine kendilerinin ihtiyaç duyduğu işlemlerin önce yapmalarını belirtikleri sinyaldir.

Kilitlenme (deadlock): İşlem veya iş parçacıkları bir kaynağı paylaşamadıklarında veya birbirlerinden veri beklediklerinde hepsinin bloklanmasıdır. Kilitlenme, sonsuz döngü anlamına da gelmektedir.

İşlem Senkronizasyonu ve Semafor: Latincede ‘deniz feneri’ anlamına gelen Semafor, kaynaklar ve işlemlerin senkronize edilmesi ve kilitlenmelerin önlenmesi için kullanılmaktadır. Herhangi bir kaynağın belirli bir işlem tarafından kullanılması için o kaynağın anlık tek bir işleme atanması gerekir ve diğer işlemin de bunu kullanması engellenir. İki ayrı işlem aynı anda bellekte yürütülürken kaynaklara aynı anda erişmeye çalışabilirler. Bu durumda kullanılan semafor, sistem kilitlenmelerine engel olur. Bir semaforun paylaşılabilmesi onun başlangıç değerine bağlıdır. Semaforlar hem kaynaklar hem de işlemler arası senkronizasyonu sağlamak için kullanılır. Kaynak paylaşımları için sayım semaforları kullanılır ve bunlar negatif olmayan tamsayı değerler alırlar. Sayım semaforları yerine daha kolay uygulanabilen ikili semafor da kullanılabilir:

  • 0 (müsait değil veye kilitli)
  • 1 (müsait veya kilitli değil)

Semafor üzerine sadece iki işlem yapılarak değeri değiştirilir: YBS205U-

  • Bekle (wait)
  • Sinyal (signal)

Semaforun değeri bekle işlemi ile 1 azaltılır, sinyal işlemi ile 1 arttırılır.

Bellek Yönetimi

Bellek yönetimi işlem yönetimi ile birlikte çalışarak ana bellekte işlemlerin yerleşimini sağlamaktadır. Her işlem bir bellek bölgesi istemekte ve bellek yönetimi de bu işlemlerin çalışması için kaynak yalıtımını da sağlayarak gerekli bellek bölümünü ayırmaktadır. Modern bellek yönetimleri sanal bellek sağlayarak fiziksel bellekten çok daha büyük bir bellek alanının kullanılmasını sağlamaktadır.

Hard diskte olan çalışabilir haldeki dosyaya program denilirken, programın çalıştırılması ise bir bölümünün ana belleğe yerleştirilmiş olan haline ise işlem denir.

Mantıksal ve Fiziksel Adres: Bir işlemin mantıksal adresi MİB tarafından oluşturulur. Gerçekte işlemin bellekteki yerine ise fiziksel adres denir.

Taban kaydedicisi bellekteki en küçük geçerli fiziksel bellek adresini tutarken tavan kaydedicisi mantıksal adres aralığını tutar. Bir işlemin taban adresinden itibaren erişebileceği en üst adres taban ve tavan kaydedicisinin toplamı ile belirlenir.

Kullanıcı işlemleri mantıksal adresler ile çalışır, gerçek fiziksel adresi ve taban kaydedicisi değerini görmezler. Bellek yönetim birimi, taban kaydedicisi ve mantıksal adres toplanarak, ana bellekteki gerçek fiziksel adrese ulaşır.

MİB tarafından üretilen mantıksal adres tavan kaydedicisinden küçük olmalıdır. Eğer büyük olursa başka işlemin alanına erişim olacağından adresleme hatası oluşacaktır.

Bitişik yerleşim: Ana bellekte hem işletim sistemi hem de kullanıcının işlemleri yer almaktadır. Bellekte kullanıcı işlemleri boşluklara bloklar hâlinde yerleştirilmektedir. Yeni bir işlem geldiğinde bu belleğe işlemin yeteceği kadar bir alan ayrılarak konumlandırılmakta ve işletim sistemi boş alanlar ve dolu alanlar ile ilgili bilgileri kayıt altına almaktadır.

İşletim sistemi, işlem için en uygun boşluğu nasıl belirleyeceğine üç strateji ile karar vermektedir:

  1. İlk uyan (first-fit)
  2. En iyi uyan (best-fit)
  3. En kötü uyan (worst-fit)

İlk uyan listedeki ilk karşılaşılan ve boyutu yeterli olan yer seçilmesidir. En iyi uyan tüm listenin taranıp uygun olanlardan boyutu en küçük olanın seçilmesidir. En kötü uyan listenin tamamının taranıp en büyük olanın seçilmesidir. Birinci ve ikinci sıradaki stratejiler, üçüncü olana göre çok daha kullanışlıdır.

Sayfalama: Fiziksel bellek üzerindeki aynı uzunluktaki bloklara çerçeve, mantıksal bellek üzerindeki aynı uzunluktaki bloklara ise sayfa denir. Sayfa ve çerçeve uzunlukları birbirine eşittir. n sayfalık bir işlemi çalıştırmak için n sayıda çerçeve gerekir. Uzunlukları ise 2’nin katları şeklinde 512 byte ila 8192 byte arasında olur. Sayfa tablosu, mantıksal sayfa adresi ile fiziksel adres olan çerçeve adresi tutulur. Sayfalamada boş ve dolu olan çerçevelerin takibi yapılır.

Sayfalamada MİB’nin oluşturduğu adres iki bölümden oluşmaktadır:

a. Sayfa numarası (p)

b. Sayfa ofseti (d)

Sayfalamada boş ve dolu olan çerçevelerin takibi yapılır. En önemli sorun olan sayfa tablosunda çerçeve adresini ararken kaybedilen süre TLB (Translatin look-aside buffer) kullanılarak önlenmektedir. TLB en sık kullanılan alanların sayfa ve çerçeve adreslerini tutan hızlı bir bellek alanıdır.

Bölümleme: Mantıksal adres alanı bölümlerden oluşmaktadır. Adres hem bölüm numarası hem de bölüm içerisindeki adresi belirten ofset numarasından meydana gelmektedir. Fiziksel bellek tek boyutlu olmasına karşın burada adres iki boyutlu olarak gösterilmektedir.

Mantıksal bellekte sayfalamada sabit uzunluktaki bloklar kullanılırken bölümlemede birbirinden farklı uzunluktaki bloklar kullanılır.

Bölümleme ve Sayfalamanın Birlikte Kullanılması: Hem sayfalama hem de bölümlemenin avantajları ve dezavantajları bulunmaktadır. Bu nedenle bu ikisi birlikte de kullanılabilir. Bunun için bölümler kendi içerisinde sayfalara ayrılır. Mantıksal adres üç parçadan oluşmaktadır:

  1. Bölüm
  2. Sayfa
  3. Ofset adresi

Bölümleme ve sayfalama birlikte kullanıldığında öncelikle bölüm adresi belirlenir, sonra o bölüme ait sayfa tablosundan çerçeve adresi belirlenerek ofset adresi ile fiziksel bellekteki ilgili yere erişilir.

Dosya Yönetimi

Bir işletim sisteminde dosya yönetimi; verinin depolanması için dosyaların soyutlanmasını, verinin geçerliği ve korunması ile bunlara erişimde performans sağlar.

Dosya disk üzerinde depolanmış verilerin bütünü, dizin ise dosyaların organize edildiği ortamdır. Dosya sistemi ile de tüm dosyaların depolanma ve tekrar düzenlenmesi işlemleri yönetilir. Bu dosya sistemlerine örnek olarak FAT32, NTFS, EXT4 verilebilir. Anlaşılacağı üzere, işletim sistemleri farklı dosya sistemlerini kullanabilirler.

İşletim sistemi tipik olarak iki çeşit dosya içerir:

  • Bir sistem görevi yerine getirirken ya da bir uygulama çalışırken bilgisayarı kontrol eden komutları içeren program dosyası
  • Bir kelime işlem programı gibi programı çalıştırdığınızda burada oluşturduğunuz bilgilerinizi içeren veri dosyası

Dosyaların özellikleri şu bilgileri içermektedir:

  • Adı
  • Tanımlama numarası
  • Tipi
  • Yeri
  • Büyüklüğü
  • Koruma özellikleri bilgisi
  • Saat
  • Tarih
  • Kullanıcı kimliği bilgileri

Bir hard diskin yüzeyi daire şeklindeki bir pastanın dilimlenmesi şeklinde kesimlere ayrılır. Burada bu her bir dilimin izler ile birleştiği yer kalan en küçük alana ise sektör denir. Dosya sistemi, diskteki verileri kümeler ( cluster ) halinde kullanılır.

Microsoft Windows’un Dosya Sistemleri: Microsoft Windows; FAT (File Allocation Table), NTFS (New Technology File System) ve ReFS dosya sistemlerini kullanmaktadır.

FAT adının yanındaki 12, 16 veya 32 sayıları dosya sistem bloklarını tanımlamak için kullandığı bit sayısını ifade eder. NTFS, Windows NT işletim sistemi ile birlikte gelmiş, ayrıca 32 GB’dan büyük disk bölümleri ve 4 GB’dan büyük dosylar oluşturulabilmektedir. ReFS, Windows 8 Server işletim sistemi ile gelmiştir.

Apple MAC OS’un Dosya Sistemleri: HFS+, Mac bilgisayar, iPhone, iPod ve Apple X Server’da kullanılmaktadır.

HFS+, 16 TB’a kadar disk bölümlerini ve dosya boyutlarını desteklemektedir.

Linux’ün Dosya Sistemleri: Açık kaynak kodlu Linux işletim sistemeleri EXT (Extended File System), Reiseri XFS ve JFS dosya sistemleri kullanmaktadır.

Reiseri, devasa sayıda küçük dosyaları etkin olarak depolamayı sağlayan bir dosya sistemidir. XFS, dosya depolama performansı yüksek olan bir sistemdir. JFS, IBM tarafından geliştirilmiştir.

BSD, Solaris ve UNIX’in Dosya Sistemleri: En çok kullanılan dosya sistemi UFS (Unix File System) diğer bir adıyla FFS (Fast File System) dir.