İşletim Sistemlerinin İşlevleri II

Bir önceki bölümde bahsedildiği gibi işletim sisteminin görevlerinden biri programların yönetilmesidir. İşletim sistemi bu amacı gerçekleştirirken pek çok arka plan mekanizması kullanmakta ve programlar için çeşitli servisler sunmaktadır.

İşletim sistemlerinin programlarla ilgili en temel görevi programların çalıştırılmasıdır. Bir programın çalıştırılabilmesi için öncelikle hafızaya yüklenmesi gereklidir. Hafızaya yüklenmiş olan programlara işlem denilmektedir.

İşletim sisteminin kullanıcılara ve programlara işlemlerle ilgili pek çok servis sunar. Bunlardan bazıları işlem oluşturma, işlem sonlandırma, işlem senkronizasyonu ve işlemler arası iletişim servisleridir. Bu bölümde işlemlerle ilgili bazı temel kavramlar, mekanizmalar ve örnek servislerden bahsedilecektir.

Çalışmakta olan programlara işlem denir. Tüm işlemler program sayacı, kod (code), veri (data), yığın (stack) ve alt yığına (heap) sahip olmalıdır.

Çoklu programlama ve zaman paylaşımlı sistemlerde, işletim sistemlerinin işlemleri aktifleştirme ve pasifleştirme yetkisi olduğundan işlemler beş farklı duruma sahip olabilmektedir: "başlangıç", "hazır", "çalışıyor", "bekliyor" ve "sonlandırılmış."

Çalışması durdurulan işlemin sonradan kaldığı yerden çalışmaya devam edebilmesi için işleme ait bazı bilgilerin işletim sistemi tarafından kaydedilmesi gerekir. Bu bilgilerin tutulduğu işlem kontrol bloğunda tipik olarak takip edilen bilgiler işlem numarası, işlem durumu, işlem sayacı, işlemci yazmaçları, işlemci zamanlama bilgileri, hafıza yönetim bilgileri ve giriş-çıkış durum bilgileridir.

Çoklu programlama desteği olan işletim sistemlerinde hangi işlemin ne zaman çalışacağı ya da çalışan işlemin çalışmasının duraklatılıp duraklatılmayacağı sistem performansı açısından çok önemli kararlardır. Bu kararların alınması durumuna "işlemci zamanlaması" denir ve dört farklı işlem durumu geçişi sırasında gerçekleşebilir: “Çalışıyor” durumundan “Bekliyor” durumuna geçiş, “Çalışıyor” durumundan “Hazır” durumuna geçiş, “Bekliyor” durumundan “Hazır” durumuna geçiş ve “Çalışıyor” durumundaki işlemin sonlanması/sonlandırılması.

İşlemci zamanlamasını yapan işletim sistemi bileşenlerine zamanlayıcı denilmektedir. Zamanlayıcılar uzun, orta ve kısa vade zamanlayıcı olmak üzere üçe ayrılır.

Uzun vade zamanlayıcı hangi programların hafızaya yükleneceğine karar vererek bu programları hafızaya yükler. Kısa vade zamanlayıcı hangi işlemin “Hazır” durumundan “Çalışıyor” durumuna geçeceğine karar veren zamanlayıcıdır. Orta vade zamanlayıcı ise hafızaya yüklenen işlemleri gerektiğinde ikincil depolama birimine taşıyarak diğer işlemler için hafızada yer açmayı sağlar.

İşletim sistemleri sistem kaynaklarını kullanmak isteyen işlemleri adil bir şekilde yönetebilmesi için çeşitli kuyruklar kullanmaktadır. İşlemleri zamanlamak için şu kuyrukları kullanır: iş kuyruğu, hazır kuyruğu ve cihaz kuyrukları.

İşletim sistemi tarafından sağlanan en önemli servislerden ikisi işlem oluşturma ve sonlandırma servislerdir.

Herhangi bir işlemin başlayabilmesi için bu işlemin başka bir işlem tarafından başlatılması gerekir. Bu ilişkide yeni başlatılan işleme çocuk işlem, bu işlemi başlatan işleme ise ana işlem ismi verilir.

İşlemler son komutlarını çalıştırdıktan sonra işletim sisteminden kendilerini silmelerini isterler. Unix tabanlı sistemlerde bu amaç için kullanılan sistem çağrısının adı exit()’tir. Bu çağrı yapıldığında işleme verilen kaynaklar (örneğin hafıza alanı) işletim sistemi tarafından diğer işlemlere verilmek üzere geri alınır.

Bir sistemdeki işlemler bağımsız ya da iş birliği yapıyor olabilir. İşbirliği yapan işlemler birbirlerini etkileyebilirler veya veri paylaşabilirler.

İşbirliği yapan işlemler, birbirleriyle iletişim kurmak için işletim sisteminin sağladığı işlemler arası iletişim (IPC) mekanizmalarını kullanmalıdır. IPC mekanizmalarının pek çok çeşidi bulunmaktadır. Temel IPC mekanizmalardan bazıları paylaşımlı bellek, mesaj gönderme ve soketlerdir.