PROSESLER. Proses. Proses

Benzer belgeler
Proses. Prosesler 2. İşletim Sistemleri

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312

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.

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

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

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

Bilgisayar İşletim Sistemleri BLG 312

YZM 3102 İşletim Sistemleri

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM. About the Lecturer

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

else *on=*on+1; return gecici; } int giseyeyerlestir(struct gise*giseler) {//giseye bos olmasi durumunda yerlestirme yapiliyor...

İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI

Multicore/Multithread Programlama

Bilgilerin Uzun Vadeli Saklanması

Bilgisayar Sistemlerine Genel Bakış

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

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

İşletim Sistemleri (Operating Systems)

BELLEK YÖNETY NETİMİ. Bellek Yönetiminin Gerektirdikleri. Bellek Yönetimi. Bellek Yönetiminin Gerektirdikleri. Bellek Yönetimi Teknikleri

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

Prosesler Arası Haberleşme ve Senkronizasyon

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

BELLEK YÖNETY. Bellek Yönetimi

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

İşletim Sistemlerine Giriş

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

İşletim Sistemlerine Giriş

İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.

İşletim Sistemlerine Giriş

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind()

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Bilgisayar Programlama. 1.Hafta

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemlerine Giriş

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

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Sınav tarihi : Süre : 60 dak.

Eln 1002 Bilgisayar Programlama II

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

8. İŞARETCİLER (POINTERS)

İşletim Sistemleri-II

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

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

Ölümcül Kilitlenme. Ölümcül Kilitlenme Örneği - 1

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Ölümcül Kilitlenme. Ölümcül Kilitlenme 5. İşletim Sistemleri

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

İşlem Yönetimi (Process Management)

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

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

BÖLÜM 7 Kesmeler.

İŞ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

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

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

Ünite-3 Bilgisayar Yazılımı.

C dilinde if-else yapısı

İşletim Sistemlerine Giriş

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

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

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

SPARC v8 İŞLEMCİ SİMÜLASYONU

Bilgisayar İşletim Sistemleri BLG 312

ALGORİTMA VE PROGRAMLAMA II

Küme Bilgisayarlarda PBS Kuyruk Sistemi

YAPILAR (STRUCTURES)

İşletim Sistemleri (Operating Systems)

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

ALGORİTMA VE PROGRAMLAMA I

Linux Dosya ve Dizin Yapısı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

İŞLETİM SİSTEMLERİ (POSIX THREADS v1)

Binnur Kurt İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

İşletim Sistemi. BTEP205 - İşletim Sistemleri

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ DERS 2

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

Bölüm 10 Statik ve Anlık Öğeler

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

C PROGRAMLAMA D İ L İ

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Hafta 13 Fonksiyonlar

int main(void) { int num = 0; int input = 1; int retval = 0; struct NODE *nodepointer; nodepointer = (struct NODE *)malloc(sizeof(struct NODE));

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

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

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Transkript:

Proses 2 PROSESLER 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 Aynı programa ilişkin birden fazla proses olabilir. Görev (Task) de denir Text, veri ve yığın alanları vardır. 44 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 yürütülen komutların sırası gözlenebilir: prosesin izi (trace) Prosesin ömrü: yaratılması ve sonlanması arasında geçen süre 45 46 47 48

Proses İki Durumlu Proses Modeli Proseslerin işlemciye sahip olma sıraları kestirilemez program kodunda zamanlamaya dayalı işlem olmamalı Proses iki durumdan birinde olabilir: Koşuyor Koşmuyor 49 50 Proses Kuyruğu Proses O anda çalışmayan proses sırasını bir kuyrukta bekler: Koşmuyor çalışmaya hazır Bloke G/Ç bekliyor Kuyrukta en uzun süre beklemiş prosesin çalıştırılmak üzere seçilmesi doğru olmaz Bloke olabilir 51 52 Beş - Durumlu Model Koşuyor Hazır Bloke Yeni Sonlanıyor 53 54

İki Kuyruk Çoklu Kuyruk 55 56 Proses Yaratma Proses Sonlandırma Ne zaman yaratılır? Kullanıcı sisteme girmiş Bir servis sunmak için örneğin yazıcıdan çıktı Bir başka proses yaratmış Ne zaman sonlanır? Kullanıcı sistemden çıkmış Uygulama sonlandırılmış Hata durumu oluşmuş 57 58 Prosesin Askıya Alınma Nedenleri İşletim Sistemi Kontrol Yapıları Swap işlemi Hatalı durum oluşması Etkileşimli kullanıcı isteği Örneğin hata ayıklama (debug) için Ayrılan sürenin dolması (quantum) Anne proses tarafından Her proses ve kaynak ile ilgili durum bilgilerinin tutulması gerekir İşletim sistemi tarafından yönetilen her varlık için tablolar tutulur G/Ç Tabloları Bellek Tabloları Dosya Tabloları Proses Tabloları 59 60

Proses Tablosu Prosesin Bileşenleri Prosesin bileşenleri Yönetilmesi için gerekli özellikleri Kimlik numarası Durumu Bellekteki yeri Proses birden fazla programdan oluşabilir Yerel ve global değişkenler Sabitler Yığın Proses Kontrol Bloğu Nitelikler (attributes) Prosesin görüntüsü Program, veri, yığın ve niteliklerin tamamı 61 62 Proses Kontrol Bloğu Proses Kimlik Bilgileri Kimlik Bilgileri Prosesin kimlik numarası Prosesin annesinin kimlik numarası Sahibin kullanıcı kimlik bilgisi 63 64 Proses Kontrol Bloğu Proses Kontrol Bloğu İşlemci Durum Bilgisi 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) Proses Kontrol Bilgileri İş sıralama ve durum bilgileri Prosesin 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ışmakiçinbeklediğiolay 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şkisiolabilir 65 66

Proses Kontrol Bloğu Prosesler arası haberleşme ile ilgili bilgiler Bazı bayrak, sinyal ve mesajlar proses kontrol bloğunda tutulabilir. Proses Ayrıcalıkları Bellek erişimi, kullanılabilecek komutlar ve sistem kaynak ve servislerinin kullanımı ile ilgili haklar 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 67 68 Çalışma Modları Proses Yaratılması 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 çekirdeği prosesleri bu modda çalışır Proses kimlik bilgisi atanır: sistemde tek Proses için bellekte yer ayrılır Proses kontrolbloğuna ilk değerler yüklenir Gerekli bağlantılar yapılır: Örneğin iş sıralama için 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 69 70 Prosesler Arası Geçiş Durumu Proseslerin Durum Değiştirmesi Saat kesmesi proses kendisine ayrılan zaman dilimi kadar çalışmıştır G/Ç kesmesi Bellek hatası erişilen bellek bölgesi ana bellekte yoktur Hata durumu Sistem çağrısı İş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 güncellenmesi Prosese ilişkin proses kontrol bloğunun uygun kuyruğa yerleştirilmesi: hazır / bloke Koşacak yeni prosesin belirlenmesi 71 72

Proseslerin Durum Değiştirmesi UNIX te Proses Durumları Seçilenprosesinproseskontrolbloğunun güncellenmesi Bellek yönetimi ile ilgili bilgilerin güncellenmesi Seçilen prosesin bağlamının yüklenmesi Kullanıcı modunda koşuyor Çekirdek modunda koşuyor Bellekte ve koşmaya hazır Bellekte uyuyor İkincil bellekte ve koşmaya hazır İkincil bellekte uyuyor 73 74 UNIX te Proses 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ş) Yaratılmış ama koşmaya hazır değil Zombie (proses sonlanmış ancak anne prosesin kullanabilmesi için bazı kayıtları hala tutulmakta, ilgili kaynaklar henüz geri verilmemiş) 75 76 UNIX de Proses Yaratma UNIX de Proses Yaratma fork sistem çağrısı ile yaratılır çağrıyı yapan proses: anne proses Yaratılan proses: çocuk proses 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 fork sistem çağrısı yapıldığında çekirdeğin yürüttüğü işlemler: 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. Dosyaerişimi ile ilgili sayaçları düzenler anneye çocuğun kimliğini, çocuğa da 0 değerini döndürür 77 78

UNIX de fork Sistem Çağrısı ile Proses Yaratılma Hiyerarşisi proses 0 proses 1 (INIT) tty1 tty2.. diğer sistem prosesleri login shell UNIX de Proses Sonlanması exit sistem çağrısı ile sentaksı: exit(status) status değeri anne prosese aktarılır Tüm kaynakları geri verilir Dosya erişim sayaçları düzenlenir Proses tablosu kaydı silinir Annesi sonlanan proseslerin annesi olarak init prosesi (1 numaralı proses) atanır kullanıcı prosesleri 79 80 Örnek Program Kodu - 2 Örnek Program Kodu - 1 #include <unistd.h> #include <stdio.h> #include <stdlib.h> int f; int main (void) { printf("\n Program calisiyor: PID=%d \n", getpid()); f=fork(); if (f==0) /*cocuk*/ { printf("\nben cocuk. Kimlik= %d\n", getpid()); printf( Annemin kimliği=%d\n, getppid()); sleep(2); exit(0): } 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); } 81 82