İçindekiler
- Süreç (Process) Konsepti
- Süreç Durumu
- Süreç (Process) Kontrol Bloğu (PCB, Process Control Block)
- Thread (İş Parçacıkları)
- Süreç (Process) Zamanlama (Scheduling)
- İşlemcinin Süreçten Sürece Geçişi
- Süreç (Process) Operasyonları
- Süreç (Process) Oluşturma
- Süreç (Process) Sonlandırma
İşlemler
İşletim sisteminde farklı programlar yürütülmektedir:
- Toplu komut sistemi (Batch system): İşler (jobs).
- Zaman paylaşımlı sistemler: Kullanıcı programları veya görevler (tasks).
Süreç (Process), yürütülmekte olan bir programdır. Süreçler, ardışık bir şekilde çalıştırılmalıdır, yani tek bir işlemdeki talimatlar paralel olarak yürütülmelidir. Bir süreç, birden fazla parçadan oluşur:
- Program kodu: Metin bölümü (Text section).
- Mevcut etkinlik: Program sayacı (program counter), işlemci registerları.
- Stack: Geçici veri tutar (fonksiyon parametreleri, return adresleri, yerel değişkenler).
- Data section: Global değişkenleri tutan veri bölümü.
- Heap: Runtime zamanında dinamik olarak ayrılan bellek.
Süreç Durumu
- Yeni (New): Süreç oluşturulmaktadır.
- Çalışmakta (Running): Talimatlar yürütülmektedir.
- Beklemede (Waiting): Süreç, belirli bir olayın gerçekleşmesini beklemektedir.
- Hazır (Ready): Süreç çalıştırılmaya hazır durumdadır ancak henüz işlemciye atanmış değildir.
- Sonlandırılmış (Terminated): Süreç, çalışmasını tamamlamış ve sona ermiştir.
NOT: Bir sürecin minimum alabileceği durum sayısı 4’tür.
Süreç Kontrol Bloğu (PCB, Process Control Block)
Süreçle ilgili bilgileri tutan yapı, Görev Denetim Bloğu (Task Control Block) olarak da bilinir ve işletim sistemi tarafından kullanılır. Bu blok, bir sürecin durumunu ve gerekli tüm bilgileri içerir:
- Süreç Durumu: Sürecin şu anki durumu (çalışıyor, bekliyor, sonlandırılmış vb.).
- Program Sayacı: Yürütülecek olan bir sonraki komutun adresi.
- CPU Registerları: Tüm işlem merkezli register’ların içerikleri ve kaydedilen değerler.
- CPU Zamanlama Bilgisi: Sürece ayrılan işlemci süresi ve planlama bilgileri.
- Bellek Yönetimi Bilgisi: Sürece tahsis edilen bellek alanının adres ve boyut bilgileri.
- Hesap Bilgisi: Kullanılan CPU süresi, başlangıçtan itibaren geçen clock süresi ve varsa zaman kısıtlamaları.
- G/Ç Durum Bilgisi: Süreç tarafından kullanılan G/Ç cihazları ve açık dosyaların listesi.
Süreç Zamanlama (Process Scheduling)
- Hazır Sıra: Ana bellekte tutulan ve çalıştırılmaya hazır durumda bekleyen süreçler kümesidir.
- Bekleme Sırası: Belirli bir olayın gerçekleşmesini bekleyen (örneğin, G/Ç işlemleri) süreçler kümesidir.
NOT: Süreçler, çeşitli sıralar arasında geçiş yapabilirler ve bu geçişler zamanlayıcı tarafından yönetilir.
İşlemcinin Süreçten Sürece Geçişi
- Süreç oluşturma
- Süreç sonlandırma
Süreç (Process) Sonlandırma
Bir süreç, son talimatını yerine getirdikten sonra exit() sistem çağrısı ile kendisini sonlandırmak ister. Child süreç, wait() çağrısı ile parent sürece veri döndürür. Ardından, süreç kaynakları işletim sistemi tarafından serbest bırakılır.
Parent süreç, abort() sistem çağrısı ile child süreçleri sonlandırabilir. Bu işlem aşağıdaki durumlarda gerçekleşir:
- Child süreç, kendisine ayrılan kaynakları aşmıştır.
- Child süreç, verilen görevin yapılmasına gerek kalmamıştır.
- Parent süreç sonlandırılmak üzeredir ve işletim sistemleri genellikle parent süreç sonlanınca child süreçlerin devam etmesine izin vermez. Bu durumda, tüm child süreçler basamaklı olarak sonlandırılır.
NOT: Süreç sonlandırma, işletim sistemi tarafından gerçekleştirilir.
Eğer parent süreç, wait() çağrısını yapmamışsa, bu durumda child süreç zombi süreç olarak adlandırılır.
Parent süreç, wait() çağrısını yapmadan sonlanmışsa, child süreç yetim süreç (orphan process) olarak adlandırılır.
Referanaslar
- Kocaeli Üniversitesi Doç. Dr. Suhap Şahin
- Operating System Concepts, 10th Edition Abraham Silberschatz, Peter B. Galvin, Greg Gagne
