You are on page 1of 17

1.

 Elosztott rendszernek milyen alrendszereit ismersz

Elosztott számítási rendszerek: Több gép elosztva végzi a számításokat (Cluster 
architektúra), különböző feladatokat (Grid architektúra), vagy adatok tárolását 
(Cloud architektúra)
Elosztott információs rendszerek: Adatok kezelését vagy meglévő ilyen rendszerek
elérését biztosító rendszer. ACID követelményrendszernek eleget tevő különböző 
feladatok, például: tranzakciók kezelése.
Elosztott átható (pervasive, ubiquitous) rendszerek: Kicsi, mobil rendszerek, 
melyeknek komponensei könnyen konfigurálhatóak a környezetváltozás és 
sokféle felhasználási mód kezelhetőségének az érdekében, illetve egyszerű 
felépítésű adategységeik könnyű információ áramlást tesznek lehetővé, például: 
érzékelőhálózatok.
2. 2PC vs 3PC

* 2PC: two phase commit:
Egy Résztvevő és egy Koordinátor között zajlik. Véglegesítésre szolgáló 
algoritmus.
Lépései:
1/K: Elküldi mindenkinek a véglegesítési kérelmet, hogy szavazzanak, hogy 
készen állnak­e a véglegesítésre. (vote­commit)
1/R: Ha a résztvevő meg van elégedve az értékkel, akkor visszaküldheti, hogy 
vote­commit, vagy ha nem, akkor vote­abort, de ebben az esetben le is áll.
2/K: Megkapja a válaszokat, ha vote­abort­ot talál, akkor kiküldi a global­abort 
üzenetet, vagyis, hogy minden folyamat abortáljon, ha viszont nincs vote­abort, 
akkor a global­commit üzenetet küldi ki.
2/R: Attól függően, hogy global­commit, vagy global­abort üzenetet kap, elmenti 
az adatokat, vagy elveti.
A probléma ezzel, hogy beragadhat, ha a koordinátor és (legalább) egy folyamat 
meghalt, a többi pedig READY státuszban van, mert nem tudjuk, hogy az elhalt 
process kapott­e már valamilyen üzenetet. A folyamatok nem tudják eldönteni, 
hogy az elhalt folyamat kapott­e global­commit üzenetet és ezáltal végre hajtott­e
már a tranzakciót. (ez szinte sosem fordul elő a gyakorlatban)
* 3PC: three phase commit:
Az elso két lépés hasonlóan történik. Üzenetekre egy adott ideig (timeout) várnak
a résztvevők, illletve a koordinátor.
2/K: Megkapja a válaszokat, ha vote­abort­ot talál, akkor global­abort­ot küld, ha 
nincs vote­abort, akkor prepare­commit üzenetet küld.
2/R: Ha global­abort, akkor elveti az üzenetet. Ha prepare­commit, akkor 
visszaküldi, hogy ready­commit, vagy ha közben lehalt, akkor semmit.
3/K: Összegyujti a ready­commit üzeneteket és ezeknek a folyamatoknak elküldi 
a global­commit üzenetet.
3/R: Megkapja a global­commit üzenetet és véglegesíti az eredményt.
Ez az algoritmus nem ragadhat be akkor sem, ha a koordinátor vagy legalább egy
folyamat meghalt, mert ha egy folyamat nem kap prepare­commit üzenetet akkor
megszakítja a tranzakciót, illetve prepare­commitot csak abban az esetben 
kaphat ha minden folyamat készen áll a commitra. Ekkor ha a koordinátor 
meghalna, akkor is commit­olni fog a folyamat.
3. Miért a pletykálás algoritmust választjuk az anti­entrópiával szemben

Anti­entrópia algoritmusával O(log(N)) nagyságrendű fordulóval minden szerver 
megkapja a frissítést, viszont a pletykálás algoritmussal exponenciálisan 
csökkenthető a tudatlan csúcsok száma a k valószínűség növelésével, habár nem 
garantálható, hogy minden szerver ismerni fogja a frissítést.
4. Szemantikák fájlok elérésére

A konkurens fájlműveletek biztosításához több lehetséges szemantika létezik:
a) Módosíthatatlan fájlok: A fájl létrehozása után a fájl nem módosítható. (ez 
ritkán működik)
b) UNIX szemantika: A fájlokból olvasás esetén mindig a legutolsó írási művelet 
eredményét látja a felhasználó.
c) Munkamenet szemantika: Ha egy kliens megnyitja a fájlt, addig amíg nem 
véglegesíti az írási/olvasási műveletek hatását, addig azokat csak ő láthatja, 
véglegesítés után már a többi felhasználó is.
d) Tranzakciós szemantika: A rendszer minden fájlra biztosít egy külön 
tranzakciót.
5. Hogyan választjuk meg a szuperpeereket?

Superpeer­re teljesülön:
­ Többi csúcs minimális késleltetéssel érje el őket
­ Egyenletesen legyenek elosztva a hálózaton
­ Egy superpeer korlátozott számú peer­t szolgáljon ki
­ A csúcsok egy megadott hányadát válasszuk superpeernek
6. Milyen módon nőhet meg egy rendszer mérete?

a) Méret szerint: Megnő a rendszeren lévő felhasználók és/vagy folyamatok 
száma
b) Földrajzilag: A rendszert hirtelen nagyobb földrajzi egységekről kezdik el 
használni.
c) Adminisztrációs szempontból: Az új adminisztrációs részlegek bekerülése új 
biztonsági, karbantartási stb. kérdéseket vet fel.
7. Cluster vs grid

Cluster (fürt): A cluster centralizált architektúra. Rendszerei (általában) 
homogének, vagyis azonos hardver, operációs rendszer, platform jellemzi. A node­
k azonos számításon dolgoznak, erőforrásukat megosztva egy nagy rendszernek 
számítanak.
Minden esetben van egy master node, amin található egy management szoftver, 
ami felügyeli a többi (computing) node­t.
Általában kisebb mint a grid.
Grid (háló): A grid kevésbé egységes architektúra és általában nagyobb méretű. 
Több szerkezeti egységet is átívelhet. A node­k párhuzamosan különböző 
feladatokat végeznek.
Heterogén, vagyis a hardver stb. eltér(het) a gépeken. Nagyobb hálózatokra 
terjed ki.
8. Chord struktúra műveletei

(megjegyzés: Chord struktúrában tárolt fa felépítése:

A multicast hálózatunkhoz generálunk egy azonosítót, így egyszerre több multicast
hálózatunk is lehet egy rendszerben. 
Tegyük fel, hogy az azonosító egyértelműen kijelöl egy csúcsot a rendszerünkben. 
Ez a csúcs lesz a fa gyökere.
Ha a P csúcs csatlakozni szeretne a multicast hálózathoz, csatlakozási kérést küld
a gyökér felé. A P csúcstól a gyökérig egyértelmű az útvonal ennek minden csúcsát 
a fa részévé teszünk (ha még nem volt az). Így P elérhetővé válik a gyökértől.
Terv: a küldendő üzeneteket mindenki elküldi a gyökérhez, majd onnan a fán 
lefele terjednek.)
Chord elosztott hasítótábla:
Elosztott hasítótáblát készítünk, ebben a csúcsok tárolnak egyedeket. Az N csúcs 
gyűrű overlay szerkezetbe van szervezve.
• Mindegyik csúcshoz véletlenszerűen hozzárendelünk egy m bites 
azonosítót, és mindegyik entitáshoz egy m bites kulcsot. (Tehát N <= 2m)
• A k kulcsú egyed felelőse az az id azonosítójú csúcs, amelyre k <= id, és 
nincs köztük másik csúcs. A felelős csúcsot a kulcs rá következőjének is 
szokás nevezni; jelölje succ(k) vagy successor(k)
a) Keresés:

Mindegyik p csúcs egy FTp „finger table”­t tárol m bejegyzéssel:

FTp[i] = successor(p + 2i­1)

A k kulcsú egyed kikereséséhez (ha nem a jelenlegi csúcs tartalmazza) a kérést 
továbbítjuk a j indexű csúcshoz, amelyre

FTp[j] <= k < FTp[j+1]

illetve, ha p < k < FTp[1], akkor is FTp[1]­hez irányítjuk a kérést.

Ez a megoldás O(m), azaz O(log(N)) hatékonyságú. (Ha minden node csak a rá 
következőjére hivatkozna akkor O(N), ami rosszul skálázható)

b) Új csúcs csatlakozása:

Az új node inicializálása. 

Node­k értesítése egy új node csatlakozásáról, node­k finger table­jeinek 
frissítése.

Az új node átveszi a hozzátartozó kulcsokat a rákövetkezőjétől.
c) Stabilizálás:
Stabilizáló protokoll lehetővé teszi, hogy mindig minden csúcs finger table­jei 
helyesek legyenek.

********************** II. VIZSGA ***********************

1. Ismertess röviden két módszert folyamokon QoS (Quality of service) 
biztosítására.

a) Differenciált szolgáltatási architektúra: A hálózat routerei kategorizálják az 
áthaladó forgalmat a beérkező adatcsomagok tartalma szerint és néhány 
csoportot elsőbbséggel továbbítanak.
b) Remegés csökkentése: A routerek pufferelhetik az adatokat a remegés 
csökkentése érdekében. (jitter – variation in the network delay, buffer – 
temporary memory storage of data)
2. Hogyan működik a zsarnok algoritmus?

Ha a jelenlegi vezető kiesik, bármelyik csúcs kérheti új vezető választását. A 
gráfban a csúcsok sorszámmal vannak ellátva és mindig a legnagyobb számú 
csúcsot akarjuk vezetőnek. A kérelmező választási üzenetet küld azoknak a 
csúcsoknak, amelyről nem ismert, hogy kisebb lenne nála. A nagyobb sorszámú 
csúcsok pedig visszaküldik egy letiltó üzenetet a kisebb sorszámú csúcsnak (OK),
ha egy csúcs egy bizonyos időn belül nem kap vissza letiltó üzenetet, akkor ő lesz 
a vezető és erről egy globális üzenettel értesíti a többi csúcsot.
4. Hogyan csatlakozik az RPC kliens a szerverhez?

1.) A szolgáltatásokat katalógusba jegyzik be (lokálisan és globálisan is).
2.) A kliens kikeresi a katalógusból a számára megfelelő szolgáltatást.
3.) A kliens végpontot igényel a daemontól a kommunikációhoz.
5. Ismertesd a particionált tér ábrázolású elosztott rendszert.

Az adatoknak most d mezője van, kulccsal nem rendelkeznek. Az így adódó tér fel
van osztva annyi tartományra, ahány csúcsunk van; minden csúcs valamelyik 
tartomány adataiért felelős. Ha egy új csúcs érkezik, kettébontunk egy 
tartományt.
6. Milyen feladatokra szoktunk szálakat használni kliensoldalon?

Például: Többszálú webkliens
A böngésző mindegyik tartalmat külön szálon tölti le, amíg a HTTP kéréseket 
kiszolgálják, ezek blokkolódnak, így elfedi a hálózat késleltetését. Amikor egy­egy
fájl megérkezik, a blokkolás megszűnik és a böngésző megjeleníti a tartalmat.
Például: több távoli eljáráshívás egyszerre (RPC)
Egy kliens több távoli szolgáltatást szeretne igénybe venni. Mindegyik kérést 
külön szál kezeli. Megvárja, amíg mindegyik kérésre megérkezik a válasz.
7. Milyen jellemzői vannak az átható (ubiquitous) elosztott 
rendszereknek?

Sok elosztott rendszer kis, mobil részekből áll. Ezeket a rendszereket nagyon 
sokféleképpen fel tudjuk használni.
Jellemzői:
a) Mivel a környezet gyakran változhat, ezért jól kell alkalmazkodniuk ehhez.
b) Ad­hoc szerveződés: Mivel a rendszer komponenseit nagyon sokféleképpen 
használhatják, könnyen konfigurálhatónak kell lennie.
c) Megosztott szolgáltatások: Mivel a rendszer nagyon változékony, az adatoknak
könnyen kell áramlaniuk. Ezért a rendszer elemei egyszerű szerkezetűek.
8. Milyen rendszerekben használunk üzenetközvetítőt (message broker) 
és mi a feladata?

Az üzenetsor kezelő rendszerek esetén. Ezek feltételezik, hogy az üzenetek 
azonos protokoll alapján készültek, ezért, ha mégis valamilyen módon 
átalakításra szorul az üzenet, azt egy message broker fogja elvégezni. 
Gondoskodik a megfelelő konverziókról és átalakítja az üzenetet a fogadó 
formátumára. Átjáróként is szolgál a kliens és a szerver között, ezért a közvetítés
mellett pl. biztonsági szerepe is van. Az üzenet tartalmát is megvizsgálhatja.

********************** III. VIZSGA ***********************

1. ACID tulajdonságok

a) Atomicity (atomosság): Vagy a tranzakció minden eleme sikerrel végrehajtódik,
vagy egyik sem.
b) Consistency (konzisztencia): A tranzakció végével konzisztens állapot kell, hogy
fent álljon. (közben előfordulhat inkonzisztencia)
c) Isolation (elkülöníthetőség): Minden tranzakciónak úgy kell végbemennie, 
mintha az lenne az egyetlen aktív tranzakció, vagyis elkülöníthetőek legyenek 
egymástól és ne befolyásolják egymást semmilyen módon.
d) Durability (tartósság): A tranzakció által végrehajtott módosításokat tartós 
adattárolóra kell írni, hogy esetleges rendszerhiba esetén visszaállíthatóak 
legyenek.
2. Milyen jellemzői vannak az átható,osztott rétegeknek?

Sok elosztott rendszer kis, mobil részekből áll. Ezeket a rendszereket nagyon 
sokféleképpen fel tudjuk használni.
Jellemzői:
a) Mivel a környezet gyakran változhat, ezért jól kell alkalmazkodniuk ehhez.
b) Ad­hoc szerveződés: Mivel a rendszer komponenseit nagyon sokféleképpen 
használhatják, könnyen konfigurálhatónak kell lennie.
c) Megosztott szolgáltatások: Mivel a rendszer nagyon változékony, az adatoknak
könnyen kell áramlaniuk. Ezért a rendszer elemei egyszerű szerkezetűek.
3. Hasonlíts össze két kölcsönös kizárási algoritmust

a) Központi szerver: Az erőforráshoz való hozzáférésről, egy központi koordinátor 
dönt. Ha az erőforrás szabad (nem használja egy folyamat sem), és egy folyamat 
kéri, akkor a koordinátor engedélyezi számára és az erőforrás foglalt lesz. Ha 
ezután még egy folyamat kéri, akkor a koordinátor erre fenntart egy várakozási 
sort, amibe behelyezi a klienst. Amint az előző végzett a dolgával, a sorban 
következő folyamat kap engedélyt. Ha kiürül a sor és senki nem használja az 
erőforrást, az újra szabaddá válik.
b) Decentralizált módszer: Itt nincs központosítva a döntés. Az erőforrás 
replikálva van és mindegyik replikátumnak van egy koordinátora, összesen n 
darab. A hozzáféréshez többségi szavazás szükséges és ha elég (több mint n/2) 
szavazat igen, akkor a folyamat hozzáférést kap az erőforráshoz.
4. Miben hasonlítanak és térnek el a szálak és a folyamatok

Szál: A processzor egy szoftveres megfelelője, minimális kontextussal.
Folyamat: Egy, vagy több szálat tartalmazó, nagyobb egység.
Minden folyamat külön­külön memóriarészt kap. A szálak osztott 
memóriaterületen dolgoznak. A szálak és folyamatok is önálló végrehajtási 
egységek. A folyamatok egy vagy több szálat tartalmaznak, de a szálak nem 
tartalmazhatnak folyamatokat.
Folyamatok kontextusváltása sokkal költségesebb.
5. Milyen lehetséges feladatai szoktak lenni a köztesrétegnek 
(middleware)?

A köztesrétegnek általában általános és minden alkalmazás számára hasznos 
feladatai vannak.
Például:
­ Elnevezési protokollok
­ Sokféle kommunikációs protokoll
­ Biztonsági protokollok
­ Sorosítás (marshalling, serialization) ­> Adatok reprezentációjának átalakítása
6. Hogyan keresünk rá egy egyedre, ha hierarchikus névteret 
használunk ?

A hierarchikus névtér fa szerkezetű, amiben az egyed helyét a levél mutatja.
A kliens valamelyik tartományba tartozik, innen indul a keresés.
Felmegyünk a fában addig, amíg olyan csúcshoz nem érünk, amelyik tud E­ről, 
aztán követjük a mutatókat a levélig, ahol megvan E címe.
Mivel a gyökér minden egyedet ismer, az algoritmus terminálása garantált.
7. Hogyan lehet fenntartani a folytonos konzisztenciát?

Ha megtehetjük a konzisztenciafeltételeket nem a teljes adatbázisra szabjuk 
meg, hanem az adatoknak minél szűkebb körére. Az olyan adategység, amelyre 
közös feltételrendszer vonatkozik, a conit (consistency unit). A conit­okkal 
mérhető az alkalmazás konzisztenciája és ellenőrizhető, hogy a replikátumok 
számértékeinek eltérései, replikátumok elavultsága illetve műveletek 
sorrendjeinek eltérései a kívánt határértéken belül vannak.
8. Mit, milyen jellegű részeket tartalmaznak az objektumszerverek?

A rendszer részei a kiszolgálók, a vázak és az adapterek.
A kiszolgálókat több paradigma szerint is lehet implementálni:
• Függvények gyűjteményei (pl.: C)
• Osztályok (pl.: Java, C++)
A váz (skeleton) a szerveroldali hálózati kapcsolatokat kezeli:
• Kicsomagolja a beérkező kéréseket, lokálisan meghívja az objektumot, 
becsomagolja és visszaküldi a választ.
• Az interface specifikációja alapján hozzák létre.
Az objektumadapter feladata objektumok egy csoportjának kezelése:
• Elsőként fogadja a kéréseket, és azonosítja a releváns kiszolgálót.
• Policy szerint aktiválja a megfelelő vázat.
• Az adapter generálja az objektumhivatkozásokat.
9. RPC kommunikáció során milyen problémák léphetnek fel ?

A kliens nem találja a szervert. Ezt egyszerűen ki lehet jelezni a kliensnél.
A kliens kérése elveszett. A kliens újraküldi a kérést.
Összeomlik a kliens.
Elveszett a szerver válasza.
A szerver összeomlott. Ezt nehezebb kezelni, mert a kliens nem tudja, hogy a 
szerver mennyire dolgozta fel a kérést.
10. Mi a hibajelenség, mi a hiba, hiba ok ?

Hibajelenség (failure): a komponens nem a tőle elvártaknak megfelelően üzemel
Hiba (error): olyan rendszerállapot, amely hibajelenséghez vezethet
Hibaok (fault): a hiba (feltételezett) oka
11. Hogyan működnek a cluster alapú fájlrendszerek ?

A fájlokat csíkokra bontjuk (striping) és különböző eszközökön tároljuk, így a 
részeiket párhuzamosan érjük el. Ennek célja a rendszer gyorsítása és 
biztonságosabbá tétele.
12. Az önszervező szerver működése

Az önszervező szerver lényege az adaptáció. Elvárásaink lehetnek: 
önkonfiguráció, önkezelő, önjavító, önoptimalizáló stb.
Visszacsatolásos vezérlést használ, vagyis megnézi az egyes tulajdonságok esetén
megfelelő értékeket és azt, hogy a rendszer mennyire tér el és ennek segítségével 
beállítja hogy elfogadható érték legyen.

********************** IV. VIZSGA ***********************
1. message broker
Az üzenetsor kezelő rendszerek esetén. Ezek feltételezik, hogy az üzenetek 
azonos protokoll alapján készültek, ezért, ha mégis valamilyen módon 
átalakításra szorul az üzenet, azt egy message broker fogja elvégezni. 
Gondoskodik a megfelelő konverziókról és átalakítja az üzenetet a fogadó 
formátumára. Átjáróként is szolgál a kliens és a szerver között, ezért a közvetítés
mellett pl. biztonsági szerepe is van. Az üzenet tartalmát is megvizsgálhatja.
2. átható rendszer

Sok elosztott rendszer kis, mobil részekből áll. Ezeket a rendszereket nagyon 
sokféleképpen fel tudjuk használni.
Jellemzoő:
a) Mivel a környezet gyakran változhat, ezért jól kell alkalmazkodniuk ehhez.
b) Ad­hoc szerveződés: Mivel a rendszer komponenseit nagyon sokféleképpen 
használhatják, könnyen konfigurálhatónak kell lennie.
c) Megosztott szolgáltatások: Mivel a rendszer nagyon változékony, az adatoknak
könnyen kell áramlaniuk. Ezért a rendszer elemei egyszerű szerkezetűek.
3. X.500 struktúrája

A katalógusszolgáltatásokban (directory service) az attribútumokra megkötések 
érvényesek. A legismertebb szabvány az X.500, amelyet az LDAP protokollon 
keresztül szokás elérni. Az elnevezési rendszer fastruktúrájú, élei névalkotó 
jellemzőkkel (attribútum­érték párokkal) címzettek. Az egyedekre az útjuk 
jellemzői vonatkoznak, és további párokat is tartalmazhatnak.
4. kliens konzisztenciája

Kliensközpontú konzisztencia esetén a cél, hogy azokat az adatokat amelyeket a 
kliens az A szerveren módosított ugyanolyan állapotban lássa a B szerveren is.
Típusai:
a) Monoton olvasás (olvasás után olvasás):
Ha egyszer a kliens kiolvasott egy értéket X­ből, akkor onnantól azt az értéket, 
vagy frissebbet lásson.
b) Monoton írás (írás után írás):
A kliens csak akkor írhatja X­et, ha a kliens korábbi írásai X­re már 
befejeződtek.
c) Olvasd az írásodat (írás után olvasás):
Ha a kliens olvassa az X­et, akkor az általa véghezvitt legfrissebb írás eredménye
látszódjon. (vagy frissebb)
d)  Olvasás után írás:
Ha a kliens kiolvasott egy értéket X­ből, akkor minden ezután lévő módosítás X 
legalább ennyire friss értéket módosítsa.
5. bizánci generálisok

Hibaelfedés csoportokban:
k­hibatűrőcsoport: olyan csoport, amely képes elfedni k tag egyszerre történő 
meghibásodását.
Tegyük fel, hogy a csapattagok különbözően működnek és mindegyik kimenetét 
el kell juttatni mindenki másnak. 3k+1 tag esetén a "lojális" szerverek képesek 
megfelelő adatokat továbbítani k "áruló" jelenlétében is.
6. QoS biztosítása

a) Differenciált szolgáltatási architektúra: A hálózat routerei kategorizálják az 
áthaladó forgalmat a beérkező adatcsomagok tartalma szerint és néhány 
csoportot elsőbbséggel továbbítanak.
b) Remegés csökkentése: A routerek pufferelhetik az adatokat a remegés (jitter) 
csökkentése érdekében.
7. szálak a kliensoldalon

Például: Többszálú webkliens
A böngésző mindegyik tartalmat külön szálon tölti le, amíg a HTTP kéréseket 
kiszolgálják, ezek blokkolódnak, így elfedi a hálózat késleltetését. Amikor egy­egy
fájl megérkezik, a blokkolás megszűnik és a böngésző megjeleníti a tartalmat.
Például: több távoli eljáráshívás egyszerre (RPC)
Egy kliens több távoli szolgáltatást szeretne igénybe venni. Mindegyik kérést 
külön szál kezeli. Megvárja, amíg mindegyik kérésre megérkezik a válasz.

********************** V. VIZSGA ***********************
1. Overlay hálózat: előnyei, hátrányai

Overlay: Számítógépes hálózat egy meglévő hálózatra építve. A gráfban 
szomszédos csúcsok a fizikai hálózaton lehetnek távol egymástól, a rendszer 
elfedi, hogy a köztük lévő kommunikáció több gépet érintve történik.
Hátrány: Ha a "virtuális" hálózat nő, akkor nem biztos, hogy fizikailag is nő a 
háttérben lévő hálózat. (?)
Előny: Elfedjük azt, hogy két csúcs valójában (fizikailag) nem szomszédos, hanem
akár több gép is lehet köztük, ez P2P­nél fontos.
2. Mi történik ha gyűrűben a vezetőválasztás után összeomlik a 
megválasztott vezető

Semmi. A választás bármikor újrakezdhető, bármelyik csúcs által. Még akkor 
sincs probléma, ha választás közben omlik össze valamelyik csúcs.
3. Haszonbérlet

A szerver ígéretet tesz a kliensnek, hogy továbbítani fogja neki a frissítéseket, 
amíg a haszonbérlet tart.
Lehet dinamikus:
a) Kor alapú: Minél régebbi az objektum annál valószínűtlenebb, hogy 
változatlan marad
b) Igénylés gyakorisága szerint: Minél többször igényli, annál hosszabb időre 
kapja.
c) Terhelés szerinti: Minél terheltebb a rendszer, annál rövidebb időre adja a 
haszonbérleteket.
4. időbélyeg­vektor, mire használjuk

Ahhoz, hogy megállapítsuk két eseményről, hogy okoz(hat)ta­e a másikat – 
illetve fordítva, nem elegendő az egyszerű időbélyeg. C(a) < C(b) összefüggésből 
nem vonható le az a következtetés, hogy az a esemény okságilag megelőzi a b 
eseményt.
Időbélyeg­vektor: Pi most már az összes másik folyamat idejét is számon tartja 
VCi[1..n] tömbben
• Induláskor minden óra 0.
• Minden alkalommal amikor a folyamat (Pi) egy belső eseményt észlel, 
növeli a saját logikai óráját eggyel: VCi[i] = VCi[i] + 1
• Minden alkalommal amikor egy folyamat üzenetet küld, növeli a saját 
logikai óráját 
eggyel és 
teljes 
időbélyeg­
vektorát 
ráírja az 
üzenetre 
(ts(m)).
• Minden 
alkalommal 
amikor egy 
folyamat (Pj) 
üzenetet kap, 
növeli a saját 
logikai óráját 
eggyel és frissíti az összes folyamat logikai órájának értékét a saját 
vektorában: VCj[k] := max{ VCj[k], ts(m)[k] }

5. objektumszerver részei, feladataik 

A rendszer részei a kiszolgálók, a vázak és az adapterek.
A kiszolgálókat több paradigma szerint is lehet implementálni:
• Függvények gyűjteményei (pl.: C)
• Osztályok (pl.: Java, C++)
A váz (skeleton) a szerveroldali hálózati kapcsolatokat kezeli:
• Kicsomagolja a beérkező kéréseket, lokálisan meghívja az objektumot, 
becsomagolja és visszaküldi a választ.
• Az interface specifikációja alapján hozzák létre.
Az objektumadapter feladata objektumok egy csoportjának kezelése:
• Elsőként fogadja a kéréseket, és azonosítja a releváns kiszolgálót.
• Policy szerint aktiválja a megfelelő vázat.
• Az adapter generálja az objektumhivatkozásokat.
********************** VI. VIZSGA ***********************
1. Milyen fajtái léteznek a járványalgoritmusoknak? Mit lehet mondani a
hatékonyságukról?

a) Anti­Entrópia
Minden szerver rendszeresen kiválaszt egy másikat, és kicserélik egymás között 
a változásokat.
O(log(n)) nagyságrendű forduló megtétele után az összes csúcshoz eljut a 
frissítés. Egy fordulónak az számít, ha mindegyik csúcs megtett egy lépést.
b) Pletykálás
Ha az S szerver új frissítést észlelt, akkor felveszi a kapcsolatot más 
szerverekkel, és elküldi számukra a frissítést. Ha olyan szerverhez kapcsolódik, 
ahol már jelen van a frissítés, akkor 1/k valószínűséggel abbahagyja a frissítés 
terjesztését.
Kellően sok szerver esetén a tudatlanságban maradó szerverek (akikhez nem jut 
el a frissítés) száma exponenciálisan csökken a k valószínűség növekedésével, de 
ezzel az algoritmussal nem garantálható, hogy minden szerverhez eljut a 
frissítés.

2. Hogyan tér el működésben az állapot nélküli és az állapot teljes 
szerver? Milyen előnyeik/hátrányaik vannak?

a) Állapot nélküli
Ez a fajta szerver nem tud semmit a kliensről, csak kiszolgálja a kérését. A 
kliensek és a szerverek teljesen függetlenek egymástól. Kevésbé valószínű, hogy 
inkonzisztencia lép fel azért, mert valamelyik oldal összeomlik. A hatékonyság 
rovására mehet, hogy a szerver nem tud semmit a kliensről, pl. nem tudja előre 
betölteni az adatokat.
b) Állapot teljes kliens
Információt tart számon a kliensről (pl.: melyik fájlokat használta, és ezeket 
előre megnyitja, vagy frissítéseket küld) Nagyon hatékonyak tudnak lenni, ha a 
kliensek is tárolhatnak adatokat lokálisan. Megbízhatóvá lehet tenni, a 
teljesítmény jelentős romlása nélkül.
3. Miben térnek el a különböző fájlmegosztási szemantikák?

A konkurens fájlműveletek biztosításához több lehetséges szemantika létezik:
a) Módosíthatatlan fájlok: A fájl létrehozása után a fájl nem módosítható. (ez 
ritkán működik)
b) UNIX szemantika: A fájlokból olvasás esetén mindig a legutolsó írási művelet 
eredményét látja a felhasználó.
c) Munkamenet szemantika: Onnantól, hogy a kliens megnyitja a fájl, addig, hogy
vissza nem írja az adott írási/olvasási műveletek hatását csak o láthatja, majd 
csak véglegesítés után a többi felhasználó.
d) Tranzakciós szemantika: A rendszer minden fájlra biztosít egy külön 
tranzakciót.
4. Milyen szintekre szokás tagolni a DNS­t? 

a) Globális szint: A gyökér és a felső csúcsok. A szervezetek közösen kezelik. 
(pl. .hu, .eu stb.)
b) Szervezeti szint: Egy­egy szervezet által kezelt csúcsok (pl. elte.hu)
c) Kezelői szint: A szervezeti szinten belüli csúcsok (pl. bármelyik fájl a elte.hu­n 
belül)

********************** VII. VIZSGA ***********************

1. Milyen megközelítései vannak a virtualizációnak?

a) Process VM: A virtuális gép (VM) közönséges programként fut, bájtkódot 
(előfordított programkódot) hajt végre. (pl.: JVM)
b) VM Monitor, hypervisor: Hardver teljes körű virtualizációja, bármilyen 
operációs rendszer és program futtatására képes. (pl.: VMware, VirtualBox)
2. Hogyan szerveződhetnek egy hálózat csúcsai pl. négyzetrács formába 
önmaguktól?
Clusterezés segítségével. (Overlay topológia)
Minden i csúcshoz hozzárendelünk egy GID(i) természetes számot, és azt 
mondjuk, hogy i a GID(i) csoportba tarozik. 
Definiálunk egy távolságfüggvényt:
1, ha GID(i) = GID(j)
dist(i, j) =  
0, ha GID(i) != GID(j)  
Itt egy távolságfüggvény szerinti megtartó szabály hat (az overlay a közelieket 
veszi át).
3. Hogyan hasznosítható a pletykálás algoritmusa egy rendszer 
konzisztensen tartásához?

Ha az S szerver új frissítést észlelt, akkor felveszi a kapcsolatot más 
szerverekkel, és elküldi számukra a frissítést. Ha olyan szerverhez kapcsolódik, 
ahol már jelen van a frissítés, akkor 1/k valószínűséggel abbahagyja a frissítés 
terjesztését.
Kellően sok szerver esetén a tudatlanságban maradó szerverek (akikhez nem jut 
el a frissítés) száma exponenciálisan csökken a k valószínűség növekedésével, de 
ezzel az algoritmussal nem garantálható, hogy minden szerverhez eljut a 
frissítés.
4. Egy rendszerben, amelynek üzenetet küldünk, megváltoznak az 
üzenetek, amelyek mostantól időbélyeget kapnak. Hogyan vezethető ez 
be a legkisebb változtatással a programunkba?

Lampert­féle időbélyeggel. Bevezetünk egy számlálót C, ami minden eseménynél 
(üzenet küldés/fogadás) növekszik. Így minden üzenetre rá tudjuk nyomni az 
időbélyeget ( ts(m) ). Ha pedig  üzenetet kapunk, akkor C = max{ C, ts(m) } (m a 
kapott üzenet), hogy ne folyhasson „visszafelé” az idő.
5. Mi az a felépülési vonal, mikor van rá szükség és hogyan érjük el?

Konzisztens rendszerállapot:
A folyamatok pillanatfelvételeket készítenek az állapotukról.
konzisztens metszet: olyan ellenőrzőpont­gyűjtemény, amelyben minden 
beérkezett üzenethez a küldési esemény is el van tárolva
felépülési vonal: legfrissebb konzisztens metszet

6. Kódmigráció után milyen módon kapcsolódhat a migrált kód?

Kapcsolat az erőforrással:
Hogyan tud a komponens kapcsolatban maradni az erőforrással?
• Típuskapcsolt erőforrás esetén a legkönnyebb újrakapcsolódni egy lokális, 
megfelelő típusú erőforráshoz
• Azonosítókapcsolt vagy tartalomkapcsolt esetben:
• rendszerszintű hivatkozást létesíthetünk az eredeti erőforrásra
• mozdíthatatlan erőforrások esetén ez az egyetlen lehetőség
• minden más esetben is szóba jöhet, de általában van jobb megoldás
• azonosítókapcsolt erőforrást érdemes áthelyezni
• tartalomkapcsolt erőforrást érdemes lemásolni

7. Hogyan működik a tartalomérzékeny kéréselosztás?

(content aware distribution): A HTTP kérés tartalmát is figyelembe vesszük a 
szerver kiválasztásánál. Ez megnöveli a kapcsolattartó terhelését, de sok előnye 
van: segítségével hatékonyabb lehet a szerveroldali cache­elés, és lehetnek 
bizonyos feladatokra dedikált szervereink
8. Az edge serverek hogyan biztosíthatnak tartalomszolgáltatást 
(amelyek az eredetszerveren vannak eredetileg)?

Edge szerver: az adatokat tároló szerver, a kliensekhez minél közelebb van 
elhelyezve, jellemzően ott, ahol egy nagyobb hálózat az Internetre csatlakozik.
Tartalom szerinti gyorsítótárazás: Az adatbázist az edge szerver módosított, a 
lekérdezésekhez illeszkedő alakban tárolja helyben, és feliratkozik a szerveren a 
frissítésekre. Jól működik intervallumokra vonatkozó, összetett lekérdezésekre
9. Ha egy elnevezési rendszerben egy mobil ágens átkerül egy másik 
tartományba, mi történik, és hogyan érhető el ezentúl?

(nem teljes)
A névszerverek nem alkalmasak mozgó entitások címeinek kezelésére, mert azok
költözésével gyakran változna a gráf.
10. Milyen stratégiával lehet multicastolni költséghatékonyan egy olyan 
lokális hálózatban, amiről tudjuk, hogy a kapcsolat nem megbízható?

(Multicast üzenetküldés: egyszerre küldünk a node­k egy részhalmazának 
üzenetet)
Ha a hálózat összesen 3k+1 tagja közül legfeljebb k nem megbízható akkor a 
csúcsok konszenzusra juthatnak a helyes információval. (Bizánci hibatűrés)

You might also like