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



Benzer belgeler
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

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

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri

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

İşletim Sistemlerine Giriş

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

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

İşletim Sistemlerine Genel Bakış

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Görev. Hafta-06 Processes. Proses. Program Proses. Process Yönetimi. Örnek: Yemek yapmayı seven bir bilgisayarcı bir tarife göre kek yapıyor.

İşletim Sistemlerine Giriş

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

İşlem Yönetimi (Process Management)

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

İşletim Sistemleri (Operating Systems)

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemlerine Giriş

Dağıtık Sistemler CS5001

Multicore/Multithread Programlama

Bölüm 4: Threads (İş Parçaları)

Bölüm 6: İşlem Senkronizasyonu (1) Operating System Concepts with Java 8 th Edition

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

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

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

İşletim Sistemleri (Operating Systems)

YZM 3102 İşletim Sistemleri

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

İşletim Sistemlerine Giriş

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

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

Background (Arka Plan)

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

PROCESS YARATIMI (TEKRAR):

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

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

Bölüm 2 İşletim Sistemi Yapıları

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

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

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Soket Programlama

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

BM-311 Bilgisayar Mimarisi

Bilgisayar Sistemlerine Genel Bakış

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

BM-311 Bilgisayar Mimarisi

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

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

İşletim Sistemleri (Operating Systems)

Bilgisayar İşletim Sistemleri BLG 312

YZM 3102 İşletim Sistemleri

Üst Düzey Programlama

Yrd.Doç.Dr. Celal Murat KANDEMİR

Küme Bilgisayarlarda PBS Kuyruk Sistemi

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş

İşletim Sistemlerine Giriş

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

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

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

YZM 3102 İşletim Sistemleri

İşletim Sistemlerine Genel Bakış

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

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

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

BM-311 Bilgisayar Mimarisi

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

Bölüm 8: Ana Bellek 8.1

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

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

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

Prensipler Çoklu ortam uygulamalarının sınıflandırılması Uygulamaların ihtiyaç duyacağı ağ servislerini belirlemek Uygulamaların gerçek zamanlı

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

Bilgisayar İşletim Sistemleri BLG 312

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

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

Yrd. Doç. Dr. Caner ÖZCAN

Dağıtık Sistemler CS5001

OSI REFERANS MODELI-II

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

Yrd. Doç. Dr. Caner ÖZCAN

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

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

MCR02-AE Ethernet Temassız Kart Okuyucu

Bilgisayar Programcılığı

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA.

BM 402 Bilgisayar Ağları (Computer Networks)

Üst Düzey Programlama

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

Data Communications. Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü. 8. Anahtarlama

PARALOG POS AKTARIMLARI. Derece Yazılım 2009

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

YZM 2116 Veri Yapıları

Süreç 1 Kavramı ve Oluşturma Yöntemleri

8086 nın Bacak Bağlantısı ve İşlevleri. 8086, 16-bit veri yoluna (data bus) 8088 ise 8- bit veri yoluna sahip16-bit mikroişlemcilerdir.

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

Transkript:

Bölüm 3: İşlemler 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler İşlem Kavramı İşlem Zamanlaması (Process Scheduling) İşlemler Üzerindeki Faaliyetler İşlemler Arası İletişim (Interprocess Communication) IPC Sistemi Örnekleri İstemci-Sunucu Sistemlerde İletişim 3.2 Silberschatz, Galvin and Gagne 2009

Hedefler İşlem kavramını (çalışmakta olan bir program) tanıtmak İşlemlerin pek çok özelliklerini tanıtmak: zamanlama, oluşturma, sonlandırma ve iletişim İstemci-sunucu sistemlerinde iletişimi açıklamak 3.3 Silberschatz, Galvin and Gagne 2009

İşlem Kavramı İşletim sistemleri farklı tipte programlar çalıştırabilir: Toplu iş sistemleri - iş Zaman paylaşımlı sistemler (time-shared systems) kullanıcı programları veya görevleri Ders kitabı iş (job) ve işlem (process) kelimelerini kabaca birbirleri yerine kullanabilmekte İşlem çalışmakta olan bir programdır İşlemler aşağıdakileri içermelidir: program sayacı (program counter) yığın (stack) veri bölümü (data section) 3.4 Silberschatz, Galvin and Gagne 2009

Hafızadaki İşlemler 3.5 Silberschatz, Galvin and Gagne 2009

İşlem Durumu Bir işlem çalıştırılırken durumunu (state) değiştirir yeni (new): İşlem oluşturuldu çalışıyor (running): İşlem komutları çalıştırılıyor bekliyor (waiting): İşlem bir olayın gerçekleşmesini bekliyor hazır (ready): İşlem bir işlemciye atanmayı bekliyor sonlandırılmış (terminated): İşlem çalışmayı bitirmiş 3.6 Silberschatz, Galvin and Gagne 2009

İşlem Durumlarını Gösteren Şema 3.7 Silberschatz, Galvin and Gagne 2009

İşlem Kontrol Bloğu (PCB) Herhangi bir işlem ile ilişkili bilgiler (process control block) İşlem durumu İşlem sayacı CPU yazmaçları (CPU registers) CPU zamanlama bilgileri Hafıza yönetim bilgileri Hesap (accounting) bilgileri I/O durum bilgileri 3.8 Silberschatz, Galvin and Gagne 2009

İşlem Kontrol Bloğu (PCB) 3.9 Silberschatz, Galvin and Gagne 2009

CPU İşlemden İşleme Geçiş Yapar 3.10 Silberschatz, Galvin and Gagne 2009

İşlem Zamanlama Kuyrukları Process Scheduling Queues İş kuyruğu (job queue) sistemdeki tüm işlemlerin kümesi Hazır kuyruğu (ready queue) ana hafızadaki, tüm işlemlerin kümesi - çalışmaya hazır ve çalıştırılmayı bekleyen Cihaz kuyrukları (device queues) bir I/O cihazını kullanmayı bekleyen işlemler kümesi İşlemler değişik kuyruklar arasında geçiş yapar 3.11 Silberschatz, Galvin and Gagne 2009

Hazır Kuyruğu ve Bazı I/O Cihaz Kuyrukları 3.12 Silberschatz, Galvin and Gagne 2009

İşlem Zamanlaması Gösterimi 3.13 Silberschatz, Galvin and Gagne 2009

Zamanlayıcılar Uzun vadeli zamanlayıcılar (long-term scheduler) veya iş zamanlayıcısı (job scheduler) hangi işlemlerin hazır kuruğuna (ready queue) alınması gerektiğine karar verir Kısa vadeli zamanlayıcılar (short-term scheduler) veya CPU zamanlayıcısı sıradaki hangi işlemin CPU tarafından çalıştırılacağına karar verir 3.14 Silberschatz, Galvin and Gagne 2009

Orta Vadeli Zamanlama Orta Vadeli Zamanlayıcı (medium-term schedular) 3.15 Silberschatz, Galvin and Gagne 2009

Zamanlayıcılar (devam) Kısa vadeli zamanlayıcı çok sık çalıştırılır (milisaniye) hızlı çalışmalı Uzun vadeli zamanlayıcı çok sık çalıştırılmaz (saniye, sakika) yavaş olabilir Uzun vadeli zamanlayıcı çokluprogramlamanın (multiprogramming) seviyesini kontrol eder İşlemler aşağıdaki iki kategoriye ayrılabilir: I/O ağırlıklı işlemler (I/O-bound process) CPU üzerinde kısa süreli işlerler yaparlar ve zamanlarının çoğu I/O işleri yaparak geçer CPU ağırlıklı işlemler (CPU-bound process) zamanlarının çoğunu CPU üzerinde uzun işlemler yaparak geçirirler, I/O işleri çok daha azdır 3.16 Silberschatz, Galvin and Gagne 2009

Ortam Değişikliği Context Switch CPU başka bir işleme geçerken, sistem eski işlemin durumunu kaydetmeli ve yeni işlemin kaydedilmiş durumunu yüklemelidir Bir işlemin ortamı (context) PCB de tutulur Ortam değişikliği için harcanan zaman ek yüktür. Değişim sırasında işlemci kullanıcının işine direk yarayan bir iş yapmamaktadır Harcanan zaman donanım desteğine bağlıdır 3.17 Silberschatz, Galvin and Gagne 2009

İşlem Oluşturma Ana işlem (parent process) çocuk işlemleri (children processes) oluşturur Çocuk işlemlerde yeni işlem oluşturabileceğinden, sistemde işlemlerin bir ağacı oluşur Genellikle işlemler işlem belirteci (process identifier - pid) kullanılarak birbirlerinden ayrılırlar ve yönetilirler Kaynak paylaşımı Ana işlem ve çocuklar tüm kaynakları paylaşırlar Çocuklar ana işlemin kaynaklarının belli bir alt kümesini paylaşır Ana işlem ve çocuklar kaynak paylaşmazlar Çalıştırma Ana işlem ve çocuklar aynı anda çalışır Ana işlem, çocuk işlemler sonlanana kadar bekler 3.18 Silberschatz, Galvin and Gagne 2009

İşlem Oluşturma (devam) Hafıza alanı (address space) Çocuk ana işlemin kopyasına sahip Çocuk adres alanına yeni bir program yükler UNIX örnekleri fork sistem çağrısı yeni bir işlem oluşturur exec sistem çağrısı, fork sistem çağrısı ile yeni işlem oluşturulduktan sonra, işlemin hafıza alanına yeni bir program yüklemek için kullanılır 3.19 Silberschatz, Galvin and Gagne 2009

İşlem Oluşturma Şeması 3.20 Silberschatz, Galvin and Gagne 2009

Yeni İşlem Oluşturan C Programı 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); } } 3.21 Silberschatz, Galvin and Gagne 2009

POSIX te İşlem Oluşturma 3.22 Silberschatz, Galvin and Gagne 2009

Win32 de İşlem Oluşturma 3.23 Silberschatz, Galvin and Gagne 2009

Java da İşlem Oluşturma 3.24 Silberschatz, Galvin and Gagne 2009

Solaris te Tipik Bir İşlem Ağacı 3.25 Silberschatz, Galvin and Gagne 2009

İşlem Sonlandırma Process Termination İşlemler son komutlarını çalıştırdıktan sonra işletim sistemine kendilerini silmelerini isterler (exit) İşlemin dönüş değeri çocuktan ana işleme döndürülür (wait ile) İşlemin kaynakları işletim sistemi tarafından geri alınır Ana işlem çocuk işlemlerin çalışmasını sonlandırabilir (abort) Çocuk kendine ayrılan kaynakları aşmışsa Çocuk işleme atanan göreve artık ihtiyaç yoksa Eğer ana işlem sonlandırılıyorsa Bazı işletim sistemleri ana işlem sonlandırıldıktan sonra çocuklarının çalışmaya devam etmesine izin vermez Peşpeşe sonlandırma (cascading termination ) ile tüm çocuk işlemler sonlandırılır 3.26 Silberschatz, Galvin and Gagne 2009

İşlemler Arası İletişim Interprocess Communication Bir sistemdeki işlemler bağımsız (independent ) ya da işbirliği yapıyor (cooperating) olabilir İşbirliği yapan işlemler birbirlerini etkileyebilirler veya veri paylaşabilirler Neden işlemler işbirliği yapar? Bilgi paylaşımı İşlem hızını arttırmak Modülerlik sağlamak İşbirliği yapan işlemler işlemler arası iletişime (interprocess communication - IPC) ihtiyaç duyar IPC nin iki modeli Paylaşımlı bellek (shared memory) Mesaj gönderme (message passing) 3.27 Silberschatz, Galvin and Gagne 2009

İletişim Modelleri 3.28 Silberschatz, Galvin and Gagne 2009

Üretici-Tüketici Problemi Producer-Consumer Problem İşbirliği yapan işlemler için problem örneği: üretici (producer) işlem bilgi üretirken, tüketici (consumer) işlem üretilen bilgiyi tüketir sınırsız tampon bellek (unbounded-buffer): tampon bellek için herhangi bir pratik sınır getirmez sınırlı tampon bellek (bounded-buffer): sınırlı boyutta bir tampon bellek kullanıldığını varsayar 3.29 Silberschatz, Galvin and Gagne 2009

Java da Paylaşımlı Bellek Simülasyonu 3.30 Silberschatz, Galvin and Gagne 2009

Sınırlı Tampon Bellek Çözümü - Arayüz 3.31 Silberschatz, Galvin and Gagne 2009

Sınırlı Tampon Bellek Üretici 3.32 Silberschatz, Galvin and Gagne 2009

Sınırlı Tampon Bellek Tüketici 3.33 Silberschatz, Galvin and Gagne 2009

İşlemler Arası İletişim Mesaj Gönderme İşlemlerin iletişim kurması ve eylemlerini senkronize etmelerini sağlayan mekanizma Mesaj sistemi işlemler birbirleriyle paylaşımlı değişkenlere bağlı kalmaksızın haberleşir IPC mekanizması iki işlemi sağlar: send (mesaj gönderme) mesaj boyutu sabit ya da değişken olabilir receive (mesaj alma) Eğer P ve Q işlemleri iletişim kurmak isterse: birbirleri arasında bir iletişim bağlantısı (communication link) sağlamalıdırlar send/receive kullanarak mesajlaşmalıdırlar İletişim bağlantısının gerçekleştirimi fiziksel (e.g., paylaşımlı hafıza, donanım hattı) mantıksal (e.g., mantıksal özellikler) 3.34 Silberschatz, Galvin and Gagne 2009

Gerçekleştirim Soruları Bağlantılar nasıl sağlanır? Bir bağlantı ikiden fazla işlemle ilişkilendirilmeli midir? İletişim kuran işlemlerin her bir çifti arasında kaç tane bağlantı olabilir? Bağlantının kapasitesi nedir? Bağlantının desteklediği mesajların boyutu sabit mi yoksa değişken midir? Bağlantı çift yönlü mü (bi-directional) yoksa tek yönlü (unidirectional) müdür? 3.35 Silberschatz, Galvin and Gagne 2009

Direk İletişim İşlemler birbirlerini açıkça isimlendirmelidir: send (P, message) P işlemine bir mesaj gönder receive(q, message) Q işleminden bir mesaj al İletişim bağlantısının özellikleri Bağlantılar otomatik olarak sağlanır Bir bağlantı sadece bir çift işlemci arasında oluşturulur Her bir çift için sadece bir bağlantı oluşturulur Bağlantı tek yönlü olabilir, ama genellikle çift yonlüdür 3.36 Silberschatz, Galvin and Gagne 2009

Dolaylı İletişim Mesajlar posta kutusuna (messagebox) yönlendirilir ve post kutusundan alınır Posta kutusu yerine port terimi de kullanılır Her bir posta kutusu özgün bir ada sahiptir (unique id) İşlemler sadece bir post kutusunu paylaşıyor ise iletişime geçebilir İletişim bağlantısının özellikleri Bağlantı sadece işlemler ortak bir posta kutusunu paylaşıyor ise oluşturulur İkiden fazla işlem tek bir posta kutusu ile ilişkilendirilebilir Bir işlem çifti birden fazla iletişim bağlantısına sahip olabilir Bağlantı tek yönlü veya çift yönlü olabilir 3.37 Silberschatz, Galvin and Gagne 2009

Dolaylı İletişim (devam) İşlemler yeni bir posta kutusu oluşturma posta kutusu aracılığıyla mesaj gönderme veya alma posta kutusunun yok edilmesi Temel bileşenler: send(a, message) A posta kutusuna bir mesaj gönder receive(a, message) A posta kutusundan bir mesaj al 3.38 Silberschatz, Galvin and Gagne 2009

Posta Kutusu Paylaşımı Posta kutusu paylaşımı P 1, P 2, ve P 3 A posta kutusunu paylaşıyor P 1, meaj gönderir; P 2 ve P 3 alır Mesajı kim alır? Çözümler Bir bağlantının en fazla iki işlem ile ilişkilendirilmesine izin ver Herhangi bir anda sadece bir işlemin mesaj almasına izin ver Sistemin herhnagi bir alıcıyı seçmesine izin ver. Gönderici kimin mesajı aldığı konusunda bilgilendirilir 3.39 Silberschatz, Galvin and Gagne 2009

Senkronizasyon Synchronization Mesaj gönderme bloklanan (blocking) veya bloklanmayan (nonblocking) şekilde gerçekleşebilir Bloklanan mesajlaşma senkrondur (synchronous) Bloklanan gönderimde, alıcı taraf mesajı alana kadar, gönderici taraf bloklanır Bloklanan alımda, gönderici taraf mesajı gönderene kadar, alıcı taraf bloklanır Bloklanmayan mesajlaşma asenkrondur (asynchronous) Bloklanmayan gönderimde, gönderici taraf mesajı gönderdikten sonra beklemeksizin çalışmaya devam eder Bloklanmayan alımda, alıcı taraf ya geçerli bir mesaj alır ya da null mesaj alarak çalışmaya devam eder 3.40 Silberschatz, Galvin and Gagne 2009

Tampon Bellek Kullanımı Bağlantı ile ilişkilendirilen kuyruk üç farklı şekilde gerçekleştirilebilir 1. Sıfır kapasite 0 mesaj Gönderici alıcıyı beklemelidir: randevu (rendezvous) 2. Sınırlı kapasite n mesajı alacak şekilde sınırlı kapasite Gönderici bağlantı kapasitesi dolu ise beklemelidir 3. Sınırsız kapasite Gönderisi asla beklemez 3.41 Silberschatz, Galvin and Gagne 2009

IPC Sistem Örnekleri - POSIX POSIX Paylaşımlı Hafıza İşlem öncelikle paylaşımlı hafıza segmentini oluşturur segment id = shmget(ipc PRIVATE, size, S IRUSR S IWUSR); Paylaşımlı belleğe erişmek isteyen işlem, bu paylaşım alanı ile bağlantı kurmalıdır shared memory = (char *) shmat(id, NULL, 0); Şimdi işlem paylaşımlı hafızaya yazabilir sprintf(shared memory, "Writing to shared memory"); Paylaşım alanı ile yapacak işi kalmayan işlem,bu paylaşım alanı ile bağlantısını sonlandırmalıdır shmdt(shared memory); 3.42 Silberschatz, Galvin and Gagne 2009

IPC Sistem Örnekleri - Mach Mach iletişimi mesaj tabanlıdır Sistem çağrıları dahi sisteme mesaj olarak gönderilir Her bir işlem oluşturulduğunda iki posta kutusuna sahiptir - Kernel and Notify Mesaj transferi için sadece üç sistem çağrısı kullanılır msg_send(), msg_receive(), msg_rpc() İletişim kurmak için gereken posta kutuları aşağıdaki komutla oluşturulabilir port_allocate() 3.43 Silberschatz, Galvin and Gagne 2009

IPC Sistem Örnekleri Windows XP Yerel metot çağrımı (LPC) ile mesaj tabanlı iletişim Sadece aynı sistemde bulunan işlemler arasında gerçekleşebilir İletişim kanalları oluşturmak için portları (posta kutuları gibi) kullanır İletişim şu şekilde çalışır: İstemci, iletişim portu nesnesine bir kulp (handle) açar İstemci bir bağlantı isteği gönderir Sunucu iki özel iletişim portu açar ve bunlardan birini istemciye gönderir İstemci ve sunucu mesaj göndermek, geri arama (callback) göndermek ve yanıtları dinlemek için ilgili port kulpunu (port handle) kullanır 3.44 Silberschatz, Galvin and Gagne 2009

Windows XP de Yerel Metot Çağrımları Yerel Metot Çağrımları (Local Procedure Calls) 3.45 Silberschatz, Galvin and Gagne 2009

İstemci-Sunucu Sistemlerinde İletişim Soketler (Sockets) Uzak Prosedür Çağrıları (Remote Procedure Calls) Uzak Metot Çağırma (Remote Method Invocation) 3.46 Silberschatz, Galvin and Gagne 2009

Soketler Soketler iletişim amaçlı bağlantı noltaları olarak tanımlanır IP adresi ve portun birleşimidir 161.25.19.8:1625 soketi 161.25.19.8 IP li makinanın 1625 numaralı portuna arşılık gelmektedir İletişim bir çift soket arasında gerçekleşir 3.47 Silberschatz, Galvin and Gagne 2009

Soket İletişimi 3.48 Silberschatz, Galvin and Gagne 2009

Java da Soket İletişimi - Sunucu 3.49 Silberschatz, Galvin and Gagne 2009

Java da Soket İletişimi - İstemci 3.50 Silberschatz, Galvin and Gagne 2009

Uzak Prosedür Çağrıları (RPC) Remote procedure call (RPC) Ağa bağlı sistemlerdeki işlemler arasında metot (prosedür, fonksiyon) çağrımını soyutlar Stub sunucudaki asıl metot için istemci tarafında bulunan vekildir İstemci tarafı sunucuyu konumlandırır ve metot parametrelerini paketler Sunucu tarafı mesajı alır, parametreleri açığa çıkarır ve sunucudaki metotu çalıştırır 3.51 Silberschatz, Galvin and Gagne 2009

RPC nin Çalıştırılması 3.52 Silberschatz, Galvin and Gagne 2009

Uzak Metot Çağırma (RMI) Remote Method Invocation (RMI) RPC ye benzer Java mekanizmasıdır RMI, bir Java programının, uzak bir nesnede bulunan bir metotu çağırmasını sağlar 3.53 Silberschatz, Galvin and Gagne 2009

Parametrelerin Paketlenmesi 3.54 Silberschatz, Galvin and Gagne 2009

RMI Örneği - Arayüz 3.55 Silberschatz, Galvin and Gagne 2009

RMI Örneği Sunucu Taraf 3.56 Silberschatz, Galvin and Gagne 2009

RMI Örneği İstemci Taraf 3.57 Silberschatz, Galvin and Gagne 2009