Process Control Block (PCB)

advertisement
Hafta_3
Process (İşlem-Süreç)
1
Process (İşlem-Süreç) Tanımı
• Process: Bir işletim sistemi üzerinde belleğe yüklenerek çalıştırılan program
parçalarına verilen isimdir. (komut satırından yada mouse+click ile)
• Bir program pasif varlıktır (passive entity), bir process ise aktif varlıktır
(active entity).
• Bir kaynak program durgun bir komutlar dizisi şeklinde bulunurken, process
bu komutlar dizisinin işletilmesi anındaki durumuna verilen isimdir.
• Process’lerin bazısı işletim sistemini çalıştırmaya yararlar, bazıları ise
kullanılan diğer programları çalıştırmaya yararlar.
• Program:
Verileri
işlemek üzere oluşturulan komutlar/komut kümeleridir.
• Process: Bir programın bilgisayar sistemlerince işletimi esnasında aldığı isimdir.
2
Process (İşlem-Süreç) Tanımı
3
Process (İşlem-Süreç) Tanımı
• Klasik process; Von Neumann mimarisi bilgisayarlarda işletilmekte
olan programa ait bir tabirdir.
• Daha sonraları modern process ve thread(iplik) kavramı ortaya
çıkmıştır.
• Programcılar programlarının değişik kısımlarını bir thread kümesi
olarak tek bir klasik process çatısı altında geliştirebilirler.
• Klasik process’ler, tek bir thread’e sahip modern process’ler olarak
düşünülebilir.
• Klasik process’ler bir arada çalışabilir ancak aynı veri yapılarını
paylaşmazlar.
4
Process (İşlem-Süreç) Tanımı
• İşletilen her program için en az bir proces tanımlanır.
• Aynı programa ilişkin birden fazla process olabilir.
• Her process, yeni başka process’ler de üretebilir.
• Bir programı birden çok process’in çalıştırmasının avantajları ve
dezavantajları vardır.
• Avantajı; bir programın çalışması için birden çok process çalıştığı için o
program kısa sürede işleme girebilir.
• Dezavantajı; ne kadar çok process olursa, bilgisayarın RAM belleğinde
o kadar çok yer işgal edilecektir ve CPU bir program için birden fazla
process işleyeceği için bu işlemciyi daha çok yükleyecektir.
5
Process (İşlem-Süreç) Tanımı
• Bir process yapması gereken işi tamamlamak için, CPU süresine,
hafızaya, dosyalara, I/O cihazlarına ihtiyaç duyar.
• Bazı sistem çağrıları ile sistem kaynaklarını kullanırlar.
• Process çalıştığı sürece bu kaynaklardan ihtiyaç duyduğunu kullanır,
çalışması sonlanınca işletim sistemi ayrılmış kaynakları serbest bırakır.
• Çok görevlilik (Multitasking) özelliğine sahip olan işletim sistemleri,
aynı anda birçok process’in çalıştırılmasına izin verir.
• Tek çekirdekli işlemciye sahip olan bilgisayarlarda bu iş zaman
paylaşımı esasına göre yapılır.
6
Parent-Child Process İlişkisi
• Genellikle işletim sistemi yüklendiğinde bir başlangıç process’i otomatik olarak
oluşturulur ve bu process tüm process hiyerarşisinin kökü olur. Bir process
oluşturulduğunda bu köke eklenir.
• Çalışmakta olan bir program başka bir programı çalıştırabilir. Yani bir process başka bir
process’i oluşturabilir.
• Bir process’in başka bir process’i oluşturması durumunda;
• Oluşturan process, üst process (parent process),
• Yeni oluşturulan process ise alt process (child process) olarak adlandırılır
7
Parent-Child Process İlişkisi
• root : üst (parent) process
• p1, p2 ve p3 :root process’in alt (children) process’leri
• p4 ve p5 : p3 process’inin alt process’leri
8
Parent-Child Process İlişkisi
• Alt process (child process) oluşturulur iken, üst process’den (parent
process) bazı özellikleri almaktadır.
• Pek çok işletim sisteminde process’in erişim hakları, çalışma dizini,
dosya betimleyicileri, çevre değişkenleri yeni process oluşturma
sırasında üst process’den alt process’e aktarılır.
• Alt process aktarılan özellikleri daha sonra değiştirmeden kullanabilir
ya da değiştirebilir.
• Windows sistemlerinde alt-üst process ilişkisi UNIX/Linux
sistemlerinden daha zayıftır, yani daha az özellik alt process’e aktarılır.
9
Process (İşlem-Süreç) Tanımı
• Bir process :
Text (Code) : program code
Yığın (Stack) : function parameters,
return address, local variables
Veri (Data) : global variables
Process
Code
Data
bölümlerini içerir.
Stack
Birbirleri ve dış dünya ile
haberleşirler.
Process ömrü: oluşturulması ve
sonlanması arasında geçen süredir.
10
Process ve memory
Stack : fonksiyon parametreleri, return adresleri ve lokal değişkenleri saklar.
Data : global değişkenleri saklar.
Text/Code : Program kodunu saklar
Heap : process’e runtime’da dinamik olarak atanan bellektir.
11
Process (İşlem-Süreç) Tanımı
• Process’ ler kendi adres alanında (own
adress space) çalışırlar ve hafıza
koruması (memory protection)
uygulanır.
• Her process kendisine ait ayrı bir hafıza
alanına sahiptir. Bu sayede bir
process’in, başka bir process’in bilgisine
erişmesi engellenmiştir.
• Bir process için ayrılan alanın başlangıç
adresi (base register) ve boyutu (limit
register) belirlenmelidir.
12
Process Yürütmesinin İzlenmesi
• Davranışını karakterize edebilmek için process
için yürütülen komutların sırası gözlenebilir:
prosesin izi (trace)
• Bellekte 3 process bulunduğu göz önünde
alındığında:
• İşletim sistemi process zamanlamasını
yönetmelidir.
• Dispatcher aktif process’i şu durumlarda takas
eder.
• (1) zaman aşımı oluştuğunda, ya da
• (2) process istekleri, G / Ç işlemi
13
Process Yürütmesinin İzlenmesi
14
Dispatcher (Görevlendirici)
• İşletim sistemi tasarımında kullanılan Dispatcher, işlemci
zamanlama algoritmasına (CPU scheduling algorithm) göre
beklemekte olan process’den sıradakini alıp işlemciye
yollayan programın ismidir.
• Dispatcher zamanı dispatcher’ın bir process’i bitirip diğerine
geçişi arasındaki süredir. Dispatcher mümkün olduğu karar
hızlı olmalıdır.
15
Dispatcher (Görevlendirici)
• Bilgisayarda anlık olarak tek process çalışabilir ve bu process o anda
çalışmakta olan diğer process’ler arasından seçilmiş bir process’dir.
• Örneğin bilgisayarda 10 tane program açık olabilir ama CPU’da anlık
olarak bir tanesi çalışır. Çalışan programların tamamı bekleme
sırasında (ready queue) beklerler.
• Bir işlemci zamanlama algoritmasına göre process’ler dispatcher
vasıtası ile sırası geldiğinde Hazır kuyruğundan (ready queue) alınıp
işlemciye (CPU) gönderilerek çalıştırılırlar.
16
Process Çalışma Modları
 Kullanıcı modu
• – Düşük haklar ve ayrıcalıklar
• – Kullanıcı programları genel olarak bu modda çalışır
 Sistem modu / çekirdek modu
• – Yüksek haklar ve ayrıcalıklar
• – İşletim sistemi çekirdek process’leri bu modda çalışır
17
İki Durumlu Process Modeli
• Herhangi bir zaman diliminde bir process CPU tarafından ya işletiliyordur
yada işletilmiyordur.
• Yani process ya Koşuyor (Running) yada Koşmuyor (Not Running)
durumdadır.
18
Process Durumları
• Bir process’in herhangi bir andaki eylemi, process’in o andaki durumunu
belirler. Bir process 5 durumda olabilir.
1. Yeni (New) : Process’in oluşturulduğunu gösterir.
2. Hazır (Ready) : Bu durumda bulunan bir process çalışabilir durumdadır ve
ana bellekte tutulmaktadır.
• Eğer bir process çalışmaya başlayabilmesi için gerekli tüm sistem
kaynaklarını elde etmişse (ana bellek, teyp birimi, yazıcı vb.) ve sadece arta
kalan kaynak olan İşlemciyi(CPU) talep ediyorsa hazır durumda bulunur.
• İşlemci müsait duruma gelinceye kadar bu process hazır durumda
tutulacaktır.
• İşlemci zamanlama algoritmalarına (CPU scheduling algorithm) göre de
sırası gelen process bekleme sırasından(Hazır Kuyruk) alınarak
görevlendirici (dispatcher) tarafından CPU’ya gönderilir.
19
Process Durumları
3. Koşuyor (Running) : Process, işlemciyi şu anda
kullanmaktadır.
4. Bekliyor veya Bloke (Waiting or blocked) : Bir process,
başka bir process tarafından kullanılan bir kaynağı
beklediğinde veya şu anda hazır olmayan bir kaynağı
kullanmak ihtiyacı olduğunda bekleme durumuna geçer.
5. Sonlanıyor (Terminated) : Process’in sonlandırıldığını
gösterir.
20
Beş Durumlu Process Modeli
https://courses.cs.vt.edu/csonline/OS/Lessons/Processes/index.html
http://williamstallings.com/OS-Animation/Queensland/PROCESS.SWF
21
Beş Durumlu Process Modeli
• Hazır (Ready) durumda bulunan tüm process’ler Hazır durum
kuyruğunda bekletilirler.
• Görevlendirici (dispatcher), Hazır durumda olan bir process’i işlemci
zamanlama algoritma stratejisi çerçevesinde seçerek çalışması için
işlemciye (CPU) gönderir. Böylece process durumu Hazır durumundan
Koşuyor (Running) durumuna dönüşmüş olur.
• Process, hazır olmayan bir kaynak beklediği zaman, (giriş/çıkış işlemi
veya mesaj alma vb. durumlarda) Hazır durumdan Bekleme/Blok
(Waiting or blocked) durumuna geçer.
22
Beş Durumlu Process Modeli
• Bir process’in daha önceden talep ettiği kaynak işletim sistemi
tarafından process’e tahsis edildiği zaman process Bekleme/Blok
durumdan Hazır duruma geçiş yapar ve tekrar kuyruğa girer.
• İşletim sistemi İşlemciyi bir başka process’e vermek maksadıyla hali
hazırda İşlemciyi kullanan process’i çalışmasını durdur ve process
tekrar Hazır kuyruğuna gönderilir.
• Process, bir kesme (interrupt) oluştuğu için işlemcide çalışması
durdurularak kesmenin bitiminin ardından Hazır durum kuyruğuna
alınarak işlemciye gönderilebilir.
23
Beş Durumlu Process Modeli
• Bir Process sürekli olarak çalışır durumunda kalmaz bazı zamanlar
Bekleme/Blok konumuna geçer.
• Her process sürekli CPU'yu işgal ederse ise, bilgisayar kitlenir.
• Bu sebeple process işlemcide işlem gördükten sonra çıkmak
zorundadır.
• Eğer process tekrardan işlem görmek istiyorsa bu sefer Hazır
kuyruğuna geçer.
24
Process Anahtarlama
• İşlemcinin, paralel işletimi sağlamak üzere bir process işletimini bırakıp
diğer bir process işletimine geçmesi belirli önlemler alınmadan yapılamaz.
İşletimin yarım bırakıldığı andaki process durum bilgilerinin saklanması
gerekir.
• Yarım bırakılan bir programın tutarlı bir biçimde kaldığı yerden çalıştırılması
işletimini bırakıldığı andaki durum bilgilerinin saklanması yoluyla sağlanır.
• İşlemcinin bir process işletimini, daha sonra devam etmek üzere bırakıp
diğer bir process işletimine geçmesi içerik anahtarlama (context switching)
olarak adlandırılır.
• Bu nedenle her process için işletim sistemi tarafından bir veri yapısı tutulur.
Bu veri yapısı en azından işletimin hangi komuttan başlayarak sürdürüleceği
bilgisini, işlemci yazmaç (register) içeriklerini varsa kullanılan dosyalarla
ilgili bilgileri içermek zorundadır.
25
Process Anahtarlama
• İşlemci (CPU) anlık olarak tek bir iş ile uğraşabilir.
• Fakat işletim sistemi tasarımında bulunan bir özellik sayesinde, işlemcide birden
fazla işin aynı anda çalışıyormuş gibi hissettirilmesi mümkündür.
• Aslında anlık olarak tek process çalıştırıp birden fazla iş yapıyormuş gibi gösteren
işletim sistemi özelliği kısaca çok görevlilik (multi tasking) olarak adlandırılır.
• Bu özellik işlemcinin (CPU), process’leri sırayla çalıştırması sayesinde elde edilir.
• Process’ler arasında işlemcinin geçiş yapmasına da içerik değiştirme (context
switching) ismi verilir.
26
Process Anahtarlama
• Çoklu program işleme tekniğinde, CPU’da, "bir process’den diğer "bir
process’e geçerken, periyodik olarak context switching gerçekleşir.
• Aslında her context switching işleminin bilgisayar açısından bir
maliyeti vardır.
• Dolayısıyla context switching aslında iyi bir özellik olmasına karşılık bir
de maliyeti vardır ve oranı yükseldikçe dezavantaj haline gelir.
27
Process Anahtarlama
• CPU, bir process’den diğerine anahtarlandığında data ve durum
kaydedicilerinin kaydedilmesi gereklidir.
• Örneğin 1 birimlik bilginin yüklenmesi için 20 nanosaniyeye(ns) ihtiyaç
duyulduğu ve 50 tanede kaydedici olduğu düşünülürse, bu
kaydedicilerin kaydedilmesi 1milisaniye(ms) alacaktır.
• Ayrıca yeni yüklenecek process’in kaydedicileri de 1ms’de CPU’nun
kaydedicilerine aktarılacağından bu süreç 2ms sürecektir.
• Bu süre zarfında işe dönük birçok komut işletilebilecekken,
anahtarlamaya geniş bir zaman ayrılması gerekmektedir.
28
Process Anahtarlama
• Eğer işletim sistemi bir process çalışırken context switching yapmaya
karar verirse, kalınan noktadan itibaren tekrar devam edebilmesi için
o anki tüm context'i saklaması ve tekrar yükleyebilmesi gerekir.
• İşletim sistemi bir process’in o anki halini saklamak için Process
Control Block (PCB) yapısını kullanır.
• Bu yapıya tekrar devam edebilmek için gerekli her şey yazılır.
• Sıra tekrar aynı process’e gelince de PCB tekrar yüklenir ve kalınan
yerden devam edilir.
29
Process Anahtarlama
• Contex anahtarlama sırasında işlemler sürekli olarak ana bellek
üzerine yazılır ya da ana bellek üzerinden okunurlar.
• Bu nedenle ana bellek üzerinde sürekli olarak okunup yazılma işlemi
gerçekleştirilir, Bu iki durumda istenmeyen durumlardır.
• Gerçekleşen bu context switching işleminden dolayı belirli bir zaman
kaybı olur.
• İyi bir işletim sisteminde context switching sayısının düşük olması
istenir,
30
Process Anahtarlama
http://cs.uttyler.edu/Faculty/Rainwater/COSC3355/Animations/switch.htm
31
Process durumlarını izleme
Process’lerin ve Dispatcher'ın durumlarını
belirlemek için bir CPU faaliyet zaman
çizelgesi çizilebilir.
32
Process Kuyruğu (Process queue)
• Örnek olarak; hesap makinası programı çalıştırılmak istendiğinde onu çalıştıran process önce Hazır
kuyruğuna geçer, sonra işlemcide işlem görerek Koşuyor durumuna geçer ve program açılır.
• Daha sonrasında ise hesap makinesi programını çalıştıran process, «Bekleme/Bloke durumu"na geçer.
Kullanıcıdan klavye vasıtasıyla rakam girişi beklenir. Rakam girişi veya bir işlem yapılmadığı sürece hep Bloke
durumunda kalır.
• Process çalışırken klavye, gibi dışsal bir olayı bekleyecek bir işlem başlatırsa process’in çalışıyor olma
durumu sona erdirilir ve process bekleme/bloke olmuş duruma getirilir. Çok prosesli çalışmada parçalı
çalışma süresi (quantum) boyunca meşgul bir döngü içerisinde sürekli klavyenin yoklanması (polling) etkin
bir yöntem değildir. Bu yüzden sistem çalışmakta olan process’i bloke ettikten sonra çalışmaya hazır olan
process’lerden uygun olanını seçerek onun çalışmasını sağlar. Bloke edilen process’ler bekleme kuyruklarına
alınmaktadır. Dışsal olayı beklemek için bloke olmuş bir process’in blokesi dışsal olay gerçekleştiğinde
çözülür ve process bloke olmuş durumdan çıkartılarak çalışmaya hazır (ready) duruma getirilir.
• Kullanıcı matematiksel bir işlem için rakam girişleri yapıp eşittir tuşuna bastığında; Bloke durumundan çıkar
--> Hazır Kuyruğuna geçer --> Çalışır durumuna geçer.
• Çalışır durumunda CPU'da işlemi gerçekleştirir ve sonucu ekrana yazar, process daha sonra tekrar Bloke
durumuna geçer.
• Kullanıcıdan tekrar bir işlem bekler. Bekleme durumunda olduğu sürece işlem yapmaz.
• Prosesin sonlanması genellikle (fakat her zaman değil) çalışır durumdayken (run) gerçekleşir.
33
Process Kuyruğu (Process queue)
Bu basit sistemde tek bir kuyruk process’leri biriktirmek için yeterlidir.
Bir process ya aktiftir (executing) yada pasiftir(waiting)
O anda çalışmayan process sırasını bir kuyrukta bekler.
Enter
Queue
Dispatch Processor
Exit
Pause
34
İki Process Kuyruğu
35
Çoklu Process Kuyruğu
Kuyrukta yüzlerce proses olduğu düşünüldüğünde herbir olay için bir kuyruk tahsisi yapmak daha verimli
bir kullanım olacaktır. İşletim sistemleri genellikle her olay için ayrı bir bekleme kuyruğu oluşturmaktadır.
36
Çoklu Process Kuyruğu
• Her Process kendi ile ilgili olan kuyruğa girer.
• Tüm programlar CPU'da işlem görmeden önce, henüz bekleme/bloke
durumundayken, herhangi bir rastgele kuyruğa girmez.
• Sadece kendi ile ilgili olan kuyruğa girer.
• Çünkü bazı programların çalışması daha uzun sürebilir bazı
programların çalışması daha kısa sürebilir.
• Tüm process’ler aynı kuyruğa girerse, açılması daha kısa süren
program, açılması daha geç olan programında arkasında sıraya girer
ise, 1 saniyede açılacak olan program 10 saniyede açılabilir.
• İşletim sitemi bu problemi önlemek için, benzer işlemleri yapan
programları bilgisayar ana belleğinde farklı farklı yerlerde kuyruğa alır.
37
Process Control Block (PCB)- Process Table
• İşletim sistemi process’lerle ilgili gerekli bilgileri bir process tablosu
içinde muhafaza eder. Böylece herhangi bir process ile ilgili bir işlem
yapılması gerektiğinde tablodan bu process ile ilgili bilgilere erişmek
mümkün olur.
• Process tablosu sistemin processlerle ilgili bilmek istediği bilgilerin
saklandığı bir veri yapısıdır.
• Process tablosunda, process numarası, saklayıcı değerleri, program
sayaç değeri, process’in ana bellekteki başlangıç adresi (eğer process
ana bellekte ise), process durumu, öncelik değeri, process’in
oluşturulma zamanı, kullanılan CPU zamanı, mesaj kuyruk göstergeci,
statü değerleri, vb bilgiler saklanır.
38
Process Control Block (PCB)- Process Table
Her process ve kaynak ile ilgili
durum bilgilerinin tutulması gerekir.
– İşletim sistemi tarafından
yönetilen her varlık için tablolar
tutulur.
•
•
•
•
Bellek Tabloları
G/Ç Tabloları
Dosya Tabloları
Process Tabloları
39
Process Control Block (PCB)- Process Table
40
Process Control Block (PCB)- Process Table
41
Process Control Block (PCB)- Process Table
Process Identification
Processor State Information
Process Control Information
42
Process Control Block (PCB)- Process Table
• Proses Kimlik Bilgileri (Process Identification)
– Kimlik Bilgileri
• Process kimlik numarası
• Process’in üst process’inin-annesinin kimlik numarası
• Üst process’in kullanıcı kimlik bilgisi
43
Process Control Block (PCB)- Process Table
• İşlemci Durum Bilgisi (Processor State Information)
– Kullanıcıya açık saklayıcılar
• İşlemcinin makina dili kullanılarak erişilebilen saklayıcıları.
– Kontrol ve Durum saklayıcıları
• Program sayacı
• Durum saklayıcısı
• Yığın işaretçileri
• Program durum sözcüğü (çalışma modu biti var)
44
Process Control Block (PCB)- Process Table
• Proses Kontrol Bilgileri (Process Control Information)
– İş sıralama ve durum bilgileri
• Process durumu
• Önceliği
• İş 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ı
• Process’ler örneğin bir çevrel kuyruk yapısında birbirlerine bağlı
olabilir (örneğin aynı kaynağı bekleyen eş öncelikli prosesler).
• Process’ler arasında üst-alt ilişkisi olabilir
45
Process Control Block (PCB)- Process Table
– Process’ler arası haberleşme ile ilgili bilgiler
• Bazı bayrak, sinyal ve mesajlar proses kontrol bloğunda tutulabilir.
– Process Ayrıcalıkları
• Bellek erişimi, kullanılabilecek komutlar ve sistem kaynak ve servislerinin
kullanımı ile ilgili haklar
– Bellek yönetimi
• Process’e ayrılmış sanal bellek bölgesinin adresi
– Kaynak kullanımı
• Process’in kullandığı kaynaklar: örneğin açık dosyalar
• Process’in önceki işlemci ve diğer kaynakları kullanımına ilişkin bilgiler
46
Download