SlideShare a Scribd company logo
1 of 25
Download to read offline
Bilgisayar Mühendisliği
Şahabettin AKCA
132132178
TBIL-106
Bilgisayar Programlama II Ödev
Dağıtık Programlama
Ahmet Yesevi Üniversitesi - TURTEP

TBIL-106 ÖDEV #1
İçindekiler
1. Giriş………………………………………………….…….………3
2. Dağıtık Sistem Tanımı……………………………….…….………4
3. Dağıtık Mimari Yapı Gereksinimleri……………….……….……..5
4. Dağıtık Sistemler Avantaj ve Dezavantajları……….……….……..5
5. Dağıtık Sistem Örnekleri……………………..…….……….……..6
6. Dağıtık Sistem Güvenliği……………………..…….……….……..7
7. Dağıtık Sistemlerin Kullanım Amaçları…………….………….8-10
8. Internet ve Intranet………………………………………………11
9. Dağıtık Sistem Ürün Ortamı Sorun ve Çözümleri ..…………12-13
10.Dağıtık Sistem Bileşenleri…………………………………….14-15
11.Sistem Şeffaflığı ………………………………………………….16
12.Sistem Verimliliği ve Ölçeklenebilirlik ………………….……17-18
13.Uzak Sunucu Çağırma Yöntemi……………………………..19-20
14.MPI (Mesaj Geçiş Arayüzü)……………….……………………..21
15.MPI Komutlarının Kısa Tanımları………………………………22
16.MPI Örnek Program …………….………………………..…23-24
17.MPI Derleme ve Çalıştırma.……………………………………..24
18.Kaynakça ..………………………………………………………25
TBIL-106 ÖDEV #2
Giriş
Mühendislik uygulamalarında daha yüksek performanslı bilgisayarlara
ihtiyaç her geçen gün daha da artmaktadır. Yüksek performanslı bilgisayarların
yetenekleri ile üretime giden tasarım sürecinde bazı evreler ortadan kalkmış
olup (örneğin prototip gerçekleme ve testler), bu işlemler artık benzetim yoluyla
yapılmaktadır. Böylece, geliştirme sürecinde zaman ve paradan tasarruf
edilmekte, yeni ürünlerin piyasaya çıkma periyodu kısalmaktadır.
Yüksek performanslı sistemler işlemci saat frekansının arttırılması veya
donanımın paralel kullanılmasıyla elde edilebilir. İşlemci saat frekansının
arttırılması bir noktadan sonra ya ekonomik nedenlerle veya fiziksel sınırlar
nedeniyle mümkün olmamaktadır. Bu nedenle daha fazla donanımın paralel
olarak kullanılmasıyla performans arttırılması en çok tercih edilen yoldur. Bu
yaklaşım kendini önce işlemci içinde paralellik ile gösterdi. Üretim hattı
(pipeline) mimarisinde işlemci içine ilave edilen donanım ile aynı anda birden
fazla komut icra edilebilir hale getirildi. Böylece komut seviyesinde paralellik
yoluyla performans artırılmış oldu. Artık günümüz genel amaçlı
bilgisayarlarında kullanılan işlemcilerinin hepsinde pipeline yapı
kullanılmaktadır. Bu sistemlerde paralellik komut ölçeğinde olduğundan,
kullanıcı açısından bir sorun veya değişiklik oluşmaz. Paralellik için gerekli
düzenlemeler derleyici veya donanım içindeki alt birimler tarafından
gerçeklenir.

TBIL-106 ÖDEV #3
Dağıtık Sistem Nedir ?
Ağ üzerindeki bilgisayarlarda bulunan donanım veya yazılım bileşenlerinin
yalnız mesaj göndererek haberleştikleri sistem. [Coulouris]
Dağıtık sistem, farklı bilgisayarlardaki donanım ve yazılım bileşenleri arasında
haberleşme ve koordinasyonunun sadece mesajlaşma yoluyla sağlanabildiği ağ
olarak tanımlanır.
Dağıtık sistemi diğer bilgisayar ağlarından farklı kılan özelliğin, ağın varlığı ve
işlevinin kullanıcıya görünmemesi olduğu söylenebilir. Örneğin kullanıcı bir
program çalıştırdığında, en iyi işlemciyi seçmek, giriş dosyalarını bu işlemciye
aktarmak ve dönen sonuçları uygun yere koymak işlemcinin yürüttüğü işlerdir.
Çok işlemcili bir dağıtık sistemde çalışmakta olmasına rağmen, kullanıcıya
görünen ise tek bir sanal işlemcidir. Diğer ağlarda, kullanıcının kendisi bir
makineye bağlanır, iş isteğinde bulunur, dosya gönderir vs. Diğer bir deyişle, ağ
yönetim işlemleri kullanıcı tarafından yürütülür.
Dağıtık sistem, bir ağ üzerine kuruludur. Yazılımla, ağdaki bileşenler arası
işlevsel uyumluluk ve kullanıcı açısından saydamlık sağlanır. Dolayısıyla,
dağıtık sistemin diğer ağlardan farkı donanım değil, yazılım katmanından –
özellikle işletim sisteminden- kaynaklanmaktadır.
Dağıtık sistemlerin var oluş amacı, kaynakları paylaşmaya duyulan gerekliliktir.
Bu kaynaklar donanımsal bileşenler (disk, yazıcı) olabileceği gibi, dosyalar, veri
tabanı, nesneler gibi yazılım varlıkları da olabilir.
Bu büyük ağ da bulunan donanımlar kullanıcıya tek bir bilgisayar gibi davranır
ve en iyi performansı sağlamayı amaçlar.
1. İzole değildir.
2. Cloud un temelini oluşturur
3. Senkron ve replike’dir
4. Yedekli çalışır
TBIL-106 ÖDEV #4
Dağıtık Mimari Yapı Gereksinimleri

Dağıtık mimarinin yapılandırılması çalışabilmesi için çeşitli bileşenlerin
birbiriyle uyumlu ve senkron şekilde çalışılabilmesi gerekmemektedir.
1. İşletim sistemleri
2. Donanım mimarileri
3. İletişim mimarileri
4. Programlama dilleri
5. Yazılım ara yüzleri
6. Güvenlik ölçüleri
7. Bilgi gösterimleri
Dağıtık sistem
Avantajları Dezavantajları

 
Maliyet Merkezi yapı zorunluğu

Erişim kolaylığı – hız performans Güvenlik

Hesaplama ve depo alanı Her dilde yazım desteği yok

Ölçeklenebilir İletişim

Güvenilir(Reliable)

Dağıtım kolaylığı (Web)

Güvenlik


Şeffaflık: Kaynaklar ve işlemlerin ağ üzerinde dağıtık olduğu açık
değildir

Açıklık: Servislerin sentaks ve semantikleri ile ilgili standart kurallar

Ölçeklenebilirlik: Daha fazla kullanıcı/kaynak, coğrafya, yönetim
TBIL-106 ÖDEV #5
Dağıtık Sistem Örnekleri
Internet
Internet, geniş bir dağıtık sistemdir. Internet kullanıcıları WWW, e-posta, dosya
transferi servislerinden yararlanırlar.
İç Ağlar (Intranet)
$
Şekil 1. İç Ağ
Şekil 1’de, birkaç yerel ağdan oluşan bir iç ağ görülmektedir. İç ağlarda
kaynak paylaşımı sağlayan ve sıklıkla kullanılmakta olan sunucular, şekilde
gösterilmiştir. (Her yerel ağ, tüm bu sunucuları içermeyebilir.)
TBIL-106 ÖDEV #6
Dağıtık Sistem Güvenliği
Bir dağıtık sistemin güvenliği, süreçleri ve aralarındaki etkileşim için kullanılan
kanalları güvenli hale getirmek ve süreçlerin kapçıkladığı nesneleri izinsiz
erişime karşı korumakla sağlanır.
Servisin Reddi (Denial of Service)
Ddos atak olarak bilinen bu atak günümüzde bir çok bilişim sisteminin, büyük
kapasiteli devlet ve banka ağlarının kilitlenmesine kadar gidebilmektedir.
Sunuculara sürekli istek göndermek suretiyle sunucunun hizmet kapasitesinin
doldurulup kilitlenmesidir. Ağa çok fazla mesaj gönderilerek fiziksel
kaynakların (bant genişliği gibi) tüketilmesi, istemcilerin hizmet almasının
engellenmesi veya yavaşlatılması da bu tip bir saldırıdır. İyi huylu kullanıcı ile
kötü huylu ayırt edilemezse, sistemin çökmesi ile sonuçlanır. Çok büyük bant
genişliği ve firewall maliyetlerini yanında getirmektedir.
Gezici Kod (Mbile Code)
En yaygın gezici kod örneği, applet’lerdir. Bir tarayıcı çalıştırmış olan kullanıcı,
kodu web sunucusunda tutulan bir appletin linkini seçerse, kod kullanıcının
makinesine indirilerek çalıştırılır; bu makinedeki kaynaklara erişir.
Gezici kod, sunucuların yükünü azaltmak açısından avantajlıdır. Ancak
kullanıcının kaynaklarına zarar verecek şekilde kötüye kullanılabileceğinden,
bir güvenlik tehdididir.
TBIL-106 ÖDEV #7
Dağıtık Sistemlerin Kullanım Amaçları
Kullanıcıya yönelik (neden dağıtık sistem?)
Kullanıcı ve kaynakların kolayca bağlanması
Şeffaflığın sağlanması
Teknik hedefler (nasıl başarılır?)
Açık olarak
Ölçeklenebilir olarak
Bu hedeflere bakmak şu soruyu cevaplamaya yardımcı olur:
“dağıtık bir sistem kurmak, uğraşmaya değer mi?”
Dağıtık Sistemlerin Gerekliliği
İşlevsel ayrım:
Kapasite ve amaç bakımından farklı bilgisayarların varlığı:
İstemciler ve Sunucular
Veri toplama ve veri işleme
Doğal dağıtıklık:
Bilgi:
Farklı bilgiler farklı kişiler tarafından oluşturulup kontrol
edilir (Web sayfaları gibi)
İnsan:
Bilgisayar destekli işbirliği (sanal ekipler, mühendislik, sanal
ameliyat)
Süpermarket zincirleri için perakende ve stok sistemleri
Güç dengesizliği ve yük çeşitliliği:
İşlem yükünün farklı bilgisayarlar arasında dağıtılması.
Güvenilirlik:
Farklı yerlerde uzun süreli koruma ve veri yedekleme (çoğaltma).
Ekonomi:
Birçok kullanıcı arasında yazıcı paylaşımı ile sahip olma masrafının
azaltılması.
Bir bilgisayar ağından süper-bilgisayar elde etme.
TBIL-106 ÖDEV #8
Dağıtık sistemlerdeki bilgisayarlar ayrı kıtalar üzerinde, aynı bina veya aynı oda
içerisinde bulunabilir. DS’in getirdikleri:
Birlikte ve birbirinden bağımsız çalışan sistemler
İşlerini birbirinden bağımsız yaparlar
Aynı zamanda program çalıştırır, bütün bir işleme kaynağı gibi
görünür, birlikte çalışırlar
İşlemler mesaj alışverişiyle anlaşırlar.
Heterojen (çeşitlilik, farklılık): networks, hw, os, PLan
Ortak saat yok: Bilgisayarlar saatlerini kısıtlı derecede senkronize
edebilir
Bağımsız bozulma: biri bozulsa da diğerleri çalışmaya devam eder.
Paralel işlemler
Birlikte çalışan bağımsız bileşenler
Mesaj gönderme ile iletişim
Ortak bellek yok (No shared memory)
Kaynak paylaşımı
Yazıcı, veri tabanı, diğer servisler
Genel sistem durumu belirli değil (No global state)
Hiçbir işlem, sistemin genel durumuna dair bir bilgi edinemez Ortak saat
yok
İşlemler için sadece kısıtlı derecede saat eşitleme mümkün olabilir.
1. Kullanıcılarla kaynakları birleştirmek: Erişim servisleri uygulama çalıştırır
Belirli kaynaklar:
Yazıcılar, bilgisayarlar, işleme gücü, veri
Neden paylaşım?
Ekonomi
İşbirliği, Bilgi değiş-tokuşu (grup çalışması)
Paylaşım problemleri
Güvenlik
İstenmeyen işbirlikleri
2. Şeffaflık: Kaynaklar ve işlemlerin ağ üzerinde dağıtık olduğu açık değildir
3. Açıklık: Servislerin sentaks ve semantikleri ile ilgili standart kurallar
4. Ölçeklenebilirlik: Daha fazla kullanıcı/kaynak, coğrafya, yönetim
5. Uzun süre bozulmadan çalışma
Model Yönü İletişim İletişim nasıl sağlanır
– senkron iletişim
Mesaj gönderme ve alma ̈Eş zamanlı̈
TBIL-106 ÖDEV #9
– asenkron iletişim
Gönderme ve alma bağlı değil (Buffer, Kanallar, vb.)
Mesajlar sınırlı bir zamanla iletilirler ya da maksimum bir zaman yoktur.
Mesajlar mutlaka bir zamanda iletilirler ya da kayıp vardır.
– FIFO ya da not FIFO
Bir kanaldan önce gönderilen mesajın önce alınıp alınamayacağının kararı
– Noktadan-noktaya veya Yayın(Broadcast)
Bir mesaj bir anda sadece bir sürece veya daha fazlasına iletilebilir.
– Ne gönderilebilir
Sadece değerler,
referanslar
ve aktif elemanlar(Süreçler) gönderilebilir.
Multiprocessor (çok işlemcili) sistemler: DS değil
Shared memory (ortak bellek)
Bus-based interconnection network (kablolu bağlantı)
Örnek: İki veya daha fazla CPU’lu SMP’ler (symmetric
multiprocessor)
Çoklu bilgisayar sistemleri: DS değil
No shared memory (ortak bellek yok)
Homojen donanım ve yazılım
Massively Parallel Processors (MPP)
Tightly coupled high-speed network
PC/Workstation clusters
High-speed networks/switches based connection.

TBIL-106 ÖDEV #10
Internet: birbirine bağlı çeşitli bilgisayar ağları.
Uygulamalar iletişimi mesajlarla sağlar
Dağıtık sistem kullanıcıları www, email, dosya gönderme gibi
servislerden faydalanır
Intranet: bir organizasyon tarafından yönetilen alt ağ. Yerel güvenlik
politikasıyla sınırlıdır.
Uydu bağlantısı, fiber-optik kablolar gibi hızlı iletim kapasitesi
olan ağ altyapısı ile bağlıdırlar
Kablosuz ağlar
Genel internet uygulamaları ve servisleri:

Müzik, radyo, TV kanalları, video konferans erişimi için multimedia servisleri,
ve çoklu kullanıcı desteği.
Internet, çeşitli servisler barındıran birçok farklı bilgisayar türlerinden oluşan
büyük bir ağ topluluğudur.
Genel bir intranet;

Internetin bir alt parçası olup, ayrıca yönetilir ve kaynakların ağ içerisinde
paylaşımını destekler (dosya/depolama sistemleri ve yazıcılar)

TBIL-106 ÖDEV #11
Dağıtık Sistem Ürün Ortamı Sorun ve
Çözümleri

Online kitapçı (World Wide Web üzerinde)
Müşteriler kendi bilgisayarlarıyla sizin bilgisayarınıza (web
sunucunuza) bağlanabilir:
Stokunuza bakabilir
Sipariş verebilir
…
Ya . . . ?
Müşteriniz çok farklı bir donanım sistemi kullanıyorsa? (PC,
MAC,…)
… farklı bir işletim sistemi? (Windows, Unix,…)
… farklı bir veri gösterim biçimi? (ASCII, EBCDIC,…)
Çeşitlilik (networks, h/w, os, prog lan, impl)
Veya . . . ?
İşinizi ve bilgisayarlarınızı Güney’e taşımak isterseniz (hava
şartlarından dolayı)?
Müşterileriniz Güney’e taşınırsa (daha muhtemel)?
Konum / Taşınma / Dağılım şeffaflığı
Ya . . . ?
İki müşteri aynı ürünü aynı anda sipariş verirse?
Concurrency (Aynı anda kullanım)
Veya . . . ?
Stok bilginizi tutan veri tabanı çökerse?
Sipariş esnasında müşterinizin bilgisayarı çökerse?
Fault tolerance (Hata payı)
Ya . . . ?
Birileri veri çalmak için sisteminize girmeye çalışırsa?
… bilgi çekerse?
… müşteriniz sipariş verir de, sonradan vermedim diyerek ürün
teslimini reddederse?
TBIL-106 ÖDEV #12
Security (Güvenlik)
Veya . . . ?
Öyle başarılı olursunuz da, milyonlarca insan aynı anda online
mağazanızı aynı anda ziyaret ederse?
Scalability (Ölçeklenebilirlik)
Sistem kurulurken …
Bütün yazılımı tek başınıza mı yazmak istersiniz (network,
database,…)?
Güncellemeler, yeni teknoloji takibi?
Reuse (tekrar kullanılabilirlik) ve Openness (açıklık)
(Standartlar)
Heterogeneity (Çeşitlilik)
Çeşitli bileşenler birbiriyle uyumlu şekilde çalışabilmeli
Distribution transparency (Dağınıklık şeffaflığı)
Dağınıklığın varlığı mümkün oldukça kullanıcıdan saklanmalı
Fault tolerance (Hata payı)
Bir bileşenin bozulması (kısmi bozukluk) tüm sistemin
bozulmasına sebep olmamalı
Scalability (Ölçeklenebilirlik)
Sistem, artan kullanıcı sayısına rağmen verimli çalışmaya devam
edebilmeli
Sisteme yeni kaynaklar eklenerek performans artışı
sağlanabilmeli.

TBIL-106 ÖDEV #13
Dağıtık sistemler çeşitli bileşenler birbiriyle uyumlu şekilde
çalışabilmeli
İşletim sistemleri
Donanım mimarileri
İletişim mimarileri
Programlama dilleri
Yazılım arayüzleri
Güvenlik ölçüleri
Bilgi gösterimleri
Şeffaf DS: Kullanıcılara, tek bir bilgisayar sistemi gibi görünür, bağımsız
bilgisayarlar topluluğu olarak değil.
Şeffaflık çeşitleri
Erişim: Veri gösterimindeki farklar, ve kaynaklara nasıl erişildiği
gizlenir. Yerel ve uzak kaynaklara erişim aynı işlemlerle sağlanır.
Örn., Network File Systems (Ağ Dosya Sistemleri)
Konum: Bir kaynağın bulunduğu yer gizlenir. Kaynaklara,
fiziksel konumları bilinmeden erişilir. Alan adının (domain name)
makine adresinden ayrımı gibi.
Migration (Taşınma): Kaynağın yer değiştirme durumu gizlenir
Relocation (Yeniden konumlandırma): Kaynağın, kullanım
esnasında, yer değiştirme durumu gizlenir
Migration / relocation şeffaflığı, bir sistemdeki kullanıcıların veya
uygulamaların işlemlerini etkilemeden taşınabilmelerine olanak
sağlar.
Çalışma esnasında (runtime) bir isim sunucusundan
(name server) bir başkasına geçiş yapma
Bir vekil veya işlemin (agent/process) bir düğümden
(node) diğerine taşınması gibi
Şeffaflık
Her zaman istenmez: Farklı kıtalarda bulunan kullanıcılar
(context-aware), time-zone (zaman-dilimi), hız
Her zaman mümkün olmaz: Hataların gizlenmesi (bir bilgisayar
yavaş mı, bozuk mu)
Yüksek şeffaflık ile performans arasındaki denge
Replication (Kopyalama): Bir kaynağın birden fazla yerde
yedeğinin (kopyasının) tutulduğu gizlenir. Kopyalanmış
kaynaklara, sadece bir kopya varmış gibi erişilir. Güvenilirlik ve
performans kopyalarla artırılır, ama kullanıcıların veya uygulama
geliştiricilerinin kopyalardan haberi olmaz.
TBIL-106 ÖDEV #14
Concurrency (Birlikte çalışma): Bir kaynağın birden fazla
kullanıcı tarafından paylaşıldığı gizlenir. Bir işlem, diğer bazı
işlemlerin de aynı kaynaklara erişmekte olduğunun farkında
olmamalıdır
Failure (Bozulma): Bir kaynağın bozulma veya düzelme durumu
gizlenir. Bozulmalar olsa da, görevler tamamlanabilir. Mesaj
iletim tekrarı, bir ağ sunucusu düğümünün bozukluğu, web
sitesini çökertmemeli.
Persistence (Süreklilik): Bir yazılım kaynağının bellekte veya
disk üzerinde olma durumu gizlenir.
Performans: Yük değişimine göre performansı artırmak için sistemin tekrar
yapılandırılması sağlanır. Örn., bileşenlerin dinamik olarak eklenip kaldırılması.
Kullanıcı sayısı artınca, doğrusal yapılardan basamaklı (hierarchical) yapılara
geçilmesi.
Scaling (Ölçekleme): Sistemin ve uygulamaların, sistem yapısında veya
uygulama algoritmalarında değişikliğe gerek olmadan genişletilmesine olanak
sağlar.
TBIL-106 ÖDEV #15
Ağ şeffaflığı: erişim + konum şeffaflıkları
Hata algılama
Checksums (sağlama), heartbeat (kalp atışı), …
Hata maskeleme
Bozuk mesajların tekrar gönderimi, fazlalık, …
Hataya müsamaha
Exception handling (istisna işleme), timeouts (zaman aşımları),…
Hatadan kurtulma
Rollback (geri sarma) mekanizmaları,…
TBIL-106 ÖDEV #16
Sistem Verimliliği ve Ölçeklenebilirlik

Sistem, küçük bir Intranet’ten Internet’e kadar uzanan birçok farklı ölçekte
verimli olarak çalışabilmeli.
Kaynak ve kullanıcı sayısında belirgin bir artış olsa da etkili olarak çalışmaya
devam edebilmeli.
Zamanla her şey çoğalır, kullanıcılar artar, bilgisayar sayısı büyür, veri miktarı
fazlalaşır, ...
Sistemler nasıl ölçeklenebilir olur? Sadece donanım eklemekle mümkün değil.
Bir makinenin 20 kullanıcıya hizmet vermesi, iki makinenin 40 kullanıcıya
hizmet vereceği anlamına gelmez.
Resource (Kaynak):
Yalnız bir kullanıcı ! kısıtlı verim
Çoklu istemci talepleri: birlikte erişim
Paylaşılan kaynaklara çoklu erişimin desteklenip yönetilmesi:
Birlikte çalışılan ortamdaki bir nesnenin güvende olması için
işlemleri, verileri tutarlı kalacak şekilde, senkronize olmalı
(eşitlenmeli) (örn. Banka hesabı).
Bu, dağıtık olmayan sistemlerde semafor kullanımından daha
zordur.
Availability (Ulaşılabilirlik)
Kaynak erişim yollarındaki çakışmalara karşı koruma.
Örn. Servis saldırılarının reddi
Reddedilememe
Bir bilginin gönderilme / alınma delili
Örn. Dijital imza
Encryption (Şifreleme)
Örn. Blowfish, RSA
Authentication (Doğrulama)
Örn. password (şifre), açık anahtarla yetkilendirme
TBIL-106 ÖDEV #17
Authorization (Yetkilendirme)
Örn. erişim kontrol listeleri
Dağıtık sistemler her yerde bulunur.
Internet, dünyanın her bir yanındaki kullanıcıların, her bir yandaki servislere
erişimlerini sağlar.
Kaynak paylaşımı dağıtık sistem kurmaya teşvik eden etmenlerin başta
gelenidir.
DS kurulumu birçok zorluğu beraberinde getirir:
Çeşitlilik, Açıklık, Güvenlik, Ölçeklenebilirlik, Hata denetimi,
Birlikte çalışma, Şeffaflık.
Dağıtık sistemler küreselleşmeyi sağlar:
Topluluk (Sanal takımlar, kuruluşlar, sosyal ağlar)
Science (e-Science) (Bilim)
Business (e-Bussiness) (İş)

TBIL-106 ÖDEV #18
Uzak Sunucu Yöntemini Çağırmak İçin
Gerekli Adımlar
Uzak programlama ile sunucu katmanındaki bileşene ait bir yöntemi veya
kısaca uzak sunucu yöntemini çağırmak için aşağıdaki adımlar izlenir:
1. Keşif (discovery): Sunucunun ağdaki adresinin belirlenmesi işlemidir.
2. Müzakere (negotiation): İstemci ile sunucunun, bir sözleşme (conract)
üzerinden, nasıl iletişim yapacağı konusunda anlaşmaya varmasıdır.
3. Uzak işlevin çağrılması (invocation): Sunucu işlevlerinin uzaktan çağrılıp,
çalıştırılması işlemidir. Bu işlem çağırma (calling) olarak da adlandırılır.
Bu adımlar izlenirken karşılaşılan güçlükler aşağıda sıralanmıştır;
1. Sunucudaki nesnenin referansını elde etme,
2. Nesne yaratma (instantiation) ve ömür (lifetime) yönetimi,
3. Ağ üzerinde veriler bit bit veya bayt bayt aktarılır. Bu nedenle nesneye
dayalı yöntemlerin bayt akışı (byte stream) kullanarak çağırılmasının
yaratacağı problemler,
4. Çok kullanıcılı yazılımlarda güvenlik,
5. Güvenilmez ağ bağlantılarına (unreliable network connections) karşı
önlemler,
6. Zaman uyumsuz (asynchronous) işlemler.
$
Yukarıda bahsedilen 3. madde üzerinde durmak gerekir. Sunucu bileşenleri
nesne olarak tasarlandıklarından, nesneye dayalı yöntemleri (method)
çağırmak için internet üzerinde bilgi iletişimi teknolojisi olarak bayt akışı (byte
stream) kullanılır. Bunu bir web servisinden yararlanacak A ve B gibi iki
uygulama ile açıklayalım;
1. A uygulamasının web servisinden yaptığı istekleri B uygulaması açığa
çıkarabilir.
2. A uygulamasının isteklerinin biriktiği protokol yığını (protocol stack)
parçalara bölünerek düşük düzey veri paketleri olarak, byte akışı üzerinden,
servise gönderilir. Bu durumda B uygulaması sözkonusu paketleri tersine
kullarak çağrılan işlevi açığa çıkarabilir.
Uzak programlama yapılırken bu problemleri bertaraf edecek önlemler
alınmalıdır.
TBIL-106 ÖDEV #19
Günümüzde yazılım geliştirilen tüm platformlar TCP (Transmission Control
Protocol) protokolünü desteklemektedir. Bu nedenle yazılımcılar genellikle bu
protokolü kullanarak uzak programlama yaparlar.
Dağıtık programlamayı sağlayan bütün teknolojilerin temelinde Frank
Buschmann tarafından 1996 yılında geliştirilen Simsar (broker pattern) adlı
çözüm örüntüsü yatar. Bu nedenle uzak programlama yapacak programcıların
bu örüntüyü mutlaka bilmesi gerekir.

TBIL-106 ÖDEV #20
MPI (Message Passing Interface) Mesaj Geçiş Arayüzü
Bir grup akademisyen ve çeşitli şirketlerden katılımcılar tarafından
Yaygın kullanım ve Taşınabilirlik amaçlanarak oluşturulan bir kütüphane
standardıdır.
Sadece rutinleri belirler, implementasyonla alakası yoktur. Oldukça fazla
bedava ve de özgür implementasyonu mevcut Sürüm 1'de sadece statik süreç
oluşturma vardı
Sürüm 2'de dinamik olarak da kullanılabilmektedir.
MPI - Örnek
int main (int argc, char *argv[])
{
MPI_Init(&argc, &argv);
.
.
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
if (myrank == 0)
master();
else
slave();
.
.
MPI_Finalize();
}
TBIL-106 ÖDEV #21
MPI KOMUTLARININ KISA TANIMLARI
MPI – Diğer Rutinler MPI_Send(buf, count, datatype, dest, tag, comm)
Bloke eden gönder rutini
MPI_Recv(buf, count, datatype, src, tag, comm, status)
Bloke eden alma rutini
MPI_Isend (...) / MPI_Irecv(...) - bloke etmeyen gönder/al
MPI_Wait() ve MPI_Test() ile denetlenebilirler MPI_Bcast() / MPI_Gather() /
MPI_Scatter()
MPI_Reduce() - MPI_Gather gibi ama bir işlem yaparak alır MPI_Barrier() -
Grup senkronizasyonu *
MPI_SendRecv() - İkili senkronizasyon

TBIL-106 ÖDEV #22
MPI – Örnek program
#include “mpi.h”
#include <stdio.h>
#include <math.h>
#define MAXSIZE 1000
void main(int argc, char **argv)
{
int myid, numprocs;
int data[MAXSIZE], i, x, low, high, myresult, result; char fn[255];
char *fp;
M P I _ I n i t ( & a r g c , & a r g v ) ;
M P I _ C o m m _ s i z e ( M P I _ C O M M _ W O R L D , & n u m p r o c s ) ;
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
if (myid == 0)
{ /* Open input file and initialize data */
strcpy(fn,getenv(“HOME”));
strcat(fn,”/MPI/rand_data.txt”);
if ((fp = fopen(fn,”r”)) == NULL) {
printf(“Can’t open the input file: %snn”, fn);
exit(1); }
for(i = 0; i < MAXSIZE; i++)
fscanf(fp,”%d”, &data[i]);
MPI_Bcast(data, MAXSIZE, MPI_INT, 0, MPI_COMM_WORLD);
/* broadcast data */
x = MAXSIZE/numprocs; /* Add my portion Of data */
low = myid * x;
high = low + x;
myresult = 0;
for(i = low; i < high; i++)
myresult += data[i];
printf(“I got %d from %dn”, myresult, myid);
/* Compute global sum */
MPI_Reduce(&myresult, &result, 1, MPI_INT, MPI_SUM, 0,
TBIL-106 ÖDEV #23
MPI_COMM_WORLD);
if (myid == 0)
printf(“The sum is %d.n”, result);
MPI_Finalize();
}
MPI – Derleme & Çalıştırma
A. ssh / rsh hazırlanır
B. Hesaplamada kullanılacak bilgisayarların listesi (hostfile) hazırlanır
C. mpicc ile programlar derlenir
D. mpirun ile çalıştırılır

TBIL-106 ÖDEV #24
3 Kaynaklar
[1] Distributed Systems Concepts and Design, Coulouris, Dollimore, Kindberg
[2] Computer Networks, Tanenbaum
[3] Authentication in Distributed Systems:Theory and Practice, Lampson,
Abadi, Burrows, Wobber, Digital Equipment Corporation
[4] The Protection of Information in Computer Systems, Saltzer and Schroder,
IEEE Invited Paper
[5] Geist A, Beguelin A, Dongarra J, Jiang W, Manchek R, Sunderam V. PVM 3
User’s Guide and Reference Manual. Oak Ridge National Labs. September
1994..
[6] Özmen A. A Minimal Overhead Instrumentation System. Proceedings of the
Fifteenth International Symposium on Computer and Information Sciences
(ISCIS XV). 2000;102–110.
[7]MPI: Complete Reference http://www.csd.uoc.gr/~hy555/mpi/
mpi_complete_reference.pdf
TBIL-106 ÖDEV #25

More Related Content

What's hot

엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...
엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...
엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...Amazon Web Services Korea
 
Her Yönüyle Temel Bulut Bilişim
Her Yönüyle Temel Bulut BilişimHer Yönüyle Temel Bulut Bilişim
Her Yönüyle Temel Bulut BilişimMustafa Özdemir
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018Amazon Web Services Korea
 
System models for distributed and cloud computing
System models for distributed and cloud computingSystem models for distributed and cloud computing
System models for distributed and cloud computingpurplesea
 
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...Amazon Web Services Korea
 
AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)
AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)
AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)Amazon Web Services
 
Dağıtık Veritabanı Sistemleri
Dağıtık Veritabanı SistemleriDağıtık Veritabanı Sistemleri
Dağıtık Veritabanı Sistemleriİsmail ŞEN
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Murat KARA
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureSyed Mustafa
 
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | EdurekaAmazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | EdurekaEdureka!
 
Cloud Computing Training PPT
Cloud Computing Training PPTCloud Computing Training PPT
Cloud Computing Training PPTAmit Poonia
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)WSO2
 
Cloud computing in a nutshell
Cloud computing in a nutshellCloud computing in a nutshell
Cloud computing in a nutshellMehmet Gonullu
 
Cloud computing
Cloud computingCloud computing
Cloud computingArar Fahem
 

What's hot (20)

Getting Started on AWS
Getting Started on AWS Getting Started on AWS
Getting Started on AWS
 
AWS Storage Options
AWS Storage OptionsAWS Storage Options
AWS Storage Options
 
엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...
엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...
엔터프라이즈 클라우드 마이그레이션 준비와 실행. 그리고, 클라우드 운영 모범 사례 공유-최지웅, 오픈소스컨설팅 CTO / 장진환, 스마일샤...
 
Dynamodb ppt
Dynamodb pptDynamodb ppt
Dynamodb ppt
 
Her Yönüyle Temel Bulut Bilişim
Her Yönüyle Temel Bulut BilişimHer Yönüyle Temel Bulut Bilişim
Her Yönüyle Temel Bulut Bilişim
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
 
System models for distributed and cloud computing
System models for distributed and cloud computingSystem models for distributed and cloud computing
System models for distributed and cloud computing
 
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
 
AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)
AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)
AWS re:Invent 2016: Building Complex Serverless Applications (GPST404)
 
Dağıtık Veritabanı Sistemleri
Dağıtık Veritabanı SistemleriDağıtık Veritabanı Sistemleri
Dağıtık Veritabanı Sistemleri
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | EdurekaAmazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka
Amazon AWS | What is Amazon AWS | AWS Tutorial | AWS Training | Edureka
 
Cloud Computing Training PPT
Cloud Computing Training PPTCloud Computing Training PPT
Cloud Computing Training PPT
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
 
Cloud computing in a nutshell
Cloud computing in a nutshellCloud computing in a nutshell
Cloud computing in a nutshell
 
Cloud sim
Cloud simCloud sim
Cloud sim
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
AWS Technical Essentials Day
AWS Technical Essentials DayAWS Technical Essentials Day
AWS Technical Essentials Day
 

Viewers also liked

Büyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve HadoopBüyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve HadoopCenk Derinozlu
 
Dagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde GuvenlikDagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde Guvenlikeroglu
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed SystemsRupsee
 
BILISIM TEKNOLOJILERI ve KALITE YONETIMI
BILISIM TEKNOLOJILERI ve KALITE YONETIMIBILISIM TEKNOLOJILERI ve KALITE YONETIMI
BILISIM TEKNOLOJILERI ve KALITE YONETIMIAhmet Pekel
 
SAP IQ ile Gerçek Zamanlı Raporlama
SAP IQ ile Gerçek Zamanlı RaporlamaSAP IQ ile Gerçek Zamanlı Raporlama
SAP IQ ile Gerçek Zamanlı RaporlamaSybase Türkiye
 
ElasticSearch vs Solr Karşılaştırması
ElasticSearch vs Solr KarşılaştırmasıElasticSearch vs Solr Karşılaştırması
ElasticSearch vs Solr KarşılaştırmasıHasan İslamoğlu
 
Scalability performance on_php
Scalability performance on_phpScalability performance on_php
Scalability performance on_phpMustafa Ileri
 
8 adımda doğru ERP çözümü
8 adımda doğru ERP çözümü8 adımda doğru ERP çözümü
8 adımda doğru ERP çözümüMuharrem Gezer
 
Erp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara OnerilerErp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara OnerilerÖzer Mustafa Onar
 
Cassandra
CassandraCassandra
Cassandraexsuns
 
BILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGI
BILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGIBILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGI
BILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGIAhmet Pekel
 
Intro to cassandra
Intro to cassandraIntro to cassandra
Intro to cassandraAaron Ploetz
 
Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)zznate
 
Mobil Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve GeliştiricilerMobil  Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiricilermerveyildiz1
 
BIG DATA Nedir ve IBM Çözümleri.
BIG DATA Nedir ve IBM Çözümleri.BIG DATA Nedir ve IBM Çözümleri.
BIG DATA Nedir ve IBM Çözümleri.Cuneyt Goksu
 
MapReduce Scheduling Algorithms
MapReduce Scheduling AlgorithmsMapReduce Scheduling Algorithms
MapReduce Scheduling AlgorithmsLeila panahi
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache CassandraSperasoft
 

Viewers also liked (20)

Büyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve HadoopBüyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve Hadoop
 
Dagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde GuvenlikDagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde Guvenlik
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
 
Erp nedir
Erp nedirErp nedir
Erp nedir
 
BILISIM TEKNOLOJILERI ve KALITE YONETIMI
BILISIM TEKNOLOJILERI ve KALITE YONETIMIBILISIM TEKNOLOJILERI ve KALITE YONETIMI
BILISIM TEKNOLOJILERI ve KALITE YONETIMI
 
SAP IQ ile Gerçek Zamanlı Raporlama
SAP IQ ile Gerçek Zamanlı RaporlamaSAP IQ ile Gerçek Zamanlı Raporlama
SAP IQ ile Gerçek Zamanlı Raporlama
 
ElasticSearch vs Solr Karşılaştırması
ElasticSearch vs Solr KarşılaştırmasıElasticSearch vs Solr Karşılaştırması
ElasticSearch vs Solr Karşılaştırması
 
Scalability performance on_php
Scalability performance on_phpScalability performance on_php
Scalability performance on_php
 
NoSQL - Yazılımcı Bakışıyla
NoSQL - Yazılımcı BakışıylaNoSQL - Yazılımcı Bakışıyla
NoSQL - Yazılımcı Bakışıyla
 
8 adımda doğru ERP çözümü
8 adımda doğru ERP çözümü8 adımda doğru ERP çözümü
8 adımda doğru ERP çözümü
 
Erp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara OnerilerErp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara Oneriler
 
Cassandra
CassandraCassandra
Cassandra
 
MRP I MRP II
MRP I MRP IIMRP I MRP II
MRP I MRP II
 
BILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGI
BILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGIBILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGI
BILISIM TEKNOLOJILERINDE HIZMET YONETIMI ve BILGI GUVENLIGI
 
Intro to cassandra
Intro to cassandraIntro to cassandra
Intro to cassandra
 
Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)
 
Mobil Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve GeliştiricilerMobil  Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiriciler
 
BIG DATA Nedir ve IBM Çözümleri.
BIG DATA Nedir ve IBM Çözümleri.BIG DATA Nedir ve IBM Çözümleri.
BIG DATA Nedir ve IBM Çözümleri.
 
MapReduce Scheduling Algorithms
MapReduce Scheduling AlgorithmsMapReduce Scheduling Algorithms
MapReduce Scheduling Algorithms
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache Cassandra
 

Similar to Dağıtık Sistemler / Programlama

Bilgisayar aglari
Bilgisayar aglariBilgisayar aglari
Bilgisayar aglarisaserap
 
Lojistik Bilişim Sistemleri
Lojistik Bilişim SistemleriLojistik Bilişim Sistemleri
Lojistik Bilişim SistemleriGurdal Ertek
 
Lojistik Bilişim Sistemleri
Lojistik Bilişim SistemleriLojistik Bilişim Sistemleri
Lojistik Bilişim Sistemleriertekg
 
İşletim Sistemleri ve Dosya Yönetimi
İşletim Sistemleri ve Dosya Yönetimiİşletim Sistemleri ve Dosya Yönetimi
İşletim Sistemleri ve Dosya YönetimiSakarya Üniversitesi
 
BTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin TemelleriBTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin Temellerideniz armutlu
 
Windows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliWindows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliCaner Öztürkten
 
Işletim sistemleri
Işletim sistemleriIşletim sistemleri
Işletim sistemlerisnakeyes31
 
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAğ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAlonelaz
 
OSI Standartları.pptx
OSI Standartları.pptxOSI Standartları.pptx
OSI Standartları.pptxCanBerkARMAN
 
Network101 murat arslan
Network101 murat arslanNetwork101 murat arslan
Network101 murat arslanMURAT ARSLAN
 
OSI Standartları-FurkanSimsek-21907040.pptx
OSI Standartları-FurkanSimsek-21907040.pptxOSI Standartları-FurkanSimsek-21907040.pptx
OSI Standartları-FurkanSimsek-21907040.pptxFurkanimek12
 
Bilgi Güvenliği ve Log Yönetimi Sistemlerinin Analizi
Bilgi Güvenliği ve Log Yönetimi Sistemlerinin AnaliziBilgi Güvenliği ve Log Yönetimi Sistemlerinin Analizi
Bilgi Güvenliği ve Log Yönetimi Sistemlerinin AnaliziErtugrul Akbas
 

Similar to Dağıtık Sistemler / Programlama (20)

Isl sis
Isl sisIsl sis
Isl sis
 
Bilgisayar aglari
Bilgisayar aglariBilgisayar aglari
Bilgisayar aglari
 
Lojistik Bilişim Sistemleri
Lojistik Bilişim SistemleriLojistik Bilişim Sistemleri
Lojistik Bilişim Sistemleri
 
Lojistik Bilişim Sistemleri
Lojistik Bilişim SistemleriLojistik Bilişim Sistemleri
Lojistik Bilişim Sistemleri
 
İşletim Sistemleri ve Dosya Yönetimi
İşletim Sistemleri ve Dosya Yönetimiİşletim Sistemleri ve Dosya Yönetimi
İşletim Sistemleri ve Dosya Yönetimi
 
BTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin TemelleriBTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin Temelleri
 
Nurdan Sarıkaya
Nurdan Sarıkaya Nurdan Sarıkaya
Nurdan Sarıkaya
 
Windows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliWindows 8 Ögretim Materyali
Windows 8 Ögretim Materyali
 
Işletim sistemleri
Işletim sistemleriIşletim sistemleri
Işletim sistemleri
 
Sunum 13 (1)
Sunum 13 (1)Sunum 13 (1)
Sunum 13 (1)
 
Sunum 13
Sunum 13Sunum 13
Sunum 13
 
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAğ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
 
1.modül
1.modül1.modül
1.modül
 
OSI Standartları.pptx
OSI Standartları.pptxOSI Standartları.pptx
OSI Standartları.pptx
 
Nurdan Sarıkaya
Nurdan SarıkayaNurdan Sarıkaya
Nurdan Sarıkaya
 
Temel linux
Temel linuxTemel linux
Temel linux
 
Network101 murat arslan
Network101 murat arslanNetwork101 murat arslan
Network101 murat arslan
 
OSI Standartları-FurkanSimsek-21907040.pptx
OSI Standartları-FurkanSimsek-21907040.pptxOSI Standartları-FurkanSimsek-21907040.pptx
OSI Standartları-FurkanSimsek-21907040.pptx
 
60bildiri
60bildiri60bildiri
60bildiri
 
Bilgi Güvenliği ve Log Yönetimi Sistemlerinin Analizi
Bilgi Güvenliği ve Log Yönetimi Sistemlerinin AnaliziBilgi Güvenliği ve Log Yönetimi Sistemlerinin Analizi
Bilgi Güvenliği ve Log Yönetimi Sistemlerinin Analizi
 

More from Şahabettin Akca

‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf
‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf
‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdfŞahabettin Akca
 
siyaset bilimi ve uluslarası ilişkiler auzef
siyaset bilimi ve uluslarası ilişkiler auzefsiyaset bilimi ve uluslarası ilişkiler auzef
siyaset bilimi ve uluslarası ilişkiler auzefŞahabettin Akca
 
Avrupa Masalı ( İstanbul Hareketli ).pdf
Avrupa Masalı ( İstanbul Hareketli ).pdfAvrupa Masalı ( İstanbul Hareketli ).pdf
Avrupa Masalı ( İstanbul Hareketli ).pdfŞahabettin Akca
 
İş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdf
İş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdfİş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdf
İş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdfŞahabettin Akca
 
Feature selection - metin madenciliği özellik seçimi
Feature selection - metin madenciliği özellik seçimiFeature selection - metin madenciliği özellik seçimi
Feature selection - metin madenciliği özellik seçimiŞahabettin Akca
 
Bilgi Güvenliği Sunumu Nisan 2019
Bilgi Güvenliği Sunumu Nisan 2019Bilgi Güvenliği Sunumu Nisan 2019
Bilgi Güvenliği Sunumu Nisan 2019Şahabettin Akca
 
Magnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleri
Magnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleriMagnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleri
Magnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleriŞahabettin Akca
 
Hoca Ahmet Yesevi Hayatı, Eğitimi ve Esereri
Hoca Ahmet Yesevi Hayatı, Eğitimi ve EsereriHoca Ahmet Yesevi Hayatı, Eğitimi ve Esereri
Hoca Ahmet Yesevi Hayatı, Eğitimi ve EsereriŞahabettin Akca
 
İşletim Sistemi Bellek Yönetimi
İşletim Sistemi Bellek Yönetimiİşletim Sistemi Bellek Yönetimi
İşletim Sistemi Bellek YönetimiŞahabettin Akca
 
Analog Sayısal ve Sayısal Analog Çeviriciler
Analog Sayısal ve Sayısal Analog ÇeviricilerAnalog Sayısal ve Sayısal Analog Çeviriciler
Analog Sayısal ve Sayısal Analog ÇeviricilerŞahabettin Akca
 
Sokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCA
Sokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCASokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCA
Sokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCAŞahabettin Akca
 
Proje rapor oop program kullanım kılavuzu
Proje rapor oop program kullanım kılavuzuProje rapor oop program kullanım kılavuzu
Proje rapor oop program kullanım kılavuzuŞahabettin Akca
 
Temel Bilgisayar ve Günümüz Bilgisayarları ile Assembly
Temel Bilgisayar ve Günümüz Bilgisayarları ile AssemblyTemel Bilgisayar ve Günümüz Bilgisayarları ile Assembly
Temel Bilgisayar ve Günümüz Bilgisayarları ile AssemblyŞahabettin Akca
 
Bor Elementi - Şahabettin Akca
Bor Elementi - Şahabettin AkcaBor Elementi - Şahabettin Akca
Bor Elementi - Şahabettin AkcaŞahabettin Akca
 

More from Şahabettin Akca (16)

‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf
‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf
‘NASIL YAŞADIĞIMIZ DEĞİL, NASIL YAŞATTIĞIMIZ ÖNEMLİ’.pdf
 
siyaset bilimi ve uluslarası ilişkiler auzef
siyaset bilimi ve uluslarası ilişkiler auzefsiyaset bilimi ve uluslarası ilişkiler auzef
siyaset bilimi ve uluslarası ilişkiler auzef
 
Avrupa Masalı ( İstanbul Hareketli ).pdf
Avrupa Masalı ( İstanbul Hareketli ).pdfAvrupa Masalı ( İstanbul Hareketli ).pdf
Avrupa Masalı ( İstanbul Hareketli ).pdf
 
İş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdf
İş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdfİş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdf
İş sağlığı güvenliği mevzuat ve kişisel koruyucu donanımlar .pdf
 
Feature selection - metin madenciliği özellik seçimi
Feature selection - metin madenciliği özellik seçimiFeature selection - metin madenciliği özellik seçimi
Feature selection - metin madenciliği özellik seçimi
 
Kitap Tokat Sesli
Kitap Tokat SesliKitap Tokat Sesli
Kitap Tokat Sesli
 
Bilgi Güvenliği Sunumu Nisan 2019
Bilgi Güvenliği Sunumu Nisan 2019Bilgi Güvenliği Sunumu Nisan 2019
Bilgi Güvenliği Sunumu Nisan 2019
 
Magnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleri
Magnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleriMagnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleri
Magnetic Levitation (Manyetik Levitasyon) - Elektromekanik sistemleri
 
Çocuk ve Bilgisayar
Çocuk ve BilgisayarÇocuk ve Bilgisayar
Çocuk ve Bilgisayar
 
Hoca Ahmet Yesevi Hayatı, Eğitimi ve Esereri
Hoca Ahmet Yesevi Hayatı, Eğitimi ve EsereriHoca Ahmet Yesevi Hayatı, Eğitimi ve Esereri
Hoca Ahmet Yesevi Hayatı, Eğitimi ve Esereri
 
İşletim Sistemi Bellek Yönetimi
İşletim Sistemi Bellek Yönetimiİşletim Sistemi Bellek Yönetimi
İşletim Sistemi Bellek Yönetimi
 
Analog Sayısal ve Sayısal Analog Çeviriciler
Analog Sayısal ve Sayısal Analog ÇeviricilerAnalog Sayısal ve Sayısal Analog Çeviriciler
Analog Sayısal ve Sayısal Analog Çeviriciler
 
Sokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCA
Sokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCASokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCA
Sokrates niçin yargılandı, suçlamalar nelerdi, savunması - Şahabettin AKCA
 
Proje rapor oop program kullanım kılavuzu
Proje rapor oop program kullanım kılavuzuProje rapor oop program kullanım kılavuzu
Proje rapor oop program kullanım kılavuzu
 
Temel Bilgisayar ve Günümüz Bilgisayarları ile Assembly
Temel Bilgisayar ve Günümüz Bilgisayarları ile AssemblyTemel Bilgisayar ve Günümüz Bilgisayarları ile Assembly
Temel Bilgisayar ve Günümüz Bilgisayarları ile Assembly
 
Bor Elementi - Şahabettin Akca
Bor Elementi - Şahabettin AkcaBor Elementi - Şahabettin Akca
Bor Elementi - Şahabettin Akca
 

Dağıtık Sistemler / Programlama

  • 1. Bilgisayar Mühendisliği Şahabettin AKCA 132132178 TBIL-106 Bilgisayar Programlama II Ödev Dağıtık Programlama Ahmet Yesevi Üniversitesi - TURTEP
 TBIL-106 ÖDEV #1
  • 2. İçindekiler 1. Giriş………………………………………………….…….………3 2. Dağıtık Sistem Tanımı……………………………….…….………4 3. Dağıtık Mimari Yapı Gereksinimleri……………….……….……..5 4. Dağıtık Sistemler Avantaj ve Dezavantajları……….……….……..5 5. Dağıtık Sistem Örnekleri……………………..…….……….……..6 6. Dağıtık Sistem Güvenliği……………………..…….……….……..7 7. Dağıtık Sistemlerin Kullanım Amaçları…………….………….8-10 8. Internet ve Intranet………………………………………………11 9. Dağıtık Sistem Ürün Ortamı Sorun ve Çözümleri ..…………12-13 10.Dağıtık Sistem Bileşenleri…………………………………….14-15 11.Sistem Şeffaflığı ………………………………………………….16 12.Sistem Verimliliği ve Ölçeklenebilirlik ………………….……17-18 13.Uzak Sunucu Çağırma Yöntemi……………………………..19-20 14.MPI (Mesaj Geçiş Arayüzü)……………….……………………..21 15.MPI Komutlarının Kısa Tanımları………………………………22 16.MPI Örnek Program …………….………………………..…23-24 17.MPI Derleme ve Çalıştırma.……………………………………..24 18.Kaynakça ..………………………………………………………25 TBIL-106 ÖDEV #2
  • 3. Giriş Mühendislik uygulamalarında daha yüksek performanslı bilgisayarlara ihtiyaç her geçen gün daha da artmaktadır. Yüksek performanslı bilgisayarların yetenekleri ile üretime giden tasarım sürecinde bazı evreler ortadan kalkmış olup (örneğin prototip gerçekleme ve testler), bu işlemler artık benzetim yoluyla yapılmaktadır. Böylece, geliştirme sürecinde zaman ve paradan tasarruf edilmekte, yeni ürünlerin piyasaya çıkma periyodu kısalmaktadır. Yüksek performanslı sistemler işlemci saat frekansının arttırılması veya donanımın paralel kullanılmasıyla elde edilebilir. İşlemci saat frekansının arttırılması bir noktadan sonra ya ekonomik nedenlerle veya fiziksel sınırlar nedeniyle mümkün olmamaktadır. Bu nedenle daha fazla donanımın paralel olarak kullanılmasıyla performans arttırılması en çok tercih edilen yoldur. Bu yaklaşım kendini önce işlemci içinde paralellik ile gösterdi. Üretim hattı (pipeline) mimarisinde işlemci içine ilave edilen donanım ile aynı anda birden fazla komut icra edilebilir hale getirildi. Böylece komut seviyesinde paralellik yoluyla performans artırılmış oldu. Artık günümüz genel amaçlı bilgisayarlarında kullanılan işlemcilerinin hepsinde pipeline yapı kullanılmaktadır. Bu sistemlerde paralellik komut ölçeğinde olduğundan, kullanıcı açısından bir sorun veya değişiklik oluşmaz. Paralellik için gerekli düzenlemeler derleyici veya donanım içindeki alt birimler tarafından gerçeklenir.
 TBIL-106 ÖDEV #3
  • 4. Dağıtık Sistem Nedir ? Ağ üzerindeki bilgisayarlarda bulunan donanım veya yazılım bileşenlerinin yalnız mesaj göndererek haberleştikleri sistem. [Coulouris] Dağıtık sistem, farklı bilgisayarlardaki donanım ve yazılım bileşenleri arasında haberleşme ve koordinasyonunun sadece mesajlaşma yoluyla sağlanabildiği ağ olarak tanımlanır. Dağıtık sistemi diğer bilgisayar ağlarından farklı kılan özelliğin, ağın varlığı ve işlevinin kullanıcıya görünmemesi olduğu söylenebilir. Örneğin kullanıcı bir program çalıştırdığında, en iyi işlemciyi seçmek, giriş dosyalarını bu işlemciye aktarmak ve dönen sonuçları uygun yere koymak işlemcinin yürüttüğü işlerdir. Çok işlemcili bir dağıtık sistemde çalışmakta olmasına rağmen, kullanıcıya görünen ise tek bir sanal işlemcidir. Diğer ağlarda, kullanıcının kendisi bir makineye bağlanır, iş isteğinde bulunur, dosya gönderir vs. Diğer bir deyişle, ağ yönetim işlemleri kullanıcı tarafından yürütülür. Dağıtık sistem, bir ağ üzerine kuruludur. Yazılımla, ağdaki bileşenler arası işlevsel uyumluluk ve kullanıcı açısından saydamlık sağlanır. Dolayısıyla, dağıtık sistemin diğer ağlardan farkı donanım değil, yazılım katmanından – özellikle işletim sisteminden- kaynaklanmaktadır. Dağıtık sistemlerin var oluş amacı, kaynakları paylaşmaya duyulan gerekliliktir. Bu kaynaklar donanımsal bileşenler (disk, yazıcı) olabileceği gibi, dosyalar, veri tabanı, nesneler gibi yazılım varlıkları da olabilir. Bu büyük ağ da bulunan donanımlar kullanıcıya tek bir bilgisayar gibi davranır ve en iyi performansı sağlamayı amaçlar. 1. İzole değildir. 2. Cloud un temelini oluşturur 3. Senkron ve replike’dir 4. Yedekli çalışır TBIL-106 ÖDEV #4
  • 5. Dağıtık Mimari Yapı Gereksinimleri
 Dağıtık mimarinin yapılandırılması çalışabilmesi için çeşitli bileşenlerin birbiriyle uyumlu ve senkron şekilde çalışılabilmesi gerekmemektedir. 1. İşletim sistemleri 2. Donanım mimarileri 3. İletişim mimarileri 4. Programlama dilleri 5. Yazılım ara yüzleri 6. Güvenlik ölçüleri 7. Bilgi gösterimleri Dağıtık sistem Avantajları Dezavantajları
   Maliyet Merkezi yapı zorunluğu
 Erişim kolaylığı – hız performans Güvenlik
 Hesaplama ve depo alanı Her dilde yazım desteği yok
 Ölçeklenebilir İletişim
 Güvenilir(Reliable)
 Dağıtım kolaylığı (Web)
 Güvenlik 
 Şeffaflık: Kaynaklar ve işlemlerin ağ üzerinde dağıtık olduğu açık değildir
 Açıklık: Servislerin sentaks ve semantikleri ile ilgili standart kurallar
 Ölçeklenebilirlik: Daha fazla kullanıcı/kaynak, coğrafya, yönetim TBIL-106 ÖDEV #5
  • 6. Dağıtık Sistem Örnekleri Internet Internet, geniş bir dağıtık sistemdir. Internet kullanıcıları WWW, e-posta, dosya transferi servislerinden yararlanırlar. İç Ağlar (Intranet) $ Şekil 1. İç Ağ Şekil 1’de, birkaç yerel ağdan oluşan bir iç ağ görülmektedir. İç ağlarda kaynak paylaşımı sağlayan ve sıklıkla kullanılmakta olan sunucular, şekilde gösterilmiştir. (Her yerel ağ, tüm bu sunucuları içermeyebilir.) TBIL-106 ÖDEV #6
  • 7. Dağıtık Sistem Güvenliği Bir dağıtık sistemin güvenliği, süreçleri ve aralarındaki etkileşim için kullanılan kanalları güvenli hale getirmek ve süreçlerin kapçıkladığı nesneleri izinsiz erişime karşı korumakla sağlanır. Servisin Reddi (Denial of Service) Ddos atak olarak bilinen bu atak günümüzde bir çok bilişim sisteminin, büyük kapasiteli devlet ve banka ağlarının kilitlenmesine kadar gidebilmektedir. Sunuculara sürekli istek göndermek suretiyle sunucunun hizmet kapasitesinin doldurulup kilitlenmesidir. Ağa çok fazla mesaj gönderilerek fiziksel kaynakların (bant genişliği gibi) tüketilmesi, istemcilerin hizmet almasının engellenmesi veya yavaşlatılması da bu tip bir saldırıdır. İyi huylu kullanıcı ile kötü huylu ayırt edilemezse, sistemin çökmesi ile sonuçlanır. Çok büyük bant genişliği ve firewall maliyetlerini yanında getirmektedir. Gezici Kod (Mbile Code) En yaygın gezici kod örneği, applet’lerdir. Bir tarayıcı çalıştırmış olan kullanıcı, kodu web sunucusunda tutulan bir appletin linkini seçerse, kod kullanıcının makinesine indirilerek çalıştırılır; bu makinedeki kaynaklara erişir. Gezici kod, sunucuların yükünü azaltmak açısından avantajlıdır. Ancak kullanıcının kaynaklarına zarar verecek şekilde kötüye kullanılabileceğinden, bir güvenlik tehdididir. TBIL-106 ÖDEV #7
  • 8. Dağıtık Sistemlerin Kullanım Amaçları Kullanıcıya yönelik (neden dağıtık sistem?) Kullanıcı ve kaynakların kolayca bağlanması Şeffaflığın sağlanması Teknik hedefler (nasıl başarılır?) Açık olarak Ölçeklenebilir olarak Bu hedeflere bakmak şu soruyu cevaplamaya yardımcı olur: “dağıtık bir sistem kurmak, uğraşmaya değer mi?” Dağıtık Sistemlerin Gerekliliği İşlevsel ayrım: Kapasite ve amaç bakımından farklı bilgisayarların varlığı: İstemciler ve Sunucular Veri toplama ve veri işleme Doğal dağıtıklık: Bilgi: Farklı bilgiler farklı kişiler tarafından oluşturulup kontrol edilir (Web sayfaları gibi) İnsan: Bilgisayar destekli işbirliği (sanal ekipler, mühendislik, sanal ameliyat) Süpermarket zincirleri için perakende ve stok sistemleri Güç dengesizliği ve yük çeşitliliği: İşlem yükünün farklı bilgisayarlar arasında dağıtılması. Güvenilirlik: Farklı yerlerde uzun süreli koruma ve veri yedekleme (çoğaltma). Ekonomi: Birçok kullanıcı arasında yazıcı paylaşımı ile sahip olma masrafının azaltılması. Bir bilgisayar ağından süper-bilgisayar elde etme. TBIL-106 ÖDEV #8
  • 9. Dağıtık sistemlerdeki bilgisayarlar ayrı kıtalar üzerinde, aynı bina veya aynı oda içerisinde bulunabilir. DS’in getirdikleri: Birlikte ve birbirinden bağımsız çalışan sistemler İşlerini birbirinden bağımsız yaparlar Aynı zamanda program çalıştırır, bütün bir işleme kaynağı gibi görünür, birlikte çalışırlar İşlemler mesaj alışverişiyle anlaşırlar. Heterojen (çeşitlilik, farklılık): networks, hw, os, PLan Ortak saat yok: Bilgisayarlar saatlerini kısıtlı derecede senkronize edebilir Bağımsız bozulma: biri bozulsa da diğerleri çalışmaya devam eder. Paralel işlemler Birlikte çalışan bağımsız bileşenler Mesaj gönderme ile iletişim Ortak bellek yok (No shared memory) Kaynak paylaşımı Yazıcı, veri tabanı, diğer servisler Genel sistem durumu belirli değil (No global state) Hiçbir işlem, sistemin genel durumuna dair bir bilgi edinemez Ortak saat yok İşlemler için sadece kısıtlı derecede saat eşitleme mümkün olabilir. 1. Kullanıcılarla kaynakları birleştirmek: Erişim servisleri uygulama çalıştırır Belirli kaynaklar: Yazıcılar, bilgisayarlar, işleme gücü, veri Neden paylaşım? Ekonomi İşbirliği, Bilgi değiş-tokuşu (grup çalışması) Paylaşım problemleri Güvenlik İstenmeyen işbirlikleri 2. Şeffaflık: Kaynaklar ve işlemlerin ağ üzerinde dağıtık olduğu açık değildir 3. Açıklık: Servislerin sentaks ve semantikleri ile ilgili standart kurallar 4. Ölçeklenebilirlik: Daha fazla kullanıcı/kaynak, coğrafya, yönetim 5. Uzun süre bozulmadan çalışma Model Yönü İletişim İletişim nasıl sağlanır – senkron iletişim Mesaj gönderme ve alma ̈Eş zamanlı̈ TBIL-106 ÖDEV #9
  • 10. – asenkron iletişim Gönderme ve alma bağlı değil (Buffer, Kanallar, vb.) Mesajlar sınırlı bir zamanla iletilirler ya da maksimum bir zaman yoktur. Mesajlar mutlaka bir zamanda iletilirler ya da kayıp vardır. – FIFO ya da not FIFO Bir kanaldan önce gönderilen mesajın önce alınıp alınamayacağının kararı – Noktadan-noktaya veya Yayın(Broadcast) Bir mesaj bir anda sadece bir sürece veya daha fazlasına iletilebilir. – Ne gönderilebilir Sadece değerler, referanslar ve aktif elemanlar(Süreçler) gönderilebilir. Multiprocessor (çok işlemcili) sistemler: DS değil Shared memory (ortak bellek) Bus-based interconnection network (kablolu bağlantı) Örnek: İki veya daha fazla CPU’lu SMP’ler (symmetric multiprocessor) Çoklu bilgisayar sistemleri: DS değil No shared memory (ortak bellek yok) Homojen donanım ve yazılım Massively Parallel Processors (MPP) Tightly coupled high-speed network PC/Workstation clusters High-speed networks/switches based connection.
 TBIL-106 ÖDEV #10
  • 11. Internet: birbirine bağlı çeşitli bilgisayar ağları. Uygulamalar iletişimi mesajlarla sağlar Dağıtık sistem kullanıcıları www, email, dosya gönderme gibi servislerden faydalanır Intranet: bir organizasyon tarafından yönetilen alt ağ. Yerel güvenlik politikasıyla sınırlıdır. Uydu bağlantısı, fiber-optik kablolar gibi hızlı iletim kapasitesi olan ağ altyapısı ile bağlıdırlar Kablosuz ağlar Genel internet uygulamaları ve servisleri:
 Müzik, radyo, TV kanalları, video konferans erişimi için multimedia servisleri, ve çoklu kullanıcı desteği. Internet, çeşitli servisler barındıran birçok farklı bilgisayar türlerinden oluşan büyük bir ağ topluluğudur. Genel bir intranet;
 Internetin bir alt parçası olup, ayrıca yönetilir ve kaynakların ağ içerisinde paylaşımını destekler (dosya/depolama sistemleri ve yazıcılar)
 TBIL-106 ÖDEV #11
  • 12. Dağıtık Sistem Ürün Ortamı Sorun ve Çözümleri Online kitapçı (World Wide Web üzerinde) Müşteriler kendi bilgisayarlarıyla sizin bilgisayarınıza (web sunucunuza) bağlanabilir: Stokunuza bakabilir Sipariş verebilir … Ya . . . ? Müşteriniz çok farklı bir donanım sistemi kullanıyorsa? (PC, MAC,…) … farklı bir işletim sistemi? (Windows, Unix,…) … farklı bir veri gösterim biçimi? (ASCII, EBCDIC,…) Çeşitlilik (networks, h/w, os, prog lan, impl) Veya . . . ? İşinizi ve bilgisayarlarınızı Güney’e taşımak isterseniz (hava şartlarından dolayı)? Müşterileriniz Güney’e taşınırsa (daha muhtemel)? Konum / Taşınma / Dağılım şeffaflığı Ya . . . ? İki müşteri aynı ürünü aynı anda sipariş verirse? Concurrency (Aynı anda kullanım) Veya . . . ? Stok bilginizi tutan veri tabanı çökerse? Sipariş esnasında müşterinizin bilgisayarı çökerse? Fault tolerance (Hata payı) Ya . . . ? Birileri veri çalmak için sisteminize girmeye çalışırsa? … bilgi çekerse? … müşteriniz sipariş verir de, sonradan vermedim diyerek ürün teslimini reddederse? TBIL-106 ÖDEV #12
  • 13. Security (Güvenlik) Veya . . . ? Öyle başarılı olursunuz da, milyonlarca insan aynı anda online mağazanızı aynı anda ziyaret ederse? Scalability (Ölçeklenebilirlik) Sistem kurulurken … Bütün yazılımı tek başınıza mı yazmak istersiniz (network, database,…)? Güncellemeler, yeni teknoloji takibi? Reuse (tekrar kullanılabilirlik) ve Openness (açıklık) (Standartlar) Heterogeneity (Çeşitlilik) Çeşitli bileşenler birbiriyle uyumlu şekilde çalışabilmeli Distribution transparency (Dağınıklık şeffaflığı) Dağınıklığın varlığı mümkün oldukça kullanıcıdan saklanmalı Fault tolerance (Hata payı) Bir bileşenin bozulması (kısmi bozukluk) tüm sistemin bozulmasına sebep olmamalı Scalability (Ölçeklenebilirlik) Sistem, artan kullanıcı sayısına rağmen verimli çalışmaya devam edebilmeli Sisteme yeni kaynaklar eklenerek performans artışı sağlanabilmeli.
 TBIL-106 ÖDEV #13
  • 14. Dağıtık sistemler çeşitli bileşenler birbiriyle uyumlu şekilde çalışabilmeli İşletim sistemleri Donanım mimarileri İletişim mimarileri Programlama dilleri Yazılım arayüzleri Güvenlik ölçüleri Bilgi gösterimleri Şeffaf DS: Kullanıcılara, tek bir bilgisayar sistemi gibi görünür, bağımsız bilgisayarlar topluluğu olarak değil. Şeffaflık çeşitleri Erişim: Veri gösterimindeki farklar, ve kaynaklara nasıl erişildiği gizlenir. Yerel ve uzak kaynaklara erişim aynı işlemlerle sağlanır. Örn., Network File Systems (Ağ Dosya Sistemleri) Konum: Bir kaynağın bulunduğu yer gizlenir. Kaynaklara, fiziksel konumları bilinmeden erişilir. Alan adının (domain name) makine adresinden ayrımı gibi. Migration (Taşınma): Kaynağın yer değiştirme durumu gizlenir Relocation (Yeniden konumlandırma): Kaynağın, kullanım esnasında, yer değiştirme durumu gizlenir Migration / relocation şeffaflığı, bir sistemdeki kullanıcıların veya uygulamaların işlemlerini etkilemeden taşınabilmelerine olanak sağlar. Çalışma esnasında (runtime) bir isim sunucusundan (name server) bir başkasına geçiş yapma Bir vekil veya işlemin (agent/process) bir düğümden (node) diğerine taşınması gibi Şeffaflık Her zaman istenmez: Farklı kıtalarda bulunan kullanıcılar (context-aware), time-zone (zaman-dilimi), hız Her zaman mümkün olmaz: Hataların gizlenmesi (bir bilgisayar yavaş mı, bozuk mu) Yüksek şeffaflık ile performans arasındaki denge Replication (Kopyalama): Bir kaynağın birden fazla yerde yedeğinin (kopyasının) tutulduğu gizlenir. Kopyalanmış kaynaklara, sadece bir kopya varmış gibi erişilir. Güvenilirlik ve performans kopyalarla artırılır, ama kullanıcıların veya uygulama geliştiricilerinin kopyalardan haberi olmaz. TBIL-106 ÖDEV #14
  • 15. Concurrency (Birlikte çalışma): Bir kaynağın birden fazla kullanıcı tarafından paylaşıldığı gizlenir. Bir işlem, diğer bazı işlemlerin de aynı kaynaklara erişmekte olduğunun farkında olmamalıdır Failure (Bozulma): Bir kaynağın bozulma veya düzelme durumu gizlenir. Bozulmalar olsa da, görevler tamamlanabilir. Mesaj iletim tekrarı, bir ağ sunucusu düğümünün bozukluğu, web sitesini çökertmemeli. Persistence (Süreklilik): Bir yazılım kaynağının bellekte veya disk üzerinde olma durumu gizlenir. Performans: Yük değişimine göre performansı artırmak için sistemin tekrar yapılandırılması sağlanır. Örn., bileşenlerin dinamik olarak eklenip kaldırılması. Kullanıcı sayısı artınca, doğrusal yapılardan basamaklı (hierarchical) yapılara geçilmesi. Scaling (Ölçekleme): Sistemin ve uygulamaların, sistem yapısında veya uygulama algoritmalarında değişikliğe gerek olmadan genişletilmesine olanak sağlar. TBIL-106 ÖDEV #15
  • 16. Ağ şeffaflığı: erişim + konum şeffaflıkları Hata algılama Checksums (sağlama), heartbeat (kalp atışı), … Hata maskeleme Bozuk mesajların tekrar gönderimi, fazlalık, … Hataya müsamaha Exception handling (istisna işleme), timeouts (zaman aşımları),… Hatadan kurtulma Rollback (geri sarma) mekanizmaları,… TBIL-106 ÖDEV #16
  • 17. Sistem Verimliliği ve Ölçeklenebilirlik Sistem, küçük bir Intranet’ten Internet’e kadar uzanan birçok farklı ölçekte verimli olarak çalışabilmeli. Kaynak ve kullanıcı sayısında belirgin bir artış olsa da etkili olarak çalışmaya devam edebilmeli. Zamanla her şey çoğalır, kullanıcılar artar, bilgisayar sayısı büyür, veri miktarı fazlalaşır, ... Sistemler nasıl ölçeklenebilir olur? Sadece donanım eklemekle mümkün değil. Bir makinenin 20 kullanıcıya hizmet vermesi, iki makinenin 40 kullanıcıya hizmet vereceği anlamına gelmez. Resource (Kaynak): Yalnız bir kullanıcı ! kısıtlı verim Çoklu istemci talepleri: birlikte erişim Paylaşılan kaynaklara çoklu erişimin desteklenip yönetilmesi: Birlikte çalışılan ortamdaki bir nesnenin güvende olması için işlemleri, verileri tutarlı kalacak şekilde, senkronize olmalı (eşitlenmeli) (örn. Banka hesabı). Bu, dağıtık olmayan sistemlerde semafor kullanımından daha zordur. Availability (Ulaşılabilirlik) Kaynak erişim yollarındaki çakışmalara karşı koruma. Örn. Servis saldırılarının reddi Reddedilememe Bir bilginin gönderilme / alınma delili Örn. Dijital imza Encryption (Şifreleme) Örn. Blowfish, RSA Authentication (Doğrulama) Örn. password (şifre), açık anahtarla yetkilendirme TBIL-106 ÖDEV #17
  • 18. Authorization (Yetkilendirme) Örn. erişim kontrol listeleri Dağıtık sistemler her yerde bulunur. Internet, dünyanın her bir yanındaki kullanıcıların, her bir yandaki servislere erişimlerini sağlar. Kaynak paylaşımı dağıtık sistem kurmaya teşvik eden etmenlerin başta gelenidir. DS kurulumu birçok zorluğu beraberinde getirir: Çeşitlilik, Açıklık, Güvenlik, Ölçeklenebilirlik, Hata denetimi, Birlikte çalışma, Şeffaflık. Dağıtık sistemler küreselleşmeyi sağlar: Topluluk (Sanal takımlar, kuruluşlar, sosyal ağlar) Science (e-Science) (Bilim) Business (e-Bussiness) (İş)
 TBIL-106 ÖDEV #18
  • 19. Uzak Sunucu Yöntemini Çağırmak İçin Gerekli Adımlar Uzak programlama ile sunucu katmanındaki bileşene ait bir yöntemi veya kısaca uzak sunucu yöntemini çağırmak için aşağıdaki adımlar izlenir: 1. Keşif (discovery): Sunucunun ağdaki adresinin belirlenmesi işlemidir. 2. Müzakere (negotiation): İstemci ile sunucunun, bir sözleşme (conract) üzerinden, nasıl iletişim yapacağı konusunda anlaşmaya varmasıdır. 3. Uzak işlevin çağrılması (invocation): Sunucu işlevlerinin uzaktan çağrılıp, çalıştırılması işlemidir. Bu işlem çağırma (calling) olarak da adlandırılır. Bu adımlar izlenirken karşılaşılan güçlükler aşağıda sıralanmıştır; 1. Sunucudaki nesnenin referansını elde etme, 2. Nesne yaratma (instantiation) ve ömür (lifetime) yönetimi, 3. Ağ üzerinde veriler bit bit veya bayt bayt aktarılır. Bu nedenle nesneye dayalı yöntemlerin bayt akışı (byte stream) kullanarak çağırılmasının yaratacağı problemler, 4. Çok kullanıcılı yazılımlarda güvenlik, 5. Güvenilmez ağ bağlantılarına (unreliable network connections) karşı önlemler, 6. Zaman uyumsuz (asynchronous) işlemler. $ Yukarıda bahsedilen 3. madde üzerinde durmak gerekir. Sunucu bileşenleri nesne olarak tasarlandıklarından, nesneye dayalı yöntemleri (method) çağırmak için internet üzerinde bilgi iletişimi teknolojisi olarak bayt akışı (byte stream) kullanılır. Bunu bir web servisinden yararlanacak A ve B gibi iki uygulama ile açıklayalım; 1. A uygulamasının web servisinden yaptığı istekleri B uygulaması açığa çıkarabilir. 2. A uygulamasının isteklerinin biriktiği protokol yığını (protocol stack) parçalara bölünerek düşük düzey veri paketleri olarak, byte akışı üzerinden, servise gönderilir. Bu durumda B uygulaması sözkonusu paketleri tersine kullarak çağrılan işlevi açığa çıkarabilir. Uzak programlama yapılırken bu problemleri bertaraf edecek önlemler alınmalıdır. TBIL-106 ÖDEV #19
  • 20. Günümüzde yazılım geliştirilen tüm platformlar TCP (Transmission Control Protocol) protokolünü desteklemektedir. Bu nedenle yazılımcılar genellikle bu protokolü kullanarak uzak programlama yaparlar. Dağıtık programlamayı sağlayan bütün teknolojilerin temelinde Frank Buschmann tarafından 1996 yılında geliştirilen Simsar (broker pattern) adlı çözüm örüntüsü yatar. Bu nedenle uzak programlama yapacak programcıların bu örüntüyü mutlaka bilmesi gerekir.
 TBIL-106 ÖDEV #20
  • 21. MPI (Message Passing Interface) Mesaj Geçiş Arayüzü Bir grup akademisyen ve çeşitli şirketlerden katılımcılar tarafından Yaygın kullanım ve Taşınabilirlik amaçlanarak oluşturulan bir kütüphane standardıdır. Sadece rutinleri belirler, implementasyonla alakası yoktur. Oldukça fazla bedava ve de özgür implementasyonu mevcut Sürüm 1'de sadece statik süreç oluşturma vardı Sürüm 2'de dinamik olarak da kullanılabilmektedir. MPI - Örnek int main (int argc, char *argv[]) { MPI_Init(&argc, &argv); . . MPI_Comm_rank(MPI_COMM_WORLD, &myrank); if (myrank == 0) master(); else slave(); . . MPI_Finalize(); } TBIL-106 ÖDEV #21
  • 22. MPI KOMUTLARININ KISA TANIMLARI MPI – Diğer Rutinler MPI_Send(buf, count, datatype, dest, tag, comm) Bloke eden gönder rutini MPI_Recv(buf, count, datatype, src, tag, comm, status) Bloke eden alma rutini MPI_Isend (...) / MPI_Irecv(...) - bloke etmeyen gönder/al MPI_Wait() ve MPI_Test() ile denetlenebilirler MPI_Bcast() / MPI_Gather() / MPI_Scatter() MPI_Reduce() - MPI_Gather gibi ama bir işlem yaparak alır MPI_Barrier() - Grup senkronizasyonu * MPI_SendRecv() - İkili senkronizasyon
 TBIL-106 ÖDEV #22
  • 23. MPI – Örnek program #include “mpi.h” #include <stdio.h> #include <math.h> #define MAXSIZE 1000 void main(int argc, char **argv) { int myid, numprocs; int data[MAXSIZE], i, x, low, high, myresult, result; char fn[255]; char *fp; M P I _ I n i t ( & a r g c , & a r g v ) ; M P I _ C o m m _ s i z e ( M P I _ C O M M _ W O R L D , & n u m p r o c s ) ; MPI_Comm_rank(MPI_COMM_WORLD,&myid); if (myid == 0) { /* Open input file and initialize data */ strcpy(fn,getenv(“HOME”)); strcat(fn,”/MPI/rand_data.txt”); if ((fp = fopen(fn,”r”)) == NULL) { printf(“Can’t open the input file: %snn”, fn); exit(1); } for(i = 0; i < MAXSIZE; i++) fscanf(fp,”%d”, &data[i]); MPI_Bcast(data, MAXSIZE, MPI_INT, 0, MPI_COMM_WORLD); /* broadcast data */ x = MAXSIZE/numprocs; /* Add my portion Of data */ low = myid * x; high = low + x; myresult = 0; for(i = low; i < high; i++) myresult += data[i]; printf(“I got %d from %dn”, myresult, myid); /* Compute global sum */ MPI_Reduce(&myresult, &result, 1, MPI_INT, MPI_SUM, 0, TBIL-106 ÖDEV #23
  • 24. MPI_COMM_WORLD); if (myid == 0) printf(“The sum is %d.n”, result); MPI_Finalize(); } MPI – Derleme & Çalıştırma A. ssh / rsh hazırlanır B. Hesaplamada kullanılacak bilgisayarların listesi (hostfile) hazırlanır C. mpicc ile programlar derlenir D. mpirun ile çalıştırılır
 TBIL-106 ÖDEV #24
  • 25. 3 Kaynaklar [1] Distributed Systems Concepts and Design, Coulouris, Dollimore, Kindberg [2] Computer Networks, Tanenbaum [3] Authentication in Distributed Systems:Theory and Practice, Lampson, Abadi, Burrows, Wobber, Digital Equipment Corporation [4] The Protection of Information in Computer Systems, Saltzer and Schroder, IEEE Invited Paper [5] Geist A, Beguelin A, Dongarra J, Jiang W, Manchek R, Sunderam V. PVM 3 User’s Guide and Reference Manual. Oak Ridge National Labs. September 1994.. [6] Özmen A. A Minimal Overhead Instrumentation System. Proceedings of the Fifteenth International Symposium on Computer and Information Sciences (ISCIS XV). 2000;102–110. [7]MPI: Complete Reference http://www.csd.uoc.gr/~hy555/mpi/ mpi_complete_reference.pdf TBIL-106 ÖDEV #25