Process & Thread

En basit haliyle, aynı anda işlem yapan (concurrent) uygulamalardır.

Process: ( İşlem )

– Kendine ait kaynakları vardır.
– Process uygulamanın kendisi olarak görülebilir.
– Bir uygulama birden fazla ve birbirine bağımlı process ile çalışabilir ve bu processler arası iletişim IPC aracılığıyla sağlanır.

Bazı evreleri vardır;

Created: İlk oluşturulduğunda olur ve ram’e yüklenir. Ardından “Waiting” e geçer.
Waiting: İşlemcinin kendine ayıracağı zamanı bekler ve işleme koyulduğunda running’e geçer.
Running: İşlem gördüğü durumu belirtir.
Blocked: Kullanıcı girdisi beklerken bu duruma geçer ve ardından “Wating” olur.
Terminated: Process’in işlenmesi bittiği zaman sonlandırılır.

Thread: ( İş parçacığı )

– Hafifsiklet işlem birimi ( lightweight process)
– Daha az kaynağa ihtiyaç duyarlar.

Thread vs Process:

– Thread’ler process’lerin altında çalışır.
– 1 Process’te birden çok Thread çalışabilir.
– Thread’ler Process’lerin hafıza alanlarını kullanır.
– Thread’ler akış diagramlarına takılmaz, program ile praralel çalıştıklarını varsayarak kendi başına hareket ederler. Process’ler akış diagramları içerir.

Mutex: Aynı anda tek işleme izin vererek diğer işlemleri queue’da bekletir.

Semaphore: Aynı andaki işlem sayısını sınırlar ve diğer işlemleri queue’da bekletir.

Erkin Çakar

PostgreSQL DBA & Software developer