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

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

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

Transcript

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

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

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

4 Σκοπός Η κατανόηση της διαφορετικότητας των διεργασιών και των νημάτων. Η κατανόηση της αύξησης της επίδοσης μέσω παραλληλοποίησης των νημάτων και των διεργασιών. Η περιγραφή και η χρήση των νημάτων POSIX. 4

5 Πολυνηματικός Προγραμματισμός Για πολυνηματικό προγραμματισμό με χρήση της γλώσσας C, επιλέγεται στο πλαίσιο του μαθήματος η βιβλιοθήκη των νημάτων Posix Threads (Pthreads). Χαρακτηριστικά των Pthreads: Ευρεία χρήση. Ώριμη υλοποίηση και πλατιά υποστήριξη από την κοινότητα. Αποδοτικές υλοποιήσεις στα σύγχρονα λειτουργικά συστήματα. Ικανοποιητικός βαθμός μεταφερσιμότητας. Διαθέσιμη βιβλιογραφία μέσω Διαδικτύου. Εύχρηστη και καλά ορισμένη προγραμματιστική διεπαφή. Σε Linux και MacOSX βρίσκονται προεγκατεστημένα. Σε Windows προτείνουμε την εγκατάσταση τους με χρήση του πακέτου. Pthreads-win32 και των εργαλείων ΜinGW. /sourceware.org/pthreads-win32, / Μετά την εγκατάσταση οι εντολές θα είναι διαθέσιμες από την γραμμή εντολών. 5

6 Λειτουργικό Σύστημα Μέσο διασύνδεσης των χρηστών και των εφαρμογών τους με το υλικό των υπολογιστών. Ο χρονοδρομολογητής του λειτουργικού συστήματος αναθέτει διεργασίες στους επεξεργαστές του συστήματος. 6

7 Διεργασίες (1/2) Πρόγραμμα = Εκτελέσιμος κώδικας + δεδομένα (στατική οντότητα). Διεργασία = Στιγμιότυπο της εκτέλεσης ενός προγράμματος. Συλλογή από δομές δεδομένων που περιγράφουν πλήρως την διαδικασία εκτέλεσης του προγράμματος μια ορισμένη στιγμή (δυναμική οντότητα). 7

8 Διεργασίες (2/2) Η περιγραφή μιας διεργασίας γίνεται μέσω: Του χώρου διευθύνσεων της (address space), δηλαδή τμήματος της κύριας μνήμης που δεσμεύεται για την διεργασία και αποτελείται από: Το τμήμα κώδικα (code segment). To τμήμα δεδομένων (data segment). To τμήμα στοίβας (stack segment). Το τμήμα σωρού (Heap). Πληροφορίες που διατηρεί το λειτουργικό σύστημα εσωτερικά (κατάσταση διεργασίας, προτεραιότητα, δεσμευμένοι πόροι, στατιστικά). Σαν κατάσταση διεργασίας θα αναφέρουμε κάθε στιγμιότυπο κατά στο οποίο τα παραπάνω δεδομένα έχουν συγκεκριμένες τιμές. Ειδικά θα αναφερόμαστε στην: Κατάσταση μνήμης, για να περιγράψουμε την κατάσταση του χώρου διευθύνσεων. Κατάσταση CPU, για να περιγράψουμε τιμές καταχωρητών όπως ο Program Counter (PC), ο Stack Pointer (SP) και άλλοι. 8

9 Εκτέλεση Διεργασίας (1/2) Για να εκτελεστεί μια διεργασία σε έναν επεξεργαστή πρέπει να φορτωθεί σε αυτόν η κατάσταση CPU της διεργασίας. Κατά την εκτέλεση τις διεργασίας η κατάσταση CPU μεταβάλλεται. Για να σταματήσει η εκτέλεση μιας διεργασίας και να ξεκινήσει μια άλλη (context switching): Αποθηκεύεται η κατάσταση CPU της τρέχουσας διεργασίας. Φορτώνεται η κατάσταση CPU της προς εκτέλεση διεργασίας. 9

10 Εκτέλεση Διεργασίας (2/2) 10

11 Αξιοποίηση των πολυεπεξεργαστικών Κάθε στιγμή σε έναν επεξεργαστή εκτελείται μια διεργασία. Θεωρία: Ο χρόνος μιας εφαρμογής που εκτελείται σε παράλληλο σύστημα, εξαρτάται από το βαθμό παραλληλίας. Οι εφαρμογές καλούνται να εκμεταλλευτούν στο έπακρο την ύπαρξη πολυεπεξεργαστικών συστημάτων. Πως μπορεί να γίνει αυτό; 11

12 1 η Λύση: Πολλαπλές Διεργασίες Η εφαρμογή ξεκινά με την δημιουργία μιας αρχικής διεργασίας (parent process) η οποία δημιουργεί με τη σειρά της διεργασίεςαντίγραφα (child processes). Σε κάθε διεργασία-παιδί ο χώρος διευθύνσεων είναι ακριβές αντίγραφο του χώρου διευθύνσεων της αρχικής διεργασίας. Κάθε διεργασία-παιδί αναλαμβάνει συγκεκριμένους σκοπούς της εφαρμογής και κατανέμεται σε διαφορετικό επεξεργαστή από τον αλγόριθμο δρομολόγησης, γεγονός που συνεπάγεται την παράλληλη εκτέλεση της εφαρμογής. Για την δημιουργία διεργασιών δείτε την κλήση συστήματος fork(). 12

13 Παράλληλη εκτέλεση διεργασιών 13

14 2 η Λύση: Νήματα (Threads) Αντιγραφή και διαχωρισμός μόνο των απαραίτητων δεδομένων. Κοινή διαμοίραση των υπόλοιπων. Συγκεκριμένα: Μια διεργασία μπορεί να δημιουργήσει πολλαπλά νήματα, τα οποία εκτελούν μια συγκεκριμένη συνάρτηση. Κάθε τέτοιο νήμα έχει ξεχωριστή κατάσταση CPU και συνεπώς όλα μπορούν να εκτελεστούν ταυτόχρονα σε διαφορετικούς επεξεργαστές. Κάθε νήμα χρησιμοποιεί τον ίδιο χώρο διευθύνσεων, οπότε όλα επενεργούν στα ίδια δυναμικά και στατικά δεδομένα. Για την δημιουργία νημάτων δείτε την κλήση συστήματος pthread_create(). 14

15 Παράλληλη εκτέλεση νημάτων 15

16 Σύγκριση διεργασιών - νημάτων Χώρος διευθύνσεων. Κάθε διεργασία-παιδί έχει ξεχωριστό χώρο διευθύνσεων. Όλα τα νήματα έχουν κοινό χώρο διευθύνσεων. Τα νήματα είναι πιο βολικά στον προγραμματισμό παράλληλων εφαρμογών καθώς ανταλλάσσουν πληροφορία με απλές λειτουργίες load-store. Η ανταλλαγή πληροφορίας μεταξύ διεργασιών πρέπει να γίνει ρητά (πέρασμα μηνυμάτων, ορισμός κοινής μνήμης). Κόστος διαχείρισης. Οι διεργασίες είναι βαριές, η δημιουργία τους και η εναλλαγή τους απαιτούν σημαντικό χρόνο. Τα νήματα είναι πιο ελαφρά, δημιουργούνται και εναλλάσσονται ταχύτερα. Οι παράλληλες εφαρμογές που χρησιμοποιούν νήματα είναι ταχύτερες. Μεταφερσιμότητα. Η έννοια της διεργασίας είναι έγκυρη για όλα τα λειτουργικά συστήματα. Η έννοια των νημάτων παρουσιάζει διαφορές από λειτουργικό σε Λειτουργικό. Η υιοθέτηση του προτύπου POSIX για τα νήματα αυξάνει την μεταφερσιμότητα. 16

17 Διαχείριση διεργασιών Σε κάθε διεργασία που δημιουργείται ανατίθεται ένας μοναδικός αριθμός που λέγεται pid (process id). pid_t pid; Μέσω του αναγνωριστικού pid ο προγραμματιστής μπορεί να ξεχωρίσει και να διαχειριστεί τις διάφορες διεργασίες. Μια διεργασία μπορεί να μάθει το pid της μέσω της κλήσης. pid_t getpid(void); 17

18 Διαχείριση νημάτων Σύμφωνα με το πρότυπο POSIX κάθε νήμα που δημιουργείται περιγράφεται από μια δομή τύπου pthread_t: pthread_t thread; Μέσω του αναγνωριστικού pthread_t ο προγραμματιστής μπορεί να ξεχωρίσει και να διαχειριστεί τα διάφορα νήματα. Ένα νήμα μπορεί να πάρει τη δομή που το περιγράφει με την κλήση. pthread_t pthread_self(void); 18

19 Κύκλος ζωής διεργασιών (1/2) Δημιουργία: Κλήση συστήματος. pid_t fork (void ); Όταν καλείται η fork() δημιουργείται ένα αντίγραφο της διεργασίας που την κάλεσε. Η διεργασία που την καλεί ονομάζεται διεργασίαπατέρας και αυτή που δημιουργείται διεργασία-παιδί. Η επεξεργασία συνεχίζεται τόσο στα παιδιά όσο και στον πατέρα, από τις εντολές που ακολουθούν την fork(). 19

20 Κύκλος ζωής διεργασιών (2/2) Για τον ομαλό τερματισμό του προγράμματος η διεργασία - πατέρας θα πρέπει να περιμένει τον τερματισμό των παιδιών: Κλήση συστήματος. pid_t waitpid(pid_t pid, int *status,int options); Η διεργασία που καλεί την waitpid() σταματά την εκτέλεση της μέχρι η pid διεργασία που αναμένει να τερματίσει την εκτέλεση της. Τερματισμός των παιδιών. Kλήση void exit(int); Η διεργασία που καλεί την exit() τερματίζει την εκτέλεση της. 20

21 Παράδειγμα με διεργασίες 21

22 Κύκλος ζωής νημάτων (1/2) Δημιουργία. Κλήση. int pthread_create (pthread_t * thread, pthread_attr_t *attr, void * (*start_routine) (void *), void * arg); Η κλήση αυτή κατασκευάζει ένα νέο νήμα που θα εκτελέσει τη συνάρτηση start_routine, με όρισμα το arg. Η δομή που περιγράφει το νέο νήμα αποθηκεύεται στο όρισμα thread. Το νέο νήμα είναι έτοιμο να εκτελεστεί αμέσως μετά τη δημιουργία του. 22

23 Κύκλος ζωής νημάτων (2/2) Για τον ομαλό τερματισμό του προγράμματος ένα οποιοδήποτε νήμα πρέπει να περιμένει τα υπόλοιπα να τελειώσουν: Κλήση. int pthread_join( pthread_t thread, void ** ret); Το νήμα που καλεί την pthread_join( ) σταματά την εκτέλεση του μέχρι το thread νήμα που αναμένει, να τερματίσει την εκτέλεση του. Στο όρισμα ret αποθηκεύεται η τιμή που επιστρέφει η συνάρτηση που εκτελέστηκε από το νήμα. Τερματισμός νημάτων. void pthread_exit(void *); 23

24 Νήματα και pthread_join() (1/2) The pthread_join() subroutine blocks the calling thread until the specified threadid thread terminates. The programmer is able to obtain the target thread's termination return status if it was specified in the target thread's call to pthread_exit(). A joining thread can match one pthread_join() call. It is a logical error to attempt multiple joins on the same thread. When a thread is created, one of its attributes defines whether it is joinable or detached. Only threads that are created as joinable can be joined. If a thread is created as detached, it can never be joined. 24

25 Νήματα και pthread_join() (2/2) To explicitly create a thread as joinable or detached, the attr argument in the pthread_create() routine is used. The typical 4 step process is: Declare a pthread attribute variable of the pthread_attr_t data type. Initialize the attribute variable with pthread_attr_init(). Set the attribute detached status with pthread_attr_setdetachstate(). When done, free library resources used by the attribute with pthread_attr_destroy(). The pthread_detach() routine can be used to explicitly detach a thread even though it was created as joinable. 25

26 Παράδειγμα με νήματα 26

27 Συγχρονισμός μεταξύ νημάτων (1/2) Πολύ συχνά, στις διάφορες παράλληλες εφαρµογές δηµιουργείται η ανάγκη για συγχρονισµό µεταξύ των διαφόρων νηµάτων. Για την προσπέλαση από τα διάφορα νήµατα κάποιας κοινής µεταβλητής. Για να ειδοποιήσει κάποιο νήµα κάποιο άλλο όταν συµβεί κάποιο γεγονός. Νήµατα που υλοποιούν ένα pipeline. Νήµατα που δουλεύουν µε το µοντέλο producer consumer. Όταν τα νήµατα πρέπει να λειτουργήσουν σαν µια οµάδα. Όταν όλα τα νήµατα πρέπει να ξεκινήσουν ταυτόχρονα να εκτελέσουν µια εργασία (π.χ. παράλληλο βρόχο). 27

28 Προσπέλαση κοινής μεταβλητής χωρίς προστασία 28

29 Αμοιβαίος αποκλεισμός Όταν δύο νήµατα ανανεώνουν την ίδια µεταβλητή θα πρέπει να συγχρονίζονται κατά την διαδικασία εγγραφής. Αυτό ονοµάζεται αµοιβαίος αποκλεισµός. Ο αµοιβαίος αποκλεισµός επιτυγχάνεται µε την χρήση κλειδιών. Ένα κλειδί µπορεί να είναι κλειδωµένο ή ελεύθερο. Ένα νήµα πριν ανανεώσει µια κοινή µεταβλητή θα πρέπει να κλειδώσει ένα κλειδί, το οποίο θα ελευθερώσει αµέσως µετά την εγγραφή. 29

30 Προσπέλαση κοινής μεταβλητής με χρήση κλειδιού 30

31 Μεταβλητές κλειδιά - Δημιουργία Το πρότυπο POSIX παρέχει τον τύπο pthread_mutex_t, οποίος ορίζει µια µεταβλητή τύπου κλειδί. Οι µεταβλητές αυτού του τύπου θα πρέπει να αρχικοποιηθούν πριν χρησιµοποιηθούν: Στατική αρχικοποίηση: pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; υναµική αρχικοποίηση χρησιµοποιώντας την κλήση: int pthread_mutex_init(&mutex, NULL); Ένα αρχικοποιηµένο κλειδί αρχικά είναι στην κατάσταση ελεύθερο. 31

32 Μεταβλητές κλειδιά - Κλείδωμα Ένα νήµα ελέγχου µπορεί να κλειδώσει µια µεταβλητή κλειδί χρησιµοποιώντας την κλήση: pthread pthread_mutex_lock (&mutex); Μόλις η συνάρτηση αυτή επιστρέψει το κλειδί θα είναι σε κατάσταση κλειδωµένο. Αν το κλειδί είναι ήδη κλειδωµένο τότε το νήµα που καλεί την παραπάνω κλήση µπλοκάρεται µέχρι το κλειδί να ξαναγίνει ελεύθερο. Όταν πολλά νήµατα καλούν ταυτόχρονα την κλήση αυτή, τότε µόνο ένα από αυτά θα καταφέρει να κλειδώσει το κλειδί. 32

33 Μεταβλητές κλειδιά - Απελευθέρωση Ένα νήµα ελέγχου µπορεί να απελευθερώσει µια µεταβλητή κλειδί χρησιµοποιώντας την κλήση: pthread_mutex_unlock (mutex); Μόλις η συνάρτηση αυτή επιστρέψει το κλειδί θα είναι σε κατάσταση ελεύθερο. Μόλις το νήµα που έχει κλειδώσει το κλειδί καλέσει την παραπάνω συνάρτηση τότε ένα από τα υπόλοιπα νήµατα που έχουν µπλοκάρει (περιµένοντας το κλειδί) ξεµπλοκάρεται. Και πάλι ένα µόνο από τα μπλοκαρισμένα νήµατα θα καταφέρει να ξανακλειδώσει το κλειδί. 33

34 Μεταβλητές κλειδιά - Κλείδωμα με έλεγχο Ένα νήµα ελέγχου µπορεί να δοκιµάσει να κλειδώσει µια µεταβλητή κλειδιού χρησιµοποιώντας την κλήση: pthread_mutex_trylock (&mutex); Αν το κλειδί είναι σε κατάσταση ελεύθερο τότε το νήµα που έκανε την κλήση θα κλειδώσει το κλειδί. Αν το κλειδί είναι σε κατάσταση κλειδωµένο τότε η κλήση αυτή επιστρέφει έναν ειδικό κωδικό που ενηµερώνει τον χρήστη για την κατάσταση. 34

35 Μεταβλητές κλειδιά - Καταστροφή Για κάθε κλήση pthread_mutex_lock που υπάρχει στο πρόγραµµα µας, θα πρέπει να υπάρχει και η αντίστοιχη κλήση pthread_mutex_unlock για την ίδια µεταβλητή κλειδί. Αλλιώς το πρόγραµµα µας µπορεί να ανασταλεί μόνιμα (deadlock). Όταν µια µεταβλητή κλειδί δεν χρησιµοποιείται πια, τότε αυτή µπορεί να καταστραφεί µε την κλήση: pthread_mutex_destroy(&mutex); 35

36 Παράδειγμα με μεταβλητές κλειδιά 36

37 Συγχρονισμός με χρήση φράγματος (1/2) Συγχρονισμός (κυριολεκτικά) των νημάτων σε συγκεκριμένα σημεία του προγράμματος. Κατά τον ορισμό ενός φράγματος ορίζεται ο αριθμός των νημάτων που πρόκειται να το χρησιμοποιήσουν. Όποτε κάποιο νήμα συναντήσει ένα φράγμα αναστέλλει την εκτέλεση του έως ότου να συναντήσουν το συγκεκριμένο φράγμα όλα τα υπόλοιπα νήματα που έχει οριστεί να το χρησιμοποιήσουν (πλήθος νημάτων). Όταν το τελευταίο νήμα συναντήσει το φράγμα, ειδοποιούνται και όλα τα υπόλοιπα να συνεχίσουν την εκτέλεση τους. Με αυτό τον τρόπο όλα τα νήματα συγχρονίζονται με το πιο αργό νήμα. Απλός και σε αρκετούς αλγορίθμους απαραίτητος τρόπος συγχρονισμού. Η επίδραση του είναι μικρή όταν το φορτίο είναι ισοκατανεμημένο. 37

38 Συγχρονισμός με χρήση φράγματος (2/2) Το ταχύτερο σε αυτή τη συγκυρία νήμα 1 συγχρονίζεται με το αργότερο νήμα 2. Παράδειγμα χρήσης: όταν δεδομένα που παράγονται στο γύρο Ν είναι απαραίτητα για τον υπολογισμό κατά τον γύρο Ν+1 κ.ο.κ. 38

39 Υλοποίηση φραγμάτων Αρχικά δεν προβλεπόταν η υποστήριξη τους. Ορίστηκαν σε μεταγενέστερη έκδοση του προτύπου. Η υλοποίηση τους στα διάφορα λειτουργικά συστήματα αυτή τη στιγμή είναι προαιρετική. Ωστόσο στο linux/bsd διατίθεται πλέον υλοποίηση τους. Οι κυριότερες συναρτήσεις για χρήση φραγμάτων είναι: Τύπος: pthread_barrier_t bar; int pthread_barrier_init(&bar, NULL, numofthreads); int pthread_barrier_wait&bar); int pthread_barrier_destroy(&bar); 39

40 Συγχρονισμός μεταξύ νημάτων (2/2) Πολύ συχνά, στις διάφορες παράλληλες εφαρµογές δηµιουργείται η ανάγκη για συγχρονισµό µεταξύ των διαφόρων νηµάτων. Για την προσπέλαση από τα διάφορα νήµατα κάποιας κοινής µεταβλητής. Για να ειδοποιήσει κάποιο νήµα κάποιο άλλο όταν συµβεί κάποιο γεγονός. Νήµατα που υλοποιούν ένα pipeline. Νήµατα που δουλεύουν µε το µοντέλο producer consumer. Όταν τα νήµατα πρέπει να λειτουργήσουν σαν µια οµάδα. Όταν όλα τα νήµατα πρέπει να ξεκινήσουν ταυτόχρονα να εκτελέσουν µια εργασία (π.χ. παράλληλο βρόχο). 40

41 Μεταβλητές υπό συνθήκη (1/2) Οι µεταβλητές υπό συνθήκη παρέχουν έναν εναλλακτικό τρόπο για συγχρονισµό µεταξύ των νηµάτων. Σε αντίθεση με τις μεταβλητές αμοιβαίου αποκλεισμού, η χρήση των μεταβλητών υπό συνθήκη δεν έχει σαν σκοπό να εγγυηθεί την αποκλειστική πρόσβαση ενός νήματος σε δεδομένα (προστασία ενός κρίσιμου τμήματος). Οι μεταβλητές υπό συνθήκη αποτελούν ένα μηχανισμό ειδοποίησης μεταξύ των νημάτων. 41

42 Μεταβλητές υπό συνθήκη (2/2) Για να έχει νόημα η χρήση των μεταβλητών υπό συνθήκη σαν μηχανισμός ειδοποίησης θα πρέπει να συσχετίζεται, από τη μεριά του προγραμματιστή, με τον έλεγχο ορισμένων κοινών δεδομένων. Τα κοινά αυτά δεδομένα αποτελούν και τη συνθήκη με την οποία συσχετίζεται η μεταβλητή. Χωρίς τις μεταβλητές υπό συνθήκη, ο προγραµµατιστής θα έπρεπε συνεχώς να ελέγχει (poll) την τιµή των δεδοµένων, καταναλώνοντας πόρους από το σύστηµα. Αποφεύγεται το συνεχές polling στα δεδοµένα, καθώς κάποιο νήμα ειδοποιεί τα ενδιαφερόμενα για την αλλαγή της τιμής των δεδομένων, μέσω μιας μεταβλητής υπό συνθήκη. 42

43 Ένα παράδειγμα (1/2) Έστω μια κοινή ουρά δεδομένων (queue). Ένα νήμα είναι απασχολημένο με την εξαγωγή στοιχείων από την ουρά. Όσο η ουρά είναι άδεια το νήμα θα πρέπει να περιμένει χωρίς να εκτελεί χρήσιμη εργασία. Στοιχεία στην ουρά τοποθετούν ορισμένα άλλα νήματα σε διάφορες στιγμές κατά την ροή του προγράμματος. 43

44 Ένα παράδειγμα (2/2) Συνθήκη: Η κατάσταση της κοινής ουράς δεδομένων. Γεμάτη ή άδεια. Ο έλεγχος μπορεί να γίνει από την μεταβλητή που αποθηκεύει το μέγεθος της ουράς. Το νήμα περιμένει την ειδοποίηση του για την προσθήκη στοιχείου στην ουρά μέσω μιας μεταβλητής υπό συνθήκη. Κάποια στιγμή ένα νήμα προσθέτει ένα στοιχείο στην ουρά και ειδοποιεί το νήμα που αναμένει, μέσω της μεταβλητής υπό συνθήκη. Κοινά δεδομένα Κρίσιμα τμήματα: Η μεταβλητή μεγέθους της ουράς. Η κοινή ουρά δεδομένων, μέσω των πράξεων εισαγωγής, εξαγωγής στοιχείων. 44

45 Δημιουργία Το POSIX παρέχει τον τύπο pthread_cond_t, οποίος ορίζει µια µεταβλητή υπό συνθήκη. Και οι µεταβλητές αυτού του τύπου θα πρέπει να αρχικοποιηθούν πριν χρησιµοποιηθούν: Στατική αρχικοποίηση: pthread_cond_t condition = PTHREAD_COND_INITIALIZER; υναµική αρχικοποίηση χρησιµοποιώντας την κλήση: int pthread_cond_init(condition); Μια µεταβλητή υπό συνθήκη χρησιµοποιείται πάντα µαζί µε µια µεταβλητή τύπου κλειδί. 45

46 Αναμονή Ένα νήµα ελέγχου µπορεί να περιµένει µέχρι να τεθεί µια μεταβλητή υπό συνθήκη χρησιµοποιώντας την κλήση: pthread_cond_wait (condition, mutex); Η κλήση αυτή µπλοκάρει το νήµα που την καλεί µέχρι να τεθεί η μεταβλητή υπό συνθήκη. Η κλήση αυτή πρέπει να καλείται µε την µεταβλητή κλειδί σε κατάσταση κλειδωµένο. Κατά την διάρκεια που το νήµα είναι µπλοκαρισµένο η µεταβλητή κλειδί απελευθερώνεται. Όταν η κλήση αυτή επιστρέψει το κλειδί είναι πάλι σε κατάσταση κλειδωµένο. 46

47 Γιατί χρειάζεται το κλειδί; Η συνθήκη, δηλαδή τα δεδομένα προς έλεγχο, είναι κοινά ανάμεσα στα νήματα (πχ το μέγεθος της ουράς). Η ασφαλής πρόσβαση στα κοινά δεδομένα εξασφαλίζεται με την χρήση μεταβλητών αμοιβαίου αποκλεισμού. Άρα μια μεταβλητή υπό συνθήκη υλοποιεί την ειδοποίηση για την αλλαγή της συνθήκης και μια μεταβλητή αμοιβαίου αποκλεισμού υλοποιεί την ασφαλή/αποκλειστική πρόσβαση στη συνθήκη. Επομένως στην κλήση της αναμονής μπορούν να συνδυαστούν και οι δυο χρήσεις των διαφορετικών μεταβλητών, εφόσον ούτως ή άλλως είναι αναγκαίες. 47

48 Αφύπνιση Ένα νήµα ελέγχου µπορεί να ξυπνήσει ένα νήµα που περιµένει σε κάποια μεταβλητή υπό συνθήκη µε την κλήση: pthread_cond_signal (condition); Ένα νήµα ελέγχου µπορεί να ξυπνήσει όλα τα νήµατα που περιµένουν σε κάποια μεταβλητή υπό συνθήκη µε την κλήση: pthread_cond_broadcast (condition); Η κλήση αυτή ενδεχομένως καλείται µε το σχετικό κλειδί σε κατάσταση κλειδωµένο. Μετά την κλήση αυτή το κλειδί πρέπει να ελευθερωθεί, έτσι ώστε η αντίστοιχη. pthread_cond_wait να λειτουργήσει. 48

49 Προϋποθέσεις Για να λειτουργήσει σωστά µια µεταβλητή υπό συνθήκη, απαιτείται κατάλληλο κλείδωµα και ξεκλείδωµα της αντίστοιχης µεταβλητής κλειδί. Αν κληθεί η pthread_cond_wait χωρίς να έχει κλειδωθεί η µεταβλητή κλειδί, η συμπεριφορά της κλήσης θα είναι απρόβλεπτη. Εφόσον έχει δεσμευθεί, αν δεν απελευθερωθεί η µεταβλητή κλειδί µετά την κλήση pthread_cond_signal, η αντίστοιχη pthread_cond_wait δε θα μπορέσει να ξεµπλοκαριστεί. 49

50 Μεταβλητές υπό συνθήκη - Παραδείγματα 50

51 Προσοχή στον επανέλεγχο της συνθήκης Πάντα πρέπει να γίνεται επανέλεγχος της συνθήκης μετά από το ξεμπλοκάρισμα από την αναμονή σε μια κλήση της. pthread_cond_wait Αυτό μπορεί να γίνει τοποθετώντας την pthread_cond_wait στο εσωτερικό ενός while loop στο οποίο θα ελέγχετε η συνθήκη. Αυτό είναι ιδιαίτερα σημαντικό διότι: Τα νήματα είναι ασύγχρονα. Κάποιο άλλο νήμα μπορεί να έχει προλάβει να μεταβάλει την συνθήκη. Υπάρχει η (σπάνια αλλά όχι και τόσο σπάνια) περίπτωση των συμπτωματικών ειδοποιήσεων (spurious wakeups). Ειδοποιήσεις οι οποίες προκαλούνται χωρίς να έχει προηγηθεί κάποιο signal ή broadcast της συγκεκριμένης μεταβλητής υπό συνθήκη από άλλο νήμα. 51

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

53 Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Μηνάς Δασυγένης. «Λειτουργικά Συστήματα». Έκδοση: 1.0. Κοζάνη Διαθέσιμο από τη δικτυακή διεύθυνση: 53

54 Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 54

55 Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 55

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

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

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής

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

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

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

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Παιδαγωγικό Τμήμα Νηπιαγωγών Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Ενότητα # 9: Ψηφιακός Ήχος - Audacity Θαρρενός Μπράτιτσης Παιδαγωγικό Τμήμα Νηπιαγωγών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 7: ΑΣΚΗΣΕΙΣ ΜΕΓΕΘΟΥΣ ΕΠΙΧΕΙΡΗΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

Εργαστήριο 14. Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t)

Εργαστήριο 14. Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t) Εργαστήριο 14 Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t) Να γράψετε πρόγραμμα που να δημιουργεί 1 νήμα Έτσι στο πρόγραμμα σας θα υπάρχουν 2 νήματα (το ένα νήμα είναι το αρχικό νήμα που

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

Νήµατα. Πολύ σηµαντικό

Νήµατα. Πολύ σηµαντικό Νήµατα Πολύ σηµαντικό 1 Νήµατα (συν.) Σηµαντικό 2 Νήµατα vs ιεργασίες Νήµατα ιεργασίες Χώρος εδοµένων Περιγραφητές Αρχείων fork exit exec Σήµατα Κοινός. Ότι αλλάζει το 1 νήµα το βλέπουν/ αλλάζουν και τα

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

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

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 9: ΑΣΚΗΣΕΙΣ ΕΠΙΛΟΓΗΣ ΤΟΠΟΥ ΕΓΚΑΤΑΣΤΑΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

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

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

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

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

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

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 2: Οργάνωση και Διοίκηση Εισαγωγή Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 11: Θεωρία Οργάνωσης & Διοίκησης Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 4: Ψηφιακή Λογική, Άλγεβρα Boole, Πίνακες Αλήθειας (Μέρος Α) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας Ενότητα 8: Αξιολόγηση και επιλογή αγορών στόχων από ελληνική εταιρία στον κλάδο παραγωγής και εμπορίας έτοιμου γυναικείου Καθ. Αλεξανδρίδης Αναστάσιος Δρ. Αντωνιάδης

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 6 η Άσκηση - DFS δένδρα Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

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

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

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

Μαθηματική Ανάλυση ΙI

Μαθηματική Ανάλυση ΙI Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση ΙI Ενότητα 3: Συναρτήσεις πολλών μεταβλητών Επίκουρος Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και

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

Διδακτική της Πληροφορικής

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

Διεργασίες και Νήματα (2/2)

Διεργασίες και Νήματα (2/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα

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

Μαθηματική Ανάλυση Ι

Μαθηματική Ανάλυση Ι Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 10: Δυναμοσειρές Επίκουρος Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4

NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1 Ένα thread έχει: ID, program counter, register set, stack Μοιράζεται με τα άλλα threads της ίδιας διεργασίας τον κώδικα, τα δεδομένα και τους άλλους πόρους

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 3: Στρατηγικός Προγραμματισμός Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Ιστορία της μετάφρασης

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 6: ΜΕΓΕΘΟΣ ΕΠΙΧΕΙΡΗΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 4: Στρατηγικοί προσανατολισμοί Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανολόγων Μηχανικών Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης Ενότητα: Εισαγωγή Αν. Καθηγητής Μπακούρος Ιωάννης Τηλ.: 24610 56660, e-mail: ylb@uowm.gr,

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra Εισαγωγή στους Αλγορίθμους Ενότητα 1η Άσκηση Αλγόριθμος Dijkra Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upara.gr Άδειες Χρήσης Το παρόν

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

Διοικητική Λογιστική

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 7 η : Δείκτες Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Δομές Δεδομένων Ενότητα 1

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

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Πίνακες Νερού σε κατάσταση Κορεσμού Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Διπλ. Ναυπηγός Μηχανολόγος Μηχανικός M.Sc. Διασφάλιση

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

Τεχνοοικονομική Μελέτη

Τεχνοοικονομική Μελέτη Τμήμα Μηχανολόγων Μηχανικών Τεχνοοικονομική Μελέτη Ενότητα 7: Σχέση μεταξύ εσόδων και ανάκτηση κεφαλαίου Σκόδρας Γεώργιος, Αν. Καθηγητής gskodras@uowm.gr Τμήμα Μηχανολόγων Μηχανικών Άδειες Χρήσης Το παρόν

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 5 η : Πίνακες (Προχωρημένα Θέματα) Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής

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

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 3: Πολλαπλή Παλινδρόμηση. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

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

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

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

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

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

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

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

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

Μαθηματική Ανάλυση Ι

Μαθηματική Ανάλυση Ι Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 5: Όρια και Συνέχεια Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4

Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4 Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4 Με το κεφάλαιο αυτό, αλλάζουμε θεματολογία και μπαίνουμε στον χώρο του προγραμματισμού των παράλληλων συστημάτων. Σε αντίθεση με τους κλασικούς σειριακούς

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

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

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Βάσεις Δεδομένων Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη Ενότητα 8: Η Οικονομική πολιτική της Ευρωπαϊκής Ένωσης Γρηγόριος Ζαρωτιάδης Άδειες Χρήσης Το

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

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

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

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1) Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 10: Πρότυπα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

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

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 1: Βασικές έννοιες της πληροφορικής Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

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

Μαθηματική Ανάλυση Ι

Μαθηματική Ανάλυση Ι Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 2: Ακολουθίες Πραγματικών Αριθμών Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας Κβαντική Επεξεργασία Πληροφορίας Ενότητα 4: Κλασσική και Κβαντική Πιθανότητα Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Σκοπός της ενότητας

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

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

Μαθηματική Ανάλυση Ι

Μαθηματική Ανάλυση Ι Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 1: Σύνολα, Πραγματικοί αριθμοί Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

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

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

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

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

Μηχανολογικό Σχέδιο Ι

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος

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

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

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

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

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Κριτήρια Σύγκλισης Σειρών Λουκάς Βλάχος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Εκκλησιαστικό Δίκαιο

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

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

Σχεδίαση Δικτύων Υπολογιστών

Σχεδίαση Δικτύων Υπολογιστών Σχεδίαση Δικτύων Υπολογιστών Ενότητα 6: Δρομολόγηση κατάστασης ζεύξης Άγγελος Μιχάλας Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Εργαστήριο Χημείας Ενώσεων Συναρμογής

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

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

Σχεδίαση Δικτύων Υπολογιστών

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

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

Ψηφιακή Επεξεργασία Εικόνων

Ψηφιακή Επεξεργασία Εικόνων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Ψηφιακή Επεξεργασία Εικόνων Ενότητα # 14: Τμηματοποίηση με χρήση τυχαίων πεδίων Markov Καθηγητής Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών Τμηματοποίηση εικόνων

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Παιδαγωγικό Τμήμα Νηπιαγωγών Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Ενότητα # 2: Αρχεία Ψηφιακών εικόνων Θαρρενός Μπράτιτσης Παιδαγωγικό Τμήμα Νηπιαγωγών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Διοίκηση Επιχειρήσεων

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

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Κεφάλαιο Γ.4: Ολοκλήρωση με Αντικατάσταση Όνομα Καθηγητή: Γεώργιος Ν. Μπροδήμας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

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

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

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

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

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

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

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

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