You are on page 1of 40

2 PROSESLER

Proses
Proses
►Bir işlevi gerçeklemek üzere ardışıl bir program
parçasının yürütülmesiyle ortaya çıkan işlemler dizisi
⇒ Programın koşmakta olan hali
2

►Aynı programa ilişkin birden fazla proses olabilir.


Prosesler

►Görev (Task) de denir


►Text, veri ve yığın alanları vardır.

İşletim Sistemleri 44
Proses
Proses
►Bazı sistem çağrıları ile sistem kaynaklarını kullanırlar.
►Birbirleri ve dış dünya ile haberleşirler.
►Davranışını karakterize edebilmek için proses için
2

yürütülen komutların sırası gözlenebilir: prosesin izi


Prosesler

(trace)
►Prosesin ömrü: yaratılması ve sonlanması arasında geçen
süre

İşletim Sistemleri 45
2
Prosesler

İşletim Sistemleri 46
2
Prosesler

İşletim Sistemleri 47
2
Prosesler

İşletim Sistemleri 48
Proses
Proses
►Proseslerin işlemciye sahip olma sıraları kestirilemez ⇒
program kodunda zamanlamaya dayalı işlem olmamalı
2
Prosesler

İşletim Sistemleri 49
İki
İki Durumlu
Durumlu Proses
Proses Modeli
Modeli
►Proses iki durumdan birinde olabilir:
– Koşuyor
– Koşmuyor
2
Prosesler

İşletim Sistemleri 50
Proses
Proses Kuyruğu
Kuyruğu
2

O anda çalışmayan proses sırasını bir kuyrukta bekler:


Prosesler

İşletim Sistemleri 51
Proses
Proses
►Koşmuyor
– çalışmaya hazır
►Bloke
2

– G/Ç bekliyor
Prosesler

►Kuyrukta en uzun süre beklemiş prosesin çalıştırılmak


üzere seçilmesi doğru olmaz
– Bloke olabilir

İşletim Sistemleri 52
Beş
Beş -- Durumlu
Durumlu Model
Model
►Koşuyor
►Hazır
►Bloke
2

►Yeni
Prosesler

►Sonlanıyor

İşletim Sistemleri 53
2
Prosesler

İşletim Sistemleri 54
İki
İki Kuyruk
Kuyruk
2
Prosesler

İşletim Sistemleri 55
Çoklu
Çoklu Kuyruk
Kuyruk
2
Prosesler

İşletim Sistemleri 56
Proses
Proses Yaratma
Yaratma
Ne zaman yaratılır?
►Kullanıcı sisteme girmiş
►Bir servis sunmak için
2

– örneğin yazıcıdan çıktı


Prosesler

►Bir başka proses yaratmış

İşletim Sistemleri 57
Proses
Proses Sonlandırma
Sonlandırma
Ne zaman sonlanır?
►Kullanıcı sistemden çıkmış
►Uygulama sonlandırılmış
2

►Hata durumu oluşmuş


Prosesler

İşletim Sistemleri 58
Prosesin
Prosesin Askıya
Askıya Alınma
Alınma Nedenleri
Nedenleri
►Swap işlemi
►Hatalı durum oluşması
2

►Etkileşimli kullanıcı isteği


Prosesler

– Örneğin hata ayıklama (debug) için


►Ayrılan sürenin dolması (quantum)
►Anne proses tarafından

İşletim Sistemleri 59
İşletim
İşletim Sistemi
Sistemi Kontrol
Kontrol Yapıları
Yapıları
►Her proses ve kaynak ile ilgili durum bilgilerinin
tutulması gerekir
– İşletim sistemi tarafından yönetilen her varlık için tablolar
2

tutulur
Prosesler

• G/Ç Tabloları
• Bellek Tabloları
• Dosya Tabloları
• Proses Tabloları

İşletim Sistemleri 60
Proses
Proses Tablosu
Tablosu
►Prosesin bileşenleri
►Yönetilmesi için gerekli özellikleri
2

– Kimlik numarası
– Durumu
Prosesler

– Bellekteki yeri

İşletim Sistemleri 61
Prosesin
Prosesin Bileşenleri
Bileşenleri
► Proses birden fazla programdan oluşabilir
– Yerel ve global değişkenler
– Sabitler
2

– Yığın
► Proses Kontrol Bloğu
Prosesler

– Nitelikler (attributes)
► Prosesin görüntüsü
– Program, veri, yığın ve niteliklerin tamamı

İşletim Sistemleri 62
2
Prosesler

İşletim Sistemleri 63
Proses
Proses Kontrol
Kontrol Bloğu
Bloğu
►Proses Kimlik Bilgileri
– Kimlik Bilgileri
• Prosesin kimlik numarası
2

• Prosesin annesinin kimlik numarası


Prosesler

• Sahibin kullanıcı kimlik bilgisi

İşletim Sistemleri 64
Proses
Proses Kontrol
Kontrol Bloğu
Bloğu
►İşlemci Durum Bilgisi
– Kullanıcıya açık saklayıcılar
• İşlemcinin makina dili kullanılarak erişilebilen saklayıcıları.
2

– Kontrol ve Durum saklayıcıları


Prosesler

• Program sayacı
• Durum saklayıcısı
• Yığın işaretçileri
• Program durum sözcüğü (çalışma modu biti var)

İşletim Sistemleri 65
Proses
Proses Kontrol
Kontrol Bloğu
Bloğu

► Proses Kontrol Bilgileri


– İş sıralama ve durum bilgileri
2

•Prosesin durumu
•Önceliği
Prosesler

•İş sıralama ile ilgili bilgiler (Hangi bilgiler olduğu kullanılan iş


sıralama algoritmasına bağlı. Örneğin: bekleme süresi, daha önce
koştuğu süre)
•Çalışmak için beklediği olay
– Veri Yapıları
•Prosesler örneğin bir çevrel kuyruk yapısında birbirlerine bağlı
olabilir (örneğin aynı kaynağı bekleyen eş öncelikli prosesler).
•Prosesler arasında anne-çocuk ilişkisi olabilir

İşletim Sistemleri 66
Proses
Proses Kontrol
Kontrol Bloğu
Bloğu
– Prosesler arası haberleşme ile ilgili bilgiler
• Bazı bayrak, sinyal ve mesajlar proses kontrol bloğunda tutulabilir.
– Proses Ayrıcalıkları
2

• Bellek erişimi, kullanılabilecek komutlar ve sistem kaynak ve


servislerinin kullanımı ile ilgili haklar
Prosesler

– Bellek yönetimi
• Prosese ayrılmış sanal bellek bölgesinin adresi
– Kaynak kullanımı
• Prosesin kullandığı kaynaklar: örneğin açık dosyalar
• Prosesin önceki işlemci ve diğer kaynakları kullanımına ilişkin bilgiler

İşletim Sistemleri 67
2
Prosesler

İşletim Sistemleri 68
Çalışma
Çalışma Modları
Modları
►Kullanıcı modu
– Düşük haklar ve ayrıcalıklar
– Kullanıcı programları genel olarak bu modda çalışır
2

►Sistem modu / çekirdek modu


Prosesler

– Yüksek haklar ve ayrıcalıklar


– İşletim sistemi çekirdeği prosesleri bu modda çalışır

İşletim Sistemleri 69
Proses
Proses Yaratılması
Yaratılması
►Proses kimlik bilgisi atanır: sistemde tek
►Proses için bellekte yer ayrılır
►Proses kontrol bloğuna ilk değerler yüklenir
2

►Gerekli bağlantılar yapılır: Örneğin iş sıralama için


Prosesler

kullanılan bağlantılı listeye yeni proses kaydı eklenir.


►Gerekli veri yapıları yaratılır veya genişletilir: Örneğin
istatistik tutma ile ilgili

İşletim Sistemleri 70
Prosesler
Prosesler Arası
Arası Geçiş
Geçiş Durumu
Durumu
►Saat kesmesi
– proses kendisine ayrılan zaman dilimi kadar çalışmıştır
►G/Ç kesmesi
2

►Bellek hatası
Prosesler

– erişilen bellek bölgesi ana bellekte yoktur


►Hata durumu
►Sistem çağrısı

İşletim Sistemleri 71
Proseslerin
Proseslerin Durum
Durum Değiştirmesi
Değiştirmesi
►İşlemci bağlamının saklanması (program sayacı ve diğer
saklayıcılar dahil
►O anda koşmakta olan prosesin proses kontrol bloğunun
2

güncellenmesi
Prosesler

►Prosese ilişkin proses kontrol bloğunun uygun kuyruğa


yerleştirilmesi: hazır / bloke
►Koşacak yeni prosesin belirlenmesi

İşletim Sistemleri 72
Proseslerin
Proseslerin Durum
Durum Değiştirmesi
Değiştirmesi
►Seçilen prosesin proses kontrol bloğunun güncellenmesi
►Bellek yönetimi ile ilgili bilgilerin güncellenmesi
►Seçilen prosesin bağlamının yüklenmesi
2
Prosesler

İşletim Sistemleri 73
UNIX’te
UNIX’te Proses
Proses Durumları
Durumları
►Kullanıcı modunda koşuyor
►Çekirdek modunda koşuyor
►Bellekte ve koşmaya hazır
2

►Bellekte uyuyor
Prosesler

►İkincil bellekte ve koşmaya hazır


►İkincil bellekte uyuyor

İşletim Sistemleri 74
UNIX’te
UNIX’te Proses
Proses Durumları
Durumları
►Pre-empt olmuş (çekirdek modundan kullanıcı moduna
dönerken iş sıralayıcı prosesi kesip yerine bir başka
prosesi çalışacak şekilde belirlemiş)
2

►Yaratılmış ama koşmaya hazır değil


Prosesler

►Zombie (proses sonlanmış ancak anne prosesin


kullanabilmesi için bazı kayıtları hala tutulmakta, ilgili
kaynaklar henüz geri verilmemiş)

İşletim Sistemleri 75
2
Prosesler

İşletim Sistemleri 76
UNIX’de
UNIX’de Proses
Proses Yaratma
Yaratma

►fork sistem çağrısı ile yaratılır


2

– çağrıyı yapan proses: anne proses


– Yaratılan proses: çocuk proses
Prosesler

►sentaksı pid=fork()
– Her iki proses de aynı bağlama sahip
– Anne prosese çocuğun kimlik değeri döner
– Çocuk prosese 0 değeri döner
►0 numaralı prosesi açılışta çekirdek yaratılır; fork ile
yaratılmayan tek prosestir

İşletim Sistemleri 77
UNIX’de
UNIX’de Proses
Proses Yaratma
Yaratma

►fork sistem çağrısı yapıldığında çekirdeğin yürüttüğü


2

işlemler:
Prosesler

– proses tablosunda (varsa) yer ayırılır (maksimum proses


sayısı belli)
– çocuk prosese yeni bir kimlik numarası atanır (sistemde tek)
– Anne prosesin bağlamının kopyası çıkarılır.
– Dosya erişimi ile ilgili sayaçları düzenler
– anneye çocuğun kimliğini, çocuğa da 0 değerini döndürür

İşletim Sistemleri 78
UNIX’de
UNIX’de fork
fork Sistem
Sistem Çağrısı
Çağrısı ile
ile
Proses
Proses Yaratılma
Yaratılma Hiyerarşisi
Hiyerarşisi
proses 0
2

proses 1 (INIT)
Prosesler

tty1 tty2 ….. diğer sistem prosesleri


login

shell

kullanıcı prosesleri

İşletim Sistemleri 79
UNIX’de
UNIX’de Proses
Proses Sonlanması
Sonlanması
►exit sistem çağrısı ile
►sentaksı: exit(status)
2

– “status” değeri anne prosese aktarılır


► Tüm kaynakları geri verilir
Prosesler

► Dosya erişim sayaçları düzenlenir


► Proses tablosu kaydı silinir
►Annesi sonlanan proseslerin annesi olarak init prosesi (1
numaralı proses) atanır

İşletim Sistemleri 80
Örnek Program Kodu - 1

#include <unistd.h>
2

#include <stdio.h>
#include <stdlib.h>
Prosesler

int f;

int main (void)


{
printf("\n Program calisiyor: PID=%d \n",
getpid());
f=fork();

İşletim Sistemleri 81
Örnek Program Kodu - 2

if (f==0) /*cocuk*/
{
printf("\nBen cocuk. Kimlik= %d\n", getpid());
printf(“Annemin kimliği=%d\n”, getppid());
2

sleep(2);
exit(0):
Prosesler

}
else /* anne */
{
printf("\nBen anne. Kimlik= %d\n", getpid());
printf(“Annemin kimliği=%d\n”, getppid());
printf(“Cocugumun kimliği=%d\n”, f);
sleep(2);
exit(0):
}
return(0);
}

İşletim Sistemleri 82

You might also like