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

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

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

Transcript

1 Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 4: Σήματα. Διαδιεργασιακή Επικοινωνία. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 Ο σκοπός της ενότητας Η κατανόηση των σημάτων στα ΛΣ. Η παρουσίαση των τεχνικών της διαδιεργασιακής επικοινωνίας. Η ανάλυση των συνθηκών συναγωνισμού. Το πρόβλημα του παραγωγού-καταναλωτή. 4

5 Σήματα (signals) σε διεργασίες 5

6 Σήματα στο Unix (Unix Signals) Ένα σήμα αντιπροσωπεύει μια ειδοποίηση προς μια συγκεκριμένη διεργασία για κάποιο γεγονός που συνέβη. Τα σήματά ονομάζονται και software interrupts. Τα σήματα είναι ασύγχρονα (η δημιουργία και αποστολή τους γίνεται χωρίς να υπάρχει προηγούμενη συνεννόηση με τη διεργασία για την οποία προορίζονται). Τα σήματα στέλνονται: Από µια διεργασία στην άλλη. Από τον πυρήνα στη διεργασία. 6

7 Έννοιες συνδεδεμένες με τα σήματα Δημιουργία του σήματος. Μετάδοση του σήματος. Χειρισμός του Σήματος. 7

8 Δημιουργία Σήματος (Signal Generation) Από τον χρήστη (μέσω εντολών): Η εντολή kill του shell χρησιμοποιείται για να στέλνει σήματα. Ειδικοί χαρακτήρες από το πληκτρολόγιο δημιουργούν σήματα (π.χ. Ctrl-C, ή Delete, που δημιουργούν το σήμα SIGINT). Από διεργασίες/κώδικα: Κλήση συστήματος kill(). Καταστάσεις του υλικού δημιουργούν σήματα, που στέλνονται από τον πυρήνα στη διεργασία (π.χ. αναφορά σε διεύθυνση εκτός του χώρου διευθύνσεων της διεργασίας δημιουργεί το σήμα SIGSEGV). Καταστάσεις λογισμικού δημιουργούν σήματα (π.χ. άφιξη δεδομένων εκτός ζώνης (out-of-band data) σε ένα στόμιο). 8

9 Χειρισμός Σημάτων (Signal Handling) Τι μπορεί να κάνει μια διεργασία με ένα σήμα; Μπορεί να παρέχει μια συνάρτηση που καλείται οποτεδήποτε στέλνεται ένας συγκεκριμένος τύπος σήματος στην διεργασία. Μπορεί να αγνοήσει το σήμα (κάποιοι τύποι σημάτων «πιάνονται» αυτόματα σε κάθε περίπτωση από το ΛΣ). Μπορεί να επιτρέψει να συμβεί η προκαθορισμένη λειτουργία για κάθε σήμα. Στις πρώτες εκδόσεις του Unix τα σήματα μπορούσαν να χαθούν (unreliable), οι νεότερες εκδόσεις του Unix όμως, υποστηρίζουν αξιόπιστο (reliable) μηχανισμό σημάτων. 9

10 Επικοινωνία μεταξύ των διεργασιών 10

11 Διαδιεργασιακή επικοινωνία (1/2) Πολύ συχνά μια διεργασία πρέπει να επικοινωνήσει με μια άλλη. Το πιο γνωστό παράδειγμα είναι η διασωλήνωση (π.χ. ls -la grep root grep Mar ). Η InterProcess Communication (IPC) μπορεί να γίνει με πολλούς τρόπους. 11

12 Ένα παράδειγμα Έστω δυο διεργασίες Α και Β θέλουν να τοποθετήσουν ένα αρχείο στο print spooler. Έστω είναι κοινές οι out,in. Η Β διαβάζει την επόμενη ελεύθερη τιμή και βρίσκει 7, την αποθηκεύει σε μια τοπική μεταβλητή. Τότε γίνεται interrupt. κοινής πρόσβασης Εκτελείται η Α, ομοίως και γράφει στη θέση 7 το αρχείο που θέλει. Συνεχίζει η Β και γράφει στη θέση 7 το δικό της αρχείο. Χάνεται η εγγραφή της Α. 12

13 Τι είναι οι συνθήκες ανταγωνισμού; Οι συνθήκες κατά τις οποίες δύο ή περισσότερες διεργασίες διαμοιράζονται την ίδια περιοχή μνήμης και το τελικό αποτέλεσμα εξαρτάται από τη σειρά αλλά και το χρόνο εκτέλεσης. Αν υπάρχουν race conditions τότε το σφάλμα παρουσιάζεται τυχαία και μόνο κατά τη διενέργεια παράλληλων ελέγχων. 13

14 Διαδιεργασιακή Επικοινωνία (2/2) Τρία βασικά ζητήματα: Πώς μια διεργασία θα μεταβιβάσει πληροφορίες σε μια άλλη; Πώς θα εξασφαλιστεί ότι 2 ή περισσότερες διεργασίες δεν εμποδίζουν η μία την άλλη, όταν εκτελούν κρίσιμες ενέργειες; Ποια είναι η κατάλληλη αλληλουχία ενεργειών, όταν υπάρχουν εξαρτήσεις; 14

15 Βασικές Έννοιες Συγχρονισμού Διεργασιών Ταυτόχρονη πρόσβαση σε διαμοιραζόμενα δεδομένα μπορεί να έχει ως αποτέλεσμα την ασυνέπεια των δεδομένων. Η διατήρηση συνέπειας των δεδομένων απαιτεί την ύπαρξη μηχανισμών που να διασφαλίζουν την διαδοχική εκτέλεση των συνεργαζόμενων διεργασιών. Η λύση της διαμοιραζόμενες μνήμης στο πρόβλημα του περιορισμένου ενδιάμεσου αποθηκευτικού χώρου (buffer), επιτρέπει την ταυτόχρονη ύπαρξη το πολύ n-1 αντικειμένων σε ένα buffer. 15

16 Συνεργαζόμενες Διεργασίες Οι ανεξάρτητες (Independent) διεργασίες δεν επηρεάζουν άλλες διεργασίες ούτε και επηρεάζονται από την εκτέλεση άλλων διεργασιών. Οι συνεργαζόμενες (Cooperating) διεργασίες μπορούν να επηρεάσουν ή να επηρεαστούν από την εκτέλεση άλλων διεργασιών. Κύριοι λόγοι για τη δημιουργία συνεργαζόμενων διεργασιών: Διαχείριση κοινής πληροφορίας. Επιτάχυνση υπολογισμών. Διαχωρισμός κώδικα σε ξεχωριστά τμήματα. Ευκολία. 16

17 Πρόβλημα Παραγωγού - Καταναλωτή Παράδειγμα συνεργαζόμενων διεργασιών : Η διεργασία παραγωγός παράγει την πληροφορία που καταναλώνει η διεργασία καταναλωτής. 2 γενικές περιπτώσεις : Μη περιορισμένος ενδιάμεσος χώρος (unbounded buffer). Περιορισμένος ενδιάμεσος χώρος (bounded buffer). 17

18 Διαμοιραζόμενα δεδομένα στο πρόβλημα παραγωγού καταναλωτή repeat produce an item in nextp while counter=n do no-op; buffer[in] := nextp; in := in+1 mod n; counter := counter+1; until false; repeat while counter=0 do no-op; nextc := buffer[out]; out := out+1 mod n; counter := counter-1; consume item in nextc; until false; type item = ; var buffer : array[0..n-1] of item; in, out : 0..n-1; counter : 0..n; in := 0; out := 0; counter :=0; Οι εντολές: counter := counter+1; counter:=counter-1; πρέπει να εκτελεστούν ατομικά 18

19 Το πρόβλημα του κρίσιμου τμήματος n διεργασίες ανταγωνίζονται για τη χρήση κάποιων διαμοιραζόµενων δεδομένων. Κάθε διεργασία έχει ένα κομμάτι κώδικα, που καλείται κρίσιμο τμήμα, μέσω του οποίου γίνεται η πρόσβαση στα διαμοιραζόμενα δεδομένα. ΠΡΟΒΛΗΜΑ: διαβεβαίωση ότι καμία άλλη διεργασία δεν επιτρέπεται να εκτελέσει το κρίσιμο τμήμα της, κατά τη διάρκεια εκτέλεσης του κρίσιμου τμήματος μίας διεργασίας. 19

20 Συνθήκες που απαιτούνται για την αποφυγή συνθηκών ανταγωνισμού (1/3) Δύο διεργασίες δεν βρίσκονται ποτέ ταυτόχρονα στις κρίσιμες περιοχές τους (mutual exclusion). Δεν επιτρέπονται υποθέσεις σε ό,τι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών (no assumptions). Διεργασία που δεν βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να μπλοκάρει άλλες διεργασίες (progress). Δεν επιτρέπεται μια διεργασία να αναμένει επ αόριστον να μπει στην κρίσιμη περιοχή της (bounded waiting). 20

21 Συνθήκες που απαιτούνται για την αποφυγή συνθηκών ανταγωνισμού (2/3) Mutual exclusion: Εάν η διεργασία Pi εκτελεί το κρίσιμο τμήμα της, καμία άλλη διεργασία δεν μπορεί να εκτελέσει το κρίσιμο τμήμα της. Progress: Εάν καμία διεργασία δεν εκτελείται στο κρίσιμο τμήμα της και υπάρχουν κάποιες διεργασίες που θέλουν να προχωρήσουν στην εκτέλεση του κρίσιμου τμήματος τους, τότε η επιλογή της διεργασίας που θα προχωρήσει στο κρίσιμο τμήμα της δεν μπορεί να αναβάλλεται επ αόριστον. 21

22 Συνθήκες που απαιτούνται για την αποφυγή συνθηκών ανταγωνισμού (3/3) No assumptions: Δεν υπάρχει υπόθεση αναφορικά με τη σχετική ταχύτητα των n διεργασιών. Βounded waiting: Πρέπει να υπάρχει όριο στο πόσες φορές επιτρέπεται οι άλλες διεργασίες να προχωρήσουν στο κρίσιμο τμήμα τους, μετά από το αίτημα εισαγωγής στο κρίσιμο τμήμα μίας διεργασίας και πριν από την ικανοποίηση του αιτήματος. 22

23 Παράδειγμα. Οι διεργασίες πρέπει να διαμοιράζονται κάποιες κοινές μεταβλητές για να συγχρονίζουν τις ενέργειες τους. 23

24 Έστω χρησιμοποιούμε μια κοινή μεταβλητή για το συγχρονισμό var turn : (0..1); (αρχικά turn = 0). turn = i, σημαίνει ότι η Pi μπορεί να μπει στο κρίσιμο τμήμα της. Ικανοποιεί τον αμοιβαίο αποκλεισμό, αλλά όχι την πρόοδο διεργασιών. 24

25 Έστω χρησιμοποιούμε πολλαπλές κοινές μεταβλητές για το συγχρονισμό var flag : array[0..1] of boolean; αρχικά flag[0] = flag[1] = false; flag[i] =true σημαίνει ότι η Pi μπορεί να μπει στο κρίσιμο τμήμα της. Δεν ικανοποιεί την πρόοδο διεργασιών. 25

26 Έστω συνδυάζουμε τις δυο προηγούμενες λύσεις Ικανοποιεί όλες τις προϋποθέσεις. Επιλύει το πρόβλημα του κρίσιμου τμήματος για 2 διεργασίες. 26

27 Βασικές Έννοιες Συγχρονισμού Διεργασιών.. Τροποποίηση του κώδικα του προβλήματος παραγωγού-καταναλωτή με προσθήκη μίας μεταβλητής counter που εκκινεί με την τιμή 0 και αυξάνεται κάθε φορά που ένα νέο αντικείμενο προστίθεται στον buffer. 27

28 Επικοινωνία μεταξύ Διεργασιών Οι διεργασίες επικοινωνούν μεταξύ (Interprocess Communiation, IPC) τους για να επιτευχθεί: Ανταλλαγή δεδομένων. Συγχρονισμός επεξεργασίας. Υπάρχουν δύο βασικές προσεγγίσεις επικοινωνίας: Χρήση κοινής μνήμης. Κοινή μνήμη (shared memory): οι διεργασίες χρησιμοποιούν κοινές μεταβλητές των οποίων τις τιμές αλλάζουν κατάλληλα. Ανταλλαγή μηνυμάτων. Ανταλλαγή μηνυμάτων (message passing): οι διεργασίες επικοινωνούν στέλνοντας και λαμβάνοντας μηνύματα. 28

29 Κοινή μνήμη Η πιο γρήγορη μέθοδος για IPC. Δε διαμεσολαβεί ο πυρήνας για αυτό το είδος της επικοινωνίας (δεν υπάρχουν κλήσεις συστήματος). Απαιτείται ένα είδος συγχρονισμού. Η μνήμη είναι κοινή σε μια ή περισσότερες διεργασίες. 29

30 Κοινή μνήμη - χρήση Ο εξυπηρετητής έχει πρόσβαση σε ένα αντικείμενο κοινής μνήμης χρησιμοποιώντας ένα σημαφόρο. Ο εξυπηρετητής διαβάζει από το αρχείο εισόδου. Στο αντικείμενο κοινής μνήμης. Το δεύτερο όρισμα προς ανάγνωση, η διεύθυνση του buffer δεδομένων, δείχνει στο αντικείμενο κοινής μνήμης. Όταν ολοκληρωθεί η ανάγνωση, ο εξυπηρετητής ειδοποιεί τον πελάτη χρησιμοποιώντας ένα σημαφόρο. Ο πελάτης γράφει τα δεδομένα από το αντικείμενο κοινής μνήμης στο αρχείο εξόδου. 30

31 Αμοιβαίος αποκλεισμός με χρήση κρίσιμων περιοχών 31

32 Αμοιβαίος Αποκλεισμός με «Αναμονή με Απασχόληση» Απενεργοποίηση διακοπών: «Μη ελκυστική» διότι μόνον το σύστημα (και όχι οι χρήστες) πρέπει να έχουν τέτοια προνόμια. Μεταβλητές κλειδώματος: Η ίδια η μεταβλητή κλειδώματος μπορεί να πέσει θύμα των συνθηκών συναγωνισμού. Αυστηρή εναλλαγή. Η λύση του Peterson. H εντολή TSL/XCHG. 32

33 Αμοιβαίος Αποκλεισμός με αυστηρή εναλλαγή «Αναμονή µε Απασχόληση» A proposed solution to the critical region problem. (a) Process 0. (b) Process 1. Πρόβλημα: Δεν επιτρέπει σε μια διεργασία να εκτελείται ταχύτερα (παραβίαση της 3ης συνθήκης). 33

34 Αμοιβαίος Αποκλεισμός με τη λύση του Peterson 34

35 Αμοιβαίος Αποκλεισμός με την ISA εντολή TSL H εντολή είναι hardware ατομική εντολή και απενεργοποιεί τα interrupt όσο εκτελείται (πιθανόν μειώνει την απόδοση). 35

36 Αμοιβαίος Αποκλεισμός με την ISA εντολή XCHG 36

37 Παράδειγμα χρήσης της TSL 37

38 Αμοιβαίος Αποκλεισμός με hardware εντολή Ειδικές οδηγίες μηχανήματος (hardware): Πραγματοποιούνται σε ένα μονό κύκλο εντολών. Δεν υπόκειται σε παρεμβολές από άλλες οδηγίες. Ανάγνωση και εγγραφή. Ανάγνωση και δοκιμή. 38

39 Ψευδοκώδικας της TSL boolean testset (int i) { if (i == 0) { i = 1; return true;} else {return false;} 39

40 Αμοιβαίος Αποκλεισμός με hardware εντολή (προβλήματα) Απενεργοποίηση διακοπών: Η διαδικασία εκτελείται μέχρι να καλέσει μια υπηρεσία του λειτουργικού συστήματος ή μέχρι να διακοπεί. Η απενεργοποίηση των διακοπών εγγυάται αμοιβαίο αποκλεισμό. Ο επεξεργαστής περιορίζεται στην ικανότητά του να εναλλάσσει προγράμματα. Πολυεπεξεργασία: απενεργοποίηση διακοπών σε έναν επεξεργαστή δεν εγγυάται αμοιβαίο αποκλεισμό. 40

41 Λήθαργος και αφύπνιση Η αναμονή με απασχόληση (busy waiting) δαπανά άσκοπα κύκλους ρολογιού. Επίσης, σε περιπτώσεις χρήσης αυστηρών προτεραιοτήτων μπορεί να οδηγήσει σε αδιέξοδα. Εισάγονται οι κλήσεις συστήματος sleep και wakeup. 41

42 Το πρόβλημα της αντιστροφής προτεραιοτήτων Έστω Χ διεργασία με υψηλή προτεραιότητα και Υ με χαμηλή. Έστω η Υ είναι ήδη μέσα στην κρίσιμη περιοχή και ενεργοποιείται η Χ για να εκτελεστεί. Ο χρονοδρομολογητής δε θα εκτελέσει ποτέ την Υ και έτσι ποτέ δε θα μπορέσει να φύγει από το κρίσιμο τμήμα, ενώ η Χ ποτέ δε θα μπορέσει να μπει. 42

43 Το πρόβλημα της αντιστροφής προτεραιοτήτων στο διάστημα.. 4ης Ιουλίου 1997, Mars Pathfinder. Κοινός Δίαυλος μνήμης. Διαδικασία διαχείρισης διαύλου με υψηλή προτεραιότητα ( και αμοιβαίο αποκλεισμό). Μετεωρολογική διαδικασία με χαμηλή προτεραιότητα. Διαδικασία επικοινωνίας με μεσαία προτεραιότητα. Σπάνια, η υψηλή προτεραιότητα είχε αποκλειστεί από τη χαμηλή προτεραιότητα και δεν ήταν δυνατή η επικοινωνία. Το Watchdog ήταν ενεργοποιημένο και επανεκκινούσε το σύστημα (πολλές φορές). Το νέο firmware φορτώθηκε για το VxWorks που επέτρεπε την κληρονομικότητα αμοιβαίας προτεραιότητας από μπλοκαρισμένη διαδικασία. Κατά την διάρκεια της δοκιμής στη γη, είχε συμβεί επανεκκίνηση αλλά νόμιζαν πως ήταν φυσιολογικό. 43

44 Το πρόβλημα παραγωγού καταναλωτή με sleep/wakeup Οδηγεί σε πρόβλημα γιατί γίνεται πρόσβαση στη count χωρίς κλείδωμα. Μπορεί να γίνει interrupt ενώ εκτελείται. 44

45 Σηματοφόροι ή Σημαφόροι (Semaphores), 1965 Dijkstra Προτείνονται οι εντολές down και up, για να αντικατασταθούν οι sleep και wakeup. Χρησιμοποιούνται για να μη χάνονται σήματα αφύπνισης. Θεωρούνται ατομικές ενέργειες (αδιαίρετες). Όταν εκτελεστεί μια εντολή up, το σύστημα αποφασίζει ποια διεργασία σε λήθαργο θα αφυπνιστεί. 45

46 Σηματοφόροι ή Σημαφόροι (Semaphores) (1/3) Μια ειδική μεταβλητή που χρησιμοποιείται για σηματοδότηση (signaling). Εάν μία διεργασία αναμένει για ένα σήμα (signal), αναστέλλεται (suspended) μέχρι να αποσταλεί αυτό το signal. Οι Wait και signal ενέργειες δεν μπορούν να διακοπούν (interrupted). Χρησιμοποιείται ουρά για να κρατά τις διεργασίες που αναμένουν στον σημαφόρο. 46

47 Σηματοφόροι ή Σημαφόροι (Semaphores) (2/3) Semaphore : ακέραια μεταβλητή. Μπορεί να αρχικοποιηθεί με έναν μη αρνητικό αριθμό. Η Wait (ή down) μειώνει την τιμή του σημαφόρου. Αν το S<0 τότε μπλοκάρεται. Η Signal (ή up) αυξάνει την τιμή του σημαφόρου. 47

48 Χρήση των σημαφόρων Διαμοιραζόμενη μεταβλητή: - var mutex : semaphore. - αρχικά mutex = 1. 48

49 Σηματοφόροι ή Σημαφόροι (Semaphores) (3/3) Ο σηματοφόρος mutex είναι δυαδικός και χρησιμεύει στον αμοιβαίο αποκλεισμό Οι σηματοφόροι empty και full χρησιμεύουν στο συγχρονισμό Επικράτησε στη βιβλιογραφία η ονομασία των δυαδικών σηματοφόρων ως mutex. 49

50 mutex Σε νεότερα ΛΣ υπάρχουν και εντολές mutex_trylock. 50

51 Mutexes in Pthreads (1/3) Some of the Pthreads calls relating to mutexes. 51

52 Mutexes in Pthreads (2/3) Some of the Pthreads calls relating to condition variables. 52

53 Mutexes in Pthreads (3/3) Using threads to solve the producerconsumer problem. 53

54 Semaphores & busy waiting Οι semaphores είναι εργαλείο συγχρονισμού που δεν απαιτεί ενεργό αναμονή (busy waiting). Busy Waiting. Η διεργασία ελέγχει συνεχώς να δει εάν μπορεί να μπει στο κρίσιμο τμήμα της. Η διεργασία δεν μπορεί να κάνει τίποτα το παραγωγικό μέχρι να πάρει «άδεια» για να μπει στο κρίσιμο τμήμα της. 54

55 Μηνύματα - Κανάλια Επικοινωνίας Δημιουργείται ένα (λογικό) κανάλι (channel) επικοινωνίας μεταξύ των διεργασιών, μέσω του οποίου ανταλλάσσονται τα μηνύματα. Το ΛΣ παρέχει τις εξής βασικές πράξεις: open(channel) δημιουργία/άνοιγμα καναλιού. send(channel, message) αποστολή μηνύματος. receive(channel, message) παραλαβή μηνύματος. close(channel) κλείσιμο καναλιού. Συνήθως κάθε κανάλι έχει ένα άκρο (παραλήπτη). Ένα κανάλι μπορεί να είναι μονής ή διπλής κατεύθυνσης. 55

56 Μηνύματα - Άμεση Επικοινωνία Ο παραλήπτης και αποστολέας προσδιορίζονται σαφώς κατά την αποστολή/παραλαβή του μηνύματος. Το ΛΣ παρέχει τις εξής βασικές πράξεις: send (P, message) στείλε μήνυμα στη διεργασία P. receive(q, message) λάβε ένα μήνυμα από τη διεργασία Q. Τα μηνύματα μπορεί (αλλά δεν πρέπει) να παραδίδονται στον παραλήπτη με την σειρά που στέλνονται από τον αποστολέα. 56

57 Μηνύματα - Έμμεση Επικοινωνία Τα μηνύματα στέλνονται σε και παραλαμβάνονται από (γραµµατο) θυρίδες (mailboxes ή ports). Το ΛΣ παρέχει τις εξής βασικές πράξεις: open(mailbox) δημιουργία/άνοιγμα θυρίδας. send(mailbox, message) αποστολή μηνύματος. receive(mailbox, message) παραλαβή μηνύματος. close(mailbox) κλείσιμο θυρίδας. Μια θυρίδα μπορεί να είναι προσβάσιμη από πολλές διεργασίες. Συνήθως το μήνυμα που βρίσκεται σε μια θυρίδα το λαμβάνει η διεργασία που «πρώτη» επιχειρεί να παραλάβει ένα μήνυμα. Ουσιαστικά επιτρέπεται στο σύστημα να διαλέξει αυθαίρετα τον παραλήπτη. Ο αποστολέας ειδοποιείται για τον παραλήπτη. 57

58 Μεταβίβαση μηνυμάτων στο linux msgget() msgsnd() msgrcv() Request message queue id relay a message to a particular mailbox get a message from a mailbox 58

59 Επικοινωνία μέσω δικτύου Επικοινωνία ανάμεσα σε διαφορετικούς υπολογιστές γίνεται συνήθως µε τα πρωτόκολλα διαδικτύου (Internet protocols, IP). Κάθε άκρο μιας σύνδεσης προσδιορίζεται μέσω της διεύθυνσης του υπολογιστή (Internet address) και της θύρας (port) που έχει ανοίξει μια διεργασία. Για παράδειγμα το άκρο :1625, αναφέρεται στη θύρα 1625 στον κόμβο με τη διεύθυνση Το πιο διαδεδομένο πρωτόκολλο επικοινωνίας του διαδικτύου, το TCP/IP, υποστηρίζει τη δημιουργία συνδέσεων μεταφοράς δεδομένων μεταξύ δύο άκρων. 59

60 Επικοινωνία μέσω TCP/IP 60

61 Υλοποίηση Μηχανισμών Επικοινωνίας πάνω από Δίκτυο µε TCP/IP Το TCP/IP είναι η βάση πάνω στην οποία μπορεί να χτιστούν πολλοί διαφορετικοί μηχανισμοί επικοινωνίας διεργασιών. Με βάση το TCP/IP μπορούν να υλοποιηθούν και όλοι οι προηγούμενοι μηχανισμοί ανταλλαγής μηνυμάτων. Οι αντίστοιχες διασυνδέσεις μεταξύ των διεργασιών υλοποιούνται με συνδέσεις TCP/IP αντί να χρησιμοποιείται μνήμη του τοπικού ΛΣ. Η ταχύτητα ανταλλαγής μηνυμάτων μεταξύ των διεργασιών εξαρτάται πλέον από την ταχύτητα μετάδοσης δεδομένων πάνω από το δίκτυο (και την αποδοτικότητα του πρωτοκόλλου TCP/IP) και όχι τόσο από την ταχύτητα αντιγραφής δεδομένων στην μνήμη του ΛΣ. 61

62 Τυπικά Ερωτήματα Υλοποίησης Υπάρχει «μόνιμη» σύνδεση επικοινωνίας μεταξύ αποστολέα και παραλήπτη; Με ποια λογική δημιουργούνται και καταστρέφονται συνδέσεις επικοινωνίας (σε χαμηλό επίπεδο, όπως π.χ. μέσω μνήμης του συστήματος ή δικτυακών συνδέσεων) μεταξύ διεργασιών που ανταλλάσσουν μηνύματα; Είναι το μήκος των μηνυμάτων σταθερό και γνωστό εκ των προτέρων, ή μπορεί να είναι μεταβλητό (πως ανακαλύπτεται το μέγεθος μεταβλητών μηνυμάτων την ώρα της εκτέλεσης); Τι γίνεται με λάθη, όταν δηλαδή μια από τις δύο διεργασίες τερματιστεί; Πως το αντιλαμβάνεται αυτό η άλλη μεριά; 62

63 Συγχρονισμός Σύγχρονη επικοινωνία: ο αποστολέας περιμένει μέχρι να λάβει το μήνυμα ο παραλήπτης (blocking send), ο παραλήπτης περιμένει μέχρι να υπάρχει διαθέσιμο μήνυμά προς παραλαβή (blocking receive). Ασύγχρονη επικοινωνία: ο αποστολέας συνεχίζει την εκτέλεση ανεξάρτητα από την παραλαβή του μηνύματος (non-blocking send), ο παραλήπτης δεν περιμένει μέχρι να φτάσει κάποιο μήνυμά (non-blocking receive). Συνδυασμοί σύγχρονης/ασύγχρονης αποστολής/παραλαβής. 63

64 Ενδιάμεση Αποθήκευση (buffering) Πόσα μηνύματα μπορούν να αποθηκευτούν προσωρινά, μέχρι να τα ζητήσει ο παραλήπτης; Η ουρά των μηνυμάτων μιας σύνδεσης μπορεί να υλοποιηθεί με έναν από τους ακόλουθους τρόπους: Μηδενική χωρητικότητα 0 μηνύματα. Ο αποστολέας πρέπει να περιμένει τον παραλήπτη (rendezvous). Περιορισμένη χωρητικότητα N μηνύματα. Ο αποστολέας περιμένει αν ο σύνδεσμος είναι γεμάτος. Απεριόριστη χωρητικότητα απεριόριστο μήκος. Ο αποστολέας δεν περιμένει ποτέ. 64

65 Παράδειγμα - Producer/Consumer Έστω μια διεργασία (παραγωγός) που επιθυμεί να στέλνει «πακέτα εργασίας» σε μια δεύτερη διεργασία (καταναλωτής). Έστω πως η επικοινωνία των διεργασιών πρέπει να υλοποιηθεί με: (α) Άμεση ανταλλαγή μηνυμάτων. (β) Ασύγχρονο send. (γ) Σύγχρονο receive 65

66 Παράδειγμα - Consumer typedef struct msg { } msg; void consumercode() { msg m; while (1) { receive(producerid,&m); processitem(&m);} } 66

67 Παράδειγμα - Producer typedef struct msg { } msg; void producercode() { msg m; while (1) { produceitem(&m); send(consumerid,&m); } 67

68 Παράδειγμα Έστω πως επιθυμούμε να περιορίσουμε τον αριθμό (έστω Ν) των «πακέτων εργασίας» που βρίσκονται σε αναμονή (έχουν σταλεί από τον παραγωγό χωρίς να τα έχει παραλάβει ο καταναλωτής), αλλά δεν μπορούμε να προσδιορίσουμε την χωρητικότητα του καναλιού επικοινωνίας μεταξύ των δύο διεργασιών. Ο συγχρονισμός μπορεί να γίνει βάζοντας τον καταναλωτή να στέλνει αίτηση στον παραγωγό για κάθε «πακέτο εργασίας» που επιτρέπεται να αποθηκευτεί ενδιάμεσα (στο κανάλι επικοινωνίας). Στην αρχή πρέπει να σταλούν Ν αιτήσεις, ενώ κάθε φορά που ο καταναλωτής λαμβάνει ένα «πακέτο εργασίας» πρέπει να στέλνει και νέα αίτηση. 68

69 Παράδειγμα Consumer #define N 100 typedef struct msg { } msg; typedef int req; void consumercode() { msg m; req ok; int i; for (i=0; i<n; i++) {send(producerid,&req);} while (1) { receive(producerid,&m); send(producerid,&req); processitem(&m);} } 69

70 Παράδειγμα Producer typedef struct msg { } msg; typedef int req; void producercode() { msg m; req ok; while (1) { produceitem(&m); receive(consumerid,&req); send(consumerid,&m); } 70

71 Μεταβίβαση Μηνυμάτων (Message Passing) Ένα μοντέλο IPC, στο οποίο γίνονται δεκτές μόνον οι εντολές: Send(destination,&message). Receive(source,&message). Βρίσκουν εφαρμογή σε κατανεμημένα και σε δικτυακά ΛΣ και εισάγουν την έννοια των μηνυμάτων επιβεβαίωσης. Ένα από τα πιο γνωστά συστήματα είναι το MPI (Message Passing Interface). 71

72 Μεταβίβαση Μηνυμάτων (producer) 72

73 Μεταβίβαση Μηνυμάτων (consumer) 73

74 Το πρόβλημα των αναγνωστών/συγγραφέων (1/2) Οποιοσδήποτε αριθμός αναγνωστών μπορεί να διαβάζει παράλληλα το αρχείο. Μόνο ένας συγγραφέας κάθε φορά μπορεί να γράφει στο αρχείο. Εάν ένας συγγραφέας γράφει στο αρχείο, κανένας αναγνώστης δεν μπορεί να το διαβάζει. Όταν ο συγγραφέας ενημερώσει για τη λήξη της συγγραφής του, επιλέγεται ένας νέος αναγνώστης ή συγγραφέας μέσω ενός scheduler. 74

75 Το πρόβλημα των αναγνωστών/συγγραφέων (2/2) Διαμοιραζόμενα δεδομένα - var mutex, wrt : semaphore (=1); readcount : integer (=0); Διεργασία Συγγραφέα. Διεργασία Αναγνώστη. 75

76 Άσκηση Το παρακάτω ζεύγος διεργασιών διαμοιράζεται μια κοινή μεταβλητή X με αρχική τιμή 5. Οι εντολές εντός κάθε διεργασίας εκτελούνται σειριακά, αλλά οι εντολές της διεργασίας Α είναι δυνατόν να εκτελεσθούν με οποιαδήποτε σειρά ως προς τις εντολές της διεργασίας Β. Πόσες διαφορετικές τιμές της μεταβλητής Χ μπορούν να προκύψουν όταν ολοκληρωθεί η εκτέλεση και των δύο διεργασιών. 76

77 Άσκηση - Απάντηση Υπάρχουν 4 δυνατές τιμές για το X. Ιδού όλοι οι δυνατοί συνδυασμοί της σειράς εκτέλεσης των εντολών των διεργασιών A και B: A1 A2 B1 B2: X = 11. A1 B1 A2 B2: X = 6. A1 B1 B2 A2: X = 10. B1 A1 B2 A2: X = 10. B1 A1 A2 B2: X = 6. B1 B2 A1 A2: X =

78 Τέλος Ενότητας 78

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 4: Σήματα. Διαδιεργασιακή Επικοινωνία. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 4α: Σημαφόροι, Πρόβλημα Συνδαιτυμόνων Φιλοσόφων, Αδιέξοδα Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 5 «Αμοιβαίος Αποκλεισμός» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αμοιβαίος Αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του

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

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 5 : Αμοιβαίος Αποκλεισμός Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 4: Διεργασίες ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

Διεργασίες (Processes)

Διεργασίες (Processes) Διεργασία (process) ή καθήκον (task) Διεργασίες (Processes) στοιχειώδης οντότητα/δραστηριότητα υπολογισμού (processing entity/activity) εκτέλεση ενός προγράμματος ένα (κύριο) νήμα (thread)/ρεύμα ελέγχου/εκτέλεσης

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

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

Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες

Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες Interprocess Communication and Concurrent Processes Περίληψη Σύνδροµος Προγραµµατισµός Συνθήκη συναγωνισµού Συγχρονισµός διεργασιών Κρίσιµες περιοχές

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

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

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

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

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 3: Δρομολόγηση Κεντρικής Μονάδας Επεξεργασίας Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Αμοιβαίος αποκλεισμός

Αμοιβαίος αποκλεισμός Αμοιβαίος αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού II. Υποστήριξη εκ μέρους του υλικού III. Σηματοφορείς 4. Κλασσικά

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1 Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός

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

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

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

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

2.4 Κλασσικά Προβλήματα IPC

2.4 Κλασσικά Προβλήματα IPC 2.4 Κλασσικά Προβλήματα IPC 1 Οι φιλόσοφοι που γευματίζουν - Dining Philosophers Μια πρώτη λύση για Ν φιλοσόφους: philosopher (i) while (1) { think; take_fork(i);/* πάρε αριστερό ξυλάκι */ take_fork(i+1

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Λειτουργικά συστήματα πραγματικού χρόνου

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα πραγματικού χρόνου Τι είναι λειτουργικό σύστημα πραγματικού χρόνου; Λειτουργικό Σύστημα Πραγματικού Χρόνου (ΛΣΠΧ) είναι ένα λειτουργικό σύστημα που προορίζεται για εφαρμογές πραγματικού

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 6 : Αδιέξοδο 1/2 Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο Για το μάθημα «Διαχείριση Λειτουργικών Συστημάτων» του ακαδημαϊκού έτους 2015 2016, το προτεινόμενο σύγγραμμα είναι το: Operating Systems: Internals

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

2.3 Επικοινωνία Διεργασιών

2.3 Επικοινωνία Διεργασιών 2.3 Επικοινωνία Διεργασιών 2.3.3 Η λύση του Peterson. (για 2 διεργασίες) Το σενάριο περιλαμβάνει 2 διεργασίες. Υπάρχουν 2 ρουτίνες που καλούνται για να μπούν και να βγούν οι διεργασίες σε/από critical

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Ενσωματωμένα Συστήματα

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

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

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Κεφάλαιο 6 Αδιέξοδο Μόνιµη αναµονή ενός συνόλου διεργασιών οι οποίες ανταγωνίζονται για πόρους του συστήµατος ή για να επικοινωνήσουν µεταξύ τους εν υπάρχει

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: Μέτρηση χρόνου τοίχου κατά POSIX Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Δίκτυα Επικοινωνιών ΙΙ: 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, μη αξιόπιστο,

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

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1 Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΙΕΡΓΑΣΙΕΣ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθηµα: Λειτουργικά Συστήµατα Ι ΙΕΡΓΑΣΙΕΣ ιδάσκων: Αναπλ. Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ ιεργασία (Process) είναι η αφαιρετική θεώρηση ενός προγράµµατος

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 3: Καταχωρητές, Τμήματα, Διευθυνσιοδότηση Μνήμης, SEGMENT, MOV, ADD, SUB, INT, TITLE, LEA

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

Υλοποίηση Σηματοφόρων

Υλοποίηση Σηματοφόρων Υλοποίηση Σηματοφόρων 1 lalis@inf.uth.gr Υλοποίηση σε επίπεδο συστήματος Εσωτερική κατάσταση: Ένας ακέραιος για την αποθήκευση της τιμής του σηματοφόρου Μια ουρά αναμονής που τοποθετείται ένα νήμα όταν

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Αποκωδικοποίηση Εντολής x86 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

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

Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC)

Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC) Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC) Τουλάχιστον δύο διεργασίες (ο αποστολέας και ο παραλήπτης) Σύγχρονη (synchronous) Aσύγχρονη (asynchronous) Χρονική σύνδεση Δε χρειάζεται χρονική

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Δομές Δεδομένων. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΣΥΓΧΡΟΝΙΣΜΟΣ

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

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

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

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

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

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1 Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής if () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά προτού αυτό

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

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες» 1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο

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

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

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

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

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

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

Παράλληλη Επεξεργασία Κεφάλαιο 8 ο Προγράμματα Περάσματος Μηνυμάτων

Παράλληλη Επεξεργασία Κεφάλαιο 8 ο Προγράμματα Περάσματος Μηνυμάτων Παράλληλη Επεξεργασία Κεφάλαιο 8 ο Προγράμματα Περάσματος Μηνυμάτων Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή

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

2. ΙΕΡΓΑΣΙΕΣ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 2.1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ (1/11) 2.1.1 Το µοντέλο διεργασίας Για την επίτευξη ψευδοπαραλληλισµού (pseudoparallelism)

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

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

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 4(β): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 2 η : Λειτουργία Η/Υ Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης Επιχειρήσεων

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

Ιδιοκτησία Αντικειµένου

Ιδιοκτησία Αντικειµένου Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 7: Εισαγωγή στα δίκτυα Η/Υ (μέρος Α) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το

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

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1 Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο

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

Συγχρονισμός & σηματοφόροι. Προγραμματισμός II 1

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 1: Ο προσομοιωτής DOSBOX Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

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

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

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 2: Καταχωρητές, HelloWorld σε 8086, emu8086 emulator Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων

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

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1 Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής εναλλαγή if/while () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά

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

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

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 10: Ιεραρχία Μνήμης. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 17: Χειρισμός Εισόδου - Εξόδου Συστήματα Εισόδου / Εξόδου: Το Υλικό Ε/Ε Μεγάλη ποικιλία συσκευών Ε/Ε Και μεγαλώνει Συνηθισμένες έννοιες: Πόρτα Δίαυλος Κοινό μέσο πρόσβασης

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

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

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

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

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

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

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

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

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

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Χρήση Συντονιστή Αλγόριθμος του Lamport Αλγόριθμος LeLann:

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

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Συγχρονισμός (συνέχεια) Μεταβλητές υπό συνθήκη Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Συγχρονισμός μεταξύ νημάτων

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

Επιτεύγµατα των Λ.Σ.

Επιτεύγµατα των Λ.Σ. Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος

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

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Υποσύστημα μνήμης Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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