İşletim Sistemleri Kavramları 3 – Process
İşletim Sistemindeki İşlemler (Processes)
Bir İşlem Neleri İçermelidir?
- Program Sayacı (Program Counter)
- Yığın (Stack)
- Veri Bölümü (Data Section)
İşlem Durumları Bir işlem çalıştırılırken çeşitli durumlar arasında geçiş yapabilir:
- Yeni (New): İşlem oluşturuldu.
- Çalışıyor (Running): İşlem komutları yürütülüyor.
- Bekliyor (Waiting): İşlem, bir olayın gerçekleşmesini bekliyor.
- Hazır (Ready): İşlem, bir işlemciye atanmayı bekliyor.
- Sonlandırılmış (Terminated): İşlem çalışmayı tamamladı.
İşlem Kontrol Bloğu (Process Control Block – PCB) İşlemle ilgili tüm bilgiler PCB’de saklanır:
- İşlem Durumu
- Program Sayacı
- CPU Zamanlama Bilgileri
- I/O Durum Bilgileri
- Bellek Yönetimi Bilgileri
İşlem Zamanlama Kuyrukları
- İş Kuyruğu (Job Queue): Sistemdeki tüm işlemler.
- Hazır Kuyruğu (Ready Queue): Ana bellekte, çalışmaya hazır veya çalışmayı bekleyen işlemler.
- Cihaz Kuyrukları (Device Queues): I/O cihazlarını kullanmayı bekleyen işlemler.
Zamanlayıcılar
- Uzun Vadeli Zamanlayıcı (Long-Term Scheduler): Hangi işlemlerin hazır kuyruğuna alınacağını belirler.
- Kısa Vadeli Zamanlayıcı (Short-Term Scheduler): CPU’nun sıradaki hangi işlemi çalıştıracağına karar verir.
İşlem Türleri
- I/O Ağırlıklı İşlemler: CPU’da kısa süreli çalışır, çoğunlukla I/O işlemleri yapar.
- CPU Ağırlıklı İşlemler: Çoğunlukla CPU üzerinde uzun süreli çalışır, nadiren I/O işlemi yapar.
Ortam Değişikliği (Context Switch) Bir işlemden diğerine geçerken, mevcut işlemin durumu PCB’de saklanır ve yeni işlem bu durum üzerinden devam eder. Bu geçiş ek yük oluşturabilir, çünkü işlemci geçiş sırasında doğrudan bir kullanıcı işini gerçekleştirmez.
İşlem Oluşturma
- Ana işlem (Parent Process) ve çocuk işlemler (Children Processes) oluşturulur. UNIX’te fork sistemi yeni bir işlem oluşturur, exec ise hafıza alanına yeni bir program yükler.
- İşlemler kendilerini sonlandırmak için exit komutunu kullanır; dönüş değerleri ana işleme iletilir (wait). Ana işlem gerekirse çocuk işlemleri sonlandırabilir (abort).
İşlemler Arası İletişim (IPC) Bağımsız işlemler ya da işbirliği yapan işlemler arasında iletişim mümkündür. İşbirliği yapan işlemler bilgi paylaşımı, hız ve modülerlik sağlar ve IPC (Inter-Process Communication) ihtiyaç duyar:
- Ortak Bellek (Shared Memory)
- Mesaj Gönderimi (Message Passing)
Üretici-Tüketici Problemi Üretici (Producer) bilgi üretirken, tüketici (Consumer) üretilen bilgiyi tüketir. Bu işlem sırasındaki tampon bellek kullanım kapasitesi üç çeşitte olabilir:
- Sıfır Kapasite: Gönderici, alıcının hazır olmasını bekler (randevu sistemi).
- Sınırlı Kapasite: Gönderici, bağlantı kapasitesi doluysa bekler.
- Sınırsız Kapasite: Gönderici beklemez.
Çok Görevlilik (Multi-tasking) Birden fazla iş aynı anda çalışıyormuş gibi görünür, ancak işlemci tek bir işlemi sırayla çalıştırır.
İşlem Akışı Bir işlem, sırasıyla aşağıdaki adımları izler:
- Diskten alınır.
- Ana belleğe yüklenir.
- Hazır kuyruğunda bekletilir.
- Çocuk işlemler oluşturulabilir ve bir işlem ağacında yer alırlar.
Notlar
- Process Control Block (PCB), işlemin durumu, geçmişi ve hangi durumda olduğunu saklar.
- Kısa vadeli zamanlayıcı, işlemi CPU’da çok uzun süre tutmadan çalıştırır; uzun vadeli zamanlayıcı ise daha uzun işlemler için belleği ayırır.
- Swapping, diski RAM gibi kullanarak işlemleri bellekte daha verimli saklamayı sağlar.
Kaynakça
- Operating System Concepts with Java – 8th Edition
- Ders: İşletim Sistemleri (Doç. Dr. Ali Gökhan Yavuz), Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bilgi Teknolojileri Programı