İşletim Sistemlerinde Process -3

Kardel Rüveyda ÇETİN
4 min readDec 1, 2019

--

İŞLETİM SİSTEMİNDEKİ PROCESSES (İŞLEMLER)

Processes ( İşlemler ) ne içermelidir ?
-Program Sayacı(Program Counter),
-Yığın(Stack),
-Veri Bölümü (Data Section)

Işlem Durumu

Bir işlem çalıştırılırken durumunu değiştirir.
yeni(new) : İşlem oluşturuldu
çalışıyor(running): İşlem komutları çalıştırılıyor.
bekliyor(waiting): İşlem olayın gerçekleşmesini bekliyor.
hazır(ready): İşlem bir işlemciye atanmayı bekliyor.
sonlandırılmış(terminated): İşlem çalışmayı bitirmiş

İşlem Kontrol Bloğu(PCB)

Herhangi bir işlem ile ilişkili bilgiler (Process Control Block.)

-İşlem Durumu
-İşlem sayacı
-CPU zamanlama bilgileri
-I/O Durum Bilgileri
-Hafıza Yönetim Bilgileri

İşlem Zamanlama Kuyrukları

İş Kuyruğu(Job Queue) : Sistemdemi Tüm İşlemlerin Kümesi
Hazır Kuyruğu(Ready Queue): Ana hafızadaki, tüm işlemlerin kümesi — çalışmaya hazır veya çalıştırılmayı bekleyen
Cihaz Kuyrukları ( device queues) : Bir I/O cihazını kullanmayı bekleyen işlemler kümesi.

NOT: İşlemler değişik kuyruklar arasında geçişler yapar.

Zamanlayıcılar

Zamanlayıcılar iki kısımda incelenir Uzun Vadeli (Long Term) ve Kısa Vadeli ( Short Term.)

Uzun Vadeli Zamanlayıcılar(Long-term Scheduler)
-Job Scheduler yani iş zamanlayıcısı olarak da adlandırılabilir
-Hangi işlemlerin hazır kuyruğuna alınması gerektiğine karar verir.

Kısa Vadeli Zamanlaycılar (Short-Term Scheduler)
-CPU Zamanlaycısı olarak da bilinir
-Sıradaki hangi işlemin CPU tarafından çalıştırılacağının kararını verir.
-Kısa vadeli zamanlayıcılar çok sık çalıştırılır.Bu nedenle çok hızlıdır.
-Uzun vadeli zamanlayıcılar ise çok sık çalıştırılmaz. Bu nedenle yavaş olabilir
-Uzun vadeli zamanlayıcı çokluprogramlamanın (multiprogramming) seviyesini kontrol ede.

İşlemler aşağıdaki gibi iki kategoriye ayrılabilir;

I/O Ağırlıklı İşlemler: CPU üzerinde kısa süreli işlemler yaparlar. Çoğunlukla zamanları I/O işlemleri yaparak geçer.
CPU ağırlıklı işlemler (CPU-bound Process) : Zamanlarının çoğunu CPU üzerinde uzun işlemler yaparak geçirirler. I/O da yaptıkları işlemler yok danecek kadar azdır.

Ortam Değişikliği (Context Switch)

CPU başka bir işleme geçerken, sistem eski işlemin durumunu kayıt edimeli ve bu kayıt işleminden sonra yeni işlemin kaydedilmiş durumunu yüklemelidir.
Bir işlemin ortamı (Context.) Process Control Block(PCB) de tutulur
Ortam değişikliği için zaman harcanır. Ve bu da ek yüktür. Çünkü değişim sırasında işlemci kullanıcının işine direk yarayan bir iş yapmamaktadır.
Harcanan zaman donanım desteğine göre değişebilir.
-İşlemci anlık olarak (CPU) tek bir işle uğraşabilir
-Fakat işletim sistemi özelliğine göre ; aynı anda birden fazla iş çalıştırılıyormuş gibi hissetirme mümmkündür.
-Anlık olarak tek process çalıştırıp;birden fazla iş yapıyormuş gibi gösteren yapı; çok görevlilik(multi tasking) olarak adlandırılabilir.
-İşte bu prosesler arasındaki geçişin adı Context Switch olarak adlanıdırılır.

İşlem Oluşturma
Ana işlem (Parent Process) ve çocuk işlemleri (Children Processes) oluşturulur.
UNIX ‘te fork sistem çağırısı yeni bir işlem oluşturulur. EXEC sistem çağrısı, fork system çağırısı ile yeni bir işlem oluşturulduktan sonra işlemin hafıza alanına yeni bir program yüklemek için kullanılır.(Örnek olarak verilebilir.)

-İşlemler son komutlarını çalıştırdıktan sonra iletim sistemine kendilerini silmelerini isterler. Bu durum EXIT olarak adlandırılır.
-İşlemin dönüş değerinin çocuktan ana işleme döndürülmesi (Wait)
-Ana işlem çocuk işlemlerin çalışmasını sonlandırırsa (Abort.)
-Tüm çocuk işlemlerin sonlandırılması (Peşpeşe –Cascading sonlandırma)

İşlemler Arası İletişim

Bir sitemdeki işlemler bağımsız(independent) ya da işbirliği yapıyor(Cooperating) durumda olabilir.
Bilgi paylaşımı, İşlem Hızını arttırmak, Modulerlik sağlamak için işbirliği yaparlar.
İşbirliği yapan işlemler (İşlemler arası iletişime) IPC ihtiyaç duyarlar.
IPC’nin iki modeli vardır;
-Shared Memory
-Message Passing

Üretici — Tüketici Problemi

Üretici(Producer) bilgi üretirken; tüketici(consumer) işlem üretilen bilgiyi tüketir.

Tampon Bellek Kullanımı

1-) Sıfır Kapasite -0 mesaj. Gönderici alıcıy beklemedilir. Randevu sistemi
2-) Sınırlı Kapasite — n mesajı alacak şekilde sınırlı kapasitelidir. Gönderici balantı kapasitesi dolu ise beklemeleidir.
3-) Sınırsız kapasite — Gönderi asla beklemez.

Özetle;

Time-sharing : Aynı anda birden fazla işlem çalıştırmayı sağlamaktadır.

MultiProgramming Programlama: birden çok processin Concurrently(eş zamanlı) bir biçimde çalıştırılmasına denir. Burada çok önemli bir nokta var. Multiprogramming Tek işlemcili sistemler için söz konusu. Yani bir yerde multiprogramming varsa orada tek işlemci vardır.

Not: Hafıza Yüklenir => Sırada Bekler => Çalışma Durumuna Geçer => Waiting => Running => Terminated. (Her işlem başlar ve terminated edilir. )

Not: Process Control Block işlemin künyesidir. İşlemin durumu , geçmiş bilgileri ve hangi state’de olduğu bilgisini tutar. İşletim sistemi bu künyeye bakınca eçmişi hakkında bilgi sahibi olur.

Process State: Running,waiting,ready,terminated, new durumları
Process Number: Şu anki hangi process de çalışıldığını gösterir.
Program Counter: Sonraki işlenecek olan satırı tutar.
Memory Limits: Kullanılacak bellek miktarı, sınırı denilebilir.

Notlar

-Queeler Process Control Blockta beklerler. Yani künyelerde beklerler.
-Bekleme yerleri; Ready Quee’dir
-Ready Quee’de bekleyen CPU’ya gidecektir.
-CPU’dan çıkma yolu ise terminated olmasıdır.
-CPU’da ya terminated edilip Process bitecek ya da IO devicelera gidecektir. Wait statusune de düşebilir.

Short Term Scheduler : Hafızadan alınır, ready Quee’de alışır. CPU’da fazla kalması istenmez. Email kontrolü örnek olarak verilebilir. Çok uzun çalışmaz.
Long Term Scheduler : Saatlerce sürebilir. Bu süreç esnasında Tüm Ram Proses için ayrılır.
Swapping : Diski Ram gibi kullanmak
Context Switch: Bir CPU da prosesin durumunu kaydedip başka prosesesin çalışma durumudur. Process; Process Block Controller içerisinde gerçekleşir.

Proses Süreç Akışı

Diskten Alınır => Ram’e gider => Ready Quee’de bekletilir. => Children Processes ler paylaşır => Process ağacında ID ile beklerler.

Not: Chrome Browser’da her bir tab ayrı bir prosestir.

Kaynakça

Operating System Concepts with Java — 8th Edition

Ders : İşletim Sistemleri( Doç. Dr. Ali Gökhan Yavuz )

Yıldız Teknik Ünviersitesi Bilgisayar Mühendisliği Bilgi Teknolojileri Programı

--

--

Kardel Rüveyda ÇETİN
Kardel Rüveyda ÇETİN

Written by Kardel Rüveyda ÇETİN

Software Development Lead @DogusTeknoloji | Microsoft MVP | Mathematical Engineer | Speaker | Blogger | Founder&Organizer @thecoderverse

No responses yet