Süreç ve İş Parçacığı Yönetimi
Süreç ve iş parçacığı yönetimi, işletim sisteminin yürütme birimlerini — kendi adres alanlarına sahip süreçleri ve bir adres alanını paylaşan iş parçacıklarını — nasıl oluşturduğunu, zamanladığını ve sonlandırdığını, ayrıca işlemciyi bunlar arasında nasıl değiştirdiğini ifade eder.
Tanım
Süreç ve iş parçacığı yönetimi, çalışan programları süreçler ve iş parçacıkları olarak temsil eden, yürütme durumlarını sürdüren, onları oluşturan ve sonlandıran, ayrıca bağlamlarını koruyarak ve geri yükleyerek işlemciyi aralarında değiştiren işletim sistemi mekanizmalarını içermektedir.
Kapsam
Bu konu, süreç soyutlamasını ve yaşam döngüsünü, süreç kontrol bloğunu, süreç oluşturma ve sonlandırmayı, iş parçacıklarını ve çoklu iş parçacığı modellerini, bağlam anahtarlamasını ve süreçler arası iletişimi kapsamaktadır. Hazır durumdaki bir görevin ne zaman çalışacağına dair politikayı (CPU zamanlaması) ve paylaşılan verilerin koordinasyonunu (eşzamanlılık, genellikle işletim sistemleri altında ele alınır) dışarıda bırakarak, yürütmeyi temsil eden ve yöneten yapılara odaklanmaktadır.
Temel sorular
- İşletim sistemi her süreç ve iş parçacığı için hangi durumu saklamak zorundadır?
- Süreçler nasıl oluşturulur ve iş parçacıkları süreçlerden nasıl farklılaşır?
- Bir bağlam anahtarlaması sırasında ne olur ve maliyeti nedir?
- Süreçler adres alanları arasında nasıl iletişim kurar ve koordinasyon sağlar?
Anahtar kavramlar
- süreç ve süreç kontrol bloğu
- süreç durumları ve yaşam döngüsü
- iş parçacığı ve çoklu iş parçacığı
- kullanıcı düzeyinde ve çekirdek düzeyinde iş parçacıkları
- bağlam anahtarlaması
- fork ve exec
- süreçler arası iletişim
- süreç izolasyonu
Temel kuramlar
- Süreç soyutlaması
- İşletim sistemi, her çalışan programı kendi adres alanına ve bir süreç kontrol bloğunda saklanan bir yürütme bağlamına sahip bir süreç olarak temsil ederek, işlemcinin izolasyonunu, zamanlamasını ve kontrollü paylaşımını sağlamaktadır.
Mekanizmalar
Her süreç, yazmaçlarını, bellek eşlemelerini, açık dosyalarını ve zamanlama durumunu tutan bir süreç kontrol bloğu ile tanımlanmaktadır. Sistem süreçleri oluşturur (örneğin fork ve exec aracılığıyla), onları durumlar arasında (yeni, hazır, çalışıyor, bekliyor, sonlandırıldı) geçirir ve bir bağlamı kaydedip diğerini geri yükleyerek aralarında geçiş yapar. İş parçacıkları süreçlerinin adres alanını paylaşır, bu da geçişi daha ucuz hale getirir ancak senkronizasyon gerektirir; süreçler arası iletişim borular, mesajlar veya paylaşılan bellek kullanılarak gerçekleştirilir.
Klinik önem
Süreç ve iş parçacığı yönetimi, her modern sistemde çoklu görevin temelini oluşturmaktadır. Süreç izolasyonu, güvenlik ve kararlılığın temel taşlarından biridir; iş parçacıkları duyarlı ve paralel uygulamaları mümkün kılarken, bağlam anahtarlamasının ve süreçler arası iletişimin maliyeti sunucuların, çalışma zamanı ortamlarının ve eşzamanlı yazılımların tasarımını şekillendirmektedir.
Tarihçe
Süreç kavramı, 1960'larda çoklu programlama ve zaman paylaşımlı sistemlerle olgunlaşmış ve UNIX, günümüzde yaygın olarak kullanılan fork/exec modelini ve süreç soyutlamasını oluşturmuştur. İş parçacıkları, çoklu işlemcilerden yararlanmak ve duyarlılığı artırmak amacıyla eklenmiş, POSIX iş parçacıkları gibi standartlar kullanıcıya görünür iş parçacığı kullanımını resmileştirmiştir.
Tartışmalar
- Kullanıcı düzeyinde ve çekirdek düzeyinde iş parçacıkları
- Kullanıcı düzeyindeki iş parçacıklarının yönetimi ucuzdur ancak çekirdekler arasında bağımsız olarak zamanlanamazlar ve engelleme çağrısında tüm süreci bloke ederler; çekirdek düzeyindeki iş parçacıkları ise daha yüksek ek yükle zamanlayıcı ile entegre olurlar; hibrit modeller faydaları birleştirmeye çalışmaktadır.
Öne çıkan isimler
- Ken Thompson
- Dennis Ritchie
- Per Brinch Hansen
- Abraham Silberschatz
- Andrew S. Tanenbaum
İlgili konular
Temel eserler
- silberschatz2018
- tanenbaum2014os
Sıkça sorulan sorular
- İşletim sistemi her süreç için hangi bilgileri saklar?
- Sürecin kaydedilmiş yazmaçlarını ve program sayacını, bellek eşlemelerini, zamanlama durumunu ve önceliğini, açık dosyalarını ve muhasebe ile kimlik bilgilerini içeren bir süreç kontrol bloğu tutar — yani süreci askıya almak ve daha sonra kaldığı yerden tam olarak devam ettirmek için gereken her şeyi saklar.
- İş parçacıkları arasında geçiş yapmak neden süreçlerden daha ucuzdur?
- Bir süreç içindeki iş parçacıkları aynı adres alanını ve kaynakları paylaşır, bu nedenle aralarında geçiş yapmak bellek eşlemelerini değiştirmeyi gerektirmez. Süreçler arasında geçiş yapmak ise ek olarak adres alanlarını değiştirir ve çeviri önbelleklerini boşaltabilir, bu da onu daha maliyetli hale getirir.