İşletim Sistemleri (Operating Systems)

Benzer belgeler
Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

Bilgisayar İşletim Sistemleri BLG 312

İşlem Yönetimi (Process Management)

İşletim Sistemlerine Giriş

İşletim Sistemlerinde Çok Prosesli Çalışma

Bilgisayar İşletim Sistemleri BLG 312

YZM 3102 İşletim Sistemleri

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

İŞLETİM SİSTEMLERİ. (Operating Systems)

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

İşletim Sistemlerine Giriş

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi

İşletim Sistemleri (Operating Systems)

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

BM-311 Bilgisayar Mimarisi

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

İşletim Sistemlerine Giriş

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

İşletim Sistemleri. İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık

Yrd. Doç. Dr. Caner ÖZCAN

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

Bilgisayar İşletim Sistemleri BLG 312

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Üst Düzey Programlama

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Yrd. Doç. Dr. Caner ÖZCAN

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemlerine Giriş

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Bilgisayar Sistemlerine Genel Bakış

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

İşletim Sistemleri (Operating Systems)

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

İşletim Sistemlerine Giriş

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir.

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

Yrd. Doç. Dr. A. Burak İNNER

PROGRAMLAMAYA GİRİŞ DERS 2

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

PARDUS TOPLULUK SÜRÜMÜ 3.0 KDE KURULUMU

Multicore/Multithread Programlama

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Bilgisayarların Gelişimi

Veritabanı. Ders 2 VERİTABANI

Internet Programming II

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

NESNEYE YÖNELİK PROGRAMLAMA

B-Tree Dosya Sistemi (BTRFS)

YZM 3102 İşletim Sistemleri

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

Özyineleme (Recursion)

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Android e Giriş. Öğr.Gör. Utku SOBUTAY

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

BİL-142 Bilgisayar Programlama II

Bölüm 8: Ana Bellek 8.1

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

KASIRGA 4. GELİŞME RAPORU

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

İşletim Sistemlerine Giriş

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA II

Kullanıcı Klavuzu

BM-311 Bilgisayar Mimarisi

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Windows Eski Sürümleri Bellek Yapısı

Bilgisayar İşletim Sistemleri BLG 312

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Komutların Yürütülmesi

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

ALGORİTMA VE PROGRAMLAMA II

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Temel Bilgisayar Programlama

Algoritmalar ve Programlama. Algoritma

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

BÖLÜM 7 Kesmeler.

Eln 1002 Bilgisayar Programlama II

Transkript:

İşletim Sistemleri (Operating Systems) 1

Process (İşlem-Süreç) 2

İşletim Sistemi Process Yönetimi Process oluşturma ve sonlandırma (Process creation and termination) Process değiştirme (Process switching) Process zamanlama (Process scheduling) Process senkronizasyonu ve process ler arası iletişim (Process synchronization and inter-process communication) 3

Process 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. 4

Process Tanımı 5

Process 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. 6

Process Tanımı İşletilen her program için en az bir process 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. 7

Process 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. 8

Process 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. 9

Process Tanımı Bir process : Text (Code) : program code Yığın (Stack) : function parameters, return address, local variables Veri (Data) : global variables bölümlerini içerir. Birbirleri ve dış dünya ile haberleşirler. Process ömrü: oluşturulması ve sonlanması arasında geçen süredir. Process Code Data Stack 10

Process Bellek Modeli Stack (Yığın) : Yerel (local) değişkenlerin, fonksiyon çağrılarında parametre aktarımı, dönüş adresinin ve dönüş değerinin saklanması için kullanılır. Yığının çalışması otomatik olarak gerçekleşir. Yerel değişkenler kullanımı başladığı yerde otomatik olarak yığında oluşturulur, kullanım dışına çıkıldığında ise yine otomatik olarak yok edilir. Data : Global değişkenler ve fonksiyonlarda static olarak tanımlanan değişkenler saklanır. Text/Code : Program kodunu ve fonksiyonları saklar. Heap : Dinamik bellek kullanımı için kullanılır. Bu alanın yönetiminden programcı sorumludur. Programcı, C de malloc() ve free() fonksiyonlarını, C++ da ise new ve delete operatörlerini kullanarak ihtiyacı kadar alanı alır ve kullanımı bitince ise aldığı alanı geri vermekle sorumludur. 11

Process Bellek Modeli 12

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 13

Parent-Child Process İlişkisi root : üst (parent) process p1, p2 ve p3 :root process in alt (child) process leri p4 ve p5 : p3 process inin alt process leri 14

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. 15

Process ve Thread Kullanım Modelleri Bir process yeni bir alt (child) process oluşturabilir. Fakat yeni bir process oluşturmak maliyetlidir. Aynı zamanda process contex switching (bağlam anahtarlama) maliyeti de yüksektir. Bu yüzden çok process li yapıya alternatif olarak thread yapısı kullanılabilir. Threadlar process içerisinde oluşturulurlar. Thread process lere göre hafif elemanlardır. Bir process birden fazla thread içerebilir. Bir thread oluşturulduğunda onun için sadece yeni bir stack (yığın) oluşturulur. Bir thread içinde bulunduğu process in heap, text ve data alanlarını paylaşır. Her thread kendi stack (yığın) alanına sahiptir. 16

Process ve Thread Kullanım Modelleri Çok Process li Programlama Modeli Tek Process li Çok Thread li Programlama Modeli Çok Process li Çok Thread li Programlama Modeli Çok process li modelin dezavantajı process oluşturma ve process ler arasında contex switching (bağlam anahtarlama) maliyetidir. Çok thread li programlamada thread ler işlemciyi daha verimli kullanır. Üstelik thread oluşturmak daha düşük maliyetlidir. Buna karşılık thread lerden biri başarısız olursa uygulama da başarısızolur ve sonlanması gerekir. Çok process li çok thread li modelde, kritik görevler ayrı process ler olarak kodlanır. Her bir process thread lerden oluşur. Örneğin Oracle veritabanı, chrome ve firefox web tarayıcıları bu modele göre gerçeklenmişlerdir. 17

Process Yürütmesinin İzlenmesi Process izi (trace) : İş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 18

Process Yürütmesinin İzlenmesi 19

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. 20

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. 21

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 22

İ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. 23

Beş Durumlu Process Modeli https://courses.cs.vt.edu/csonline/os/lessons/processes/index.html http://williamstallings.com/os-animation/queensland/process.swf 24

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. 25

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. (I/O or event wait) 5. Sonlanıyor (Terminated) : Process in sonlandırıldığını gösterir. 26

Process Durumları Admitted: New durumundaki bir process in Ready durumuna geçmesidir. (Created) Scheduler Dispatch: Ready Durumundaki process in Running Durumuna Geçmesidir. (Dispatched) Interrupt: Running Durumundaki Process in Ready durumuna geçmesidir. (run-time expires) I/O or Event Wait: Process bir eylemin gerçekleşmesini beklediği durumda running den, waiting durumuna geçer. (Blocks) I/O or Event Completion: Waiting durumundaki process in beklediği durum gerçekleştiğinde Ready durumuna geçer. (event accours) Exit: Çalışması biten processin running durumundan Terminated durumuna geçmesidir. (finished) 27

Process Durumları 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 (Ready) 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/Bloke (Waiting or blocked) durumuna geçer. 28

Process Durumları Bir process in daha önceden talep ettiği kaynak işletim sistemi tarafından process e tahsis edildiği zaman process Bekleme/Bloke durumdan Hazır duruma geçiş yapar ve tekrar kuyruğa girer. İşletim sistemi bir kesme (interrupt) vasıtası ile hali hazırda İşlemciyi kullanan process in çalışmasını durdurabilir ve process tekrar Hazır kuyruğuna gönderilir. 29

Örnek olarak; Process Durumları 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 Bekleme/Bloke durumunda kalır. 30

Process Durumları 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 bekleme/bloke durumuna aldıktan sonra çalışmaya hazır olan process lerden uygun olan bir başkasını seçerek onun çalışmasını sağlar. Bekleme/Bloke edilen process ler bekleme kuyruklarına alınmaktadır. Dışsal olayı beklemek için bekleme/bloke durumundaki bir process, dışsal olay gerçekleştiğinde bekleme/bloke durumundan çıkartılarak çalışmaya hazır (ready) duruma getirilir. 31

Process Durumları Kullanıcı matematiksel bir işlem için rakam girişleri yapıp eşittir tuşuna bastığında; Bekleme-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 Bekleme-Bloke durumuna geçer. Kullanıcıdan tekrar bir işlem bekler. Bekleme-Bloke durumunda olduğu sürece işlem yapmaz. Process in sonlanması genellikle (fakat her zaman değil) çalışır durumdayken (run) gerçekleşir. 32

Process Durumları Bazen bir process i askıya (suspend) almak faydalı olabilir. Bu, process i belleğin dışına çıkarma ve durumunu diske kaydetmeyi içerir. Bu durum özellikle sistem kaynaklarını serbest bırakırken yararlıdır ve daha yüksek önceliğe sahip diğer process leri çalıştırmaya izin verir. Genellikle Swap (disk takası), işlemlerinde gerçekleşen bu olay iki yeni Process durumunu gerektirir. Ready, suspend New Admit Activate Suspend Admit Ready Suspend Dispatch Running Time out Exit Bekleme/Bloke askıda (Waiting-Blocked-suspended) Hazır askıda (Ready-suspended) Hazır(Ready) veya Bekle(Waiting) durumunda olan process ler, sistemin kaynak talebine bağlı olarak Askıya(Suspend) alınabilir. Waiting/ Blocked, suspend Event Occurs Activate Suspend Waiting/ Blocked Event Occurs Event Wait 33

Zombi (Zombie) Process POSIX standartlı işletim sistemlerinde, sonlanmış ancak process tablosundan bilgileri silinmemiş process e zombi process denir. Zombi process ler kullandıkları tüm kaynakları iade etmişlerdir. UNIX/Linux sistemlerinde bir alt process sonlandığında onu oluşturan process wait ya da waitpid fonksiyonlarıyla çıkış kodunu almazsa process, process tablosunda wait işlemi yapılana kadar kalır. Zombi process ler ps komutu ile process listesi alındığında 'z' harfi ile gösterilir. Linux Process/Thread Model 34

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 35

Tek Düzeyli Process Kuyruğu Ancak tek bir bloke kuyruğu kullanıldığında arka sıradaki bir process in beklediği G/Ç işlemi geldiği halde öndeki process leri beklemek zorundadır. Bu problemin çözümü her olay (event) için bir bloke kuyruğu oluşturulacak şekilde kuyruğun yatayda büyütülmesidir. 36

Çok Düzeyli Process Kuyruğu Kuyrukta yüzlerce process olduğu düşünüldüğünde her bir 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. 37

Çok Düzeyli 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. 38

Çok Düzeyli Process Kuyruğu 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. 39

Bağlam anahtarlama (context switching) İş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. 40

Bağlam anahtarlama (context switching) İş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. 41

Bağlam anahtarlama (context switching) İş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 bağlam anahtarlama (context switching) ismi verilir. 42

Bağlam anahtarlama (context switching) Ç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. 43

Bağlam anahtarlama (context switching) CPU, bir process den diğerine anahtarlandığında data ve durum kaydedicilerinin kaydedilmesi gereklidir. Örneğin 1 birimlik bilginin yüklenmesi için20 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. 44

Bağlam anahtarlama (context switching) 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. 45

Bağlam anahtarlama (context switching) 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, 46

Bağlam anahtarlama (context switching) http://cs.uttyler.edu/faculty/rainwater/cosc3355/animations/switch.htm 47

İşletim Sistemi Kontrol Tabloları (OS Control Tables) İşletim sistemi tarafından yönetilen her varlık için tablolar tutulur. Bellek Tabloları G/Ç Tabloları Dosya Tabloları Process Tabloları Her process ve kaynak ile ilgili durum bilgilerinin tutulması gerekir. İşletim sistemi process lerle ilgili gerekli bilgileri bir process tablosu içinde muhafaza eder. 48

Process Table, Process Image Process lerin gerçekleştirilmesi sırasında işletim sistemi o process e bir process kimliği vererek process tablosuna ekler. Process tablosunda her process in görüntüsüne (process image) ilişkin işaretçi bilgisi ile görüntünün olduğu belleğin başlangıç adresi saklanmaktadır. 49

Process Control Block (PCB) - Process Image Her process, işletim sisteminde process control block (PCB) ) tarafından temsil edilir. 50

Process Control Block (PCB) PCB içinde, 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. 51

Process Control Block (PCB) Process lerin durum değiştirmeleri sırasında; işlemci bağlamı saklanır, çalışmakta olan process in PCB si güncellenir, çalışmakta olan process uygun kuyruğa (hazır/bloke) alınır, çalışacak yeni process belirlenir, seçilen process in PCB si güncelleştirilir, bellek yönetimi ile ilgili bilgiler güncellenir, seçilen process in bağlamı yazmaçlara yüklenir ve çalıştırılır. 52

Process Control Block (PCB) 53

Process Control Block (PCB) 54

Process Control Block (PCB) Process Identification Processor State Information Process Control Information 55

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 56

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) 57

Process Control Block (PCB)- Process Table Process 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 58

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 59