Dağıtık Sistemler CS5001

Benzer belgeler
Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013

İş Parçacıkları Thread(s)

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

BİL132 Bilgisayar Programlama II

Dağıtık Sistemler CS5001

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

Dağıtık Sistemler CS5001

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

JAVA ile DAĞITIK PROGRAMLAMA

Ağ Sunucusu Programlaması. Bora Güngören Portakal Teknoloji

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

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

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

BİL-141 Bilgisayar Programlama I (Java)

İŞ PARÇACIKLARI (THREADS)

YZM 3102 İşletim Sistemleri

Java da İşleçler, Ders #3 (4 Kasım 2009)

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

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

Final Sınavı Örnek Soruları Bahar 2018

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

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

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

11- FONKSİYONLAR (FUNCTIONS)

Sınav Dağılım & IMKB Endeks

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

// hataları işaret eden referans

3.Hafta. . Kontrol Deyimleri/İfadeler

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Örnek 1: Programı yazın ve çalıştırın.

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Progress Barlı, FTP Dosya Upload Appleti

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

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

BMH-303 Nesneye Yönelik Programlama

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

BIL101 07/11/2012 Lab5 Programlama Sorulari

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

D İ Z İ L E R A R R A Y S

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

Nesne Yönelimli Programlama

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

Güniçi Web Servisleri Metotları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

Ders 8 Konu Özeti ve Problemler

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader

Veri Yapıları ve Algoritmalar dönem

YZM 3102 İşletim Sistemleri

İşletim Sistemleri (Operating Systems)

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

Sunum İçeriği. Programlamaya Giriş

TEMPLATES. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

BİL-141 Bilgisayar Programlama I (Java)

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

Arasınav Örnek Soruları Bahar 2018

YMT219 VERİ YAPILARI ÖDEV-1

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ByteArrayOutputStream

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 11: Metot Kavramı

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

TARİHÇE. Versiyon Tarih Düzenleyen Açıklama Engin DURMAZ İlk versiyon

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

BAĞLAÇLI LİSTELER LINKED LISTS

Java ile Tasarım Prensipleri ve Tasarım Örüntüleri

GELİR İDARESİ BAŞKANLIĞI Uygulama ve Veri Yönetimi Daire Başkanlığı E-Fatura Uygulaması (Yazılım Standartları ve Nesne Yapısı) Ocak 2010 Versiyon :

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

Transkript:

Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences İstemci-Sunucu Uygulamaları: Aktive Monitörler

Pasif monitörden(paylaşılan durum) aktif monitöre Monitör (Hoare, Brinch-Hansen, 1975) Bir monitör içinde süreçler tarafından ortak olarak kullanılan veri ve erişim protokollerinin(ya da metotların) birleştirildiği bir modül/nesnedir. Monitör = Senkronizasyon olarak sınıf tanımı Senkronize edilmiş giriş metotları ile kapsüllenmiş veri Senkronizasyon: Karşılıklı Hariç Tutma(Dışlama) Garantie edilen özel erişim (race conditions önler) Java: synchronized / Lock Durum(Şart) Senkronizasyonları Gerekli durumlar halinde erişimi garanti eder (conditional synchronisation) Java: wait/notify, Condition Monitörler pasif yapılardır Paylaşımlı bellek üzerine kurulmuşlardır. Aktif birimler(süreçler) isteklerini senkronize eden pasif kaynaklara erişirler. Seite 2

Pasif Monitör: Örnek Buffer Karşılıklı hariç tutma Aynı anda erişimler yasaklanmıştır Şartlı Senkronizasyon dolu buffer'a yazım, boş buffer'dan veri silme yoktur. monitor Buffer { Token place; boolean public class Buffer<TokenType> { TokenType place; boolean synchronized void put(tokentype t) throws InterruptedException { while (! empty ) wait(); place = t; notify(); // one call must not interfere with other calls // Pre: empty void put(token t) { place = t; // one call must not interfere with other calls // Pre: not empty Token get() { return place; synchronized TokenType get() throws InterruptedException { while ( empty ) wait(); notify(); return place; shared state Buffer: Konsept shared state Buffer: Gerçekleştirim Seite 3

Pasif Monitör: Örnek Buffer public class Main { static enum Token { PING, PONG ; static Buffer<Token> buffer = new Buffer<>(); public static void main(string[] args) { new Thread(new Runnable(){ // Producer public void run() { while (true) { try { buffer.put(token.ping); Thread.sleep(1000); System.out.println(buffer.get()); catch (InterruptedException e) { ).start(); pasif paylaşılan durumlu Buffer: Producer ve Consumer'lar kullanıcılardır. new Thread(new Runnable(){ // Consumer public void run() { while (true) { try { buffer.put(token.pong); Thread.sleep(1000); System.out.println(buffer.get()); catch (InterruptedException e) { ).start(); Seite 4

Pasif yerine aktif monitör: Senkronizasyon yerine iletişim Ortak durum mümkün değildir Süreçler ortak bir kaynağa ulaşamazlar. Ortak kaynak aşağıdaki özellikleri taşıyan bir sunucuya dönüştürülmelidir Kendine ait bir kontrol yapısı Istekleri mesajlar olarak alan ve işleyebilen Pasif yerine aktif monitör: Senkronizasyon yerine iletişim Prozesse ohne gemeinsamen Zustand haben nur Ortak bir kaynak olmadığı için senkronizasyon talimatları gereksizdir: Karşılıklı dışarıda bırakma üzerinde düşünmeye gerek yoktur. Ancak işlemlerin düzgün sırada gerçekleştirildiğinden emin olmak gerekir: Şartlı senkronizasyon devam eden bir konudur. Consumer Producer Producer Pasıf Buffer Seite 5 Aktif Buffer Consumer

Aktif Buffer Aktif monitör olarak Buffer: Mesaj işleme süreci passiv => aktiv geçiş stratejisi Senkron çağrı => Mesaj tipi, bir yanıt gönderme, alma wait => Mesajın kaydedilmesi Notify => Kayıt edilmiş mesajın işlenmesi Mesajları işle: Put-Mesajı gönder OK-Yanıt Get-Mesajı gönder Daten-Yanıt public class Buffer<TokenType> { TokenType place; boolean synchronized void put(tokentype t) throws InterruptedException { while (! empty ) wait(); place = t; notify(); synchronized TokenType get() throws InterruptedException { while ( empty ) wait(); notify(); return place; Put-Mesaj göndericisiyle birlikte kaydedildi gecikmiş Get-Mesajının işlenmesi Get-Mesajı göndericisiyle birlikte kaydedildi gecikmiş Put-Mesajı işlenmesi Seite 6

Aktif Buffer Aktif monitör olarak Buffer : Mesajları işleyen süreç (Pseudocode) process Buffer { Queue<PutMsg> pendingputs; Queue<GetMsg> pendinggets; Token place; boolean void processpendingget() { if (! pendinggets.empty) { getmsg, sender = pendinggets.remove() send DataMsg(place) to sender processpendingput(); void process(msg msg, sender) { case msg { PutMsg(item) => if (!empty) { pendingputs.enqueue(msg, sender) else { place = msg.item; send OK to sender; processpendingget(); void processpendingput() { if (! pendingputs.empty) { putmsg, sender = pendinggets.remove() send OKMsg to sender place = putmsg.item processpendingget(); GetMsg(item) => if (empty) { pendinggets.enqueue(msg, sender) else { send Data(place) to sender; processpendingput(); do (forever) { reveive msg from sender process(msg, sender) Seite 7

Aktif Buffer Aktif monitör olarak Buffer Veri-Bufferı Mesaj-Bufferı put get Producer Buffer Producer Consumer Seite 8 Buffer Consumer

Aktif Monitör: Özet Monitör aktif monitör ~> Sunucu süreci Monitör kullanıcısı ~> İstemci süreçleri pasif => aktif Monitör Sınıflar => Süreç Bir monitör prosedürünün çağırımı => Bir mesaj alınması Bir monitör prosedürünün gövdesi => Bir mesajın işlenmesi, göndericilere sonuçlar Karşılıklı dışarıda bırakmanın gerçekleştirimi tamamiyle sorunsuz: Ardışık sunucu süreci => kaynağa kesinlikle sıralı erişim Şartlı senkronizasyonun gerçekleştirimi Sunucu süreci(wait içinde) bloklanamaz wait ~> Mesajın kaydedilmesi / cevabın gecikmesi istemciyi bloklar notify ~> kayıt edilmiş mesajların işlenme fırsatları. Seite 9