İşletim Sistemleri Günlüğüm-1 : PROCESS

PROCESS : 

 Process çalışmakta olan bir programı ifade etmektedir. Aslında bir program ile Process arasındaki fark da bu noktada meydana gelir. Program bilgisayar tarafından yapılmasını istediğimiz talimatların hafızadaki gösterimi olarak düşünülebilir. Process olmadan herhangi bir işlem gerçekleştiremezler. Process ise bu talimatları gerçekleştiren işlem olarak düşünülebilir. Ayrıca processler tek bir işlemci (CPU) üzerinde birden fazla işlemciye sahipmiş gibi işlem yapabilmemize olanak sağlarlar.

 Processler arasında “yazılabilen hafıza” paylaşımı yoktur. Yani bir process başka bir processin işlem yaptığı bir alanda doğrudan doğruya değişiklik yapamaz/yapmamalı. Processlerin aralarında haberleşmeleri (Inter-Process Communication (IPC)) için bazı özelleşmiş yapılar kullanılmaktadır. Bu aşamada senkronizasyon önemlidir ve programcının bunu sağlaması gereklidir. Senkronizasyonu sağlanmamış bir program önemli problemler çıkarabilir. Ve bu problemlerin onarılması güçtür. Bunun için processlerin çalışma mantığının kavranmış olması gereklidir.

 Bir program içerisinde ana process işlerken başka bir process oluşturduğunuzda ana process’in özelliklerine eşdeğer özellikte bir process meydana gelir. Ancak bütün bu özellikler (Program Counter, Stack Pointer, Memory Allocation, Open Files) kendine özeldir. Örneğin oluşan yavru process ana process’in program akışında kaldığı yerden (Program Counter) devam edecektir. Aynı şekilde ana process de akışını sürdürecektir. (Tabi ki bu istenmemektedir. Asıl amaç programın parçalara ayrılıp farklı parçalarını aynı anda başka bir processe yaptırmaktır. Aynı programı iki farklı processin aynı anda gerçekleştirmesi anlamsız olacaktır. Bu kısımda da çeşitli senkronizasyon yöntemleri mevcuttur.) Başka bir örnek vermek gerekirse yavru process daha önceden ana process tarafından oluşturulmuş yerel değişkenlere de sahip olacaktır. Ancak bu yerel değişkenler yine sadece değişiklik yapan processe özeldir. Ve değişiklik diğer processleri ilgilendirmeyecektir.




 Bir Process'i oluşturmak için UNIX sistemlerde işletim sisteminden “fork” sistem çağrısı yapılır. Windows’ta aynı işlem “CreateProcess” kullanarak gerçekleştirilebilir. Bu Sistem Çağrıları (System Calls) arasında küçük farklar olsa da genel itibariyle aynı işlemi gerçekleştirirler. UNIX sistemlerde bütün processler birbirinden türer (parent-child ilişkisi) ve her birinin kökü “init” processine dayanır. Windows sistemlerinde ise bütün processler hiyerarşik olarak eşittir.

 Daha sonraki yazılarımda processlerin CPU kullanım durumlarından (Process States) ve birbirleri arasında haberleşme için kullanılan yapılardan (Inter-Process Communication) bahsedeceğim.


 Sürçülisan etmişsem affola…


 Referans : Modern Operating Systems, Andrew S. Tanenbaum, Herbert Bos

Yorumlar

Bu blogdaki popüler yayınlar

İşletim Sistemleri Günlüğüm-2 : PROCESS DURUMLARI (PROCESS STATES)

Bilgem Çakır ile Röportaj (Deneyim Mühim…)

Bitirme Projesi 6 - Rapor - İkili Sınıflandırma (Binary Classification)