ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Λειτουργικό Σύστημα (Operating System) 1o μέρος
Advertisements

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Νήματα στη Java Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++
ΜΑΘΗΜΑ 7ο Κυκλικές και Διπλά Συνδεδεμένες Λίστες,
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
Επικοινωνία μεταξύ Διεργασιών και Σύνδρομες Διεργασίες
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Message Passing Interface (MPI)
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜMΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 11 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Τι είναι διεργασία Ένα πρόγραμμα σε εκτέλεση Η διεργασία περιλαμβάνει:
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1.
Socket API (σε γλώσσα C) Σύντομη Εισαγωγή Παναγιώτης Φουληράς.
Σχεδίαση αλγορίθμων (2ο μέρος)
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
Ντίρλης Νίκος- ΕΤΥ 4ο ΦΡΟΝΤΙΣΤΗΡΙΟ Παρασκευή Β4 1.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Δείκτες (Pointers) – Δομές (Structs)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
Επικοινωνία μεταξύ Διεργασιών και Σύνδρομες Διεργασίες Interprocess Communication and Concurrent Processes.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
RPC Multithreaded voting system Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Διεργασίες Λειτουργικά Συστήματα. Λειτουργικά Συστήματα/ Slide 2 Η Έννοια της Διεργασίας * Διεργασία (Process) – ο μηχανισμός εκτέλεσης ενός προγράμματος.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ – FILE & PROCESS HANDLING Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Streams Streams: κανάλια ροής δεδομένων Κανάλια εισόδου: ανάγνωση δεδομένων Κανάλια εξόδου: αποστολή δεδομένων Συνήθεις πηγές και προορισμοί δεδομένων:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Παράλληλη/Κατανεμημένη Επεξεργασία και Εφαρμογές
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
1 Κέλυφος Bash – Τι μάθαμε? Μεταξύ άλλων…  Συνθήκες ελέγχου (if, case…) και βρόχοι επανάληψης (for, while)  Πράξεις ακεραίων (let, expr) και δεκαδικών.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης ΜΑΘ106/3122 Γλώσσα Προγραμματισμού Δομές Δεδομένων.
Λειτουργικά Συστήματα Ενότητα # 10: Προγραμματισμός UNIX Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
Προγραμματισμός συστήματος και Προηγμένα Λειτουργικά
Διαδιεργασιακή επικοινωνία
Κατανεμημένα Συστήματα
Τι είναι διεργασία Ένα πρόγραμμα σε εκτέλεση Η διεργασία περιλαμβάνει:
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Θέμα: Διακομιστές Διαμεσολάβησης
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Μεταγράφημα παρουσίασης:

ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διαφάνειες παρουσίασης #11 4 Διασωληνώσεις 4 Σήματα 4 Κοινή μνήμη 4 Σηματοφορείς

2Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διασωληνώσεις(i) u Pipes u Δίοδος επικοινωνίας με δύο άκρα  Σε κάθε μια διεργασία int fd [2];  Περιγραφή fd[0] file descriptor για ανάγνωση (λήψη) fd[1] file descriptor για εγγραφή (αποστολή) Διεργασία 1 Διεργασία 2 διασωλήνωση άλλη διεργασία fd[0] fd[1]

3Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διασωληνώσεις(ii) u Δημιουργία νέας διασωλήνωσης int pipe (int fd[2]); u Ανάγνωση και εγγραφή ssize_t read (int fd, // fd[0] void * buffer, size_t size); ssize_t write (int fd, // fd[1] const void * buffer, size_t size); u Κλείσιμο int close (int fd);

4Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Σήματα(i) u Messages: Unix System V u Μοιάζει με "θυρίδα γραμματοκιβωτίου" u Δομή σήματος l Τύπος σήματος Περιεχόμενο struct msgbuf { long int mtype; char mtext [MAX_MESSAGE]; }; θυρίδα Διεργασία 1 Διεργασία 2 σήμα

5Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Σήματα(ii) u Δημιουργία "θυρίδας" για σήματα int msgget (key_t key, int flag); u Αποστολή σήματος int msgsnd (int msgid, const void * buf, int len, int flag); u Λήψη σήματος int msgrcv (int msgid, void * buf, int len, int mtype, int flag); u Άλλες λειτουργίες διαχείρισης int msgctl (int msgid, int cmd,...);

6Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Κοινή μνήμη(i) u Shared memory: Unix System V u Μεταβλητές κοινές για πολλές διεργασίες κοινή μνήμη Διεργασία 1 δείκτης Διεργασία 2 δείκτης μεταβλητή

7Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Κοινή μνήμη(ii) u Δημιουργία κοινής μνήμης int shmget (key_t key, int size, int flag); u Συσχέτιση με μεταβλητή void * shmat (int shmid, void * addr, int flag); u Αποσυσχέτιση από μεταβλητή int shmdt (void * addr); u Άλλες λειτουργίες διαχείρισης int shmctl (int shmid, int cmd,...);

8Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Σηματοφορείς(i) u Semaphores: Unix System V u Επινόηση με βάσεις στη θεωρία παράλληλων συστημάτων u Οι λειτουργίες που εφαρμόζονται στο σηματοφορέα πραγματοποιούνται στιγμιαία u Έτσι εξασφαλίζεται ότι μια μόνο διεργασία μεταβάλλει το σηματοφορέα κάθε στιγμή σηματοφορέας Διεργασία 1 Διεργασία 2 τιμή λειτουργία

9Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Σηματοφορείς(ii) u Δημιουργία σηματοφορέα int semget (key_t key, int num, int flag); u Εφαρμογή λειτουργιών σε σηματοφορείς int semop (int semid, struct sembuf * opPtr, int len); u Άλλες λειτουργίες διαχείρισης int semctl (int shmid, int num, int cmd,...);

10Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Σηματοφορείς(iii) u Λειτουργίες σηματοφορέων struct sembuf { short sem_num; short sem_op; short sem_flg; };  Τιμές της παραμέτρου sem_op +n : αύξηση της τιμής του σηματοφορέα κατά n. -n : μείωση της τιμής του σηματοφορέα κατά n. Μπλοκάρει αν η τιμή είναι μικρότερη του n. 0 : έλεγχος για μηδενική τιμή σηματοφορέα. Μπλοκάρει αν η τιμή δεν είναι ίση με 0.

11Νίκος ΠαπασπύρουΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Σηματοφορείς(iv) u Συγχρονισμός με σηματοφορείς Κάθε σηματοφορέας παριστάνει έναν πόρο που μπορεί να χρησιμοποιείται από n το πολύ διεργασίες κάθε στιγμή Η τιμή του σηματοφορέα είναι ο αριθμός των διεργασιών που επιτρέπεται ακόμα να χρησιμοποιήσουν τον πόρο (μεταξύ 0 και n ) l Πριν χρησιμοποιήσει τον πόρο, κάθε διεργασία μειώνει την τιμή του σηματοφορέα l Μετά τη χρήση, κάθε διεργασία αυξάνει την τιμή του σηματοφορέα