Junior — Middle
Sistem planlayıcısı isteklerin işlenme zamanlamasını nasıl belirler?
sobes.tech yapay zeka
AI'dan gelen yanıt
İşletim sistemindeki zamanlayıcı (scheduler), süreçler ve iş parçacıkları arasında işlemci zamanını dağıtmakla görevlidir. Zaman çizelgesi oluşturmanın temel ilkeleri şunlardır:
- Öncelikler: daha yüksek önceliğe sahip süreçler öncelik kazanır.
- Zaman kuantumu: her süreç belirli bir zaman aralığı (kuantum) ile atanır ve bu sürenin sonunda kontrol başka bir sürece geçer.
- Planlama politikaları: Round Robin (dairesel dolaşma), FIFO, öncelik sıralı planlama, çok seviyeli kuyruklar gibi farklı algoritmalar vardır.
- Süreç durumunun dikkate alınması: planlayıcı, sürecin yürütmeye hazır olup olmadığını veya giriş/çıkış beklediğini dikkate alır.
Go dilinde, goroutine planlayıcı benzer şekilde çalışır, goroutine'leri sistem iş parçacıkları arasında dağıtarak M:N planlama kullanır. Mevcut çekirdekleri verimli kullanmaya çalışır, blokajlar veya kuantumlar sırasında goroutine'ler arasında geçiş yapar.
Basitleştirilmiş bir Round Robin algoritması örneği:
- Tüm hazır süreçleri bir kuyruğa koy.
- Kuyruğun ilk sürecini bir kuantum için CPU'ya ata.
- Kuantum sonunda, süreç tamamlanmamışsa, onu kuyruğun sonuna geri koy.
- Hazır süreçler kalmayana kadar tekrarla.
Bu şekilde, planlayıcı kaynakların adil ve verimli dağılımını sağlar.