Professional Documents
Culture Documents
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
İş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
(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
İşletim Sistemleri 51
Proses
Proses
►Koşmuyor
– çalışmaya hazır
►Bloke
2
– G/Ç bekliyor
Prosesler
İş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
İşletim Sistemleri 57
Proses
Proses Sonlandırma
Sonlandırma
Ne zaman sonlanır?
►Kullanıcı sistemden çıkmış
►Uygulama sonlandırılmış
2
İşletim Sistemleri 58
Prosesin
Prosesin Askıya
Askıya Alınma
Alınma Nedenleri
Nedenleri
►Swap işlemi
►Hatalı durum oluşması
2
İş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
İş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
• 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
•Prosesin durumu
•Önceliği
Prosesler
İş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 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
İş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
İş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
İş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
İş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
İş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
İşletim Sistemleri 75
2
Prosesler
İşletim Sistemleri 76
UNIX’de
UNIX’de Proses
Proses Yaratma
Yaratma
►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
işlemler:
Prosesler
İş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
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
İşletim Sistemleri 80
Örnek Program Kodu - 1
#include <unistd.h>
2
#include <stdio.h>
#include <stdlib.h>
Prosesler
int f;
İş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