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

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

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

Transcript

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

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

3 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

4 Σκοποί ενότητας Εξοικείωση με την έννοια των νημάτων και εξήγηση της σχέσης τους με τις διεργασίες. Εισαγωγή στους μηχανισμούς διαχείρισης και συγχρονισμού νημάτων της Java. 4

5 Περιεχόμενα ενότητας Διεργασίες και νήματα Υλοποίηση νημάτων Αξιοποίηση των νημάτων Νήματα στην Java Συγχρονισμός νημάτων 5

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

7 Διεργασίες Διεργασία 1 Διεργασία 2 Διεργασία n Μνήμη Μνήμη... Μνήμη Στοίβα Περιβάλλον Στοίβα Περιβάλλον Στοίβα Περιβάλλον Δεδομένα Δεδομένα Δεδομένα Λειτουργικό Σύστημα Διεργασία: εκτελούμενο πρόγραμμα Κώδικας + κατάσταση (καταχωρητές + μνήμη) Ψευδοταυτόχρονη/παράλληλη εκτέλεση διεργασιών Απομόνωση διεργασιών για λόγους ασφάλειας Κόστος δημιουργίας/μεταγωγής συμφραζομένων 7

8 Νήματα Νήμα 1 Νήμα 2 Νήμα n Μνήμη Στοίβα Περιβάλλον Στοίβα Περιβάλλον Δεδομένα... Στοίβα Περιβάλλον Λειτουργικό Σύστημα Νήμα: μια ροή ελέγχου σε μια διεργασία Επιτρέπονται πολλά νήματα ανά διεργασία Όλα τα νήματα μοιράζονται την ίδια μνήμη Χωριστή στοίβα, καταχωρητές, μετρητής Ψευδοταυτόχρονη/παράλληλη εκτέλεση νημάτων 8

9 Γιατί νήματα; Κοινός χώρος διευθύνσεων σε μία διεργασία Δεν υπάρχει μηχανισμός προστασίας Συνεργασία νημάτων μέσω κοινής μνήμης Πολύ γρήγορη επικοινωνία μέσω της μνήμης Χαμηλό κόστος μεταγωγής συμφραζομένων Μόνο οι καταχωρητές αλλάζουν Η εικονική μνήμη παραμένει ίδια 9

10 Χρήσεις νημάτων Παράλληλη εκτέλεση πολλών βημάτων Χωριστά νήματα για κλήσεις εισόδου/εξόδου Επικοινωνία με χρήστη και επεξεργασία Αξιοποίηση παραλληλισμού εφαρμογής Χρήση όλων των διαθέσιμων επεξεργαστών Μικρό κόστος μεταγωγής από νήμα σε νήμα Γρήγορη επικοινωνία μέσω κοινής μνήμης Πολύ μικρότερη επιβάρυνση από τις διεργασίες 10

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

12 Νήματα επιπέδου χρήστη Διεργασία 1 Διεργασία n Πακέτο νημάτων Πακέτο νημάτων Λειτουργικό Σύστημα Πακέτο νημάτων Δημιουργία και καταστροφή νημάτων Διαχείριση συνθηκών (conditions) Πακέτα νημάτων επιπέδου χρήστη (μοντέλο N:1) Οικονομική υλοποίηση λειτουργιών και μεταγωγής Ο εμποδισμός ισχύει για ολόκληρη τη διεργασία 12

13 Νήματα επιπέδου πυρήνα Διεργασία 1 Διεργασία n Πακέτο νημάτων Λειτουργικό Σύστημα Πακέτα νημάτων επιπέδου πυρήνα (μοντέλο 1:1) Ακριβή υλοποίηση λειτουργιών και μεταγωγή Ο εμποδισμός ισχύει μόνο για το νήμα Απαιτεί τροποποίηση του λειτουργικού συστήματος Επίπεδο χρήστη ή επίπεδο πυρήνα; 13

14 Ελαφριές διεργασίες (1 από 4) Διεργασία 1 Διεργασία n Πακέτο νημάτων Πακέτο νημάτων Ελαφριά διεργασία Ελαφριά διεργασία Ελαφριά διεργασία Λειτουργικό Σύστημα Υβριδική λύση (μοντέλο N:M) Μεταβαλλόμενη απεικόνιση νημάτων σε διεργασίες Βασική υποστήριξη νημάτων από πυρήνα Πακέτο νημάτων επιπέδου χρήστη 14

15 Ελαφριές διεργασίες (2 από 4) Επίπεδο πυρήνα Πολλές ελαφριές διεργασίες σε μία κανονική (Κατά)μερισμός του ενιαίου χώρου διευθύνσεων Επίπεδο χρήστη Δημιουργία, διαγραφή, συγχρονισμός νημάτων Ένα νήμα εκτελείται από μία ελαφριά διεργασία Η συσχέτιση μεταξύ τους δεν είναι μόνιμη Εξαρτάται από την πορεία εκτέλεσης 15

16 Ελαφριές διεργασίες (3 από 4) Μεταγωγή συμφραζομένων: επίπεδο χρήστη Εμποδισμός νήματος πάνω σε συνθήκη Κλήση χρονοπρογραμματιστή επιπέδου χρήστη Ανάθεση νέου νήματος από χρονοπρογραμματιστή Μεταγωγή συμφραζομένων: επίπεδο πυρήνα Κλήση πυρήνα που προκαλεί εμποδισμό Ο πυρήνας δίνει τον έλεγχο σε άλλη διεργασία Δε χρειάζεται κάποια ειδική μεταχείριση Αρκετές ελαφριές διεργασίες για παραλληλισμό 16

17 Ελαφριές διεργασίες (4 από 4) Ιδιότητες ελαφριών διεργασιών Δεν συνδέονται μόνιμα με ένα νήμα Ο χρονοπρογραμματιστής τους αναθέτει νήματα δυναμικά Εμποδισμός σε συνθήκες σε επίπεδο χρήστη Πλεονεκτήματα ελαφριών διεργασιών Όλες οι λειτουργίες νημάτων σε επίπεδο χρήστη Ο πυρήνας παρεμβαίνει μόνο στις κλήσεις του Ο χρονοπρογραμματιστής μπορεί να αλλάξει 17

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

19 Εφαρμογές νημάτων Αξιοποίηση στους πελάτες Απόκρυψη καθυστερήσεων του δικτύου Παράδειγμα: φυλλομετρητής ιστοσελίδων Αξιοποίηση στους εξυπηρετητές Διαχείριση πολλών πελατών Αξιοποίηση πολλών επεξεργαστών Παράδειγμα: εξυπηρετητής αρχείων Πολλά νήματα για εξυπηρέτηση αιτήσεων (Κατά)μερισμός κρυφής μνήμης ενταμιευτών 19

20 Μοντέλα οργάνωσης Διεργασία Διεργασία Διανομέας (α) Μοντέλο διανομέα/εργατών: εξυπηρετητής αρχείων Όλα τα νήματα-εργάτες είναι παρόμοια Εξυπηρέτηση αιτήσεων από οποιοδήποτε νήμα Μοντέλο σωλήνωσης: εκτέλεση εργασίας σε στάδια Κάθε νήμα είναι διαφορετικό Ιδανικά, όλα τα νήματα απαιτούν τον ίδιο χρόνο (β) 20

21 Νήματα στην Java Μάθημα: Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός, Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

22 Οργάνωση νημάτων Τα νήματα είναι μονάδες εκτέλεσης Κάθε διεργασία (πρόγραμμα) έχει νήματα Κάθε νήμα εκτελείται ανεξάρτητα Όλα τα νήματα μοιράζονται την ίδια μνήμη Κώδικα και όλα τα δεδομένα Κάθε εφαρμογή ξεκινά με ένα νήμα Εκτελεί τη μέθοδο main της εφαρμογής Το νήμα αυτό μπορεί να δημιουργήσει άλλα 22

23 Καταστάσεις νημάτων (1 από 2) γεννηθείσα Object.notify Object.notifyAll έτοιμη Thread.start ολοκλήρωση εισόδου/εξόδου εκπνοή διαστήματος ύπνου κοιμώμενη εκπνοή κβάντου Thread.yield διακοπή διανομή Thread.sleep εκτελούμενη σε αναμονή Object.wait ολοκλήρωση εκτέλεσης νεκρή αίτηση για είσοδο/έξοδο εμποδισμένη Καταστάσεις νημάτων Έτοιμη/εκτελούμενη ανάλογα με χρονοπρογραμματιστή Κοιμώμενη/εμποδισμένη/σε αναμονή ανάλογα με εντολές 23

24 Καταστάσεις νημάτων (2 από 2) Διάφοροι τρόποι διακοπής εκτέλεσης Αναμονή εισόδου / εξόδου -> εμποδισμένη Αναμονή χρονομέτρου (sleep) -> κοιμώμενη Αναμονή γεγονότος (wait) -> σε αναμονή Προτεραιότητες νημάτων Προτεραιότητα 1 (χαμηλή) έως 10 (υψηλή) Η προτεραιότητα κληρονομείται από τον γονέα Χρονοπρογραμματισμός με βάση προτεραιότητα Διακοπτόμενος ή μη χρονοπρογραμματισμός Εξαρτάται από την πλατφόρμα της Java 24

25 Μέθοδοι νημάτων (1 από 6) Νήματα: Τάξη Thread Thread (String όνομα_νήματος) Κατασκευάζει νήμα με συγκεκριμένο όνομα Thread () Κατασκευάζει νήμα με όνομα "Thread-#" void start() Ξεκινά την εκτέλεση νήματος (μέθοδος run()) Τα δύο νήματα εκτελούνται παράλληλα 25

26 Μέθοδοι νημάτων (2 από 6) void run () Περιέχει τον κώδικα του νήματος Κάθε υποτάξη ορίζει τη δική της run() void setname (String όνομα) void String getname () Θέτει/επιστρέφει το όνομα του νήματος void sleep (int millis) Αποκοιμίζει το νήμα για διάστημα msec 26

27 Μέθοδοι νημάτων (3 από 6) void yield () Παραχωρεί τον επεξεργαστή σε άλλα νήματα void interrupt () Στέλνει στο νήμα ένα σήμα διακοπής Αν είναι κοιμισμένο ή σε αναμονή ξυπνάει boolean isinterrupted () Επιστρέφει true αν το νήμα έχει διακοπεί 27

28 Μέθοδοι νημάτων (4 από 6) static boolean interrupted () Τrue αν το εκτελούμενο έχει διακοπεί Καθαρίζει (reset) την κατάσταση διακοπής boolean isalive () Επιστρέφει true το νήμα εκτελείται void setpriority (int προτεραιότητα) int getpriority () Θέτει/επιστρέφει προτεραιότητα νήματος 28

29 Μέθοδοι νημάτων (5 από 6) void join (long millis) Περιμένει τερματισμό νήματος για millis ms Αν το διάστημα είναι 0, αναμονή για πάντα void join (): Ισοδύναμη με join(0) void checkaccess () Εξετάζει αν έχουμε πρόσβαση στο νήμα Εξαίρεση αν δεν έχουμε Επιστροφή αν έχουμε 29

30 Μέθοδοι νημάτων (6 από 6) ThreadGroup getthreadgroup () Επιστρέφει την ομάδα του νήματος Thread.State getstate () Επιστρέφει τρέχουσα κατάσταση νήματος: NEW, RUNNABLE, BLOCKED WAITING, TIMED_WAITING, TERMINATED static Thread currentthread () Επιστρέφει αναφορά προς εκτελούμενο νήμα 30

31 Αντικείμενα εκτέλεσης (1 από 2) Δημιουργία νημάτων Επέκταση της τάξης Thread Δεν γίνεται αν επεκτείνει άλλη τάξη Διεπαφή Runnable Υλοποίηση από εκτελέσιμα αντικείμενα (νήματα) Μπορεί να επεκτείνει οποιαδήποτε τάξη Περιέχει μόνο την (αφηρημένη) μέθοδο run() Περνάμε το νήμα σε κατασκευαστή της τάξης Thread Εκκίνηση νήματος με τη μέθοδο start() 31

32 Αντικείμενα εκτέλεσης (2 από 2) Thread (Runnable αντικείμενο, String όνομα_νήματος) Δημιουργεί επώνυμο νήμα για το αντικείμενο Thread (Runnable αντικείμενο) Δημιουργεί νήμα "Thread-#" για το αντικείμενο Η τεχνική της διεπαφής είναι πιο γενική Μπορούμε να υλοποιούμε πολλές διεπαφές Υποκαθιστά την πολλαπλή κληρονομικότητα 32

33 Νήματα δαίμονες (1 από 2) Νήματα χρήστη και νήματα δαίμονες Κάθε νήμα είναι είτε χρήστη είτε δαίμονας Η μέθοδος main εκτελείται από νήμα χρήστη Οι δαίμονες εκτελούνται στο παρασκήνιο Η εφαρμογή δημιουργεί όποια νήματα θέλει Η εφαρμογή τερματίζεται με τα νήματα χρήστη Τα νήματα δαίμονες θανατώνονται αυτόματα 33

34 Νήματα δαίμονες (2 από 2) Ορισμός τύπου νήματος Τα νέα νήματα κληρονομούν τύπο δημιουργού void setdaemon (boolean είναι_δαίμων) Σημειώνει νήμα ως νήμα δαίμονα ή χρήστη Επιτρέπεται μόνο από το δημιουργό του Και μόνο πριν την εκκίνηση του νήματος boolean isdaemon () Επιστρέφει true αν το νήμα είναι δαίμων 34

35 Ομάδες νημάτων (1 από 8) Ομάδες νημάτων: Τάξη ThreadGroup Ενιαία διαχείριση και προστασία νημάτων Ιεραρχική οργάνωση ομάδων νημάτων Ρίζα η ομάδα main που δημιουργείται αυτόματα Ένταξη νημάτων σε ομάδες Κάθε νήμα προστίθεται σε ομάδα δημιουργού Ο δημιουργός μπορεί να ορίσει άλλη ομάδα Ο διαχειριστής ασφαλείας μπορεί να ορίσει άλλη 35

36 Ομάδες νημάτων (2 από 8) Ομάδες νημάτων δαίμονες Καταστρέφονται αυτόματα Όταν δεν περιέχουν άλλα ενεργά νήματα Μπορεί να περιέχουν νήματα δαίμονες ή χρήστη ThreadGroup (String ομάδα) Δημιουργεί ομάδα με γονέα την τρέχουσα ThreadGroup (ThreadGroup γονέας, String ομάδα) Η ομάδα γονέας ορίζεται ρητά 36

37 Ομάδες νημάτων (3 από 8) Σχετικοί κατασκευαστές νημάτων Thread (ThreadGroup ομάδα, String όνομα) Δημιουργεί ένα νήμα και το εντάσσει σε ομάδα Thread (ThreadGroup ομάδα, Runnable αντικείμενο) Χρησιμοποιεί επιπλέον ένα αντικείμενο Runnable Thread (ThreadGroup ομάδα, Runnable αντικείμενο, String όνομα) Ορίζει επιπλέον και το όνομα του νήματος 37

38 Ομάδες νημάτων (4 από 8) String getname () Επιστρέφει το όνομα αυτής της ομάδας νημάτων ThreadGroup getparent () Επιστρέφει την πατρική ομάδα νημάτων void setdaemon(boolean δαίμονας) boolean isdaemon() Θέτει / επιστρέφει τον τύπο της ομάδας 38

39 Ομάδες νημάτων (5 από 8) void setmaxpriority (int μέγιστη) int getmaxpriority () Θέτει / επιστρέφει τη μέγιστη προτεραιότητα Δεν αλλάζει προτεραιότητα ενεργών νημάτων boolean parentof (ThreadGroup g) Επιστρέφει true αν η ομάδα είναι γονέας της g void checkaccess() True αν το τρέχον νήμα έχει πρόσβαση στην ομάδα 39

40 Ομάδες νημάτων (6 από 8) int activecount () Πλήθος ενεργών νημάτων ομάδας και υποομάδων int activegroupcount () Πλήθος ενεργών υποομάδων της ομάδας int enumerate (Thread[] πίνακας, boolean αναδρ) Αντιγράφει κάθε ενεργό νήμα σε πίνακα Αν αναδρ == true περιλαμβάνει τις ομάδες παιδιά 40

41 Ομάδες νημάτων (7 από 8) int enumerate (Thread[] πίνακας) Ισοδύναμη με int enumerate (Thread[] πίνακας, true) int enumerate (ThreadGroup[] πίνακας, boolean αναδρ) Αντιγράφει ενεργές ομάδες της ομάδας σε πίνακα int enumerate (ThreadGroup[] πίνακας) Ίδιο με int enumerate (ThreadGroup[] πίνακας, true) 41

42 Ομάδες νημάτων (8 από 8) void interrupt() Διακόπτει όλα τα νήματα ομάδας και υποομάδων void destroy() Καταστρέφει την ομάδα και τις υποομάδες της Η ομάδα πρέπει να είναι κενή! uncaughtexception (Thread νήμα, Throwable εξαίρεση) Καλείται όταν ένα νήμα πεθάνει Λόγω άγνωστης εξαίρεσης 42

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

44 Συγχρονισμός Συγχρονισμός και επικοινωνία νημάτων Η Java παρέχει διάφορες σχετικές τεχνικές Κάθε εφαρμογή επιλέγει τον πιο κατάλληλο Αφορούν την κοινή μνήμη των νημάτων Μοντέλο μνήμης της Java Ο βασικός μηχανισμός είναι το monitor Αρκετά περιορισμένο στη βασική του μορφή Έχει επεκταθεί αρκετά στην πορεία 44

45 Πτητικά πεδία Πτητικά πεδία Παρακολουθούνται από όλα τα νήματα Κάθε αλλαγή γίνεται άμεσα αντιληπτή Σε όλα τα νήματα της εφαρμογής Η αλλαγή γίνεται στην κοινή μνήμη Όχι μόνο σε καταχωρητές Όχι μόνο σε μία κρυφή μνήμη Αρκεί να χρησιμοποιηθεί η λέξη κλειδί volatile 45

46 Συγχρονισμένες μέθοδοι (1 από 5) Κάθε αντικείμενο έχει μια κλειδαριά (lock) Μία κλειδαριά ανά υπόσταση (αντικείμενο) Δεν ορίζεται ρητά, υπάρχει πάντα Η κλειδαριά μπορεί να δεσμεύεται από ένα νήμα Απόκτηση κλειδαριάς πριν από κρίσιμη περιοχή Απελευθέρωση κλειδαριάς μετά από κρίσιμη περιοχή Χρήση synchronized μεθόδων και εντολών Αυτόματος έλεγχος κλειδαριάς 46

47 Συγχρονισμένες μέθοδοι (2 από 5) Παρακολουθητής (monitor) αντικειμένου Ελέγχει την κλειδαριά του αντικειμένου Επιτρέπει σε ένα νήμα την απόκτηση της κλειδαριάς Εμποδίζει όλα τα άλλα νήματα Υλοποίηση με synchronized μεθόδους / εντολές Απόκτηση κλειδαριάς για εκτέλεση synchronized μεθόδου Επιτρέπονται πολλές synchronized μέθοδοι ανά αντικείμενο Αμοιβαίος αποκλεισμός όλων των synchronized μεθόδων Οι άλλες μέθοδοι δεν επηρεάζονται 47

48 Συγχρονισμένες μέθοδοι (3 από 5) Προστασία δεδομένων αντικειμένου Τα δημόσια δεδομένα δεν προστατεύονται Ιδιοκτησία κλειδαριάς αντικειμένου Η κλειδαριά καλύπτει όλο το αντικείμενο Το νήμα μπορεί να κάνει πολλές κλήσεις Περιλαμβάνονται και άλλες κλήσεις synchronized Στατικές μέθοδοι synchronized Το αντικείμενο τάξης έχει τη δική του κλειδαριά Ανεξάρτητη από τις κλειδαριές των υποστάσεων 48

49 Συγχρονισμένες μέθοδοι (4 από 5) Synchronized εντολές Synchronized (παράσταση) { εντολές } Αρχικά υπολογίζεται η παράσταση Πρέπει να καταλήγει σε αναφορά αντικειμένου Αποκτάται η κλειδαριά του αντικειμένου Οι εντολές εκτελούνται με αμοιβαίο αποκλεισμό 49

50 Συγχρονισμένες μέθοδοι (5 από 5) Γιατί synchronized εντολές; Μικρότερες κρίσιμες περιοχές Συγχρονισμός πάνω σε οποιοδήποτε αντικείμενο Συγχρονισμός πάνω σε κλειδαριά αντικειμένου τάξης Γιατί synchronized μέθοδοι; Συγχρονισμός από την πλευρά του εξυπηρετητή Το αντικείμενο αποφασίζει για το συγχρονισμό του 50

51 Αναμονή - ειδοποίηση (1 από 6) Συγχρονισμός με βάση συνθήκες Παράδειγμα: πρόβλημα παραγωγού-καταναλωτή Πεπερασμένο σύνολο ενταμιευτών Ο παραγωγός περιμένει για κενές θέσεις Ο καταναλωτής περιμένει για γεμάτες θέσεις Αναμονή μέχρι να ισχύσει κάποια συνθήκη Χειρισμός μέσα σε αντικείμενο synchronized 51

52 Αναμονή - ειδοποίηση (2 από 6) void wait (long tim): εμποδισμός νήματος Απελευθέρωση κλειδαριάς αντικειμένου Το νήμα εμποδίζεται μέχρι: 1. Να κληθεί η μέθοδος notify και να επιλεγεί το νήμα 2. Να κληθεί η μέθοδος notifyall 3. Να περάσουν tim msec 4. Να κληθεί η interrupt για την αποστολή διακοπής void wait (): ισοδύναμη με wait (0) Αναμονή χωρίς εκπνοή χρονικού διαστηματος 52

53 Αναμονή - ειδοποίηση (3 από 6) void notifyall (): απελευθέρωση όλων των νημάτων Μπορεί να άλλαξε κάποια συνθήκη αναμονής Ένα μόνο νήμα αποκτά την κλειδαριά Τα υπόλοιπα εμποδίζονται ξανά στην κλειδαριά void notify(): απελευθέρωση ενός νήματος Δεν επιλέγουμε νήμα προς απελευθέρωση Χρήσιμη όταν δεν μας ενδιαφέρει το νήμα Κατάλληλη όταν έχουμε μία συνθήκη ή ένα νήμα 53

54 Αναμονή - ειδοποίηση (4 από 6) Σχέση wait και notify/notifyall Οι γνωστοποιήσεις δεν αποθηκεύονται Το wait πρέπει να ακολουθείται από notify/notifyall Χρήση timeout για αποφυγή αδιεξόδων Χρήση wait και notify/notifyall Επικοινωνία μόνο μέσω synchronized μεθόδων Ελευθερώνουν/δεσμεύουν αυτόματα την κλειδαριά Δεν μπορούν να κληθούν μέσα σε άλλες μεθόδους 54

55 Αναμονή - ειδοποίηση (5 από 6) Σημασιολογία εντολής wait Εμποδισμός νήματος πάνω στο αντικείμενο Απελευθέρωση κλειδαριάς αντικειμένου Η απελευθέρωση θα γίνει μέσω notify/notifyall Όταν εκτελεστεί, το νήμα θα κατέχει την κλειδαριά Χρήση εντολής wait Όταν εκτελεστεί το νήμα, ισχύει η συνθήκη του; Κλήση wait μέσα σε βρόχο while (όχι εντολή if) Ο βρόχος ελέγχει την επιθυμητή συνθήκη Αν δεν ισχύει το νήμα εμποδίζεται 55

56 Αναμονή - ειδοποίηση (6 από 6) Σημασιολογία εντολής notifyall Απελευθέρωση όλων των νημάτων που έκαναν wait Κάθε νήμα αποκτά την κλειδαριά με τη σειρά Τα νήματα ελέγχουν τη συνθήκη αναμονής Αν δεν ικανοποιείται, εμποδίζονται ξανά Σημασιολογία εντολής notify Απελευθερώνει ένα μόνο νήμα Πότε αξίζει η notify; Όλα τα νήματα πρέπει να περιμένουν την ίδια συνθήκη Mόνο ένα πρέπει να επωφελείται από τη συνθήκη 56

57 Άλλοι μηχανισμοί (1 από 2) Παράλληλη εκτέλεση από δεξαμενή νημάτων Τάξη ThreadPoolExecutor Ουρές που εμπεριέχουν το συγχρονισμό Διεπαφή BlockingQueue Ταυτόχρονες εκδόσεις συλλογών Τάξη ConcurrentHashMap 57

58 Άλλοι μηχανισμοί (2 από 2) Κλασικά εργαλεία συγχρονισμού Τάξη Semaphore Διάφορες υλοποιήσεις κλειδαριών Διεπαφή ReadWriteLock Ατομικοί τύποι μεταβλητών Τάξη AtomicBoolean και AtomicLong 58

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

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

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

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

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

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

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

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

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

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Νήματα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΝΗΜΑΤΑ

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη Εισαγωγή στη Java, Μέρος Γ

Διάλεξη Εισαγωγή στη Java, Μέρος Γ Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος Γ Νήματα (Threads) στην Java Συγχρονισμός Producer-Consumer

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα

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

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest: Εισαγωγή στη γλώσσα προγραμματισμού Java 41 6. Threads Πολλές γλώσσες προγαμματισμού όπως και η Java διαθέτουν εργαλεία για την υλοποίηση threads στα προγράμματά τους. Αυτές οι γλώσσες καλούνται multithreading

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

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

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

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1 Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

13. Νήματα. 13.1 Νήματα και χρήση νημάτων στη Java. 13.1.1. Τι είναι τα νήματα; 13.1.2. Τρία μέρη ενός νήματος

13. Νήματα. 13.1 Νήματα και χρήση νημάτων στη Java. 13.1.1. Τι είναι τα νήματα; 13.1.2. Τρία μέρη ενός νήματος 13. Νήματα Ολοκληρώνοντας αυτό το κεφάλαιο θα μπορείτε Να κατανοείτε την έννοια του νήματος (thread) Να δημιουργείτε διακριτά νήματα στη Java, που θα ελέγχουν τον κώδικα και τα δεδομένα που χρησιμοποιούνται

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 10: Συναρτήσεις Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

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

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

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

ΜΑΘΗΜΑ: Υπολογιστικά Νέφη

ΜΑΘΗΜΑ: Υπολογιστικά Νέφη Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Υπολογιστικά Νέφη ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

{ int a = 5; { int b = 7; a = b + 3;

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Κεντρικής Μονάδας Επεξεργασίας (CPU) Βασίλης Σακκάς 4/12/2013 1 Xρονοδρομολόγηση Διεργασιών 1 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί

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

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

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

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

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

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #5: Δομές επιλογής Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Δομές επιλογής MATLAB Programming Α. Καλαμπούνιας Η δομή επιλογής if Η δομή if στο

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ Καθ. Παπαδάκη Αν. Λειτουργικά Συστήματα 1 Περιγραφή Διεργασίας Στους υπολογιστές που έχουν μια μόνο ΚΜΕ, σε κάθε χρονική στιγμή μπορεί να εκτελείται μια μόνο εντολή γλώσσας

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

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

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

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

Ειδικά Θέματα Δικτύων ΙΙ

Ειδικά Θέματα Δικτύων ΙΙ Ειδικά Θέματα Δικτύων ΙΙ Ενότητα 9: Shortest Path First - SPF Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ

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

Πληροφορική ΙΙ Θεματική Ενότητα 7

Πληροφορική ΙΙ Θεματική Ενότητα 7 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 7 Δομές επανάληψης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons.

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

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης Φροντιστήριο Α' Κατανεμημένα Συστήματα 2011-2012 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

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

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ «ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ 1 4.1. Οριςμόσ φνθετων τφπων κλάςεων 2 Με εξαίρεςη τουσ βαςικούσ τύπουσ τησ Java (int, float, boolean, κλπ) τα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

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

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

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

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Διακριτά Μαθηματικά Ι Ενότητα 2: Γεννήτριες Συναρτήσεις Μέρος 1 Διδάσκων: Χ. Μπούρας (bouras@cti.gr) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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