ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ"

Transcript

1 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Καραΐσκος Ζαφείριος 2010

2 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή ιαδιεργασιακή επικοινωνία Σύγχρονη και ασύγχρονη επικοινωνία Επικοινωνία µε υποδοχές UDP datagram επικοινωνία TCP ρεύµα επικοινωνίας Τήλε-κλήση υποπρογράµµατος (RPC) Βασική λειτουργία της RPC Μεταβίβαση παραµέτρων Ασύγχρονο RPC ιευθυνσιοδότηση Επεξεργασία συναλλαγών Εισαγωγή Συναλλαγές Έλεγχος ταυτοχρονισµού Κλειδώµατα Αισιόδοξος έλεγχος ταυτοχρονισµού Ταξινόµηση µε βάση τις χρονοσφραγίδες Κατανεµηµένη κοινή µνήµη Το µοντέλο κοινής µνήµης Κατανεµηµένη κοινή µνήµη Θέµατα σχεδίασης και υλοποίησης Κατανεµηµένα συστήµατα αρχείων Κατανεµηµένη υπηρεσία ονοµάτων Κατανεµηµένη υπηρεσία αρχείων ιαφορές αρχείων

3 1. Εισαγωγή Ορισµός Λ.Σ. για Η/Υ ενός επεξεργαστή "Λειτουργικό σύστηµα είναι µια οµάδα προγραµµάτων τα οποία επικοινωνούν µε το χρήστη και εκτελούν τις εντολές του διαχειριζόµενα τις συσκευές του Η/Υ." Σχήµα 1. Λειτουργικό σύστηµα για Η/Υ ενός επεξεργαστή. Λ.Σ. για Η/Υ πολλών επεξεργαστών ιεπαφή χρήστη και εφαρµογές Λειτουργικό σύστηµα CPU... CPU Σχήµα 2. Λειτουργικό σύστηµα για Η/Υ πολλών επεξεργαστών. Χαρακτηριστικά: Ο Η/Υ έχει µια µνήµη κοινή για όλους τους επεξεργαστές. Υπάρχει συγχρονισµός µεταξύ των διεργασιών που εκτελούνται από τους επεξεργαστές. Η προσπέλαση κοινών πόρων γίνεται βάση του αµοιβαίου αποκλεισµού. Το σύστηµα παρέχει θεµελιώδεις (primitive) µηχανισµούς για την υλοποίηση των παραπάνω. 3

4 Λ.Σ. για πολλούς Η/Υ Η/Υ Α Η/Υ Β Η/Υ Γ Κατανεµηµένες Εφαρµογές Κατανεµηµένο Λειτουργικό Σύστηµα πυρήνας πυρήνας πυρήνας ίκτυο Σχήµα 3. Λειτουργικό σύστηµα για πολλούς Η/Υ. Ο πυρήνας (kernel) κάνει τη διαχείριση των διεργασιών ενός Η/Υ. Ο κάθε πυρήνας διαχειρίζεται τις τοπικές συσκευές και τη δια-διεργασιακή επικοινωνία. Το πρώτο επίπεδο πάνω από τους πυρήνες είναι το Κατανεµηµένο Λειτουργικό Σύστηµα (Κ.Λ.Σ.). υνατότητες του Κ.Λ.Σ. είναι: α) Η ανάθεση εργασιών στους επεξεργαστές. β) Η συγκάλυψη των αποτυχιών του υλικού (hardware). γ) Η παροχή διαφανούς (transparent) µνήµης. δ) Η δια-διεργασιακή επικοινωνία. ΠΑΡΑΤΗΡΗΣΗ: Η δια-διεργασιακή επικοινωνία θα συζητηθεί σε ξεχωριστό κεφάλαιο. Κατανεµηµένα συστήµατα κοινής µνήµης Ένα Κ.Λ.Σ. µπορεί να παρέχει κοινή κατανεµηµένη µνήµη (Κ.Κ.Μ.) ή όχι. Η παροχή Κ.Κ.Μ. διευκολύνει το συγχρονισµό και την επικοινωνία των διεργασιών, για παράδειγµα, οι σηµατοφόροι, οι ελεγκτές και η αποστολή µηνυµάτων διευκολύνουν περισσότερο από την παροχή µόνο της αποστολής µηνυµάτων. Ζητήµατα όπως ενδιάµεση αποθήκευση (buffering), φράξιµο (blocking) και αξιοπιστία δυσχεραίνουν την κατάσταση. Για το λόγο αυτό, 4

5 έχει γίνει σηµαντική έρευνα για τη µίµηση της κοινής µνήµης σε συστήµατα πολλών Η/Υ. Σκοπός είναι η παροχή εικονικής µνήµης. Θα µελετηθεί σε επόµενο κεφάλαιο. Λειτουργικά συστήµατα δικτύων (Λ.Σ...) Η/Υ Α Η/Υ Β Η/Υ Γ Κατανεµηµένες Εφαρµογές Λ.Σ.. Λ.Σ.. Λ.Σ.. πυρήνας πυρήνας πυρήνας ίκτυο Σχήµα 4. Λειτουργικό σύστηµα δικτύου. Σε αντίθεση µε τα Κ.Λ.Σ., τα Λ.Σ.. δε θεωρούν ότι το υποκείµενο υλικό είναι οµοιογενές, το οποίο θα έπρεπε να φαίνεται ως ένα σύστηµα. Υπάρχουν διάφορα υπολογιστικά συστήµατα ενός επεξεργαστή, το καθένα µε το δικό του Λ.Σ., όπως φαίνεται στο παραπάνω σχήµα. Είναι όλα συνδεδεµένα σε ένα δίκτυο. Τα Λ.Σ.. παρέχουν τη δυνατότητα στους χρήστες να κάνουν χρήση των υπηρεσιών που διαθέτει συγκεκριµένος Η/Υ. Μεγάλη διαφορά µεταξύ των δύο Λ.Σ. (Κ.Λ.Σ. και Λ.Σ..) είναι η διαφάνεια (transparency). Τα Κ.Λ.Σ. επιδιώκουν την πλήρη διαφάνεια, δηλαδή, την άποψη ενός συστήµατος. Τα Λ.Σ.. απαιτούν την είσοδο σε συγκεκριµένο Η/Υ του δικτύου. Αυτό φυσικά καταστρατηγεί τη διαφάνεια. Μεσολογισµικό Σύµφωνα µε τον ορισµό των κατανεµηµένων συστηµάτων: "Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από ανεξάρτητους Η/Υ, οι οποίοι εµφανίζονται στους χρήστες ως ένα ενιαίο συναφές σύστηµα." ούτε τα Κ.Λ.Σ. είναι κατανεµηµένα αφού δε χειρίζονται ανεξάρτητους Η/Υ, ούτε τα Λ.Σ.. παρέχουν την όψη ενός ενιαίου συναφούς συστήµατος. 5

6 Σχήµα 5. Μεσολογισµικό. Για να συνδυάσουν την προσαρµοστικότητα και την ανοικτότητα των Λ.Σ.. µε τη διαφάνεια και την ευκολία χρήσης των Κ.Λ.Σ. πολλά µοντέρνα κατανεµηµένα συστήµατα κατασκευάζονται µε ένα επιπρόσθετο στρώµα, που ονοµάζεται µεσολογισµικό (middleware). 6

7 2. ιαδιεργασιακή επικοινωνία Η δια-διεργασιακή επικοινωνία (interprocess communication) αφορά την µεταβίβαση µηνυµάτων µεταξύ των διεργασιών. Μεταβίβαση ενός µηνύµατος από µια διεργασία σε άλλη, είναι η αντιγραφή δεδοµένων από το χώρο µνήµης της µιας διεργασίας στο χώρο µνήµης της άλλης διεργασίας. Γι αυτό το σκοπό χρησιµοποιούνται δύο θεµελιώδεις εντολές: send(παραλήπτης, µήνυµα) και receive(αποστολέας, µήνυµα) Για να επιτευχθεί η επικοινωνία µεταξύ δύο διεργασιών, η µία διεργασία στέλνει ένα µήνυµα µε την εντολή send, το οποίο λαµβάνει η άλλη µε την εντολή receive. Για να πραγµατοποιηθεί η επικοινωνία ίσως χρειαστεί ο συγχρονισµός των διεργασιών. Σχήµα 6. Επικοινωνία δύο διεργασιών. 2.1 Σύγχρονη και ασύγχρονη επικοινωνία Οι δύο θεµελιώδεις εντολές µπορεί να εκτελούνται µε φράξιµο (blocking) ή χωρίς-φράξιµο (nonblocking). Φράξιµο σηµαίνει ότι η καλούσα διεργασία παύει να εκτελείται µέχρι να ολοκληρώσει η εντολή την εργασία της. Άρα χωρίς-φράξιµο, η καλούσα διεργασία συνεχίζει να εκτελείται χωρίς να περιµένει την ολοκλήρωση της εντολής. Υπάρχουν δύο είδη επικοινωνίας, η σύγχρονη και η ασύγχρονη. 1. Σύγχρονη send και σύγχρονη receive. Η εντολή send επιστρέφει τον έλεγχο στην καλούσα διεργασία µόνον όταν η αντίστοιχη receive, στην 7

8 πλευρά του παραλήπτη, τερµατίσει επιτυχώς και στείλει επιβεβαίωση λήψης του µηνύµατος στον αποστολέα. { Αποστολή µηνύµατος } Αποστολή επιβεβαίωσης Σχήµα 7. Σύγχρονη επικοινωνία. Μέχρι τη λήψη της επιβεβαίωσης, ο αποστολέας δεν µπορεί να συνεχίσει την εκτέλεση του κώδικά του. Η λήψη της επιβεβαίωσης υπονοεί ότι ο παραλήπτης έλαβε όλο το µήνυµα. Συνεπώς, η ολοκλήρωση της send εγγυάται ότι το µήνυµα ελήφθη µε επιτυχία. 2. Ασύγχρονη send και σύγχρονη receive. Η ασύγχρονη send, επιστρέφει τον έλεγχο στην καλούσα διεργασία, όταν το µήνυµα αποσπαστεί από το χώρο µνήµης της διεργασίας. 8

9 Αποστολή µηνύµατος } Σχήµα 8. Ασύγχρονη send και σύγχρονη receive. Σε σύγκριση µε την σύγχρονη send, η ασύγχρονη επιτρέπει τη διεργασία αποστολής να ανακτήσει πολύ νωρίτερα, αλλά δεν εγγυάται ότι το µήνυµα έφτασε ή θα φτάσει στην κατάλληλη διεργασία. Η εξασφάλιση αυτής της εγγύησης θα απαιτούσε επιπρόσθετη συνεννόηση (handshaking) µεταξύ των διεργασιών. 3. Ασύγχρονη send και ασύγχρονη receive µε φράξιµο. Η ασύγχρονη µε φράξιµο receive είναι παρόµοια µε την σύγχρονη receive επειδή επιστρέφει τον έλεγχο στην καλούσα διεργασία µόνον όταν το µήνυµα έχει µεταφερθεί µε επιτυχία στον προορισµό του. Αποστολέας Παραλήπτης send Αποστολή µηνύµατος } receive blocked state Σχήµα 9. Ασύγχρονη send ασύγχρονη receive µε φράξιµο. 9

10 Αντίθετα µε τη σύγχρονη receive, η receive µε φράξιµο δε στέλνει επιβεβαίωση λήψης στον αποστολέα. 4. Ασύγχρονη send και ασύγχρονη receive. Οι χωρίς φράξιµο send και receive επιτρέπουν τη µεγαλύτερη αλληλοεπικάλυψη (overlap) µεταξύ υπολογισµού και µεταβίβασης µηνύµατος επιστρέφοντας το συντοµότερο στην καλούσα διεργασία. Μια χωρίς φράξιµο send επιστρέφει τον έλεγχο αµέσως. Μια χωρίς φράξιµο receive επιστρέφει τον έλεγχο αφού πρώτα στείλει την πρόθεση λήψης. Η λήψη µηνύµατος και η τοποθέτησή του στο χώρο µνήµης της διεργασίας εκτελείται ασύγχρονα, σε απροσδιόριστη στιγµή, από το σύστηµα. Αποστολέας Παραλήπτης send Αποστολή µηνύµατος receive Σχήµα 10. Ασύγχρονη send και ασύγχρονη receive Στις χωρίς φράξιµο send και receive η επιστροφή του ελέγχου δεν υπονοεί τίποτα για την κατάσταση του µηνύµατος, οπότε είναι ευθύνη του χρήστη να προσδιορίσει αυτήν την κατάσταση. Ξεχωριστές θεµελιώδεις-εντολές (primitives) παρέχονται για τη διερεύνηση της κατάστασης. Μηνύµατα χωρίς φράξιµο, συνεπώς, χρησιµοποιούνται σε δύο φάσεις: πρώτα η send/receive εκτελεί το δικό της κώδικα και µετά, όταν χρειάζεται, τις θεµελιώδεις-εντολές διερεύνησης. Οι θεµελιώδεις-εντολές µπορούν να φράξουν µέχρι να παρατηρηθεί η επιθυµητή κατάσταση ή να επιστρέψουν τον έλεγχο αµέσως και απλώς να αναφέρουν την παρατηρηθείσα κατάσταση. 10

11 2.2 Επικοινωνία µε υποδοχές Η υποδοχή (socket) είναι ένας µηχανισµός που παρέχει επικοινωνία δύο κατευθύνσεων. Υπάρχουν πολλών ειδών υποδοχές, δύο εκ των οποίων είναι οι υποδοχές διαδικτύου και οι υποδοχές UNIX. Θα εξετάσουµε τις υποδοχές διαδικτύου και ιδιαίτερα τις υποδοχές-ροής (stream-sockets) και τις datagram υποδοχές. Οι υποδοχές-ροής είναι αξιόπιστη επικοινωνία δύο-κατευθύνσεων. Η µεταβίβαση των µηνυµάτων είναι fifo. Υποδοχές-ροής χρησιµοποιεί το HTTP πρωτόκολλο των φυλλοµετρητών διαδικτύου. Οι υποδοχές-ροής χρησιµοποιούν το πρωτόκολλο TCP. Οι datagram-υποδοχές δε χρησιµοποιούν TCP, χρησιµοποιούν όµως IP για τη δροµολόγηση στο διαδίκτυο, και το User Datagram Protocol (UDP). Οι datagram-υποδοχές υλοποιούν τη λεγόµενη ασύνδετη επικοινωνία, διότι δε χρειάζεται να διατηρούν µια ανοιχτή σύνδεση, όπως οι υποδοχές-ροής. Το µόνο που χρειάζεται είναι το µήνυµα και η ΙΡ κεφαλίδα για να γίνει η αποστολή. Η δια-διεργασιακή επικοινωνία συνίσταται στην µεταβίβαση ενός µηνύµατος από την υποδοχή µιας διεργασίας στην υποδοχή άλλης διεργασίας, όπως φαίνεται στο σχήµα που ακολουθεί. Σχήµα 11. Μεταβίβαση µηνύµατος από υποδοχή σε υποδοχή. Μια διεργασία, για να λάβει µηνύµατα, πρέπει να είναι δεµένη σε µια τοπική πόρτα και µία από τις διευθύνσεις διαδικτύου του Η/Υ στον οποίο εκτελείται. Τα µηνύµατα που στέλνονται σε συγκεκριµένη διεύθυνση διαδικτύου και συγκεκριµένο αριθµό πόρτας, µπορούν να ληφθούν µόνο από µια διεργασία της οποίας η υποδοχή είναι συνδεδεµένη µε τη συγκεκριµένη διεύθυνση διαδικτύου και το συγκεκριµένο αριθµό πόρτας. ιεργασίες µπορούν να χρησιµοποιήσουν την ίδια υποδοχή για την αποστολή και λήψη µηνυµάτων. Κάθε Η/Υ έχει ένα µεγάλο αριθµό ( 2 16 ) δυνατών αριθµών πορτών, που µπορούν να χρησιµοποιήσουν οι τοπικές διεργασίες για τη λήψη µηνυµάτων. 11

12 Κάθε διεργασία µπορεί να λάβει µηνύµατα από πολλές πόρτες, αλλά µια διεργασία δεν µπορεί να µοιράζεται πόρτες µε άλλες διεργασίες στον ίδιο Η/Υ. Οι διεργασίες που χρησιµοποιούν πολλαπλής διανοµής ΙΡ 1, αποτελούν εξαίρεση διότι αυτές µοιράζονται πόρτες. Ωστόσο, πολλές διεργασίες µπορούν να στείλουν µηνύµατα στην ίδια πόρτα. Κάθε υποδοχή συνδέεται µε συγκεκριµένο πρωτόκολλο, είτε το UDP είτε το TCP UDP datagram επικοινωνία Ένα datagram 2 που στέλνεται µε UDP, µεταβιβάζεται από µια διεργασία αποστολέα σε µια διεργασία παραλήπτη, χωρίς επιβεβαίωση ή επαναληπτικές προσπάθειες. Αν συµβεί µια αποτυχία, το µήνυµα µπορεί να µην φτάσει. Ένα datagram είναι διαβιβασθέν, όταν µια διεργασία το έχει στείλει και µια άλλη διεργασία το έχει παραλάβει. Μια διεργασία για να στείλει ή να λάβει µηνύµατα πρέπει πρώτα να δέσει µια υποδοχή µε µια διεύθυνση διαδικτύου του τοπικού οικοδεσπότη και µια τοπική πόρτα. Ένας εξυπηρετητής θα δέσει την υποδοχή του µε µια πόρτα εξυπηρετητή, την οποία θα γνωστοποιήσει σε πελάτες ώστε να µπορούν να στείλουν µηνύµατα σ' αυτή. Ένας πελάτης δένει την υποδοχή του σε οποιαδήποτε ελεύθερη τοπική πόρτα. Η λήψη επιστρέφει τη διεύθυνση διαδικτύου και την πόρτα του αποστολέα, µαζί µε το µήνυµα, δίνοντας έτσι τη δυνατότητα στον παραλήπτη να απαντήσει. Οι παράγραφοι που ακολουθούν παρουσιάζουν κάποια ζητήµατα σχετιζόµενα µε την datagram επικοινωνία: Μέγεθος µηνύµατος. Η διεργασία λήψης χρειάζεται να καθορίσει έναν πίνακα bytes (buffer) συγκεκριµένου µεγέθους στον οποίο θα υποδεχθεί το µήνυµα. Αν το µήνυµα είναι πολύ µεγάλο για τον πίνακα, περικόπτεται κατά την 16 άφιξη. Το υποκείµενο ΙΡ πρωτόκολλο επιτρέπει πακέτα µήκους µέχρι 2 byte, συµπεριλαµβανοµένης της κεφαλίδας. Εν τούτοις, τα περισσότερα περιβάλλοντα επιβάλλουν µέγιστο µέγεθος byte. Εφαρµογές που απαιτούν µεγαλύτερα µηνύµατα πρέπει να τα τεµαχίσουν σε κοµµάτια αυτού του µεγέθους. Γενικά, µια εφαρµογή, για παράδειγµα το DNS, καθορίζει ένα µέγεθος που δεν είναι υπερβολικά µεγάλο αλλά είναι επαρκές για την προτιθέµενη χρήση. Φράξιµο. Οι υποδοχές συνήθως παρέχουν send χωρίς φράξιµο και receive µε φράξιµο για datagram επικοινωνία (η receive χωρίς φράξιµο είναι επιλογή σε 1 Αποστολή ενός ΙΡ πακέτου σε οµάδα Η/Υ. 2 Ένα datagram είναι ένα µικρό "πακέτο", τµήµα ενός µεγαλύτερου µηνύµατος, που περιέχει την πλήρη διεύθυνση του οικοδεσπότη αποστολέα και του οικοδεσπότη παραλήπτη. 12

13 κάποιες υλοποιήσεις). Η πράξη send επιστρέφει αφού έχει παραδώσει το µήνυµα στα υποκείµενα UDP και IP πρωτόκολλα, τα οποία είναι υπεύθυνα για τη µεταβίβασή του στον προορισµό του. Με την άφιξη, το µήνυµα τοποθετείται σε µια ουρά της υποδοχής που είναι (η υποδοχή) δεµένη µε την πόρτα προορισµού. Το µήνυµα µπορεί να περισυλλεγεί από την ουρά από µια εκκρεµή κλήση ή µια µελλοντική κλήση της receive επί αυτής της υποδοχής. Μηνύµατα απορρίπτονται (στον προορισµό) όταν καµία διεργασία δεν έχει ήδη δέσει µια υποδοχή µε την πόρτα προορισµού. Η receive φράζεται µέχρι να ληφθεί ένα datagram, εκτός και αν έχει τεθεί λήξη χρόνου στην υποδοχή. Αν η διεργασία που καλεί τη receive έχει να κάνει άλλη δουλειά περιµένοντας το µήνυµα, πρέπει να κανονίσει για ξεχωριστό νήµα (thread). Λήξη χρόνου. Η receive µε ατελείωτο φράξιµο, είναι κατάλληλη για χρήση από έναν εξυπηρετητή που περιµένει να λάβει αιτήµατα από τους πελάτες του. Σε µερικά, όµως, προγράµµατα δεν είναι πρέπων να περιµένει επ' αόριστον σε περίπτωση που ο ενδεχόµενος αποστολέας έχει συντριβεί ή το µήνυµα έχει χαθεί. Τέτοιες περιπτώσεις αντιµετωπίζονται θέτοντας λήξη χρόνου στις υποδοχές. Η επιλογή του κατάλληλου χρονικού διαστήµατος χρόνου είναι δύσκολη, αλλά θα πρέπει να είναι αρκούντως µεγάλο σε σύγκριση µε το χρόνο που χρειάζεται ένα µήνυµα να µεταβιβαστεί. Λήψη από οποιονδήποτε. Η receive δεν καθορίζει την προέλευση των µηνυµάτων. Αντ' αυτού, η κλήση της receive λαµβάνει ένα µήνυµα που κατευθύνεται στην υποδοχή της από οποιαδήποτε προέλευση. Η receive επιστρέφει τη διεύθυνση διαδικτύου και την τοπική πόρτα του αποστολέα, επιτρέποντας τον παραλήπτη να ελέγξει την προέλευσή του. Είναι δυνατόν να συνδέσουµε µια datagram υποδοχή µε συγκεκριµένη αποµακρυσµένη πόρτα και διεύθυνση διαδικτύου, οπότε η υποδοχή είναι σε θέση να στέλνει σε και να λαµβάνει µηνύµατα µόνο από αυτή τη διεύθυνση. Σε κάποιες εφαρµογές είναι αποδεκτή η χρήση υπηρεσιών οι οποίες είναι αντικείµενο σποραδικών αποτυχιών. Για παράδειγµα, η Υπηρεσία Ονοµάτων Περιοχής, η οποία ανατρέχει DNS ονόµατα στο διαδίκτυο, υλοποιείται πάνω σε UDP. Voice over IP τρέχει επίσης, πάνω σε UDP. UDP datagrams είναι πολλές φορές µια ελκυστική επιλογή, διότι δεν «πάσχουν» από επιβαρύνσεις (overheads), πού σχετίζονται µε την εγγυηµένη διανοµή µηνυµάτων. Υπάρχουν τρεις κύριες πηγές επιβάρυνσης: α. η ανάγκη αποθήκευσης της κατάστασης σε αφετηρία και προορισµό. 13

14 β. Η µεταβίβαση πρόσθετων µηνυµάτων. γ. Η λανθάνουσα κατάσταση (latency) του αποστολέα. Παράδειγµα επικοινωνίας µε datagram sockets SERVER s=socket(ip4 ή IP6,STREAM,πρωτόκολλο) CLIENT s=socket( ) bind( ) send() ή sendto( ) recv( ) close(s) close (s) TCP ρεύµα επικοινωνίας Αυτού του είδους η επικοινωνία παρέχει την αφαίρεση (abstraction) ενός ρεύµατος byte, στο οποίο δεδοµένα µπορούν να εισαχθούν σ αυτό όπως επίσης να εξαχθούν (διαβαστούν) από αυτό. Τα ακόλουθα χαρακτηριστικά του δικτύου αποκρύπτονται από το ρεύµα: Μέγεθος µηνύµατος: Η εφαρµογή επιλέγει το πλήθος των δεδοµένων που θα γράψει στο ρεύµα ή θα διαβάσει από αυτό. Μπορεί να επιλέξει µεταξύ πολύ µικρής ή πολύ µεγάλης οµάδας δεδοµένων. Η υποκείµενη υλοποίηση του TCP ρεύµατος, αποφασίζει πόσα δεδοµένα θα συγκεντρώσει πριν τα µεταβιβάσει ως ένα ή περισσότερα IP πακέτα. Με την άφιξη τα δεδοµένα παραχωρούνται στην εφαρµογή που τα ζήτησε. Οι εφαρµογές δύνανται, εν ανάγκη, να πιέσουν ώστε τα δεδοµένα να σταλούν αµέσως. Χαµένα µηνύµατα: Το TCP πρωτόκολλο κάνει χρήση του σχήµατος επιβεβαίωσης. Για παράδειγµα, ο παραλήπτης στέλνει επιβεβαίωση για κάθε παραλαβή. Αν ο αποστολέας δε λάβει επιβεβαίωση µε τη λήξη χρόνου, ξαναστέλνει το µήνυµα. Έλεγχος ροής: Το TCP πρωτόκολλο προσπαθεί να ταιριάξει την ταχύτητα των διεργασιών που γράφουν στο ρεύµα και διαβάζουν από το ρεύµα. Αν ο αποστολέας είναι γρηγορότερος του παραλήπτη, τότε φράζεται µέχρι ο παραλήπτης να διαβάσει αρκετά από τα µηνύµατα. ιπλότυπα µηνυµάτων και ταξινόµηση: Τα αναγνωριστικά των µηνυµάτων συνδέονται µε κάθε ΙΡ πακέτο, γεγονός που επιτρέπει στον παραλήπτη να 14

15 ανιχνεύσει και να απορρίψει τα διπλότυπα ή να ταξινοµήσει εκ νέου τα µηνύµατα, τα οποία δε φτάνουν µε τη σειρά που στάλθηκαν. Προορισµός µηνύµατος: Ένα ζευγάρι επικοινωνούντων διεργασιών, εγκαθιστούν µια σύνδεση πριν µπορέσουν να επικοινωνήσουν µε ρεύµα. Μόλις επιτευχθεί η σύνδεση, οι διεργασίες απλώς γράφουν ή διαβάζουν στο ρεύµα, χωρίς να χρειάζεται να χρησιµοποιήσουν διευθύνσεις διαδικτύου και πόρτες. Η εγκατάσταση µιας σύνδεσης περιλαµβάνει ένα connect αίτηµα του πελάτη προς τον εξυπηρετητή, ακολουθούµενο από µια accept απόκριση του εξυπηρετητή προς τον πελάτη, πριν η επικοινωνία λάβει χώρα. Αυτό µπορεί να είναι σηµαντική επιβάρυνση για ένα απλό πελάτη-εξυπηρετητή αίτηµα και απόκριση. Η επικοινωνία ρεύµατος υποθέτει ότι όταν ένα ζευγάρι διεργασιών εγκαθιστά µια σύνδεση, µία από αυτές παίζει το ρόλο του πελάτη και η άλλη παίζει το ρόλο του εξυπηρετητή. Ο ρόλος του πελάτη περιλαµβάνει τη δηµιουργία µιας υποδοχής ρεύµατος δεµένης σε κάποια πόρτα και κατόπιν την υποβολή αιτήµατος connect ζητώντας σύνδεση µε τον εξυπηρετητή στην πόρτα του εξυπηρετητή. Ο ρόλος του εξυπηρετητή περιλαµβάνει τη δηµιουργία µιας αφουγκραζόµενης υποδοχής δεµένης σε µια πόρτα του εξυπηρετητή και την αναµονή του αιτήµατος πελάτη για σύνδεση. Η αφουγκραζόµενη υποδοχή διατηρεί ουρά εισερχοµένων αιτηµάτων σύνδεσης. Στο µοντέλο υποδοχής, όταν ο εξυπηρετητής αποδέχεται µια σύνδεση (µε τη συνάρτηση accept), δηµιουργείται µια νέα υποδοχή ρεύµατος µε σκοπό την επικοινωνία του εξυπηρετητή µε έναν πελάτη, διατηρώντας, εν τω µεταξύ, την αρχική υποδοχή του δεµένη µε την πόρτα για το άκουσµα νέων αιτηµάτων connect από άλλους πελάτες. Το ζεύγος υποδοχών του πελάτη και του εξυπηρετητή συνδέονται µε ένα ζεύγος ρευµάτων, ένα για κάθε κατεύθυνση. Μία από το ζεύγος διεργασιών στέλνει πληροφορίες στην άλλη γράφοντας στο εξερχόµενο ρεύµα και η άλλη διεργασία λαµβάνει την πληροφορία διαβάζοντας το εισερχόµενο ρεύµα. Όταν µια εφαρµογή κλείνει µια υποδοχή (µε τη συνάρτηση close), δηλώνει ότι δε θα γράψει άλλα δεδοµένα στο εξερχόµενο ρεύµα. εδοµένα που βρίσκονται στο buffer εξερχοµένων αποστέλλεται στο άλλο άκρο του ρεύµατος και τοποθετείται στην ουρά της υποδοχής προορισµού µε την ένδειξη ότι το ρεύµα διακόπηκε. Η διεργασία στον προορισµό µπορεί να διαβάσει τα δεδοµένα από την ουρά, αλλά κάθε προσπάθεια να συνεχίσει το διάβασµα, αφού η ουρά έχει αδειάσει, θα έχει ως αποτέλεσµα την ένδειξη του τέλους του ρεύµατος. Όταν µια διεργασία εξέρχεται ή αποτυγχάνει, όλες οι 15

16 υποδοχές κλείνουν και οποιαδήποτε προσπάθεια επικοινωνίας µε αυτή θα βρει τη σύνδεση κοµµένη. Ακολουθούν κάποια σηµαντικά ζητήµατα σχετικά µε την επικοινωνία ρεύµατος: Ταίριασµα δεδοµένων: ύο επικοινωνούσες διεργασίας πρέπει να συµφωνήσουν ως προς το περιεχόµενο των δεδοµένων των µεταβιβαζόµενων µε το ρεύµα, ώστε να µην υπάρξει παρερµηνεία από τον παραλήπτη. Για παράδειγµα, αν µια διεργασία γράψει στο ρεύµα ένα ακέραιο ακολουθούµενο από έναν πραγµατικό αριθµό, πρέπει και ο παραλήπτης να διαβάσει ένα ακέραιο αριθµό ακολουθούµενο από έναν πραγµατικό. Φράξιµο: Τα δεδοµένα που γράφονται στο ρεύµα, φυλάσσονται σε µια ουρά της υποδοχής προορισµού. Όταν µια διεργασία επιχειρεί να διαβάσει δεδοµένα από ένα εισερχόµενο ρεύµα, θα τα λάβει από την ουρά ή θα φράξει µέχρι να υπάρξουν διαθέσιµα. Η διεργασία που γράφει δεδοµένα σε ρεύµα µπορεί να φράξει, από το µηχανισµό ελέγχου TCP ροής, αν η υποδοχή στο άλλο άκρο φυλάσσει στην ουρά τόσα δεδοµένα όσα επιτρέπει το πρωτόκολλο. Νήµατα: Όταν ένας εξυπηρετητής αποδέχεται µια σύνδεση, δηµιουργεί, εν γένει, ένα νέο νήµα µέσω του οποίου θα επικοινωνεί µε το νέο πελάτη. Το πλεονέκτηµα της χρήσης ενός ξεχωριστού νήµατος για κάθε πελάτη είναι ότι ο εξυπηρετητής µπορεί να φράξει αναµένοντας δεδοµένα εισόδου, χωρίς να καθυστερεί άλλους πελάτες. Παράδειγµα επικοινωνίας µε stream sockets SERVER s=socket(ip4 ή IP6,DGRAM,πρωτόκολλο) CLIENT s=socket( ) bind(s,διεύθυνση,µήκος-διεύθυνσης) listen(s,max-connections) connect(s,διεύθυνση,µήκος-διεύθυνσης) s2=accept(s,ο πελάτης,µέγεθος) send(s,buffer,count,0) recv(s2,buffer,maxn,0) close(s2) close(s) 16

17 Η send είναι ασύγχρονη (δεν περιµένει). Η recv είναι σύγχρονη (περιµένει). 2.3 Τήλε-κλήση υποπρογράµµατος (RPC) Βασική λειτουργία της RPC Σύνταξη Η τήλε-κλήση υποπρογράµµατος έχει γενικά τη µορφή: call όνοµα-υποπρογράµµατος(παράµετροι τιµής; παράµετροι αποτελέσµατος) Ο πελάτης φράζεται λόγω της call µέχρι να λάβει την επιβεβαίωση. Το αποµακρυσµένο υποπρόγραµµα είναι η διεργασία εξυπηρετητή η οποία εκτελείται στον αποµακρυσµένο Η/Υ. Φράζεται µε τη receive µέχρι να λάβει ένα µήνυµα από τον πελάτη και παραµέτρους. Κατόπιν, ο εξυπηρετητής στέλνει ένα reply() όταν τελειώσει την εργασία του. receive όνοµα-υποπρογράµµατος(παράµετροι εισόδου; παράµετροι εξόδου) reply(ο καλών, παράµετροι εξόδου) Σηµασιολογία Η καλούσα διεργασία καλεί και µεταβιβάζει ορίσµατα στο υποπρόγραµµα και φράζεται ενώ το υποπρόγραµµα εκτελείται. Όταν το υποπρόγραµµα τερµατίσει επιστρέφει τα αποτελέσµατα στην καλούσα διεργασία. Ο εξυπηρετητής φράζεται περιµένοντας το µήνυµα που περιέχει τα ορίσµατα. Όταν το λάβει αποσπά τα ορίσµατα από το µήνυµα και µεταβιβάζει ορίσµατα και έλεγχο στο υποπρόγραµµα. Τα αποτελέσµατα αποστέλλονται στον πελάτη. Το ακόλουθα ζητήµατα αφορούν τις ιδιότητες (χαρακτηριστικά) του RPC που πρέπει να ληφθούν υπ' όψη στη σχεδίαση ενός RPC συστήµατος, ώστε να επιτευχθεί η διαφάνεια. 17

18 έσιµο (binding): Το δέσιµο παρέχει σύνδεση µεταξύ του ονόµατοςυποπρογράµµατος και την τοποθεσία του αποµακρυσµένου υποπρογράµµατος. ιαφάνεια επικοινωνίας: Οι χρήστες πρέπει να είναι ανήµεροι ότι το υποπρόγραµµα που καλούν είναι αποµακρυσµένο. Υπάρχουν τρεις (3) δυσκολίες στην επίτευξη διαφάνειας: α) η ανίχνευση και διόρθωση λαθών οφειλοµένων σε αποτυχία της επικοινωνίας και του Η/Υ, β) η µεταβίβαση παραµέτρων και γ) χειρισµός των εξαιρέσεων. Η αποτυχία επικοινωνίας και του Η/Υ έχουν ως αποτέλεσµα ασυνεπή δεδοµένα λόγω της µερικής ολοκλήρωσης των διεργασιών. Η λύση σ' αυτό το πρόβληµα επαφίεται συχνά στον προγραµµατιστή εφαρµογών. Η µεταβίβαση παραµέτρων στα περισσότερα συστήµατα περιορίζεται στη χρήση παραµέτρων τιµής. Ο χειρισµός των εξαιρέσεων είναι ένα πρόβληµα που και αυτό σχετίζεται µε την ανοµοιογένεια. Οι διαθέσιµες εξαιρέσεις στις διάφορες γλώσσες προγραµµατισµού διαφέρουν και πρέπει να περιοριστούν στο χαµηλότερο κοινό παρονοµαστή. Ταυτοχρονισµός: Οι µηχανισµοί ταυτοχρονισµού δεν πρέπει να εµποδίζουν τους µηχανισµούς επικοινωνίας. Πελάτες και εξυπηρετητές µονονηµατικοί (single threaded), που φράζονται ενώ περιµένουν τα αποτελέσµατα από το αποµακρυσµένο υποπρόγραµµα, µπορούν να προκαλέσουν σηµαντικές καθυστερήσεις. Αυτές οι καθυστερήσεις µπορούν να επιδεινωθούν από περαιτέρω κλήσεις αποµακρυσµένων υποπρογραµµάτων στον εξυπηρετητή. Τα νήµατα επιτρέπουν τον εξυπηρετητή να εκτελέσει κλήσεις από περισσότερους πελάτες ταυτόχρονα. Ανοµοιογένεια: ιαφορετικοί Η/Υ µπορεί να έχουν διαφορετική αναπαράσταση δεδοµένων, µπορεί να εκτελούν διαφορετικά λειτουργικά συστήµατα ή τα αποµακρυσµένα υποπρογράµµατα µπορεί να έχουν γραφεί σε διαφορετική γλώσσα προγραµµατισµού. Η διεπαφή ενός αποµακρυσµένου υποπρογράµµατος εξυπηρετεί στη σύσταση (συγκρότηση) συµφωνίας µεταξύ των επικοινωνούντων διεργασιών ως προς των τύπο των ορισµάτων, τον τύπο των εξαιρέσεων, τον έλεγχο τύπων και την αυτόµατη µετατροπή από µια αναπαράσταση δεδοµένων σε µια άλλη, όπου απαιτείται. 18

19 Γενικά RPC καταδεικνύει έναν απλούστερο τρόπο κατασκευής κατανεµηµένων προγραµµάτων από τη µεταβίβαση µηνυµάτων, διότι αφαιρεί τις λεπτοµέρειες επικοινωνίας και µεταβίβασης. Η ιδέα είναι να φαίνεται η αποµακρυσµένη κλήση σαν τοπική. ηλαδή η RPC να είναι διαφανής που σηµαίνει ότι η καλούσα διεργασία να µην είναι ενήµερη ότι το κληθέν υποπρόγραµµα εκτελείται σε άλλο Η/Υ. Συνήθης κλήση υποπρογράµµατος Ας υποθέσουµε ότι ένα πρόγραµµα χρειάζεται να διαβάσει µια εγγραφή από ένα αρχείο. Ο προγραµµατιστής τοποθετεί µια κλήση της συνάρτησης read(fd,but,nbytes) στο πρόγραµµα. Σε ένα προσωπικό Η/Υ ο κώδικας της read() αποσπάται από µια βιβλιοθήκη, µε το διασυνδέτη, ο οποίος τον ενώνει µε το υπόλοιπο πρόγραµµα. Ο κώδικας της read() γενικά καλεί την αντίστοιχη read του συστήµατος. Με άλλα λόγια η read() λειτουργεί ως διεπαφή του προγράµµατος µε το λειτουργικό σύστηµα. Στέλεχος πελάτη και εξυπηρετητή Η RPC επιτυγχάνει τη διαφάνεια ε ανάλογο τρόπο. Αν το αρχείο βρίσκεται σε άλλο Η/Υ τότε µπορεί να γίνει κλήση της τοπικής read(). Για το σκοπό αυτό, µια διαφορετική έκδοση της read(), που ονοµάζεται στέλεχος-πελάτη έχει το τοποθετηθεί στη βιβλιοθήκη. Όπως και στην απλή περίπτωση χρησιµοποιείται η ακολουθία κλήσης όπως φαίνεται στο σχήµα που ακολουθεί: nbytes buf fd ιευθ. Επιστροφής... Κορυφή της στοίβας Σχήµα 12. Ακολουθία κλήσης υποπρογράµµατος. 19

20 Στη συνέχεια τοποθετούνται οι παράµετροι σε µήνυµα και ζητάει να σταλεί το µήνυµα στον εξυπηρετητή. Μετά την κλήση της send(), το στέλεχοςπελάτη καλεί τη receive(), το οποίο φράζεται µέχρι να έρθει η επιβεβαίωση. Στον εξυπηρετητή, το λειτουργικό σύστηµα µεταβιβάζει το µήνυµα στο στέλεχος-εξυπηρετητή. Το στέλεχος-εξυπηρετητή είναι παρόµοιο µε το στέλεχος-πελάτη. Είναι ένα κοµµάτι κώδικα που µετατρέπει αιτήµατα που προέρχονται από το διαδίκτυο σε τοπική κλήση υποπρογράµµατος. Κατά κανόνα το στέλεχος-εξυπηρετητή έχει καλέσει τη receive() και έχει φράξει περιµένοντας τα εισερχόµενα µηνύµατα. Όταν ληφθεί ένα µήνυµα, το στέλεχος-εξυπηρετητή αποσπά τις παραµέτρους και καλεί το υποπρόγραµµα. Άρα τα δεδοµένα του σχήµατος 12 βρίσκονται στη στοίβα. Ο εξυπηρετητής εκτελεί το υποπρόγραµµα κει µετά επιστρέφει το αποτέλεσµα στον καλούντα. Στη δική µας περίπτωση γεµίζει το buf µε δεδοµένα. Αυτός ο buf ανήκει στον εξυπηρετητή. Το στέλεχος-εξυπηρετητή τοποθετεί το buf σε µήνυµα και καλεί την send() να το µεταβιβάσει στον πελάτη. Μετά από αυτό, το στέλεχος-εξυπηρετητή συνήθως καλεί τη receive() και περιµένει για το επόµενο αίτηµα. Όταν το µήνυµα φτάσει στον πελάτη, το λειτουργικό σύστηµα βλέπει σε ποια διεργασία απευθύνεται, παραδίδει το µήνυµα στο στέλεχος-πελάτη και το ξεµπλοκάρει. Το στέλεχος-πελάτη αφαιρεί τα δεδοµένα από το µήνυµα και τα αντιγράφει στο buf του καλούντα. Ο καλών επιστρέφει µετά το read() και το µόνο που ξέρει είναι ότι ελήφθησαν τα δεδοµένα, αλλά αγνοεί την όλη διαδικασία Μεταβίβαση παραµέτρων Παράµετροι τιµής Η τοποθέτηση παραµέτρων σε µήνυµα λέγεται στοίχιση παραµέτρων (parameter marshaling). Έστω, για παράδειγµα, το αποµακρυσµένο υποπρόγραµµα add (i,j) το οποίο δέχεται 2 ακέραιους i και j ως παραµέτρους και επιστρέφει το άθροισµά τους. 20

21 Πελάτης Εξυπηρετητής ιεργασία... push j push i call add mov k,ax... Στέλεχοςπελάτη ιεργασία... push j push i call add mov k,ax... k proc int int int add val(i) val(j) k Στέλεχοςεξυπηρετητή proc int int int add val(i) val(j) k k Λειτουργικό σύστηµα Λειτουργικό σύστηµα Σχήµα 13. Τηλεκλήση. Έφ' όσον οι Η/Υ του πελάτη και του εξυπηρετητή είναι ίδιες η δουλειά προχωράει περίφηµα. Όµως, σε ένα µεγάλο κατανεµηµένο σύστηµα, είναι σύνηθες να διαφέρουν οι Η/Υ. Συχνά οι Η/Υ έχουν δική τους αναπαράσταση αριθµών και άλλων δεδοµένων. Επίσης, κάποιοι Η/Υ αριθµούν τα byte από δεξιά προς τ' αριστερά (π.χ. intel). Οπότε χρειάζονται πληροφορίες για το τι είναι ακέραιος και οι άλλοι τύποι, ώστε να µπορεί να γίνει η µετατροπή στην αναπαράσταση του Η/Υ του εξυπηρετητή. Παράµετροι αναφοράς Πως µεταβιβάζονται pointers και γενικά αναφορές; Όπως ξέρουµε ο pointer ή η αναφορά περιέχουν τη διεύθυνση µιας θέσης στη µνήµη του Η/Υ του πελάτη. Άρα τι νόηµα έχει στον Η/Υ του εξυπηρετητή, όταν στην ίδια διεύθυνση σίγουρα υπάρχει ένα άλλο αντικείµενο; Ας ξανά εξετάσουµε το παράδειγµα µε τη συνάρτηση read(). Η δεύτερη παράµετρος είναι η διεύθυνση ενός buffer. Ας υποθέσουµε ότι η διεύθυνσή του είναι 0x0B Είναι φανερό ότι δεν µπορούµε να µεταβιβάσουµε 21

22 την παραπάνω διεύθυνση στον εξυπηρετητή, διότι είναι πολύ πιθανό να είναι η διεύθυνση ενός άλλου αντικειµένου. Μια λύση είναι να τοποθετήσει στο µήνυµα έναν πίνακα τόσων byte όσο το buffer. Ο server µπορεί να αντιγράψει τα δεδοµένα στον πίνακα που παρέλαβε και να τον στείλει πίσω στον πελάτη. Εκεί το στέλεχος-πελάτη θα αντιγράψει τα δεδοµένα στο buffer του προγράµµατος που περιέχεται στην read(). Προσδιορισµός των παραµέτρων και δηµιουργία στελέχους Αυτό που διαπιστώσαµε µέχρι τώρα είναι ότι ο καλών και ο κληθείς πρέπει να έχουν συµφωνήσει για τη µορφή των µηνυµάτων και ότι ακολουθούν τα ίδια ακριβώς βήµατα όταν χειρίζονται σύνθετες δοµές δεδοµένων. ηλαδή, και οι δύο πλευρές πρέπει να ακολουθήσουν το ίδιο πρωτόκολλο, διαφορετικά το RPC δε θα εκτελεστεί σωστά. π.χ. Synartisi(char x,float y,int Z[5]) { } Έστω ότι το πρωτόκολλο προσδιορίζει ότι στο µήνυµα ο χαρακτήρας θα είναι το δεξιότερο byte ενός double word (4 byte), ο πραγµατικός αριθµός θα είναι ένα double word και ο πίνακας θα καταλαµβάνει 5 double words των οποίων θα προηγείται ένας ακέραιος που θα δηλώνει το πλήθος των στοιχείων. Βλέπε σχήµα 14. y 5 z[0] z[1] z[2] z[3] z[4] x Σχήµα 14. Μήνυµα. Και τα δύο στελέχη πρέπει να γνωρίζουν την παραπάνω µορφή του µηνύµατος. 22

23 Ο προσδιορισµός της µορφής ενός µηνύµατος είναι ένας παράγων, άλλα δεν είναι ο µοναδικός. Αυτό που επίσης χρειάζεται είναι συµφωνία µεταξύ πελάτη και εξυπηρετητή για την αναπαράσταση των απλών τύπων, όπως ακεραίων, πραγµατικών, χαρακτήρων, λογικών, κτλ. Π.χ. οι ακέραιοι αναπαρίσταται µε τη µορφή "συµπλήρωµα ως προς 2", οι πραγµατικοί µε την IEEE 754 µορφή. Όλοι αριθµοί αποθηκεύονται µε την little endian µορφή. Οι χαρακτήρες µε την 16-bit unicode µορφή, κτλ. Με τις πρόσθετες πληροφορίες µπορούν τα µηνύµατα να διερµηνευθούν µε σαφήνεια. Ο πελάτης και ο εξυπηρετητής πρέπει να συµφωνήσουν για ένα ακόµη παράγοντα: την ανταλλαγή µηνυµάτων. Να χρησιµοποιήσουν ροές ή datagrams Ασύγχρονο RPC Υπάρχουν εργασίες οι οποίες δεν επιστέψαν κάποιο αποτέλεσµα: µεταφορά χρηµάτων από λογαριασµό σε λογαριασµό, εισαγωγή γραµµών σε Β, έναρξη batch επεξεργασίας, κτλ. Για το λόγω αυτό παρέχεται η δυνατότητα της ασύγχρονης RPC. Ο πελάτης εκτελεί τη RPC και περιµένει την επιβεβαίωση από τον εξυπηρετητή. Ο εξυπηρετητής µόλις λάβει το αίτηµα στέλνει την επιβεβαίωση παραλαβής του αιτήµατος και συνεχίζει µε την κλήση του υποπρογράµµατος. Ο πελάτης µόλις λάβει την επιβεβαίωση επιστρέφει από την κλήση και συνεχίζει µε άλλες εργασίες. Αν ο πελάτης που εκτελεί την RPC δεν περιµένει ούτε για επιβεβαίωση τότε ονοµάζουµε αυτό το είδος RPC-µονόδροµο (one-way RPC). 2.4 ιευθυνσιοδότηση Ένα σηµαντικό ζήτηµα στη δια-διεργασιακή επικοινωνία είναι η διευθυνσιοδότηση: προσδιορισµός των διεργασιών που εµπλέκονται στην επικοινωνία. Κάθε µήνυµα πρέπει να ονοµάζει τη διεργασία παραλήπτη. Ονοµασία Σε ένα κατανεµηµένο σύστηµα, η υλοποίηση ενός συστήµατος ονοµασίας είναι συχνά κατανεµηµένο σε πολλαπλές µηχανές. Ο τρόπος κατανοµής παίζει ρόλο κλειδί στην απόδοση και την κλιµάκωση του συστήµατος ονοµασίας. Υπάρχουν πολλοί τρόποι χρήσης ονοµάτων στα κατανεµηµένα συστήµατα. Εµείς θα εξετάσουµε µερικά γενικά ζητήµατα, σε σχέση µε την 23

24 ονοµατολογία και µετά θα µελετήσουµε την οργάνωση και υλοποίηση ονοµάτων φιλικών στον άνθρωπο. Παραδείγµατα τέτοιων ονοµάτων αποτελούν αυτά των αρχείων και των διευθύνσεων του παγκόσµιου ιστού. Η δηµιουργία ενός παγκόσµιου και κλιµακούµενου συστήµατος ονοµασίας είναι πρωταρχικής σηµασίας για αυτού του είδους τα ονόµατα. Ονόµατα, αναγνωριστικά και διευθύνσεις "Όνοµα σε ένα κατανεµηµένο σύστηµα είναι µια συµβολοσειρά που παραπέµπει σε µια οντότητα." Οντότητα µπορεί να είναι οτιδήποτε, για παράδειγµα, πόροι, όπως εκτυπωτές, δίσκοι και αρχεία. Επίσης, διαδικασίες, χρήστες, γραµµατοκιβώτια, news groups, ιστοσελίδες, παράθυρα, µηνύµατα, συνδέσεις δικτύων, κ.α. Οι οντότητες εκτελούν διάφορες λειτουργίες. Για να χρησιµοποιήσει κάποιος τις λειτουργίες µιας οντότητας, πρέπει να έχει πρόσβαση σ' αυτή. Η πρόσβαση γίνεται µέσω ενός σηµείου πρόσβασης. Ένα σηµείο πρόσβασης είναι µια ιδιαίτερη οντότητα σε ένα κατανεµηµένο σύστηµα. Το όνοµα ενός σηµείου πρόσβασης καλείται διεύθυνση. Χάριν συντοµίας, θα λέµε "η διεύθυνση της οντότητας" και όχι "η διεύθυνση του σηµείου πρόσβασης της οντότητας". Μια οντότητα µπορεί να έχει πολλά σηµεία πρόσβασης, όπως ένας άνθρωπος µπορεί να έχει πολλούς αριθµούς τηλεφώνου. Μια οντότητα µπορεί να αλλάξει το σηµείο πρόσβασης µέσα στο χρόνο, όπως ένας άνθρωπος όταν µεταβεί σε άλλη πόλη ή κράτος θα αλλάξει αριθµό τηλεφώνου. Το ίδιο πρέπει να γίνει µε την ηλεκτρονική διεύθυνση όταν κάποιος αλλάξει παροχέα. Μια οντότητα µπορεί να αλλάξει σηµείο πρόσβασης ή ένα σηµείο πρόσβασης µπορεί να εκχωρηθεί σε διαφορετική οντότητα. Είναι ξεκάθαρο ότι ένα όνοµα µιας οντότητας, ανεξάρτητο από τη διεύθυνσή της, είναι ευκολότερο και πιο ευέλικτο στη χρήση. Ένα τέτοιο όνοµα καλείται ανεξάρτητο τοποθεσίας (location independent). Εκτός από τις διευθύνσεις, άλλου τύπου ονόµατα, που αξίζουν ειδική µεταχείριση, είναι τα ονόµατα που χρησιµοποιούνται για τον µοναδικό προσδιορισµό οντοτήτων. Ένα αναγνωριστικό είναι ένα όνοµα µε τις ακόλουθες ιδιότητες. 1. Ένα αναγνωριστικό αναφέρεται το πολύ σε µια οντότητα. 2. Κάθε οντότητα είναι αναφερόµενη από το πολύ ένα αναγνωστικό. 3. Ένα αναγνωστικό αναφέρεται πάντα στην ίδια οντότητα. 24

25 Τέλος υπάρχουν και τα φιλικά προς τον άνθρωπο ονόµατα. Ενώ οι διευθύνσεις και τα αναγνωριστικά αναπαρίστανται µε σειρές ψηφίων (bitstrings), τα φιλικά προς τον άνθρωπο ονόµατα αναπαρίστανται µε συµβολοσειρές (character-strings). Χώροι ονοµάτων Τα ονόµατα οργανώνονται σε χώρους ονοµάτων (Name spaces). Ένας χώρος ονοµάτων µπορεί να αναπαρασταθεί µε ένα κατευθυνόµενο γράφο (directed graph). home n0 cs n1 keys n2 l1 l2 n3 l5 mbox l3 l4 Σχήµα 15. Γράφος ονοµάτων Οι τερµατικοί κόµβοι ( l1,l2, ) αποθηκεύουν πληροφορίες για την οντότητα που αναπαριστούν, π.χ. τη διεύθυνσή της. Οι µη-τερµατικοί κόµβοι (n1, n2 ) έχουν έναν αριθµό εξερχόµενων ακµών που καταλήγουν σε άλλους κόµβους τερµατικούς ή µη. Οι ακµές έχουν ετικέτες. Κάθε µη-τερµατικός κόµβος αποθηκεύει έναν πίνακα, στον οποίο κάθε εξερχόµενη ακµή αναπαρίσταται µε το ζεύγος (ετικέτα ακµής, αναγνωριστικό κόµβου). ( ιότι, σε ένα κατανεµηµένο σύστηµα, και οι κόµβοι αποτελούν οντότητες ο κάθε ένας από τους οποίους είναι συνδεδεµένος µε ένα αναγνωριστικό). Ο µη-τερµατικός κόµβος n0 ονοµάζεται ρίζα του γράφου. Μια διαδροµή του γράφου περιγράφεται µε την ακολουθία ετικετών που αντιστοιχούν στις ακµές που αποτελούν τη διαδροµή. π.χ. η ακολουθία n0 : <home, keys, mbox> περιγράφει τη διαδροµή n0 n1 n3 l4. 25

26 Επειδή τα ονόµατα οργανώνονται πάντα σε χώρους ονοµάτων, ορίζονται µόνο ως προς τη ρίζα του γράφου. Ανάλυση ονόµατος Οι χώροι ονοµάτων προσφέρουν ένα βολικό µηχανισµό αποθήκευσης και ανάκτησης πληροφοριών για οντότητες µε ονόµατα. Γενικότερα δοθείσης της διαδροµής ενός ονόµατος, θα ήταν δυνατόν να βρεθούν οι πληροφορίες που είναι αποθηκευµένες στον προσδιοριζόµενο, από αυτό το όνοµα, κόµβο. Η διαδικασία εύρεσης ενός ονόµατος καλείται ανάλυση ονόµατος (name resolution). Η αναζήτηση ξεκινάει από τον κόµβο ρίζα του γράφου. Χρησιµοποιώντας την ετικέτα της διαδροµής βρίσκει µέσω του πίνακα το αναγνωριστικό του κόµβου στον οποίο καταλήγει η ακµή. Συνεχίζοντας µε αυτόν τον τρόπο φτάνει στον τελευταίο κόµβο της διαδροµής. Ένα παράδειγµα: The Domain Name System (DNS) Μία από τις πιο ευρείες υπηρεσίες κατανεµηµένων ονοµάτων σε χρήση σήµερα, είναι το DNS του διαδικτύου. Το DNS βασικά χρησιµοποιείται για την εύρεση host διευθύνσεων και εξυπηρετητών αλληλογραφίας (mail servers). Ο DNS χώρος ονοµάτων είναι οργανωµένος ιεραρχικά ως ένα δένδρο. Οι ετικέτες είναι συµβολοσειρές χωρίς διάκριση πεζών-κεφαλαίων, µε µέγιστο µήκος 63 χαρακτήρων. Το πλήρες όνοµα µιας διαδροµής είναι 255 χαρακτήρες. Οι ετικέτες της διαδροµής διαχωρίζονται µε '.'. Η ρίζα αναπαρίσταται επίσης µε '.'. Π.χ. η διαδροµή root:<gr,lar,tei,cs> αναπαρίσταται µε τη συµβολοσειρά cs.tei.lar.el. Η τελευταία '.' παραλείπεται. Επειδή κάθε κόµβος έχει µόνο µία εισερχόµενη ακµή (µε εξαίρεση τη ρίζα που δεν έχει εισερχόµενες ακµές), η ετικέτα της εισερχόµενης ακµής χρησιµοποιείται και ως όνοµα του κόµβου. Ένα υποδένδρο καλείται περιοχή (domain). Η διαδροµή προς τη ρίζα καλείται όνοµα περιοχής (domain name). Το περιεχόµενο ενός κόµβου διαµορφώνεται από µία συλλογή εγγραφών πόρων (resource records). Ένας κόµβος στο DNS χώρο ονοµάτων συχνά αναπαριστά διάφορες οντότητες την ίδια στιγµή. Π.χ. ο χώρος ονοµάτων teilar.gr χρησιµοποιείται για να αναπαριστά µια περιοχή και µία ζώνη. Σ' αυτή την περίπτωση, η περιοχή υλοποιείται µε διάφορες ζώνες. Ένας σηµαντικός τύπος εγγραφής πόρων είναι η εγγραφή ΜΧ (mail exchange), η οποία είναι ουσιαστικά ένας συµβολικός σύνδεσµος σε ένα κόµβο που αναπαριστά έναν εξυπηρετητή αλληλογραφίας. Για παράδειγµα, ο 26

27 κόµβος που αναπαριστά την περιοχή teilar.gr έχει µια ΜΧ εγγραφή που περιέχει το όνοµα mail.teilar.gr, που αναφέρεται σε ένα εξυπηρετητή αλληλογραφίας. Αυτός ο εξυπηρετητής χειρίζεται την εισερχόµενη αλληλογραφία που απευθύνεται στους χρήστες της teilar.gr περιοχής. Μπορεί να είναι διάφορες ΜΧ εγγραφές αποθηκευµένες σε ένα κόµβο. ΙΡ διευθύνσεις Οι ΙΡ διευθύνσεις είναι 32 bit αριθµητικά αναγνωριστικά που περιέχουν ένα αναγνωριστικό διαδικτύου και ένα αναγνωριστικό οικοδεσπότη (host). Τα δύο αναγνωριστικά γράφονται ως ακολουθία 4 οκταψήφιων αριθµών διαχωριζοµένων µε '.', π.χ Οι αριθµοί, ανάλογα µε την κλάση των διευθύνσεων, µπορούν να είναι: Κλάση Α Κλάση Β Κλάση C Οι διευθύνσεις της κλάσης Α µε δυναµικότητα 2 = οικοδεσποτών σε κάθε υποδίκτυο, είναι δεσµευµένες για διάφορα δίκτυα ευρείας έκτασης. Οι διευθύνσεις της κλάσης Β είναι δεσµευµένες για οργανισµούς που περιέχουν δίκτυα µε περισσότερους από 255 Η/Υ. Οι διευθύνσεις της κλάσης C είναι για όλες τις άλλες περιπτώσεις. Όταν φάνηκε ότι το πλήθος των διευθύνσεων της παραπάνω µορφής επρόκειτο να µηδενιστεί, εµφανίστηκε το ΙΡν6 σύστηµα. Αποτελείται από 128 ψηφία, χωρισµένα σε 8 οµάδες των 16 ψηφίων, που διαχωρίζονται µε ':', και ο αριθµός κάθε οµάδας έχει 16δικη µορφή, π.χ. 2001:0db8:c9d2:aee5:73e3:943a:a5ae:9551 Όταν µια οµάδα είναι 0 τότε δε γράφουµε τον αριθµό, π.χ. Η διεύθυνση: 2001:0db8:c9d2:0012:0000:0000:0000:0051 γράφεται ως: 2001:0db8:c9d2:0012::0051 Άλλο παράδειγµα. Η διεύθυνση: 2001:0db8:ab00:0000:0000:0000:0000:0000 γράφεται ως: 2001:0db8:ab00:: Συµβατότητα µεταξύ ΙΡν4 και ΙΡν6 διευθύνσεων. Η ΙΡν4 διεύθυνση έχει την εξής ΙΡν6 µορφή: ::ffff:192:0:2:33 27

28 Πόρτες (ports) Εκτός από την ΙΡ διεύθυνση, υπάρχει ακόµη µια διεύθυνση, που χρησιµοποιείται από τις υποδοχές-ροής, η οποία ονοµάζεται αριθµός πόρτας. Είναι ένας 16-ψήφιος αριθµός που χρησιµοποιείται ως τοπική διεύθυνση για τη σύνδεση. Έστω ότι θέλετε να κάνετε περιήγηση στον παγκόσµιο ιστό και να λάβετε τα ηλεκτρονικά σας µηνύµατα. Πως διαχωρίζονται οι δύο υπηρεσίες στον ίδιο Η/Υ, ο οποίος έχει µία µόνο ΙΡ διεύθυνση; ιαφορετικές υπηρεσίες του διαδικτύου έχουν διαφορετικούς αριθµούς πορτών, οι οποίοι είναι γνωστοί. Η περιήγηση έχει αριθµό πόρτας 80. Η telnet έχει αριθµό πόρτας 23. Το SMTP έχει αριθµό πόρτας 25. Μπορείτε να βρείτε όλους τους αριθµούς πορτών στη λίστα "Big IANA port list". 28

29 3. Επεξεργασία συναλλαγών 3.1 Εισαγωγή Οι συναλλαγές εγγυώνται ότι όλα τα αντικείµενα που χειρίζεται ο εξυπηρετητής παραµένουν σε συνεπή κατάσταση όταν προσπελαύνοντα από πολλαπλές συναλλαγές ακόµη και όταν συµβαίνουν συντριβές του εξυπηρετητή. Μια συναλλαγή ορίζεται από έναν πελάτη ως ένα σύνολο πράξεων σε αντικείµενα, το οποίο θα εκτελεστεί ως µια αδιαίρετη µονάδα από τους εξυπηρετητές, οι οποίοι διαχειρίζονται αυτά τα αντικείµενα. Οι συναλλαγές εγγυώνται ότι όλα τα αντικείµενα που χειρίζεται ο εξυπηρετητής παραµένουν σε συνεπή κατάσταση όταν προσπελαύνοντα από πολλαπλές συναλλαγές ακόµη και όταν συµβαίνουν συντριβές του εξυπηρετητή. Οι εξυπηρετητές πρέπει να εγγυώνται ότι είτε εκτελείται ολόκληρη η συναλλαγή και τα αποτελέσµατα καταχωρούνται σε µόνιµο αποθηκευτικό χώρο ή, σε περίπτωση συντριβής κάποιου ή κάποιων εξυπηρετητών, τα ενδιάµεσα αποτελέσµατα της συναλλαγής εξαλείφονται. Η συναλλαγή ενός πελάτη θεωρείται ως αδιαίρετη και από τη σκοπιά των συναλλαγών άλλων πελατών, µε την έννοια ότι οι πράξεις µιας συναλλαγής δεν µπορούν να διακρίνουν τα ενδιάµεσα αποτελέσµατα πράξεων άλλων συναλλαγών. Για την επεξήγηση διαφόρων καταστάσεων θα χρησιµοποιήσουµε ένα τραπεζικό παράδειγµα. Κάθε λογαριασµός αναπαρίσταται από ένα αποµακρυσµένο αντικείµενο του οποίου η διεπαφή Λογαριασµός παρέχει τις πράξεις για καταθέσεις, αναλήψεις και ερωτήσεις υπολοίπου. Κάθε υποκατάστηµα αναπαρίσταται από ένα αποµακρυσµένο αντικείµενο του οποίου η διεπαφή Υποκατάστηµα παρέχει τις πράξεις για τη δηµιουργία νέων λογαριασµών, αναζήτηση λογαριασµών και ερωτήσεις αποθέµατος. Λογαριασµός κατάθεση (λογαριασµός, ποσό) ανάληψη(λογαριασµός, ποσό) υπόλοιπο_λογαριασµού (λογαριασµός ) ποσό θέσε_υπόλοιπο_λογαριασµού (λογαριασµός, ποσό) 29

30 Υποκατάστηµα δηµιουργία (όνοµα) λογαριασµός αναζήτηση (όνοµα) λογαριασµός απόθεµα_υποκαταστήµατος ( ) ποσό Απλός συγχρονισµός (χωρίς συναλλαγές) Σε έναν εξυπηρετητή, οι συναλλαγές διαφόρων πελατών που εκτελούνται, µπορεί µερικές φορές να παρεµβαίνουν η µια στην άλλη. Αυτή η παρέµβαση µπορεί να έχει ως αποτέλεσµα λανθασµένες τιµές για τα αντικείµενα. Ατοµικές πράξεις. Είναι πράξεις που δεν επιδέχονται παρέµβαση από πράξεις που εκτελούνται ταυτόχρονα σε άλλα νήµατα. Οι synchronized µέθοδοι στην Java είναι ένας τρόπος για να επιτύχουµε ατοµικές πράξεις. Για παράδειγµα: public synchronized void deposit(int poso) throws Remote Exception { } Μόνο ένα νήµα µπορεί να καλέσει µια synchronized µέθοδο. Σε άλλα περιβάλλοντα επιτυγχάνουµε ατοµικές πράξεις µε µηχανισµούς αµοιβαίου αποκλεισµού. Βελτίωση της συνεργασίας πελατών. Κάποιοι πελάτες χρησιµοποιούν πράξεις για την ενηµέρωση αντικειµένων του εξυπηρετητή και άλλοι πελάτες χρησιµοποιούν πράξεις για την προσπέλαση τους. Αυτός ο τρόπος συγχρονίζει την προσπέλαση των αντικειµένων, άλλα µερικές φορές απαιτείται επικοινωνία µεταξύ των νηµάτων. Ένα κλασικό παράδειγµα είναι οι παραγωγοί και οι καταναλωτές. Οι καταναλωτές δεν µπορούν να καταναλώσουν αν πρώτα δεν παράγουν οι παραγωγοί. Στη Java οι wait και notify µέθοδοι επιτρέπουν τα νήµατα να επικοινωνούν µεταξύ τους. Η µέθοδος object.wait(χρονικό διάστηµα) µπλοκάρει το νήµα που την καλεί µέχρι να τελειώσει ο χρόνος ή να κληθεί η µέθοδος notify, δηλαδή η object.notify() ξυπνάει ένα νήµα που µπλόκαρε µε την wait. Οι wait και notify πρέπει να κληθούν εντός synchronized µεθόδων. 3.2 Συναλλαγές Σε κάποιες περιπτώσεις, οι πελάτες χρειάζονται µια ακολουθία ξεχωριστών αιτηµάτων, προς τον εξυπηρετητή, να είναι ατοµική, µε την έννοια ότι: 30

31 1. δεν επηρεάζεται από πράξεις εκτελούµενες ταυτόχρονα για λογαριασµό άλλων πελατών, 2. είτε θα εκτελεστούν όλες οι πράξεις µε επιτυχία ή, σε αντίθετη περίπτωση, να µην επηρεαστούν από τη συντριβή του εξυπηρετητή. Στο τραπεζικό µας παράδειγµα, ένας πελάτης που εκτελεί µια ακολουθία πράξεων σε συγκεκριµένο λογαριασµό για κάποιο χρήστη, πρέπει πρώτα να βρει το λογαριασµό βάση του ονόµατος και µετά να εκτελέσει τις πράξεις: κατάθεση, ανάληψη και υπόλοιπο_λογαριασµού. Έστω ότι οι λογαριασµοί είναι τρεις µε τα ονόµατα Α, Β και Γ. Βρίσκονται οι αντίστοιχοι λογαριασµοί και στις µεταβλητές a,b,c εισχωρείτε ένας pointer προς τον αντίστοιχο λογαριασµό. Ένα παράδειγµα συναλλαγής είναι το ακόλουθο: Συναλλαγή Τi ανάληψη(a,100) κατάθεση(b,100) ανάληψη(c,200) κατάθεση(b,200) Οι δύο πρώτες ενέργειες µεταφέρουν 100 από το λογαριασµό Α στο λογαριασµό Β και οι επόµενες δύο µεταφέρουν 200 από το λογαριασµό Γ στο λογαριασµό Β. Οι συναλλαγές προορίζονται να είναι ατοµικές και ονοµάζονται ατοµικές συναλλαγές (atomic transactions). Υπάρχουν δύο πλευρές της ατοµικότητας: Όλα ή τίποτα: Μια συναλλαγή είτε τερµατίζει επιτυχώς, και τα αποτελέσµατα όλων των πράξεών της καταχωρούνται στα αντικείµενα, είτε δεν έχει καµία επίδραση στα αντικείµενα (αν αποτύχει). Αυτή η πλευρά εµπεριέχει δύο διαστάσεις: ατοµικότητα αποτυχίας (failure atomicity), µακροβιότητα (durability) (αποθήκευση αποτελεσµάτων). Αποµόνωση: Κάθε συναλλαγή πρέπει να εκτελεστεί χωρίς την παρέµβαση άλλων συναλλαγών. Για να υποστηριχθούν οι όροι ατοµικότητα αποτυχίας και µακροβιότητα πρέπει τα αντικείµενα να είναι ανακτήσιµα (recoverable). ηλαδή, όταν ένας εξυπηρετητής συντρίβεται για οποιονδήποτε λόγω, οι αλλαγές όλων των αποπερατωµένων συναλλαγών πρέπει να είναι διαθέσιµες σε µόνιµη µνήµη 31

32 έτσι ώστε όταν ο εξυπηρετητής αντικαθίσταται, να µπορεί να ανακτήσει τα αντικείµενα µε αντικατοπτριζόµενο το αποτέλεσµα "όλα-ή-τίποτα". Ο εξυπηρετητής που υποστηρίζει συναλλαγές πρέπει να συγχρονίζει τις πράξεις επαρκώς ώστε να εξασφαλίζει ότι ο όρος "αποµόνωσης" ικανοποιείται. Ένας τρόπος να το καταφέρει είναι να εκτελεί τις συναλλαγές σειριακά - µια τη φορά. υστυχώς, αυτή η λύση είναι απαράδεκτη για εξυπηρετητές των οποίων οι πόροι είναι κοινοί σε πολλαπλούς διαδραστικούς χρήστες. Στο παράδειγµα µας, είναι επιθυµητό να επιτρέπονται πολλοί τραπεζικοί υπάλληλοι να εκτελούν online τραπεζικές συναλλαγές ταυτόχρονα. Σκοπός κάθε εξυπηρετητή είναι να µεγιστοποιήσει τον ταυτοχρονισµό. Εποµένως, συναλλαγές επιτρέπεται να εκτελούνται ταυτόχρονα αν είχαν το ίδιο αποτέλεσµα εκτελούµενες σειριακά δηλαδή είναι σειριακά ισοδύναµες ή σειριακοποιήσιµες (serializable). Την κάθε συναλλαγή δηµιουργεί και διαχειρίζεται ένας συντονιστής, ο οποίος υλοποιεί τη διεπαφή Συντονιστής, που ακολουθεί: άνοιγµασυναλλαγής() t κλείσιµοσυναλλαγής(t) (commit, abort) αν επιστρέψει commit σηµαίνει ότι δεσµεύθηκε, αν επιστρέψει abort σηµαίνει ότι διακόπηκε. διακοπήσυναλλαγής(t) διακόπτη τη συναλλαγή t. Ο συντονιστής δίνει σε κάθε συναλλαγή ένα αναγνωστικό ή TID. Ο πελάτης καλεί την πράξη άνοιγµασυναλλαγής() για να συστήσει µια νέα συναλλαγή - χορηγεί ένα αναγνωριστικό συναλλαγής και επιστρέφει. Στο τέλος της συναλλαγής ο πελάτης καλεί την πράξη κλείσιµοσυναλλαγής(t) για να υποδείξει το τέλος της - όλα τα ανακτήσιµα αντικείµενα που προσπελάστηκαν πρέπει να αποθηκευτούν. Αν για οποιονδήποτε λόγο, ο πελάτης επιθυµεί να διακόψει τη συναλλαγή, καλεί την πράξη διακοπήσυναλλαγής(t) - όλα τα αποτελέσµατα πρέπει να εξαλειφτούν. Ο πελάτης ορίζει την ακολουθία κλήσεων που θα αποτελέσει τη συναλλαγή. Η κλήση θα αφορά κάποιο αντικείµενο. Η συναλλαγή προσδιορίζεται µε το TID που χρησιµοποιείται στην κλήση. Για το λόγο αυτό προστίθεται µια επιπλέον παράµετρος στις πράξεις, για παράδειγµα η κατάθεση ορίζεται ως: κατάθεση(λογαριασµός,αναγνωριστικό-συναλλαγής,ποσό) Όταν η συναλλαγή τερµατίζει καλείται η πράξη κλείσιµοσυναλλαγής(t), η οποία αποκρίνεται µε commit αν η εξέλιξη υπήρξε οµαλή και οι αλλαγές 32

33 παγιώθηκαν ή µε abort αν η συναλλαγή διακόπηκε για κάποιο λόγω και οι αλλαγές εξαλείφτηκαν Έλεγχος ταυτοχρονισµού Σ' αυτή την ενότητα θα περιγράψουµε δύο πολύ γνωστά προβλήµατα στα πλαίσια του τραπεζικού παραδείγµατος. Στη συνέχεια θα δείξουµε πώς να τα αποφεύγουµε χρησιµοποιώντας σειριακά-ισοδύναµες εκτελέσεις των συναλλαγών. Υποθέτουµε ότι κάθε µια από τις πράξεις: κατάθεση, ανάληψη, υπόλοιπο_λογαριασµού και θέσε_υπόλοιπο_λογαριασµού, είναι ατοµικές. Το πρόβληµα της χαµένης ενηµέρωσης. Το πρόβληµα της χαµένης ενηµέρωσης επεξηγείται µε το ακόλουθο ζεύγος συναλλαγών επί των τραπεζικών λογαριασµών Α, Β και Γ, των οποίων το τρέχον ισοζύγιο είναι 100, 200 και 300 αντίστοιχα. Η συναλλαγή Τ µεταφέρει ένα ποσό από τον Α στον Β. Η συναλλαγή U µεταφέρει ένα ποσό από τον Γ στον Β. Έστω ότι οι συναλλαγές Τ και U εκτελούνται ταυτόχρονα κατά τον ακόλουθο τρόπο: Συναλλαγή Τ Συναλλαγή U y=υπόλοιπο_λογαριασµού(b,t) y=υπόλοιπο_λογαριασµού(b,u) θέσε_υπόλοιπο_λογαριασµού(b,u,y*1.1) θέσε_υπόλοιπο_λογαριασµού(b,t,y*1.1) ανάληψη(a,τ,y/10) ανάληψη(c,u,y/10) Και οι δύο συναλλαγές διαβάζουν υπόλοιπο 200. Η µια µετά την άλλη αυξάνουν τον λογαριασµό κατά 20, οπότε το τελικό αποτέλεσµα είναι 220, ενώ θα έπρεπε να είναι: =220 και =242. Αυτό συµβαίνει διότι µια από τη ενηµερώσεις χάθηκε. Ασυνεπής ανάκτηση. Ακολουθεί ένα άλλο παράδειγµα: Συναλλαγή V ανάληψη(a,v,100) κατάθεση(b,v,100) Συναλλαγή W synolo=υπόλοιπο_λογαριασµού(a,w) synolo=synolo+υπόλοιπο_λογαριασµού(a,w) synolo=synolo+υπόλοιπο_λογαριασµού(c,w) 33

34 Η συναλλαγή V αφαιρεί 100 από τον λογαριασµό Α. Ενεργοποιείται η συναλλαγή W και υπολογίζει το συνολικό υπόλοιπο (υπόλοιπο όλων των λογαριασµών). Στη συνέχεια καταθέτει η συναλλαγή V 100 στο λογαριασµό Β. Φυσικά το σύνολο είναι κατά 100 λιγότερο. Σειριακή ισοδυναµία. Αν κάθε συναλλαγή, από µια οµάδα συναλλαγών, εκτελείται παράγοντας σωστά αποτελέσµατα, τότε µπορούµε να συµπεράνουµε ότι αν αυτές οι συναλλαγές εκτελεστούν µια-µια µε κάποια σειρά, το συνολικό αποτέλεσµα θα είναι επίσης σωστό. Η εναλλαγή στην εκτέλεση των πράξεων των συναλλαγών, η οποία επιφέρει συνολικό αποτέλεσµα ίδιο µε το συνολικό αποτέλεσµα της σειριακής εκτέλεσης των συναλλαγών λέγεται ότι είναι σειριακά ισοδύναµη µε αυτή. Η χρήση της σειριακής ισοδυναµίας, ως κριτηρίου για την σωστή ταυτόχρονη εκτέλεση, αποτρέπει την εµφάνιση των χαµένων ενηµερώσεων και των ασυνεπών ανακτήσεων. Μπορούµε να λύσουµε το πρόβληµα της χαµένης ενηµέρωσης µε τη σειριακή ισοδυναµία ως εξής: Συναλλαγή Τ Συναλλαγή U y=υπόλοιπο_λογαριασµού(b,t) θέσε_υπόλοιπο_λογαριασµού(b,t,y*1.1) y=υπόλοιπο_λογαριασµού(b,u) θέσε_υπόλοιπο_λογαριασµού(b,u,y*1.1) ανάληψη(a,τ,y/10) ανάληψη(c,u,y/10) Στον παραπάνω τρόπο εκτέλεσης, οι πράξεις της συναλλαγής U επί του λογαριασµού Β, εκτελούνται µετά από τις πράξεις της συναλλαγής Τ. ηλαδή, οι πράξεις επί του λογαριασµού Β εκτελούνται σειριακά. Στη συνέχεια θα εξετάσουµε την επίδραση της σειριακής ισοδυναµίας επί του προβλήµατος της ασυνεπούς ανάκτησης. Η εναλλάξ εκτέλεση των πράξεων των δύο συναλλαγών, µε τη σειρά που γίνεται, παράγει σωστά αποτελέσµατα: Συναλλαγή V ανάληψη(a,v,100) κατάθεση(b,v,100) Συναλλαγή W synolo=υπόλοιπο_λογαριασµού(a,w) synolo=synolo+υπόλοιπο_λογαριασµού(a,w) synolo=synolo+υπόλοιπο_λογαριασµού(c,w) 34

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ρ Καραΐσκος Ζαφείριος ΤΕΙ Λάρισας Ιανουάριος 2010 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή... 3 2. ιαδιεργασιακή επικοινωνία... 7 2.1 Σύγχρονη και ασύγχρονη επικοινωνία...7 2.2 Επικοινωνία µε υποδοχές...

Διαβάστε περισσότερα

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

Διαβάστε περισσότερα

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

Διαβάστε περισσότερα

ΚΑΤΑΝΕΜΗΜΕΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΚΑΤΑΝΕΜΗΜΕΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ρ Ζαφείριος Καραΐσκος ΤΕΙ Λάρισας 9/6/2009 1. ΕΙΣΑΓΩΓΗ 1.α. Ορισµός Λ.Σ. για Η/Υ ενός επεξεργαστή "Λειτουργικό σύστηµα είναι µια οµάδα προγραµµάτων τα οποία επικοινωνούν

Διαβάστε περισσότερα

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

Διαβάστε περισσότερα

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

Διαβάστε περισσότερα

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Ερωτήσεις Ασκήσεις Επικοινωνίες Δεδομένων Μάθημα 3 ο Ερωτήσεις 1. Τι είναι το intranet και ποια τα πλεονεκτήματα που προσφέρει; 2. Τι δηλώνει ο όρος «TCP/IP»; 3. Να αναφέρετε τα πρωτόκολλα

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

Διαβάστε περισσότερα

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση. ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ / Γ- ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 21-02- 2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α. A1. Να γράψετε το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη

Διαβάστε περισσότερα

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

Διαβάστε περισσότερα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

Διαβάστε περισσότερα

Κατανεµηµένασυστήµατα αρχείων

Κατανεµηµένασυστήµατα αρχείων Κατανεµηµένασυστήµατα αρχείων Θέµατα σχεδίασης ιεπαφή υπηρεσίας αρχείων και ευρετηρίων Ονόµατα και αναγνωριστικά Οργάνωση εξυπηρετητών Σηµασιολογία (κατα)µερισµού αρχείων Ενταµίευση αρχείων Συνέπεια συστήµατος

Διαβάστε περισσότερα

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

Διαβάστε περισσότερα

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

Διαβάστε περισσότερα

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ.

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ. ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 2016 Γ Τάξη Ε.Π.Α.Λ. ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις και δίπλα το γράµµα Σ, αν είναι σωστή, ή το γράµµα

Διαβάστε περισσότερα

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κατανεµηµένα Συστήµατα Αρχείων (1/2)» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Σύστηµα αρχείων Αποθήκευση, προσπέλαση και διαχείριση δεδοµένων

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Για να διεκπεραιωθεί η μεταφορά των πακέτων από την πηγή στον προορισμό μεταξύ των κόμβων του επικοινωνιακού υποδικτύου απαιτείται η

Διαβάστε περισσότερα

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Διαβάστε περισσότερα

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΠΡΩΤΟΚΟΛΛΑ ΜΕΤΑΦΟΡΑΣ (Kεφ. 17) TCP Υπηρεσίες TCP Μορφή Επικεφαλίδας TCP Μηχανισµοί TCP Πολιτικές Υλοποίησης TCP Βιβλίο Μαθήµατος: Επικοινωνίες Υπολογιστών & εδοµένων, William

Διαβάστε περισσότερα

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε Οµοφωνία σε σύγχρονο σύστηµα µε αϖοτυχίες κατάρρευσης διεργασιών Παναγιώτα Φατούρου Κατανεµηµένος Υπολογισµός 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash

Διαβάστε περισσότερα

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: Μια βάση δεδοµένων είναι σε συνεπή κατάσταση (consistent state) εάν όλοι οι περιορισµοί ακεραιότητας που έχουν δηλωθεί για αυτήν πληρούνται. Οι αλλαγές στην κατάσταση

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος? Μετάδοση Δεδομένων Δίκτυα Υπολογιστών 68 Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της Απάντηση : Στα δίκτυα μεταγωγής κυκλώματος (circuit switching networks), η μετάδοση των

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων 1.1. Εισαγωγή Γενικότερα δεν υπάρχει κάποια ταξινόμηση των πιθανών δικτύων κάτω από την οποία να ταιριάζουν όλα τα δίκτυα. Παρόλα αυτά η ταξινόμηση τους είθισται να γίνεται

Διαβάστε περισσότερα

ιαχείριση Τηλεφωνικών Κλήσεων

ιαχείριση Τηλεφωνικών Κλήσεων ιαχείριση Τηλεφωνικών Κλήσεων 1 Διαχει ριση Τηλεφωνικω ν Κλη σεων ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ... 3 ΔΟΜΗ ΧΡΗΣΤΩΝ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ ΕΠΙ ΤΩΝ ΤΗΛΕΦΩΝΙΚΩΝ ΚΛΗΣΕΩΝ... 3 ΣΧΗΜΑΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗ... 4 ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ... 5

Διαβάστε περισσότερα

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1 Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο Πρωτόκολλα Διαδικτύου Μέρος 2ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Internet Protocol (IP) Στο επίπεδο δικτύου της τεχνολογίας TCP/IP, συναντάμε το πρωτόκολλο IP. Η λειτουργία του IP βασίζεται αποκλειστικά

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Εισαγωγή Το μοντέλο client-server παρέχει έναν μηχανισμό δόμησης

Διαβάστε περισσότερα

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 7: Transactions (Συναλλαγές) Ο λόγος που αναπτύχθηκαν

Διαβάστε περισσότερα

7.9 ροµολόγηση. Ερωτήσεις

7.9 ροµολόγηση. Ερωτήσεις 7.9 ροµολόγηση Ερωτήσεις 1. Να δώσετε τον ορισµό της δροµολόγησης; 2. Από τι εξαρτάται η χρονική στιγµή στην οποία λαµβάνονται οι αποφάσεις δροµολόγησης; Να αναφέρετε ποια είναι αυτή στην περίπτωση των

Διαβάστε περισσότερα

Δίκτυα Θεωρία

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 4 1. Γιατί η μεταφορά των δεδομένων δεν καλύπτεται επαρκώς από το Επίπεδο Δικτύου; Επειδή το επίπεδο δικτύου από τη φύση του είναι αναξιόπιστο, τα πακέτα φθάνουν καθυστερημένα,

Διαβάστε περισσότερα

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1 ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε

Διαβάστε περισσότερα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

Διαβάστε περισσότερα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα Στόχοι κεφαλαίου ίκτυα υπολογιστών (Κεφαλαιο 15 στο βιβλιο) Περιγραφή των κύριων θεµάτων σχετικά µε τα δίκτυα υπολογιστών Αναφορά στα διάφορα είδη δικτύων Περιγραφή των διαφόρων τοπολογιών των τοπικών

Διαβάστε περισσότερα

Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής

Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής Πληροφορίες Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κλήση Αποµακρυσµένων ιαδικασιών» Σελίδα µαθήµατος http://www.cs.uoi.gr/~phadjido/courses/e-03/e-03.htm Βιβλίο Κατανεµηµένα Συστήµατα µε

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

Διαβάστε περισσότερα

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Πρωτόκολλο ARP Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Ποιο είναι το έργο του Πρωτοκόλλου Μετατροπής Διεύθυνσης (Address Resolution Protocol ARP) Κάνει δυναμική μετατροπή των IP διευθύνσεων σε φυσικές

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών 1 ίκτυα μικρά και μεγάλα Ένα δίκτυο υπολογιστών (computer network) είναι ένας συνδυασμός συστημάτων (δηλαδή, υπολογιστών),

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

Διαβάστε περισσότερα

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP. 7.4 Πρωτόκολλο UDP & Ερωτήσεις 1. ε ποιες περιπτώσεις χρησιμοποιείται το πρωτόκολλο UDP, εναλλακτικά του TCP; 2. ε τι είδους εφαρμογές χρησιμοποιείται συνήθως το πρωτόκολλο UDP; Να δώσετε παράδειγμα μιας

Διαβάστε περισσότερα

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

Επίπεδο Δικτύου: Διαδικτύωση

Επίπεδο Δικτύου: Διαδικτύωση Επίπεδο Δικτύου: Διαδικτύωση Μάθημα «Δίκτυα Υπολογιστών» Τμήμα Πληροφορικής Οικονομικό Πανεπιστήμιο Αθηνών Εαρινό Εξάμηνο 2013-14 Γεώργιος Ξυλωμένος Γεώργιος Δ. Σταμούλης Βασίλειος Σύρης Εισαγωγή Υπάρχει

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.4 Πρωτόκολλο Μέχρι τώρα περιγράψαμε συνδέσεις, που χρησιμοποιούν το πρωτόκολλο TCP. Θυμηθείτε, ότι το TCP είναι υπεύθυνο για το τεμαχισμό των μηνυμάτων σε τμήματα και την επανασύνδεση τους στον προορισμό.

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Δίκτυα Θεωρία

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 1 1. Ποια είναι τα επίπεδα που χρησιμοποιεί το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI); i. Φυσικό Επίπεδο ii. επίπεδο Ζεύξης ή Σύνδεσης Δεδομένων iii.

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

Συνεχής ροή πολυµέσων

Συνεχής ροή πολυµέσων Συνεχής ροή πολυµέσων Εισαγωγή ικτυακά πρωτόκολλα Πολυµέσα και δίκτυα Συνεχής ροή Ροή από εξυπηρετητές ιστοσελίδων Ροή από εξυπηρετητές µέσων Πρωτόκολλο RTSP Πρωτόκολλο RTP οµή πακέτων RTP Πρωτόκολλο RTCP

Διαβάστε περισσότερα

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει

Διαβάστε περισσότερα

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ 7.1-7.2

Διαβάστε περισσότερα

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

Διαβάστε περισσότερα

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ 7.7 Πρωτόκολλο ARP & Ερωτήσεις 1. Ποιος ο ρόλος του Πρωτοκόλλου Μετατροπής Διεύθυνσης (ARP); 2. Τι είναι ο πίνακας ARP, τι πληροφορία περιλαμβάνει και με ποιο τρόπο ενημερώνεται και ποιος ο χρόνος ζωής

Διαβάστε περισσότερα

7.7 Πρωτόκολλο ARP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.7 Πρωτόκολλο ARP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.7 Πρωτόκολλο ARP 73. Ποιο είναι το έργο του Πρωτοκόλλου Μετατροπής ιεύθυνσης (Address Resolution Protocol ARP); Η µετατροπή των ΙΡ διευθύνσεων στις αντίστοιχες φυσικές

Διαβάστε περισσότερα

Σκοπιµότητα των firewalls

Σκοπιµότητα των firewalls Σκοπιµότητα των firewalls Παρέχουν προστασία των εσωτερικών δικτύων από απειλές όπως: Μη εξουσιοδοτηµένη προσπέλαση των δικτυακών πόρων: όταν επίδοξοι εισβολείς προσπαθούν να εισχωρήσουν στο δίκτυο και

Διαβάστε περισσότερα

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα Μαζική επεξεργασία ή επεξεργασία κατά δέσµες (batch processing) Χώρος χρήστη Εργασίες (Jobs): Πρόγραµµα, δεδοµένα και οδηγίες Αποτελέσµατα Χώρος

Διαβάστε περισσότερα

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1 Νήµατα ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων Κατανεµηµένα Συστήµατα 10-1 ιεργασίεςκαι νήµατα ιεργασία 1 Μνήµη ιεργασία 2 Μνήµη ιεργασία 3 Μνήµη Λειτουργικό Σύστηµα

Διαβάστε περισσότερα

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol)

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol) Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας Κέρκυρα ίκτυα - Internet 2 Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) ΜηχανέςΑναζήτησηςστοWeb Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία

Διαβάστε περισσότερα

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε Οµοφωνία σε σύστηµα µε αϖοτυχίες κατάρρευσης διεργασιών Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

Διαβάστε περισσότερα

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7 Οι σημειώσεις που ακολουθούν περιγράφουν τις ασκήσεις που θα συναντήσετε στο κεφάλαιο 7. Η πιο συνηθισμένη και βασική άσκηση αναφέρεται στο IP Fragmentation,

Διαβάστε περισσότερα

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.7 Πρωτόκολλο Μέχρι τώρα έχουμε αναφέρει, ότι, για να μεταδοθούν τα αυτοδύναμα πακέτα στο φυσικό μέσο, πρέπει αυτά να μετατραπούν σε πακέτα φυσικού δικτύου (π.χ. Ethernet). Όμως, δεν έχει ειπωθεί τίποτε

Διαβάστε περισσότερα

Β1. Σε ένα τοπικό δίκτυο τοπολογίας Ethernet-TCP/IP το επίπεδο πρόσβασης δικτύου περιλαμβάνει:

Β1. Σε ένα τοπικό δίκτυο τοπολογίας Ethernet-TCP/IP το επίπεδο πρόσβασης δικτύου περιλαμβάνει: ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΑ ΕΙΔΙΚΟΤΗΤΑΣ ΚΥΡΙΑΚΗ 23/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5) ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. α-σωστό β-σωστό γ-λάθος δ-λάθος

Διαβάστε περισσότερα

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Όπως έχουμε ήδη αναφέρει, τα δίκτυα τεχνολογίας / χρησιμοποιούν διεύθυνση 32 bits, προκειμένου να δρομολογήσουν ένα αυτοδύναμο πακέτο στο προορισμό του. Κατά σύμβαση έχει επικρατήσει οι διευθύνσεις να

Διαβάστε περισσότερα

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,

Διαβάστε περισσότερα

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΘΕΜΑ Α ΚΥΡΙΑΚΗ 04/05/2014- ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΟΚΤΩ (8) ΕΚΦΩΝΗΣΕΙΣ Α1. Να χαρακτηρίσετε

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5)

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5) ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 30/11/2014 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ, Α. ΙΛΕΡΗ ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν γράφοντας δίπλα στο

Διαβάστε περισσότερα

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N

Διαβάστε περισσότερα

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε Οµοφωνία σε σύστηµα µε αϖοτυχίες διεργασιών Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν

Διαβάστε περισσότερα

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

Διαβάστε περισσότερα

Επαναληπτικές Ασκήσεις Μαθήματος

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

Διαβάστε περισσότερα

7.8 Σύστηµα ονοµάτων περιοχών (Domain Name System, DNS)

7.8 Σύστηµα ονοµάτων περιοχών (Domain Name System, DNS) 7.8 ύστηµα ονοµάτων περιοχών (Domain Name System, DNS) Ερωτήσεις 1. Γιατί χρησιµοποιούµε συµβολικά ονόµατα αντί για τις διευθύνσεις; 2. ε τι αναφέρονται το όνοµα και η διεύθυνση ενός υπολογιστή; Πώς και

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθηµα 1 Ο ρόλος του ΛΣ Υλικό Υπολογιστικό σύστηµα Λειτουργικό σύστηµα Λογισµικό Προγράµµατα εφαρµογής Στόχοι του ΛΣ Χρήστες ιευκόλυνση των χρηστών ιευκόλυνση

Διαβάστε περισσότερα