Alıstırmalar 10 - Da˘gıtık Sistemler

advertisement
1
Prof. Dr. Th. Letschert
Çeviri: Turgay Akbaş
FB MNI
7. Juli 2013
Alıştırmalar 10 - Dağıtık Sistemler
Alıştırma 1
1. Gerçek saatler aynı zamanda mantıksal saatlermidir, (her zaman, belirli (hangi) kurallar altında ) mantıksal saatin
gereksinimlerini karşılarlar mı? Bilgisayar–saatlerini (Computer Clocks) inceleyiniz..
2. İki olayın/eventin“eşzamanlı” olması ne anlama gelmektedir:
• Gerçek saatli bir sistemde
• Lamport–Saatine sahip bir sistemde
• Vektör–Saatine sahip bir sistemde
3. Bir Lamport–saatinde bir eventin zaman damgası n değerine sahiptir. Bu değer keyfi bir değermidir, yoksa bir
açıklaması varmıdır? Mantıksal saatin “tiki” ile “gerçek” herhangi birşey ölçülür mü ya da sayılır mı?
4. “Eşzamanlılık” / (concurrent) özelliği a) gerçek zaman und b) happend–before–ilişkisi) koşullarında geçişli, simetrik, antisimetrikmidir?
5. Bir saat (mantıksal veya değil) eventleri bir zaman değerine ya da bir zaman damgasına atar. Bu aynı zamanda bir
örnekmidir?
• Lamports Saati,
• Matterns Vektör Saati,
• ideal bir “gerçek saat”
izomorf örneklermidir?
6. Lamport mantıksal saatinde eventler zaman damgalarını lineer düzenlenmiş bir kümeden alırlar. Bu bir (dez)avantaj
mıdır?
7. Bir vektör saatinde olaylar düzenlenmiş bir kümeden zaman damgası alırlar. Bu küme lineer olarakta düzenlimidir?
8. Lamport ve / ya da Vektör saati nedensel düzen ile tutarlı ve / veya katı / sıkı tutarlımıdır?
Alıştırma 2
F. Mattern’in makalesinden On the Relativistic Structure of Logical Time in Distributed Systems1 1. kısımdan 4. kısıma
kadar okuyunuz.
1. ilişkisi hangi anlama gelmektedir ? Derste buna benzer veya aynı bir ilişki tanımlanmışmıdır? Eğer evetse farklar
neler – eğer varsa?
2. Metinde matematiksel yapı kullanılmıştır “lattice” , bu yapının Türkçe karşılığı nedir?
3. Teorem 4.11 ne ifade etmektedir? Hangi (pratik) anlamı taşımaktadır?
Alıştırma 3
Programın etkinliğinin bozulmasını sağlayan programın çalıştırılmasıyla ilgili çok fazla bilgiye gerek kalmadan, “bilgisayar” ve programcıların programın semantiği ile ilgili aynı şeyi anlayabilmeleri için, Java–Community (ve takip eden
diğerleri) “Bellek Modelini” tanımladılar. Java gerçekleştirimleri buna uyar ve programcılar programlarının bahsedilen
modele uygun olarak çalıştırıldığından emin olabilirler.
Javanın Bellek Modeli (Java Memory Model, JMM)2 bir programın bütün işlemleri üzerine bir happened–before–ilişkisi
1 siehe:
http://www.vs.inf.ethz.ch/publ/papers/relativistic time.pdf
2 http://jcp.org/en/jsr/detail?id=133)
2
(kurz →Java ) tanımlar. Eğer işlemler a ve b a →Java b ilişkisi içindeyse, b’nin a’da nedenleri bulunan bütün etkileri
göreceği garanti edilir.
Eğer iki işlem bu ilişkiye sahip değilse, compiler, JVM ve CPU a ve b’nin çalıştırımını (execution) herhangi bir sıralamaya
koyabilir ve bu eventlerin etkileşimlerini cache içinde koordine edebilirler.
Saf bir →Java yorumlamasını(interpretation) açıklayınız ve neden threadler CPU ve multiprocessor sistemler arasında
daha az saflıkta olan bir anlayış oluştururlar.
JMM hakkında bilgi toplayınız(örn. Wikipedia üzerinden).
→Java bir yarı düzenmidir yoksa tam bir düzen mi?
JMM’nin →Java Lamport’un → ilişkisiyle ne kadar eşleşmektedir?
Download