Process
Süreç
- Türkçe karşılığı
- işlem
- Okunuşu
- prouses ya da prases
Günlük kullanımda iki ad da yaygın.
Kısaca
Process, bir programın çalışan örneğidir; işletim sistemi tarafından yönetilen kendi bellek alanına, kaynaklarına ve en az bir yürütme iş parçacığına sahiptir.
Process (işlem) nedir?
Process, o anda çalışmakta olan bir programdır. Programın kendisi yalnızca diskteki bir dosyadır; onu başlattığınızda işletim sistemi kodunu belleğe yükler ve benzersiz bir process ID'si (PID), kendine ait özel bir bellek alanı, açık dosya tanıtıcıları ve komutları yürüten en az bir thread ile bir process oluşturur.
İşletim sistemi her process için, çoğu zaman process control block (süreç denetim bloğu) denen bir kayıt tutar; bu kayıt process'in durumunu (çalışıyor, hazır, bekliyor ya da sonlandı), kaydedilmiş CPU yazmaç değerlerini ve bellek eşlemelerini saklar. Process'ler birbirinden yalıtılmıştır; bu yüzden çöken bir process normalde bir diğerinin belleğini bozamaz. Process'lerin iş birliği yapması gerektiğinde pipe, socket veya paylaşımlı bellek gibi process'ler arası iletişim (IPC) mekanizmalarını kullanırlar.
Yararlı bir benzetme: program bir tariftir, process ise o tarifi bir mutfakta gerçekten hazırlayan aşçıdır. Aynı uygulamanın birkaç penceresini açabildiğiniz gibi, birkaç aşçı da aynı tarifi aynı anda uygulayabilir; her biri kendi process'i olarak çalışır. Tarayıcılar, web sunucuları ve veritabanları işi yalıtmak ve birden fazla CPU çekirdeğini kullanmak için çoğu zaman birçok process çalıştırır.
Process çoğu zaman thread ile karıştırılır. Process, belleğe ve kaynaklara sahip olan kapsayıcıdır; thread ise process'in içindeki bir yürütme yoludur. Aynı process'teki thread'ler belleği paylaşır, ayrı process'ler paylaşmaz. Yeni bir process oluşturmak da yeni bir thread oluşturmaktan daha pahalıdır.
Bir bakışta
Önemli noktalar
- Process, bir process ID'si (PID) ile tanımlanan, yürütülmekte olan programdır.
- Her process'in kendine ait yalıtılmış bir bellek alanı ve kaynakları vardır.
- Process, kodunu çalıştıran bir ya da daha fazla thread içerir.
- Process'ler pipe, socket ve paylaşımlı bellek gibi IPC mekanizmalarıyla iletişim kurar.
- İşletim sistemi process'leri kullanılabilir CPU çekirdeklerine zamanlar.
Örnek
# Show the PID of the current shell
echo $$
# Start a background process and print its PID
sleep 60 &
echo "Started process $!"
# List running processes and filter for sleep
ps aux | grep sleep
# Ask the background process to terminate
kill $!Sık sorulan sorular
Program ile process arasındaki fark nedir?
Program, diskte saklanan pasif bir komut dosyasıdır. Process ise o programın kendi belleği, durumu ve process ID'si olan, etkin ve çalışan örneğidir.
Process ile thread arasındaki fark nedir?
Process, kendi bellek alanı olan bağımsız bir çalışan programdır; thread ise bir process içindeki yürütme birimidir. Aynı process'in thread'leri belleği paylaşır; bu onları daha hafif yapar ancak dikkatli bir senkronizasyon gerektirir.
Zombie process nedir?
Zombie process, çalışmayı bitirmiş ancak üst process'i çıkış durumunu henüz okumadığı için process tablosunda hâlâ bir kaydı bulunan process'tir. CPU kullanmaz ve üst process o durumu topladığında ortadan kaybolur.
Sık karşılaştırılanlar
İlgili sayfalar
- Threadİşletim Sistemleri, s. 34Thread, işletim sisteminin zamanlayabileceği en küçük yürütme birimidir; bir process içinde çalışır ve o process'in belleğini diğer thread'lerle paylaşır.
- Kernelİşletim Sistemleri, s. 17Kernel, işletim sisteminin CPU'yu, belleği ve donanım aygıtlarını yöneten ve programların bu kaynaklara nasıl eriştiğini denetleyen çekirdek bölümüdür.
- CPU Zamanlamaİşletim Sistemleri, s. 5CPU zamanlama, işletim sisteminin her CPU çekirdeğinde hangi hazır process ya da thread'in ne kadar çalışacağına karar vermesidir; işlemci adil paylaşılır.
- Sanal Bellekİşletim Sistemleri, s. 26Sanal bellek, her process'e kendine ait özel bir adres alanı veren ve bunu arka planda fiziksel RAM'e ya da diske eşleyen bir işletim sistemi tekniğidir.
- EşzamanlılıkProgramlamanın Temelleri, s. 19Eşzamanlılık, bir programın birden çok görevde örtüşen zaman dilimlerinde ilerleyebilme yeteneğidir; örneğin birçok kullanıcıya aynı anda hizmet vermek gibi.
- KonteynerDevOps ve Bulut, s. 28Konteyner, bir uygulamayı bağımlılıklarıyla paketleyip ana makinenin paylaşılan işletim sistemi çekirdeği üzerinde çalıştıran hafif, yalıtılmış bir pakettir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin