Sunum3 - WordPress.com
Download
Report
Transcript Sunum3 - WordPress.com
Chapter 3: İşlemler
İşletim sisteminde çeşitli işlemler yürütülmektedir.
işletim sistemi işlemleri yürütme
kullanıcı işlemlerini yürütme.
İki tür işlem genelde birlikte yürütülmektedir.
CPU işlemler arasında geçiş yaparak, işletim sistemi bilgisayar
sistemini daha üretken yapabilmektedir.
Bu bölümde işlemler ve nasıl çalıştıkları ele alınacaktır.
Operating System Concepts
3.2
Silberschatz, Galvin and Gagne ©2005
Chapter 3: İşlemler
İşlem Kavramı
İşlem Planlaması (Process Scheduling)
İşlemlerin Çalışması
İşlem İşbirliği
İşlemlerler arası iletişim (Interprocess Communication)
Operating System Concepts
3.3
Silberschatz, Galvin and Gagne ©2005
İşlem Kavramı
İşlem, bir programın yürütülmesi olarak adlandırılır.
İşlemin yürütülesi sıralı bir biçimde olur.
İşlemde herhangi bir zamanda sadece bir komut
yürütülebilir.
Process – a program in execution; process execution
must progress in sequential fashion
İşlem aşağıdaki içermektedir:
program counter (İşlemcide bir sonraki işletilecek
komutun ana bellekteki adresi tutan 'register' dır.
Stack (yığın), (alt program değişkenleri, dönüş adresleri
vb. değerleri içerir)
Veri
Program tek başına bir işlem değildir. Program sistemin
pasif bir parçasıdır. Örneğin diske kaydedilen bir dosya
içeriğidir. İşlem ise program sayacının belirttiği komutları
yürüten ve bütünleşmiş kaynaklardan oluşan aktif bir
parçadır.
Operating System Concepts
3.4
Silberschatz, Galvin and Gagne ©2005
Örneğin, Windows işletim sisteminde Word programı, web tarayıcı,
e-posta kontrolüne ait programlar aynı anda çalışabilmektedir.
İş(job) veye işlem (process) aynı anlamda kullanılmaktadır.
Exe bir dosya ya tıklayarak çalıştırmak işlemi başlamaktadır.
İşlemler program counter, register, stack, heap(işleme atanan
dinamik bellek) alanlarını kullanırlar.
Operating System Concepts
3.5
Silberschatz, Galvin and Gagne ©2005
Benzetme
Program: derse katılma adımları
1.
2.
3.
4.
Mühendislik binasına yürü
E-210 sınıfına gir
Oturacak bir yer bul
Dinle ve not al
Process: yukarıdaki programın hayata
geçirilmesi
= yani, derse katılma işi
Eylem
Şu anda, bu processin içindesiniz
Her saniye değişen bir “durum”unuz (condition) var
Aynı programın farklı processleri farklı davranışlar
gösterebilir
Operating System Concepts
3.6
Silberschatz, Galvin and Gagne ©2005
Bellekte İşlem
Operating System Concepts
3.7
Silberschatz, Galvin and Gagne ©2005
İşlem Durumları
Bir islemin hangi durumda oldugunu gösteren ve islemin ömrü
boyunca degisken bir durumu bulunmaktadır. Bunlar;
Yeni: İslemin olusturuldugunu gösterir.
Çalısıyor: İslemin komutları yürütülmektedir.
Bekliyor: İslem bir olayın gerçeklesmesini beklemektedir. Örnegin
bir GÇ islemi.
Hazır: İslem bir islemciye atanmak için beklemektedir.
Bitti: İslem çalısmasını bitirdi.
Operating System Concepts
3.8
Silberschatz, Galvin and Gagne ©2005
İşlem Durumları
Operating System Concepts
3.9
Silberschatz, Galvin and Gagne ©2005
İşlem Kontrol Bloğu (Process Control
Block , PCB)
İşletim sisteminde her işlem, işlem kontrol bloğu ile temsil edilir
İşlem Durumu: İşlem yeni başlamış, hazır, yürütülüyor, beklemekte vb.
durumlarda olabilmektedir.
Program Sayacı: Sayaç, işlem için yürütülmesi gereken bir sonraki
komutun adresini gösterir.
Mikroişlemci Kayıt Edicileri : Kayıt ediciler bilgisayar mimarisine göre sayı
ve çeşit olarak değişebilmektedir.
Kayıt ediciler; akümülatör, indeks kayıt edicileri, yığın göstergeci ve genel
amaçlı kayıt edicileri kapsamaktadır. Program sayacı sayesinde kesme
oluştuğunda durum bilgileri kaydedilerek, sonradan doğru olarak
yürütülmesi sağlanmıştır.
Operating System Concepts
3.10
Silberschatz, Galvin and Gagne ©2005
Mikroişlemci Programlama Bilgileri: Bu bilgiler , işlem önceliğini,
programın sıra göstergecini ve diğer programlama değişkenlerini
içermektedir.
Bellek Yönetim Bilgileri: Bu bilgiler taban ve limit kayıtçılarının
değerlerin, sayfa tablolarını veya işletim sistemi tarafından kullanılan
bellek sistemine göre değişen segment tablosunu içerir.
Hesaplama Bilgileri: Bu bilgiler, mikroişlemcini kullandığı gerçek
zaman sınırlamaları, hesap numaraları, iş ve işlem numaraları gibi
bilgileri içerir. Giriş/çıkış durum bilgileri; işlem için ayrılmış giriş/çıkış
aygıtlarının ve açık dosyaların listesi gibi bilgileri kapsar.
Operating System Concepts
3.11
Silberschatz, Galvin and Gagne ©2005
İşlem Kontrol Bloğu, Process Control
Block (PCB)
Operating System Concepts
3.12
Silberschatz, Galvin and Gagne ©2005
İşlem/İş Parçacığı(Thread )
İşlemin eş zamanlı olarak işlenen her bir bölümüdür. İ
İş parçacığı ve işlem arasındaki fark bir işletim sisteminden iş
parçacığının oluşturuluşu ve kaynakların paylaşılmasıdır.
Çoğu durumda iş parçacıkları işlemlerin içinde yer alır, onları
oluştururlar.
Çoklu iş parçacıkları paralel olarak pek çok bilgisayar sisteminde
uygulanabilir.
İşlemler aynı kaynakları paylaşmazlar (bellek gibi). Fakat aynı
işlem içindeki farklı thread ler aynı kaynakları paylaşabilirler.
Operating System Concepts
3.13
Silberschatz, Galvin and Gagne ©2005
CPU Switch From Process to Process
Operating System Concepts
3.14
Silberschatz, Galvin and Gagne ©2005
İşlem Planlama (Process Scheduling )
Multiprogramming’in amacı CPU kullanımını maksimize etmek için,
her zaman çalışan işlemler olmasını sağlamaktır.
Zaman paylaşımlı sistemlerde mikroişlemci işlemler arasında çok
sık geçiş yaparak, kullanıcının işlemlerin yürütmesi sırasında
yürütülen her programa ulaşabilmesini sağlayabilir.
Bunun için İşlem Planlama mevcut işlemler içerisinden CPU nun
yürütmesi için işlem seçer.
Tek işlemcili sistemlerde ise aynı anda birden fazla işlem
yürütülemez. Birden fazla işlem olduğunda, işlemler
mikroişlemcinin görevi bitinceye kadar beklemek zorundadır.
Operating System Concepts
3.15
Silberschatz, Galvin and Gagne ©2005
İşlem Planlama sıraları (Process
Scheduling Queues)
İş kuyruğu - Sistemdeki tüm işlemlerin kümesi
Hazır kuyrukları - ana bellekde bulunan hazır ve yürütmek için
bekleyenler
Aygıt kuyrukları - Bir G / Ç aygıt için bekleyen işlemleri kümesi
Süreçler çeşitli kuyruklar arasında hareket eder.
Operating System Concepts
3.16
Silberschatz, Galvin and Gagne ©2005
İşlem Planlama sıraları
Sisteme giren işlemler bir sırasının içinde yer alırlar. Bu işlem sırası
sistemdeki bütün işlemleri içerir. İşlemler ana bellekte yer alırlar ve
yürütülmek için hazır durumda beklemektedirler. Bu işlemler “hazır
sıra” isimli listede bulunurlar.
Hazır sırada bekleyen işlemler LINKED LIST yöntemi ile
tutulmaktadır.
Hazır sıra başlığı (header) listedeki ilke ve son PCB leri
göstermektedir.
Her PCB hazır sıradaki bir sonraki PCB’yi göstermektedir.
Operating System Concepts
3.17
Silberschatz, Galvin and Gagne ©2005
Aygıt Kuyrukları
Sistemde başka sıralarda da mevcuttur. Mikroişlemcide yürütülen
bir işlem kesintiye uğradığında veya belirli bir olayın sistemde
oluşması için beklendiğinde (örneğin giriş/çıkış isteğinin
tamamlanması için ) işlem bir listeye konulmak zorundadır.
Örneğin, işlem paylaşılan bir aygıt olan diskin işleminin bitmesi için
bekliyor olabilir. Belli bir giriş/çıkış aygıtı için bekleyen işlem
listesine “aygıt sırası” denilmektedir ve her aygıtın kendi aygıt sırası
mevcuttur.
Hazır sıraya bir işlem eklendiğinde yeni eklenen işlem,
mikroişlemciye gidene kadar sırada bekler
Operating System Concepts
3.18
Silberschatz, Galvin and Gagne ©2005
Hazır Kuyruğu Ve Çeşitli I / O Aygıt Kuyrukları
Operating System Concepts
3.19
Silberschatz, Galvin and Gagne ©2005
İşlem yürütme sıraları
Işlem zamanlama için yaygın bir temsil bir sonraki slaytta olduğu gibi
bir kuyruk şeması vardır.
Her bir dikdörtgen kutu bir kuyruk temsil eder. Kuyrukların iki tür ü
mevcuttur: hazır kuyruğu ve aygıt kuyruğu
Daireler kuyruklara hizmet eden kaynakları, oklar ise işlemlerin
sistemdeki akışını göstermektedir.
İşlem mikroişlemciye yürütülmek üzere geldiğinde ve
yürütüldüğünde çeşitli olaylar oluşmaktadır,bunlar:
İşlem giriş/çıkış isteğini gerçekleştirebilir, bu durumda giriş/çıkış
sırasına yerleştirilir.
İşlem yeni alt sistemler yaratabilir ve bunların bitmesi için bekler
İşlem kesme sonucunda mikroişlemciden zorunlu olarak kaldırılabilir
ve bu durumda işlem “hazır sıra” listesine tekrar yerleştirilir.
Operating System Concepts
3.20
Silberschatz, Galvin and Gagne ©2005
İşlem Planlama (Process Scheduling )
Operating System Concepts
3.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
3.22
Silberschatz, Galvin and Gagne ©2005
Planlayıcılar
Uzun Dönem Planlayıcı (Long-term scheduler ) (or job
scheduler) – Hangi işlemlerin Hazır kuyruğuna
getirileceğini seçer
Kısa Dönem Planlayıcı (Short-term scheduler) (or
CPU scheduler) – Yürütülmek üzere hazır durumda
bekleyen işlemlerden birisini işlemciye göndermektedir.
Operating System Concepts
3.23
Silberschatz, Galvin and Gagne ©2005
Planlayıcılar
Bu iki planlayıcı arasındaki en büyük fark işlem yürütme frekansı
(sıklık derecesi)dir.
Kısa-dönem planlayıcılar mikroişlemci için yeni bir işlemi seçme
olayını sık sık yapar.
Örneğin, Kısa- dönem planlayıcılarda işlem süresi 100 milisaniye,
karar verme süresi 10 ms olduğunda CPU kullanımının %9 luk
kısmı planlayamaya ayrılıyor demektir.
İşlem yürütümlerinin arasındaki kısa zamandan dolayı, kısadönem planlayıcılar oldukça hızlıdır.
Uzun-dönem planlayıcılarda işlem yürütümleri arasındaki zaman
daha fazla olmaktadır. Bu yüzden işlem yürütme sıklığı da bu
programlarda daha azdır.
Operating System Concepts
3.24
Silberschatz, Galvin and Gagne ©2005
Planlayıcılar
Sistemde yeni bir olayın başlaması için dakikalar geçebilmektedir.
Uzun-dönem planlayıcılar bellekteki işlemlerin kontrolünü
sağlamaktadırlar.
İşlemlerin yürütülmesi arasındaki zaman uzun olduğu için,
planlayıcının hangi işlemin yürütülebileceğini seçme süresi de uzun
olmaktadır.
Uzun –dönem planlayıcıların işlem seçimini dikkatli yapması
gerekmektedir. İşlemler genellikle giriş/çıkış bağlı (bound) veya
mikroişlemci bağlı (bound olarak adlandırılırlar.
Giriş/çıkış bağlı işlemde, giriş/çıkış işlemleri için harcanan zaman,
hesaplama için harcanan zamandan daha fazladır.
Mikroişlemci bağlı işleminde ise giriş/çıkış isteklerini gerçekleştirmek
için az zaman, hesaplama için ise çok zaman harcanır.
Bu yüzden bu tip işlemlerin sistemde dengeli bir biçimde dağıtılması
gerekmektedir. İyi performans için sistemde mikroişlemci sekme ve
giriş/çıkış sekme işlemleri birlikte bulunmalı; böylece hem
hesaplama,hem de giriş/çıkış işlemlerinin yapılabilmesi sağlanmalıdır.
Operating System Concepts
3.25
Silberschatz, Galvin and Gagne ©2005
Planlayıcılar
Short-term scheduler sık çalışır (milliseconds) (must be fast)
Long-term scheduler nadiren çalışır (seconds, minutes) (may
be slow)
Uzun vadeli programlayıcı multiprogramming derecesini kontrol
eder
Windows, Unix uzun dönem planlayıcı kullanmaz, kısa dönem
planlayıcı ile çalışır.
Uzun dönem planlama toplu işlem sistemleri, bilgisayar kümeleri,
süper bilgisayarlar gibi büyük ölçekli sistemlerde önemlidir
Operating System Concepts
3.26
Silberschatz, Galvin and Gagne ©2005
Orta dönem planlayıcı
Operating System Concepts
3.27
Silberschatz, Galvin and Gagne ©2005
Orta dönem planlayıcı
Bazı sistemler, örneğin (zaman paylaşımlı sistemler) ek olarak orta
dereceli programlamayı da kullanmaktadırlar.
İşlemlerin bellekten kaldırılması, daha sonra ise işlemin tekrar
belleğe yüklenmesi ve kaldığı yerden devam etmesi gerekmektedir.
Bu sistemde orta dereceli programlama ile yer değiştirme işlemi
yapılması sağlanmıştır.
Operating System Concepts
3.28
Silberschatz, Galvin and Gagne ©2005
İçerik değişimi (concept swıtchıng)
Mikroişlemcinin başka işlemlere geçebilmesi için, önceki işlemin
durumunu kaydetmesi ve yeni işlem için kaydettiği durumu sisteme
tekrar yüklemesi gerekmektedir.
Bu işleme içerik değişimi denilmektedir. İçerik değişiminin hızı
makinadan makinaya, bellek hızına, kayıt edici sayısına bağlı
olarak değişmektedir.
Context-switch time is overhead; the system does no useful work
while switching
Operating System Concepts
3.29
Silberschatz, Galvin and Gagne ©2005
İşlem Sırasındaki Operasyonlar
İşlemler sistemde eş zamanlı olarak yürütülebilir. İşlemlerin
sistemde dinamik olarak yaratılması ve silinmesi sağlanmalıdır. Bu
yüzden, işletim sistemi işlem yaratılması ve durdurulması için bir
mekanizma sağlamak zorundadır.
Parent and children share all resources
Children share subset of parent’s resources
Parent and child share no resources
Execution
Parent and children execute concurrently
Parent waits until children terminate
Operating System Concepts
3.30
Silberschatz, Galvin and Gagne ©2005
İşlem Oluşturulması
İşlem yaratma sistem çağrısı ile bir işlem birden fazla yeni işlemi
yaratabilmektedir.
Bu yeni üretilen işlemler de başka işlemleri üreterek “işlem
ağacını” oluşturmaktadırlar.
Yaratılan işlemler işlem ailesi olarak adlandırılırken, yeni işlemler
bu işlemin çocuğu olarak adlandırılır.
İşlemler görevlerini yerine getirirken belli kaynaklara ihtiyaç
duymaktadırlar( bellek, dosyalar, giriş/çıkış aygıtları vb.).
Bir işlemin alt işlemleri yaratıldığında, bu alt işlem kaynaklara
işletim sisteminden direkt olarak ulaşabilmekte veya işlem
ailesinin alt kaynaklarıyla sınırlandırılabilmektedir.
Operating System Concepts
3.31
Silberschatz, Galvin and Gagne ©2005
İşlem Oluşturulması
İşlem ailesi çocuk işlemlerin de kaynaklarının dağılımını yapabilir.
Aile farklı çocuk işlemlerle bazı kaynakları paylaşabilir.
Çocuk işlemleri, işlem ailesinin kaynakları ile sınırlandırmak fazla
alt işlemin yaratılmasını ve sisteme çok yükleme yapılmasını
engeller.
Bir işlem yeni bir işlem yarattığında yürütme sırasında olabilecek iki
farklı durum mevcuttur:
Aile işlem, çocuk işlemlerle birlikte işlemi yürütmeye devam
eder.
Aile işlem, çocukların tümünün veya bir kısmının işlemi bitene
kadar bekler.
Operating System Concepts
3.32
Silberschatz, Galvin and Gagne ©2005
İşlem Oluşturulması
Birçok işletim sisteminde (Windows, Unix) her işlemin bir işlem
tanımlayıcısı mevcuttur, bu özel bir tamsayıdan oluşur.
Yeni bir işlem sistem çağrısı ile üretilir. Yeni işlem orijinal işlemin
bir kopyası durumundadır. Bu şekilde aile ve çocuk işlemler
kolayca iletişim kurabilmektedirler.
Komut işletilmesi sırasında ise her işlem (çocuk ve aile
işlemleri)birlikte yürütülür.
Operating System Concepts
3.33
Silberschatz, Galvin and Gagne ©2005
C Program Forking Separate Process
int main()
{
Pid_t pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
exit(-1);
}
else if (pid == 0) { /* child process */
execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);
printf ("Child Complete");
exit(0);
}
}
Operating System Concepts
3.34
Silberschatz, Galvin and Gagne ©2005
A tree of processes on a typical Solaris
Operating System Concepts
3.35
Silberschatz, Galvin and Gagne ©2005
İşlem Sonlandırma (Process Termination)
İşlem, yapacağı görevleri tamamladığında durarak, işletim
sistemine “çıkış sistem çağrısı” nı kullanarak durdurulması
gerektiğini bildirir.
Bu durumda işlem, kendi işlem ailesine durumu bildiren çıkış
gönderebilir. İşlemin kullandığı bütün kaynaklar ise işletim sistemi
tarafından tekrar paylaştırılabilir.
Some operating system do not allow child to continue if its
parent terminates
–
Operating System Concepts
All children terminated - cascading termination
3.36
Silberschatz, Galvin and Gagne ©2005
İşlem Sonlandırma (Process Termination)
İşlem bittiğinde farklı durumlar da olabilmektedir. İşlem uygun bir
sistem çağrısı ile başka bir işlemin bitmesini da sağlayabilir.
Ayrıca, bir işlem yeni bir işlem yarattığında,yeni yaratılan işlemin
bütün özellikleri aile işlem tarafından bilinir. Aile işlem, çocuk
işlemlerin farklı sebeplerden dolayı durdurulmasına sebep
olabilmektedir. Bu sebepler:
Çocuk işlem kendisi için ayrılmış kaynakların dışında, başka
kaynakları da kullanıyor olabilir.
Çocuk işleme verilen göreve artık ihtiyaç kalmamıştır.
Aile işlem sistemden çıkmıştır ve işletim sistemi çocuk işlemin
çalışmasına ailesi olamadan izin vermemektedir.
Operating System Concepts
3.37
Silberschatz, Galvin and Gagne ©2005
İşlem işbirliği
İşletim sistemindeki işlemler bağımsız veya işbirliği halinde olmak
üzere iki şekilde faaliyet gösterirler.
Eğer işlem, başka bir işlemi etkilemiyor, başka bir işlemden
etkilenmiyor ve başka bir işlemle veri paylaşmıyorsa böyle
işlemlere “bağımsız işlem” denilmektedir.
Başka işlemlerden etkilenen , başka işlemleri etkileyen veya başka
işlemlerle veri paylaşan işlemlere ise “işbirlik işlemleri”
denilmektedir.
Operating System Concepts
3.38
Silberschatz, Galvin and Gagne ©2005
İşlem işbirliği
İşbirlik işlemlerinin sistemde kullanılmasının birçok nedeni vardır,
bunlar:
Bilgi Paylaşımı:Birçok kullanıcı aynı veriye ulaşmak istediğinde,
çoklu erişim sağlayacak ortamı sağlamak gerekmektedir.
İşlem Hızı: Bir görevin hızlı yürütülmesini istediğimizde, bunu alt
görevlere bölmek ve birbirleriyle paralel çalışmasını sağlamak
gerekmektedir.
Modülerlik/Esneklik: Sistem fonksiyonlarını ayrı işlemlere bölerek,
sistemde esnekliğin olması sağlanmaktadır.
Rahatlık: Kişisel bir kullanıcının aynı anda yapması gereken birçok
işlemi olduğunda (yazdırma, görüntüleme, yorumlama vb.)
sistemde bu işlerin aynı anda yapılması mümkün olmaktadır.
Operating System Concepts
3.39
Silberschatz, Galvin and Gagne ©2005
Süreçler Arası İletişim
İletişim Niçin Yapılır ?
1.Kaynak paylaşımı (dosya, I/O aygıtı,...)
2.Karşılıklı haberleşme (iki süreç birbirine haber gönderir)
3.Senkronizayon (Bir sürecin çalışması başka bir sürecin
belirli işlemleri tamamlamış olmasına bağlı olabilir
Operating System Concepts
3.40
Silberschatz, Galvin and Gagne ©2005
Süreçler Arası İletişim
Süreçler Arası İletişim veri ve bilgi alışverişi sağlayacak iletişim
(Interpocess Mechanism ,IPC) mekanizmasını gerektirir.
(1) paylaşımlı bellek ve
(2) mesaj geçişi olarak iletişim iki temel model vardır.
Paylaşılan bellek modelinde, işbirliği süreçleri tarafından paylaşılan
bellek bir bölge kurulmuştur.
Süreçler sonra paylaşılan bölgeye veri okuma ve yazma yoluyla
bilgi alışverişi yapabilir.
Mesaj geçiş modelinde işbirliği halindeki süreçler arasında
mesajların alınıp verilmesi vasıtasıyla iletişim gerçekleşir.
Operating System Concepts
3.41
Silberschatz, Galvin and Gagne ©2005
İletişim Modelleri
Mesaj Geçişi
Operating System Concepts
Paylaşılan Bellek
3.42
Silberschatz, Galvin and Gagne ©2005
Paylaşılan Bellek Alanı
Paylaşılan bellek alanına erişmek isteyen bir işlemin geçerli bir erişim
yapabilmesi için bu alanın onun adresleme yapabileceği alan sınırları
içerisinde olmalıdır.
Başak işlemler de bu paylaşılan bellek alanını kullanmak istediklerine
bu alanı kendi adres alanlarına eklemelidirler.
Hatırlarsak, normal olarak, bir işletim sistemi bir işlemin belleğine,
başka bir işlemin erişmesini önlemektedir.
Paylaşılan hafıza, iki veya daha fazla sürecin bu kısıtlamayı kaldırmak
anlaşmasınıgerektirir.
Daha sonra ortak alanlarda veri okuma ve yazma yoluyla bilgi alışverişi
yapılabilir.
. Veri ve konumu bu süreçler tarafından belirlenir ve işletim sisteminin
kontrolü altında değildir.
Süreçler aynı anda, aynı bellek noktasına yazma işlemi yapamazlar.
Operating System Concepts
3.43
Silberschatz, Galvin and Gagne ©2005
Mesaj Geçişi (Message Passing)
Süreçler arasında mesaj gönderip, almak için send ve receive
şeklinde iki sistem çağrısı bulunur.
Bu çağrılar aşağıdaki gibi kütüphane fonksiyonu olarak tanımlansınlar.
send (varış,&mesaj); //varış ile verilmiş olan sürece mesajı
gönderir
receive(kaynak,&mesaj);//kaynakdan gelen mesajı alır.
Eğer mesaj yoksa gelene kadar bloklanır ya da bir hata kodu geriye
çevirir.
Operating System Concepts
3.44
Silberschatz, Galvin and Gagne ©2005
Mesaj Geçişi (Message Passing)
Bu işlemlerde çeşitli problemler çıkabilir.
Örneğin, mesaj gidecek olan bilgisayar ağ üzerinde başka bir
bilgisayarda ise mesaj ağda kaybolabilir. Bu yüzden gönderici
mesaj göndermeli, alıcı mesajı aldığını belirten kabul
(ackowledge) mesajı geriye göndermelidir. Eğer gönderici kabul
mesajını belirli bir süre alamazsa mesajı tekrar gönderir.
Mesaj ulaşmış fakat kabul mesajı ağda kaybolmuş olabilir.
Gönderici mesajı iki kez göndermiş, alıcıda mesajı iki kez almış
olur. Bu problem mesaja sıra numarası verilerek çözülür, aynı
numaralı iki mesaj gelirse sadece biri kabul edilir.
Mesajlar alıcı tarafından alınmadığında postakutusu (mailbox)
adı verilen yapılarda depolanır. Depolanan mesajlar, alıcı
tarafından alınır.
Operating System Concepts
3.45
Silberschatz, Galvin and Gagne ©2005
İşlem
Tüm modern bilgisayarlarda bir çok iş aynı anda yapılabilir.
*kullanıcı programları çalışır
*disk okunabilir.
*yazıcıya ya da ekrana çıktı verilebilir.
*cd ye veri yazılabilir.
*...
Çoklu programlamalı sistemlerde, işlemci bir programdan diğerine
çok küçük sürelerde geçerek tüm programların aynı anda
çalışıyormuş izlenimini verilir.
Operating System Concepts
3.46
Silberschatz, Galvin and Gagne ©2005
İşlem
Bilgisayarda bulunan tüm çalışabilir programlar işlemler şeklinde
organize edilir.
İşlem yürütme anında(execution) bulunan bir programdır.
Her işlemin kendine özel değişkenleri vardır.
Operating System Concepts
3.47
Silberschatz, Galvin and Gagne ©2005
İşlem
Her işlem farklı birer varlık olmasına rağmen birbirleri ile
etkileşimde bulunabilir ve birbirleri ile haberleşebilirler.
Bir işlemin çıktısı başka bir işlemin girdisi olabilir.Bu tip durumlarda
örneğin, girdiyi alan işlem çıktıdan daha hızlı çalışırsa girdinin
olmadığı durumlarda bekler(bloklanır).
İkinci durum ise işlemcinin çalışan süreci durdurarak başka bir
işlemi çalıştırmasıdır.
Operating System Concepts
3.48
Silberschatz, Galvin and Gagne ©2005
İş parçacığı (Thread)
Geneleksel işletim sistemlerinde, her sürecin belirli bir adres uzayı
vardır. Bu adres uzayında yapması gerekli olan işlemleri kendisi
işlemcide çalışırken yapar.
İşlemci aynı anda sadece tek bir komut(instruction) çalıştırabilir.
İşlemcide çalışacak olan süreç seçildikten sonra işlemcide belirli bir
süreye kadar çalışır.
Bazen aynı adres uzayında başka bir ifadeyle aynı süreç içerisinde
aynı programın farklı bölümleri (iş parçacığı , thread) yarı paralel
olarak çalıştırılabilir.
Bu şekilde aynı süreç içerisinde birden fazla süreç parçacıkları
paralel olarak işlem yaparlar. Bu modele iş parçacığı modeli denilir.
Operating System Concepts
3.49
Silberschatz, Galvin and Gagne ©2005
End of Chapter 3
Ölümcül Kilitlenme (Deadlock)
İki ya da daha fazla işlemin, diğerinin bir kaynağı bırakmasını
beklediği ya da ikiden fazla işlemin döngüsel bir sırada
birbirlerinden kaynak beklediği özel durumları belirtmek için
kullanılır.
Deadlock, birçok işlemin lock (kilit) olarak bilinen özel bir tür
kaynağı paylaştığı çoklu işlemede sık karşılaşılan bir sorundur
Operating System Concepts
3.51
Silberschatz, Galvin and Gagne ©2005
Ölümcül Kilitlenme (Deadlock)
Deadlock'un oluşması için Coffman şartları olarak bilinen dört adet
gerekli şart vardır:
Karşılıklı dışlama: Aynı zamanda birden fazla işlem tarafından
kullanılamayan bir kaynak
Tut ve Bekle: Kaynakları elinde tutan işlemlerin yeni kaynaklar
talep edebilmesi
İşlem üstünlüğü yok: Hiçbir kaynak onu tutan işlemden zorla
alınamaz, kaynaklar sadece işlemlerin kendileri tarafından
bırakılabilir.
Dairesel bekleme: İki ya da daha fazla işlem, her işlemin bir
sonraki işlemin elindeki kaynakları bırakmasını beklediği döngüsel
bir zincir oluşturur.
Yemek yiyen filozoflar problemi (Dining Philosophers)
Semafor kullanımı
Operating System Concepts
3.52
Silberschatz, Galvin and Gagne ©2005