Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1
|
|
- Άργος Ζυγομαλάς
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr
2 Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει πίσω μια αντίστοιχη απάντηση (reply) Το πλέον διαδεδομένο σχήμα επικοινωνίας στα κατανεμημένα συστήματα όπως άλλωστε και στα ανθρώπινα συστήματα Τα περισσότερα (κατανεμημένα) συστήματα μπορεί να δομηθούν (με σχετικά φυσικό / εύκολο τρόπο) με βάση το σχήμα επικοινωνίας -reply Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr
3 P1 P2 reply Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr
4 Σχήμα επικοινωνίας client-server Ακολουθεί το σχήμα επικοινωνίας -reply με κάποιες εξειδικεύσεις / επεκτάσεις Η διεργασία που στέλνει την αίτηση περιμένει (μπλοκάρεται) μέχρι να λάβει την απάντηση Η διεργασία που δέχεται την αίτηση παραμένει ανενεργή όσο δεν λαμβάνει/επεξεργάζεται αιτήσεις υπάρχει για να δέχεται και να επεξεργάζεται τις αιτήσεις των πελατών (υλοποιεί μια απομακρυσμένη υπηρεσία) Ορολογία πελάτης: η διεργασία που στέλνει την αίτηση εξυπηρετητής: η διεργασία που δέχεται και επεξεργάζεται τις αιτήσεις των πελατών Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr
5 client server waiting waiting reply waiting Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr
6 client application server application _reply sendreply getrequest API client side server side API network network Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr
7 Ενδεικτικό API Client: int _reply(char *, int len, char **reply, int *replylen); Server: ReqID getrequest(char **, int *len); void sendreply(reqid id, char *reply, int replylen); η ρητή αντιστοίχηση απάντησης σε αίτηση, επιτρέπει την «εκτός σειράς» επεξεργασία των αιτήσεων ή/και η αποστολή απαντήσεων Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr
8 client1 client2 server reply Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr
9 Πολυπλεξία & ανακάλυψη εξυπηρετητών Συνύπαρξη πολλών υπηρεσιών στο ίδιο μηχάνημα Χρειάζεται διαχωρισμός ανάμεσα στους εξυπηρετητές, μέσα από κατάλληλα (συμφωνημένα) αναγνωριστικά Ένας εξυπηρετητής πρέπει να δηλώνει ρητά ποια υπηρεσία υποστηρίζει/υλοποιεί Ο πελάτης πρέπει να ανακαλύπτουν τον «σωστό» εξυπηρετητή, για την υπηρεσία που επιθυμεί Χρησιμοποιούνται οι γνωστές λύσεις: εκπομπή ή κάποια υπηρεσία καταλόγου Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr
10 client client server A server B B A client side server side client side server side B C client client server C Κατανεμημένα Συστήματα 10 lalis@inf.uth.gr
11 Ενδεικτικό API Client: int _reply(srvcid svc, char *, int len, char **reply, int *replylen); Server: int register(srvcid svc); void unregister(srvcid svc); ReqID getrequest(srvcid svc, char **, int *len) void sendreply(reqid id, char *reply, int replylen) η ρητή εγγραφή χρειάζεται έτσι ώστε να μην χάνονται αιτήσεις Κατανεμημένα Συστήματα 11
12 Πρωτόκολλο μεταφοράς Πρέπει να οριστεί η αλληλεπίδραση ανάμεσα στην πλευρά του πελάτη και την πλευρά του εξυπηρετητή Βασική διάσταση υλοποίησης: αυστηρά σειριακή ή ταυτόχρονη αποστολή αιτήσεων από την πλευρά του πελάτη (με αντίστοιχη επεξεργασία στην πλευρά του εξυπηρετητή) Βασική διάσταση υλοποίησης: χειρισμός βλαβών εξυπηρετητή και πελάτη Κατανεμημένα Συστήματα 12
13 Σειριακή αποστολή αιτήσεων Η πλευρά του πελάτη στέλνει την επόμενη αίτηση αφού λάβει απάντηση για τη προηγούμενη αν δεν λάβει απάντηση, ξαναστέλνει την αίτηση Η απάντηση του εξυπηρετητή ερμηνεύεται ως επιβεβαίωση της προηγούμενης αίτησης Η πλευρά του εξυπηρετητή ερμηνεύει την επόμενη αίτηση ως επιβεβαίωση της τελευταίας απάντησης αν δεν υπάρχει επόμενη αίτηση, χρειάζεται ειδική επιβεβαίωση Σειριακή επεξεργασία αιτήσεων στον εξυπηρετητή Άσκοπες αποστολές της ίδιας αίτησης (αν αργεί να έρθει η απάντηση του εξυπηρετητή) Κατανεμημένα Συστήματα 13
14 client B client A client side server side server application _reply _reply A getrequest B replya sendreply getrequest replyb sendreply ack Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr
15 Ταυτόχρονη αποστολή αιτήσεων Η πλευρά του πελάτη στέλνει νέες αιτήσεις χωρίς να έχει περιμένει απάντηση για τις προηγούμενες η επόμενη αίτηση δεν χρησιμεύει ως επιβεβαίωση Η απάντηση του εξυπηρετητή ερμηνεύεται ως επιβεβαίωση για την αντίστοιχη αίτηση Χρειάζεται ξεχωριστή επιβεβαίωση της απάντησης η επόμενη αίτηση δεν χρησιμεύει ως επιβεβαίωση Αυξημένες απαιτήσεις αποθήκευσης στον εξυπηρετητή Αυξημένος φόρτος στο δίκτυο (μαζικές επιβεβαιώσεις) Άσκοπες αποστολές των ίδιων αιτήσεων (αν αργούν να έρθουν οι απαντήσεις του εξυπηρετητή) Κατανεμημένα Συστήματα 15
16 client B client A client side server side server application _reply _reply A B getrequest getrequest replya sendreply ack-replya replyb sendreply ack-replyb Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr
17 Ρητή επιβεβαίωση παραλαβής αιτήσεων Πόσο πρέπει να περιμένει η πλευρά του πελάτη μέχρι να ξαναστείλει την αίτηση, σε περίπτωση που χάθηκε; Παρόμοιο πρόβλημα με αυτό του κλασικού timeout, αλλά με περισσότερους αστάθμητους παράγοντες χρόνος επεξεργασίας αίτησης, φόρτος στον εξυπηρετητή Η πλευρά του εξυπηρετητή επιβεβαιώνει την παραλαβή της αίτησης άμεσα, με ένα ξεχωριστό μήνυμα ανεξάρτητα από την απάντηση (που στέλνεται αργότερα) Όμως, έτσι στέλνονται ακόμα περισσότερα μηνύματα πάνω από το δίκτυο (και πάλι: μαζικές επιβεβαιώσεις) Κατανεμημένα Συστήματα 17
18 client B client A client side server side server application _reply _reply A B getrequest getrequest ack-a ack-b replya sendreply ack-replya replyb sendreply ack-replyb Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr
19 client B client A client side server side server application _reply _reply A B getrequest getrequest ack-a,b replya sendreply replyb sendreply ack-replya,b Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr
20 Βασικό πρωτόκολλο μεταφοράς TCP/IP Κόστος σύνδεσης, αλλά η ίδια σύνδεση μπορεί να ξαναχρησιμοποιηθεί για συνεχόμενες ανταλλαγές Εγγυημένη μεταφορά, αλλά (στην γενική περίπτωση) χρειάζονται επιβεβαιώσεις και σε πιο ψηλό επίπεδο UDP/IP Ευέλικτα σχήματα επαναποστολής/επιβεβαίωσης Ιδιαίτερα κατάλληλο αν δεν υπάρχουν απαιτήσεις πλήρους αξιοπιστίας και τα μηνύματα της εφαρμογής είναι σχετικά μικρά Κατανεμημένα Συστήματα 20
21 End-to-end argument Μια υπηρεσία επιπέδου Ν δεν μπορεί να προσφέρει σημασιολογία πιο ψηλού επιπέδου Ν+1 Παράδειγμα -reply πάνω από υπηρεσία αξιόπιστης μεταφοράς δεδομένων (π.χ. TCP/IP) Το γεγονός ότι η παραλαβή δεδομένων επιβεβαιώθηκε στο επίπεδο της μεταφοράς (TCP/IP), δεν επιβεβαιώνει κάτι για το παραπάνω επίπεδο (εφαρμογής) Κλασικό πρόβλημα: το μηχάνημα / η εφαρμογή μπορεί να παρουσιάσει βλάβη αφού επιβεβαιωθεί η παραλαβή των δεδομένων στο επίπεδο μεταφοράς, αλλά προτού η εφαρμογή παραλάβει/επεξεργαστεί τα δεδομένα, οπότε χρειάζεται επιβεβαίωση και στο επίπεδο της εφαρμογής Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr
22 Ταυτόχρονη επεξεργασία αιτήσεων Worker per για κάθε αίτηση που καταφθάνει, δημιουργείται ένα νέο νήμα στο οποίο ανατίθεται η επεξεργασία της Worker pool οι αιτήσεις μπαίνουν σε κοινή ουρά, από την οποία απομακρύνονται και επεξεργάζονται από νήματα εργάτες Worker per connection για κάθε σύνδεση (ανά κόμβο / πελάτη) δημιουργείται ένα νήμα που επεξεργάζεται τις αντίστοιχες αιτήσεις Worker per function group για κάθε ομάδα αιτήσεων υπάρχει ένα ξεχωριστό νήμα που επεξεργάζεται τις σχετικές αιτήσεις Θέματα συγχρονισμού: «ανταγωνιστικές» κλήσεις; Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr
23 server server workers queue code code 1) Worker per 2) Worker pool server server queue code code 3) Worker per connection 4) Worker per function group Κατανεμημένα Συστήματα 23
24 Ασύγχρονο σχήμα αίτησης-απάντησης Απεμπλοκή της διαδικασίας αποστολής της αίτησης από την διαδικασία παραλαβής της απάντησης Ως αποτέλεσμα της αίτησης, ο πελάτης λαμβάνει μια απόδειξη, που μπορεί να χρησιμοποιήσει, αργότερα, για να παραλάβει το αποτέλεσμα Δεν απαιτείται χρήση νημάτων σε επίπεδο εφαρμογής Ούτε σε επίπεδο υπηρεσίας μεταφοράς Σημείωση: η χρήση νημάτων σε επίπεδο εφαρμογής λύνει το πρόβλημα του μπλοκαρίσματος, αλλά δυσκολεύει την υλοποίηση και καταναλώνει πόρους Κατανεμημένα Συστήματα 24
25 Ενδεικτικό API Client: ReqID (SrvcID svc, char *, int len); int replyavailable(reqid id); int getreply(reqid id, char **reply, int *replylen); Server: έλεγχος και παραλαβή αποτελέσματος μέσω «απόδειξης» int register(srvcid svc); παραμένει ίδιο void unregister(srvcid svc); ReqID getrequest(srvcid svc, char **, int *len) void sendreply(reqid id, char *reply, int replylen) Κατανεμημένα Συστήματα 25
26 client client side server id id replyavailable(id) 0 id reply reply replyavailable(id) 1 getreply(id) reply id reply Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr
27 One-way s Υπάρχουν αιτήσεις που δεν επιστρέφουν κάποια απάντηση σε επίπεδο εφαρμογής Σε πιο χαμηλό επίπεδο, ο εξυπηρετητής πιθανώς εξακολουθεί να πρέπει να επιβεβαιώσει την ορθή επεξεργασία της αίτησης Δεν υπάρχει λόγος να μπλοκάρεται ο πελάτης Μπορεί να χρησιμοποιηθεί παρόμοιος μηχανισμός ασύγχρονης επικοινωνίας Σε κάποιες περιπτώσεις, μπορεί να μην απαιτείται επιβεβαίωση ούτε σε επίπεδο μεταφοράς best effort one-way s Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr
28 client client side server ack δεν επιστρέφεται κάποιο αποτέλεσμα στην εφαρμογή Κατανεμημένα Συστήματα 28
29 Βλάβες πελάτη/εξυπηρετητή Κατανεμημένα Συστήματα 29
30 Βλάβη εξυπηρετητή Χωρίς επανεκκίνηση Ο πελάτης εγκαταλείπει μετά από κάποιες προσπάθειες Αν δεν έρθει απάντηση, ο εξυπηρετητής επεξεργάστηκε την αίτηση το πολύ μια φορά (at most once) Επανεκκίνηση χωρίς μόνιμη μνήμη Ο πελάτης προσπαθεί μέχρι να λάβει απάντηση Όταν έρθει απάντηση, ο εξυπηρετητής επεξεργάστηκε την αίτηση τουλάχιστον μια φορά (at least once) Επανεκκίνηση με μόνιμη μνήμη Ο πελάτης προσπαθεί μέχρι να λάβει απάντηση Όταν έρθει απάντηση, ο εξυπηρετητής επεξεργάστηκε την αίτηση ακριβώς μια φορά (exactly once) Κατανεμημένα Συστήματα 30
31 Χειρισμός στον πελάτη/εξυπηρετητή Πελάτης Εξυπηρετητής προσπάθειες μπλοκάρισμα* χειρισμός διπλοτύπων** αποθήκευση απαντήσεων at most once 1 OXI OXI OXI at most once++ Κ ΟΧΙ ΝΑΙ ΠΡΟΣΩΡΙΝΗ at least once όσες χρειαστεί ΝΑΙ ΟΧΙ ΟΧΙ exactly once όσες χρειαστεί ΝΑΙ NAI ΜΟΝΙΜΗ (*) μέχρι να παραληφθεί απάντηση (**) λόγω επανειλημμένης αποστολής αιτήσεων από τον πελάτη Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr
32 Βλάβη πελάτη Οι αιτήσεις του πελάτη πρέπει να αγνοηθούν συνήθως δεν έχουν πλέον κανένα νόημα ακόμα και αν ο πελάτης ανακάμψει αργότερα Οι ενέργειες που πρέπει να κάνει ο εξυπηρετητής εξαρτώνται από το στάδιο που βρίσκεται η αίτηση Αν ο εξυπηρετητής δεν έχει αρχίσει την επεξεργασία, τότε η αίτηση πρέπει να αγνοηθεί Αν ο εξυπηρετητής δεν έχει ολοκληρώσει την επεξεργασία, τότε η επεξεργασία πρέπει να τερματιστεί Αν ο εξυπηρετητής έχει ολοκληρώσει την επεξεργασία, τότε η απάντηση πρέπει να αγνοηθεί Κατανεμημένα Συστήματα 32
33 αρχική κατάσταση A B client side server side Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr
34 αποστολή αίτησης εφαρμογής πελάτη A application B client side server side Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr
35 επεξεργασία αίτησης στον εξυπηρετητή A application B process client side server side Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr
36 βλάβη πελάτη ignore A B application process client side server side reply Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr
37 Βλάβη πελάτη με επανεκκίνηση και μόνιμη μνήμη Εξολόθρευση Ο πελάτης καταγράφει σε μόνιμη μνήμη τα στοιχεία κάθε νέας αίτησης (+ την διεύθυνση του εξυπηρετητή) Τα στοιχεία διαγράφονται από την μόνιμη μνήμη όταν ο πελάτης παραλάβει το αποτέλεσμα της αίτησης Όταν ο πελάτης ανακάμψει από την βλάβη, διαβάζει τα στοιχεία των (εκκρεμών) αιτήσεων από την αποθήκη Για κάθε τέτοια αίτηση, στέλνει αίτηση ακύρωσης στον αντίστοιχο εξυπηρετητή Όταν λάβει επιβεβαίωση από τον εξυπηρετητή, απομακρύνει την εγγραφή από την μόνιμη μνήμη Κατανεμημένα Συστήματα 37
38 αρχική κατάσταση A B client side server side Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr
39 αποστολή αίτησης εφαρμογής αίτησης πελάτη A application B client side server side Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr
40 επεξεργασία αίτησης στον εξυπηρετητή A application B process client side server side Κατανεμημένα Συστήματα 40 lalis@inf.uth.gr
41 βλάβη πελάτη A application B process client side server side Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr
42 ανάκαμψη πελάτη & ειδοποίηση εξυπηρετητή A B process client side server side cancel Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr
43 ακύρωση αίτησης στον εξυπηρετητή A B process client side server side ack Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr
44 Βλάβη πελάτη με επανεκκίνηση χωρίς μόνιμη μνήμη Αναβίωση Κάθε φορά που επανεκκινείται ο υπολογιστής, αυξάνεται η τιμή ενός ειδικού καταχωρητή εναλλακτικά, καταγράφεται η μέρα/ώρα εκκίνησης Ο πελάτης επισυνάπτει τον τρέχοντα αριθμός ζωής σε κάθε αίτηση που στέλνει στους εξυπηρετητές Όταν ο πελάτης ανακάμψει, στέλνει τον νέο αριθμό ζωής στους εξυπηρετητές του συστήματος που ακυρώνουν τις αιτήσεις με διαφορετικό αριθμό ζωής Αυτό μπορεί να γίνει «τεμπέλικα», μέσω των αιτήσεων που θα στείλει ο πελάτης στο πλαίσιο της νέας ζωής Κατανεμημένα Συστήματα 44
45 αρχική κατάσταση A B client side server side n incarnation number Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr
46 αποστολή αίτησης εφαρμογής αίτησης πελάτη A application B client side server side n n n Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr
47 επεξεργασία αίτησης στον εξυπηρετητή A application B process client side server side n n n Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr
48 βλάβη πελάτη A application B process client side server side n n Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr
49 ανάκαμψη πελάτη & ειδοποίηση εξυπηρετητών A B process client side n n server side n incarnation number Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr
50 ακύρωση αίτησης στον εξυπηρετητή A B process client side server side n n Κατανεμημένα Συστήματα 50 lalis@inf.uth.gr
51 Βλάβη πελάτη χωρίς επανεκκίνηση Ρητός έλεγχος λειτουργίας πελάτη Ο εξυπηρετητής ελέγχει περιοδικά την λειτουργία των πελατών με εκκρεμείς αιτήσεις κλασικό σχήμα εντοπισμού βλαβών silent crash Αν δεν λάβει απάντηση από κάποιον πελάτη, διαγράφει τις αντίστοιχες εκκρεμείς αιτήσεις Αιτήσεις με περιορισμένη διάρκεια ζωής Ο πελάτης ανανεώνει ρητά (με μήνυμα) την διάρκεια ζωής των εκκρεμών αιτήσεων, σε τακτά διαστήματα Ο εξυπηρετητής ακυρώνει τις «ληγμένες» αιτήσεις Κατανεμημένα Συστήματα 51
52 Απομακρυσμένη Κλήση Διαδικασίας (Remote Procedure Call RPC) Κατανεμημένα Συστήματα 52
53 Απομακρυσμένη κλήση διαδικασίας Αλληλεπίδραση client-server (-reply), προσαρμοσμένη ή ενσωματωμένη σε γλώσσα/περιβάλλον προγραμματισμού Η διασύνδεση προγραμματισμού εφαρμογής έχει την μορφή συμβατικών κλήσεων συνάρτησης που «απλά» εκτελούνται απομακρυσμένα απόκρυψη των λεπτομερειών της επικοινωνίας και (απο)σειροποίησης δεδομένων πάνω από το δίκτυο Οικείο μοντέλο προγραμματισμού πιο γρήγορη ανάπτυξη λογισμικού με λιγότερα λάθη Στο παρασκήνιο, μια σειρά από λειτουργίες υλοποιούν την επιθυμητή λειτουργικότητα με διαφανή τρόπο Κατανεμημένα Συστήματα 53
54 Ζητήματα διαφάνειας Σημασιολογία κλήσης at most once, at least once, exactly once Πέρασμα παραμέτρων κοινή αναπαράσταση / σειριοποίηση δεδομένων Ανεύρεση του κόμβου του εξυπηρετητή μηχανισμός/πρωτόκολλο ανακάλυψης Διαχωρισμός ανάμεσα σε διαφορετικές διαδικασίες ανοιχτό σύστημα όπου διάφορες διαδικασίες ορίζονται και υλοποιούνται από διαφορετικούς προγραμματιστές αποφυγή «σύγκρουσης» ονομάτων Απόδοση ελαχιστοποίηση κόστους/καθυστέρησης ταυτόχρονη/παράλληλη εξυπηρέτηση Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr
55 Δόμηση λογισμικού υπηρεσίας RPC RPC runtime υλοποιεί το πρωτόκολλο επικοινωνίας πάνω από το δίκτυο Client stub ανάμεσα στον πελάτη και το RPC runtime πακετάρει τις παραμέτρους της κλήσης ξεπακετάρει τα αποτελέσματα Server stub ανάμεσα στο RPC runtime και τον κώδικα της διαδικασίας, ξεπακετάρει τις παραμέτρους της κλήσης καλεί τη διαδικασία και πακετάρει τα αποτελέσματα Τα client/server stubs μπορεί να παράγονται αυτόματα μέσω ειδικών εργαλείων (stub generators) με βάση μια συντακτική περιγραφή/δήλωση (σε IDL) Κατανεμημένα Συστήματα 55
56 η εφαρμογή έχει την ψευδαίσθηση ότι κάλεσε μια τοπική συνάρτηση ο κώδικας που καλείται είναι μια συμβατική συνάρτηση Client Server call return user level return call pack args unpack result stub level pack result unpack args send receive reply RPC-runtime send reply receive Κατανεμημένα Συστήματα 56
57 μοναδικό αναγνωριστικό διασύνδεσης, για ανακάλυψη και έλεγχο συμβατότητας περιγραφή διασύνδεσης ανεξάρτητη γλώσσας προγραμματισμού πρόγραμμα πελάτη κατασκευή client stub κατασκευή server stub πρόγραμμα εξυπηρετητή διασύνδεσης στην γλώσσα εφαρμογής Κατανεμημένα Συστήματα 57
58 Υποστήριξη διαφορετικών γλωσσών Η εφαρμογή που καλεί την απομακρυσμένη διαδικασία μπορεί να είναι γραμμένη σε διαφορετική γλώσσα από την υλοποίηση της διαδικασίας στον εξυπηρετητή επιθυμητή ανεξαρτησία ανάπτυξης πελάτη-εξυπηρετητή Για να επιτευχθεί διαλειτουργικότητα, απαιτείται κοινή γλώσσα προσδιορισμού της διασύνδεσης κοινό πρωτόκολλο επικοινωνίας πελάτη-εξυπηρετητή πρότυπα αναπαράστασης/ σειριοποίησης δεδομένων Για κάθε περιβάλλον / γλώσσα προγραμματισμού χρειάζονται κατάλληλοι μετατροπείς (adapters) για την κατασκευή των client και server stubs που επικοινωνούν με το RPC runtime Σύγχρονη λύση: web-based protocols, SOAP/W3C Κατανεμημένα Συστήματα 58 lalis@inf.uth.gr
Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1
Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει
Βασικές έννοιες. Κατανεμημένα Συστήματα 1
Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα
Βασικές έννοιες. Κατανεμημένα Συστήματα 1
Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα
Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1
Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο
Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1
Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο
Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1
Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Γιατί μετακινούμενος κώδικας; Ευελιξία διαχείρισης μετακίνηση υπηρεσιών του συστήματος Μείωση επικοινωνίας / τοπικής επεξεργασίας
Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών
Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,
Το λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Το λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Το λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα
Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1
Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1 llis@inf.uth.gr Απομακρυσμένα αντικείμενα Οι μέθοδοι τους μπορεί να κληθούν απομακρυσμένα στο πνεύμα των RPCs Οι τοπικές αναφορές σε
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό bytes
Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών
Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Εισαγωγή Το μοντέλο client-server παρέχει έναν μηχανισμό δόμησης
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου* Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 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 υπηρεσία επιτρέπει σε έναν
Αποµακρυσµένη κλήση διαδικασιών
Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα
Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1
Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)
Εισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας
Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία
Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα
Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002
Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1
Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Μοντέλο συστήματος Ένα κατανεμημένο σύστημα με Ν διεργασίες που επικοινωνούν μεταξύ
Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1
Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 lalis@inf.uth.gr Ουρά μηνυμάτων Αποθήκη μηνυμάτων στην μνήμη του λειτουργικού Περιορισμένος αριθμός / όγκος μηνυμάτων Κάθε μήνυμα είναι
Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1
Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής if () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά προτού αυτό
Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1
Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής εναλλαγή if/while () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1
Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1
Προγραμματισμός Ι (HY120)
Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται
Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1
Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1
Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1
Εντοπισμός αδιεξόδου Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Αδιέξοδο σε κατανεμημένο σύστημα Αδιέξοδο: «κυκλική» και ατέρμονη αναμονή μεταξύ δύο ή περισσοτέρων διεργασιών Το πρόβλημα υφίσταται ήδη σε
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Επικοινωνία Client/Server
Επικοινωνία Client/Server Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία - Client/Server 1 Μοντέλο Πελάτη-Εξυπηρετητή Βασική ιδέα: να δομηθεί το λειτουργικό σύστημα ως συνεργαζόμενες
HTTP API v1.6 SMSBOX.GR HTTP API v
SMSBOX.GR HTTP API v 1.6 23.6.17 Αποστολή SMS Η χρήση του HTTP Api της smsbox.gr σας επιτρέπει να συνδεθείτε με το σύστημά μας και να στείλετε εύκολα sms από την δικιά σας ιστοσελίδα ή εφαρμογή. Μπορεί
Εισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής
Πληροφορίες Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κλήση Αποµακρυσµένων ιαδικασιών» Σελίδα µαθήµατος http://www.cs.uoi.gr/~phadjido/courses/e-03/e-03.htm Βιβλίο Κατανεµηµένα Συστήµατα µε
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)
3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 1 / 32 Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον
Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap
Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...
Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1
Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Ταυτόχρονη εκτέλεση Ο προγραμματιστής δεν ελέγχει (άμεσα) την εκτέλεση/εναλλαγή των νημάτων Δεν γνωρίζει πότε θα αρχίσει
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση ΙΙΙ 1 lalis@inf.uth.gr Ορθή συμπεριφορά τμήματος λογισμικού Ένα τμήμα λογισμικού (ή ένας ΑΤΔ) προσπελάζεται με δομημένο/ελεγχόμενο
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,
Παράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων
Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κατανεµηµένα Συστήµατα Αρχείων (1/2)» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Σύστηµα αρχείων Αποθήκευση, προσπέλαση και διαχείριση δεδοµένων
Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055) 1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό
Κατανεμημένα/δικτυακά συστήματα αρχείων (Network File Systems) Κατανεμημένα Συστήματα 1
Κατανεμημένα/δικτυακά συστήματα αρχείων (Network File Systems) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Κατανεμημένα συστήματα αρχείων Υποστήριξη διαχείρισης και πρόσβασης σε απομακρυσμένα αρχεία, που
6.2 Υπηρεσίες Διαδικτύου
6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,
Remote Method Invocation (RMI)
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Remote Method Invocation (RMI) Εισαγωγή Η αποµακρυσµένη επίκληση µεθόδων (RMI), επιτρέπει σε
TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ
TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης
Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός
Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach
Λειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"
Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol
HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)
Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1
I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Tuple space Ένας κοινός χώρος αποθήκευσης δεδομένων / μηνυμάτων, με μορφή πλειάδων (tuples) Παρέχονται ειδικές λειτουργίες για
Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1
Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution
Εργαλεία ανάπτυξης εφαρμογών internet Ι
IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Tuple space Ένας κοινός χώρος αποθήκευσης δεδομένων / μηνυμάτων, με μορφή πλειάδων (tuples) Παρέχονται ειδικές λειτουργίες για
ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ
Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές
Λειτουργικά Συστήματα Η/Υ
Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Δομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση ΙΙΙ 1 lalis@inf.uth.gr Ορθή συμπεριφορά τμήματος λογισμικού Ένα τμήμα λογισμικού (ή ένας ΑΤΔ) προσπελάζεται με δομημένο/ελεγχόμενο
Δείκτες σε συναρτήσεις. Προγραμματισμός II 1
Δείκτες σε συναρτήσεις Προγραμματισμός II 1 lalis@inf.uth.gr Συνάρτηση Ομάδα εντολών που γράφουμε ξεχωριστά για να υλοποιήσουμε μια συγκεκριμένη λειτουργία για καλύτερη / πιο καθαρή δόμηση του κώδικα για
Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1
Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ομαδική επικοινωνία Σαφής διαχωρισμός ανάμεσα στις διεργασίες που είναι και σε αυτές που δεν είναι μέλη της ομάδας Ανοιχτή
Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες
Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη
Κατανεµηµένασυστήµατα αρχείων
Κατανεµηµένασυστήµατα αρχείων Θέµατα σχεδίασης ιεπαφή υπηρεσίας αρχείων και ευρετηρίων Ονόµατα και αναγνωριστικά Οργάνωση εξυπηρετητών Σηµασιολογία (κατα)µερισµού αρχείων Ενταµίευση αρχείων Συνέπεια συστήµατος
Βιβλιοθήκη stdio. Προγραμματισμός II 1
Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής
Κατανεμημένα Συστήματα. Javascript LCR example
Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate
ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία
ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-
Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1
Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις
Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1
Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο
Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο
Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ
Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών
ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές
7.2.2 Σχέση OSI και TCP/IP
Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.
Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 12: Διάχυση Μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προσομοίωσης Τι θα δούμε σήμερα Προσομοίωση Υπηρεσίας Διάχυσης Μηνυμάτων Ιδιότητες Διάταξης Μηνυμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι
Υλοποίηση Σηματοφόρων
Υλοποίηση Σηματοφόρων 1 lalis@inf.uth.gr Υλοποίηση σε επίπεδο συστήματος Εσωτερική κατάσταση: Ένας ακέραιος για την αποθήκευση της τιμής του σηματοφόρου Μια ουρά αναμονής που τοποθετείται ένα νήμα όταν
Αρχιτεκτονικές Συστημάτων
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Αρχιτεκτονικές Συστημάτων Κατερίνα Πραματάρη Αρχιτεκτονικές Συστημάτων Σχεδίαση και Αρχιτεκτονική Συστήματος Αρχιτεκτονική Πελάτη-Εξυπηρετητή
Προγραμματισμός Ταυτόχρονος Προγραμματισμός
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ
Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ
ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2
ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2 1 ΠΕΡΙΕΧΟΜΕΝΑ Πρωτόκολο http εντολών έκδοση 1.0 Σελ:2...περιεχόμενα Σελ:3...τι θα βρείτε σε αυτό το βιβλίο Σελ:3...γενικά τεχνικά χαρακτηριστικά Σελ:4-5...πως
ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ
ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 1 o ΔΙΑΓΩΝΙΣΜΑ ΘΕΜΑ 1 ο Α) Ποια είναι τα βασικά στοιχεία, τα οποία χαρακτηρίζουν το ISDN; Η ψηφιακή μετάδοση. Όλα τα σήματα μεταδίδονται σε ψηφιακή μορφή απ' άκρη σ' άκρη του δικτύου,
4.1.1 Πρωτόκολλο TCP - Δομή πακέτου
4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής
Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1
Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Μοντέλο δικτύου/επικοινωνίας Αξιοπιστία (δεν χάνονται μηνύματα) Άγνωστη ταχύτητα μετάδοσης
IPC System V. Προγραμματισμός II 1
IPC System V Προγραμματισμός II 1 lalis@inf.uth.gr Διαδιεργασιακή επικοινωνία System V 3 είδη «αντικειμένων» (μηχανισμών) επικοινωνίας ουρές μηνυμάτων (message queues): msg κοινόχρηστες περιοχές μνήμης
Ειδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 1 ΕΙΣΑΓΩΓΗ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που
Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο
Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο
Οδηγίες EQL Desktop (rev.1.0.23) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ
Οδηγίες EQL Desktop (rev.1.0.23) Πρόγραμμα για τον Προγραμματισμό των Μηχανών D.P.S. S-800, Open Cash και S-710 μέσω Ηλεκτρονικού Υπολογιστή ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB Εγκατάσταση ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Εγχειρίδιο Χρήσης για Εκπαιδευτές/Διοικητικούς. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο
Εγχειρίδιο Χρήσης για Εκπαιδευτές/Διοικητικούς Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο 1. Εισαγωγή 1.1 Περιγραφή Λειτουργίας Πλατφόρμας Η Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο παρέχει τη δυνατότητα