2.5 Χρονοπρογραμματισμός CPU - SCHEDULING

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

Download "2.5 Χρονοπρογραμματισμός CPU - SCHEDULING"

Transcript

1 2.5 Χρονοπρογραμματισμός CPU - SCHEDULING Όταν πολλές διεργασίες βρίσκονται στην κατάσταση RUNNABLE / READY, ποιο process θα πάρει τη CPU; Αυτό το αποφασίζει εκείνο το τμήμα του Λ.Σ. που λέγεται scheduler (scheduling algorithm). Ποιός χρονοπρογραμματίζει τον χρονοπρογραμματιστή; Ο scheduler καλείται: Από τη ρουτίνα εξυπηρέτησης της διακοπήςτου ρολογιού (clock interrupt service routine)... (αφαίρεση) και Από τη ρουτίνα block() του kernel (που καλείται όταν το τρέχον process μπλοκάρει)... εθελοντικά... 1

2 Σχηµατική περιγραφή της χρονοδροµολόγησης διεργασιών είσοδος νέας διεργασίας ουρά έτοιμων διεργασιών. διεργασία 3 διεργασία 2 διεργασία 1 τέλος κβάντου χρόνου Ε/Ε διακοπή λόγω τερµατισµού λειτουργίας Ε/Ε δροµολογητής διαχειριστής συσκευών Ε/Ε έξοδος ΚΜΕ η εκτελούμενη διεργασία Ζητά πρόσβαση σε κάποιο Πόρο του συστήματος 2

3 2.5 Χρονοπρογραμματισμός CPU - SCHEDULING Πότε ένας αλγόριθμος δρομολόγησηςείναι "καλός"; Δίκαιος: ισοκατανομή CPU κύκλων στις διεργασίες Αποδοτικός: Συνήθεις μετρικές για να ορισθεί το «αποδοτικός»: CPU utilization (υψηλό ποσοστό χρήσης του CPU) response time: μικρός χρόνος απόκρισηςγια αλληλεπιδραστικές εφαρμογές - interactive) turnaround time (χρόνος διεκπεραίωσης συστήματα δέσμης) throughput (# διεκπεραιωμένων διεργασιών /μονάδαςχρόνου) Συνήθως, δεν μπορούμε να ικανοποιήσουμε όλα αυτά ταυτόχρονα! (λ.χ. προτεραιότητα μικρών, αυξάνει throughput, εις βάρος του turnaround) 3

4 ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ (1) Ο χρόνος διεκπεραίωσης ή ολοκλήρωσης µιας διεργασίας είναι ο χρόνος που µεσολαβεί από την είσοδό της στο σύστηµα µέχρι την περάτωση της εκτέλεσής της. Για παράδειγµα αν µια διεργασία εισέρχεται στο σύστηµα την χρονική στιγµή t1 και τερµατίζει την χρονική στιγµή t2, o χρόνος διεκπεραίωσης της διεργασίας είναι Χ = t2 t1 (αφού t2-t1 χρονικές µονάδες παρέµεινε στο σύστηµα). Ο χρόνος διεκπεραίωσης συµπεριλαµβάνει οποιαδήποτε καθυστέρηση µπορεί να υπέστη η διεργασία πριν ή και κατά τη διάρκεια εκτέλεσής της. Ο µέσος χρόνος διεκπεραίωσης n διεργασιών p1,..., pn, ορίζεται ως ΜΧ = (Χ 1 + Χ Χ n) / n, όπου Χ 1,..., Χ n είναι οι χρόνοι διεκπεραίωσης των διεργασιών p1,..., pn, αντίστοιχα. 4

5 ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ (2) Ο χρόνος αναµονής µιας διεργασίας είναι ο χρόνος που µια διεργασία ξοδεύει στο σύστηµα χωρίς να κατέχει την ΚΜΕ. Για παράδειγµα, αν µια διεργασία εισέρχεται στο σύστηµα την χρονική στιγµή t1, τερµατίζει την χρονική στιγµή t2 και καταναλώνει χρόνο d στην ΚΜΕ, ο χρόνος αναµονής είναι XA = t2 t1 d. Ο µέσος χρόνος αναµονής n διεργασιών p1,..., pn, ορίζεται ως ΜΧΑ = (ΧΑ1 + ΧΑ ΧΑn) / n, όπου ΧΑ1,..., ΧΑn είναι οι χρόνοι αναµονής των διεργασιών p1,..., pn, αντίστοιχα. 5

6 Χρόνος Απόκρισης και Μέσος Χρόνος Απόκρισης Είναι ο χρόνος από τη στιγμή που υποβάλλεται μια διεργασία μέχρι τη στιγμή που το σύστημα θα ανταποκριθεί στην εξυπηρέτησή της για πρώτη φορά Επομένως εάν είναι t 1 η χρονική στιγμή εισόδου και t απ η χρονική στιγμή πρώτης απόκρισης του συστήματος για την εξυπηρέτηση της διεργασίαςαπό τη CPU τότε: Χρόνος Απόκρισης (ΧΑπ) = t απ - t 1 Επομένως για Ν διεργασίες ο Μέσος Χρόνος Αναμονής είναι: ΜΧΑπ = (ΧΑπ 1 + ΧΑπ ΧΑπ Ν ) / Ν 6

7 Ρυθμός Απόδοσης (Throughput) Είναι ο αριθμός των διεργασιών που διεκπεραιώνονται στην μονάδα του χρόνου Επομένως εάν είναι t το χρονικό διάστημα ολοκλήρωσης Ν διεργασιών τότε: Ρυθμός Απόδοσης (Throughput) = Ν / t 7

8 ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ Στα συστήµατα οµαδικής επεξεργασίας είναι σηµαντικό να γίνεται επίσης βέλτιστη χρήση της ΚΜΕ και να µεγιστοποιείται ο ρυθµός απόδοσης, δηλαδή ο αριθµός των διεργασιών που διεκπεραιώνονται στη µονάδα του χρόνου. Αντίθετα, σε ένα σύστηµα διαµοιρασµού χρόνου, ο σηµαντικότερος στόχος είναι να ελαχιστοποιηθεί ο χρόνος απόκρισης, δηλαδή ο χρόνος που µεσολαβεί από τη χρονική στιγµή που ο χρήστης υπέβαλε την διεργασία του µέχρι τη χρονική στιγµή που έλαβε κάποια απόκριση από το σύστηµα. Θα πρέπει να τονιστεί πως κάποιοι από τους παραπάνω στόχους µπορεί να είναι αντικρουόµενοι. εδοµένου ότι τα σηµερινά συστήµατα είναι γενικού σκοπού ο σχεδιασµός ενός καλού αλγόριθµου χρονοδροµολόγησης είναι επίπονη εργασία. 8

9 ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ Υπάρχουν συστήµατα στα οποία οι διεργασίες είναι τόσες πολλές, ώστε δεν είναι εφικτό (ή δεν είναι αποδοτικό) να βρίσκονται όλες ταυτόχρονα στη µνήµη. Οι διεργασίες που δεν χωρούν στη µνήµη κρατούνται σε κάποια δοµή δεδοµένων στο δίσκο και ένας δεύτερος χρονοδροµολογητής, ο χρονοδροµολογητής µνήµης-δίσκου, αποφασίζει σε ποιες από αυτές θα αποδοθεί η απαραίτητη µνήµη για την εκτέλεση τους. Με άλλα λόγια ένα σύστηµα µπορεί να έχει περισσότερους από έναν χρονοδροµολογητές και περισσότερες από µια ουρές χρονοδροµολόγησης. 9

10 Είδος δροµολόγησης που παρέχεται από τους χρονοδροµολογητές ΚΜΕ και µνήµης-δίσκου. Χρονοδροµολογητής µνήµης-δίσκου Χρονοδροµολογητής ΚΜΕ ίσκος Μνήμη ΚΜΕ 10

11 2.5 Χρονοπρογραμματισμός CPU - SCHEDULING Τύπος Διεργασίας: Φραγμένη από I/0 ή CPU; (I/O ή CPU bound) ; Τί μάθαμε μέχρι τώρα: Σε κάθε "τικ" το clock interrupt service routine καλεί το scheduler ο οποίος εξετάζει αν το τρέχον process έχει χρησιμοποιήσει τη CPU αρκετά. Αν ναί, τότε κάποιο άλλο process (αυτό που θα διαλέξει ο αλγόριθμος δρομολόγησης) θα τρέξει. Αυτό ισχύει για τις CPU bound διεργασίες. ==> αυτές εξαντλούν το χρόνο που τους δίνει ο scheduler τη CPU. Αν το τρέχον process είναι I/O-bound, τότε συνήθως θα μπλοκάρει συχνά, και έτσι θα χρησιμοποιεί λιγότερο το CPU απ' ότι ένα CPU-bound process. Στόχος: πρέπει να υπάρχει ένα καλό μείγμα από τους 2 τύπους διεργασιών προς εκτέλεση κάθε στιγμή. Γιατί; 11

12 2.5 Χρονοπρογραμματισμός CPU - SCHEDULING Προεκτοπιστικός χρονοπρογραμματισμός: [Preemptive Scheduling]: Οταν ο αλγόριθμος επιτρέπει η CPU να δοθεί σ' άλλο process πριν το τρέχον process να έχει τελειώσει. «Non-preemptive» αλγόριθμοι δίνουν τη CPU σ' ένα process μέχρι να τελειώσει, μετά διαλέγουν άλλο process... κ.ο.κ. To «preemptive scheduling» δημιουργεί τα προβλήματα που είδαμε σχετικά με ταυτόχρονη πρόσβαση σε κοινή μνήμη. Απ' την άλλη μεριά, το «non-preemptive scheduling» φαίνεται μη εφαρμόσιμο για τις πιο πολλές εφαρμογές (που έχουν πολλά processes στο σύστημα ταυτόχρονα). 12

13 Δρομολόγηση Συμπεριφορά Διεργασίας Bursts of CPU usage alternate with periods of waiting for I/O. (a) A CPU-bound process. (b) An I/O-bound process. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

14 When to make scheduling decisions New process creation (run parent or child) Schedule when A process exits A process blocks (e.g. on a semaphore) I/O interrupt happens Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

15 1 5 Non-Preemptive Scheduling Terminate (call scheduler) Exited Create Scheduler dispatch Yield (call scheduler) Ready Running Block for resource (call scheduler) Blocked Kai Li Computer Science Department Princeton University ( Resource becomes available (move to ready queue)

16 1 6 State Transition for Preemptive Scheduling Terminate (call scheduler) Exited Scheduler dispatch Running Block for resource (call scheduler) Create Ready Yield, Interrupt (call scheduler) Blocked Resource free, I/O completion interrupt (move to ready queue) Kai Li Computer Science Department Princeton University (

17 Κατηγορίες Αλγορίθμων Χρονοπρογραμματισμού Δέσμης (τήρηση αποθήκης, μισθοδοσία..) Αλληλεπιδραστικά Πραγματικού χρόνου (προθεσμιών) Εξαρτάται από τη χρήση της CPU Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

18 Στόχοι αλγορίθμου Χρονοπρογραμματισμού Όλα τα συστήματα Δικαιοσύνη να εκχωρείται σε κάθε διεργασία ένα δίκαιο μερίδιο της CPU Επιβολή της πολιτικής να παρακολουθείται αν εφαρμόζεται η καθορισμένη πολιτική Ισορροπία - να διατηρούνται ενεργά όλα τα τμήματα του συστήματος Συστήματα Δέσμης Διεκπεραιωτική ικανότητα να μεγιστοποιηθεί ο αριθμός των εργασιών που ολοκληρώνονται ανά ώρα Χρόνος Διεκπεραίωσης να ελαχιστοποιηθεί ο χρόνος που μεσολαβεί ανάμεσα στην υποβολή και την ολοκλήρωση της εργασίας Αξιοποίηση της CPU να διατηρείται η CPU συνεχώς ενεργός Αλληλεπιδραστικά συστήματα Χρόνος Απόκρισης η απόκριση στις αιτήσεις να είναι ταχύτατη Τήρηση αναλογιών να ικανοποιούνται οι προσδοκίες των χρηστών Συστήματα πραγματικού χρόνου Τήρηση των προθεσμιών να αποφεύγεται ηα πώλεια δεδομένων Προβλεψιμότητα να αποφεύγεται ο υποβιβασμός της ποιότητας στα συστήματα πολυμέσων Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

19 Διαδικασία εναλλαγής διεργασιών Εναλλαγή από την κατάσταση λειτουργίας χρήστη στην κατάσταση λειτουργίας πυρήνα. Αποθήκευση τρέχουσας κατάστασης (καταχωρητές, χάρτης μνήμης). Επιλογή νέας διεργασίας και φόρτωσή της στην MMU Έναρξη νέας διεργασίας 19

20 Χρονοπρογραμματισμός (συστήματα δέσμης) Αν το σύστημά μας δέχεται δέσμες διεργασιών (batch jobs), χωρίς διάδραση με το περιβάλλον, τότε κάτι άλλο χρειάζεται. Μας ενδιαφέρει ο συνολικός χρόνος απόκρισης για κάθε διεργασία της δέσμης να είναι μικρός. First-come first-serve Shortest job first Shortest remaining time next 20

21 Εξυπηρέτηση με βάση σειρά άφιξης (First come first serve) Ευνοούνται οι CPU bound διεργασίες. Μια I/O bound διεργασία θα περιμένει μέχρι να ολοκληρωθεί η CPU bound διεργασία. Υπάρχουν μεγάλες διακυμάνσεις στον μέσο χρόνο επιστροφής. Συχνά προκύπτουν μεγάλοι χρόνοι αναμονής και απόκρισης. Ακατάλληλος για αλληλεπιδραστικά συστήματα. 21

22 Εξυπηρέτηση με βάση σειρά άφιξης (First come first serve) Οι διεργασίες εξυπηρετούνται με τη σειρά που φθάνουν. Η επιλογή της επόμενης διεργασίας είναι ταχύτατη και ανεξάρτητη από το πλήθος των διεργασιών στην ουρά των έτοιμων διεργασιών. Αν φθάσουν πολλές διεργασίες την ίδια χρονική στιγμή, η διεργασία που θα εξυπηρετηθεί επιλέγεται τυχαία. Χρησιμοποιεί μια ουρά FIFO (First-In-First-Out). Έστω μία CPU-bound 1 sec και μετά I/O, και πολλές Ι/Ο bound που χρησιμοποιούν λίγο τη CPU αλλά πραγματοποιούν 1000 αναγνώσεις για να τελειώσουν. Άν είχαμε προεκτοπίσιμο κάθε 10 χιλιοστά οι I/O διεργασίες θα εκτελούντο σε 10 δευτερόλεπτα αντί για Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

23 Εξυπηρέτηση με βάση σειρά άφιξης (First come first serve) Έστω οι διεργασίες P1, P2, P3 και P4 με χρόνους άφιξης 0, 10, 19, 30 ms και διάρκεια εκτέλεσης 40, 20, 10, 35 ms, αντίστοιχα. Εάν στο σύστημα εκτελείται αλγόριθμος FCFS, ποια θα είναι η σειρά ολοκλήρωσης των διεργασιών; Πότε θα ολοκληρωθεί η εκτέλεση και των τεσσάρων διεργασιών; Υπολογίστε το Μέσο Χρόνο Ολοκλήρωσης και το Μέσο Χρόνο Αναμονής των παραπάνω διεργασιών. 23

24 Η Μικρότερη Δουλειά Πρώτη (SHORTEST JOB FIRST) (SJF) Αλγόριθμος εξυπηρέτησης με βάση τη μικρότερη διάρκεια χωρίς πρώτη προτίμηση (Shortest Job First Non Preemptive, SJFN) Αλγόριθμος εξυπηρέτησης με βάση τη μικρότερη διάρκεια πρώτης προτίμησης (Shortest Job First Preemptive, SJFP) Αλγόριθμος εξυπηρέτησης με βάση τη μικρότερη διάρκεια που απομένει (Shortest Remaining Time Next, SRTΝ) 24

25 Η Μικρότερη Δουλειά Πρώτη (SHORTEST JOB FIRST) (SJF) SJF είναι χρήσιμος όταν ο χρόνος CPU που χρειάζεται το κάθε process είναι γνωστός από πριν (π.χ. εφαρμογές όπως ασφαλιστικές, αεροπορικές εταιρείες, κ.λπ). SJF διαλέγει πάντα το process που χρειάζεται λιγότερο τη CPU. Tο παράδειγμα δείχνει ότι το SJF είναι προτιμητέο (μπορεί ν' αποδειχθεί εύκολα κυριαρχεί ο μικρότερος όρος). 25

26 ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟς ΣΕ ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Εκ περιτροπής (Round-robin) Με βάση την προτεραιότητας (Priority) Πολλαπλές ουρές (Multiple Queues) Με βάση τη μικρότερη διάρκεια (Shortest Process Next, SPN) Άλλοι Αλγόριθμοι Εγγυημένος Με λοταρία Δίκαιης διανομής 26

27 Χρονοπρογραμματισμός εκ περιτροπής (Round Robin) Απλός, δίκαιος, και πολυ-χρησιμοποιημένος αλγόριθμος. Το κάθε process έχει ένα κβάντο χρόνου (time quantum ή time slice). Έτσι θα τρέξει για ένα διάστημα ίσο με το time slice, μετά η CPU θα δοθεί σε κάποιο άλλο process, κ.ο.κ. Αν το process μπλοκάρει πριν το time slice παρέλθει, τότε πάλι η CPU θα δοθεί σ' άλλο process. Απλή υλοποίηση! context switch: εναλλαγή διεργασιών Η διαδικασία κατά την οποία δίνεται η CPU σ' άλλο process αποκαλείται CPU switch, process switch, &context switch. 27

28 Χρονοπρογραμματισμός εκ περιτροπής Ο χρόνος που απαιτείται για το context switch είναι σημαντικός: Συντελείται εναλλαγή "περιβάλλοντος": σώσιμο regs, PC, SP,... στη δομή για το τρέχον process στο Process Table, φόρτωμα των regs, PC, SP από τη δομή για το επόμενο process στο Process Table, αλλαγή Page Tables,...κ.ο.κ. Η αποδοτικότητα του Round-Robin αλγόριθμου εξαρτάται από την διάρκεια του quantum (σε σχέση και με τον χρόνο που απαιτείται για context switch). Μεγάλο quantum μεγάλος χρόνος απόκρισης για interactive χρήστες. Μικρό quantum για μεγάλα ποσοστά του χρόνου η CPU χρησιμοποιείται για context switch. 28

29 Round-Robin Scheduling Process list-before and after Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

30 Μεγάλο κβάντο χρόνου: ευνοούνται οι CPU bound διεργασίες. Μικρό κβάντο χρόνου: ευνοούνται οι I/O bound διεργασίες Καλό είναι 80-90% των διεργασιών να τελειώνουν πριν το κβάντο (τυπικά msec). Γενικά περισσότερο ευνοούνται οι CPU bound διεργασίες. Μια I/O bound διεργασία χρησιμοποιεί την CPU για χρονικό διάστημα μικρότερο ή ίσο του κβάντου χρόνου και στη συνέχεια αναστέλλεται περιμένοντας για Ε/Ε. 30

31 Λύση (ιδεατό Round Robin): όταν μια λειτουργία E/E ολοκληρώνεται, η ανασταλμένη διεργασία μετακινείται σε μια βοηθητική ουρά που προτιμάται έναντι της βασικής ουράς των έτοιμων διεργασιών. Μια διεργασία που αποστέλλεται από την βοηθητική ουρά εκτελείται για χρόνο = κβάντο χρόνου - το χρόνο της προηγούμενης εκτέλεσης Υπάρχουν λύσεις με μεταβλητό ή προσαρμοζόμενο ή εξειδικευμένο κβάντο. 31

32 32

33 Χρονοπρογραμματισμός Με Προτεραιότητες Ο αλγόριθμος Round-Robin είναι χρήσιμος όταν όλα τα process έχουν την ίδια σπουδαιότητα. Αυτό όμως δεν ισχύει συχνά! Σε μερικές εφαρμογές, τα process κάποιων χρηστών έχουν μεγαλύτερη προτεραιότητα (π.χ. Διεργασίες ασφάλειας, καλών «πελατών»). Γενικά, ο αλγόριθμος διαλέγει το process με την μεγαλύτερη προτεραιότητα. H προτεραιότητα ενός process μπορεί να μεταβάλλεται με το χρόνο και να εξαρτάται π.χ. από το πόσα CPU cycles έχει ήδη χρησιμοποιήσει. Σε πολλά συστήματα υπάρχουν αρκετά I/O-bound jobs. Αυτά πρέπει να χουν μεγαλύτερη προτεραιότητα! Eτσι, θα πάρουν το CPU και πολύ σύντομα θα ζητήσουν I/O. Τότε το I/O process και τ' άλλα CPU-bound process τρέχουν παράλληλα. Αυτός ο παραλληλισμός μειώνει τον μέσο χρόνο απόκρισης και αυξάνει το throughput του συστήματος. 33

34 Χρονοπρογραμματισμός Με Προτεραιότητες Ένας απλός τρόπος υπολογισμού προτεραιότητας: 1/p, όπου p είναι το ποσοστό του time slice που χρησιμοποίησε το process την τελευταία φορά που έτρεξε. I/O-bound process έχουν χαμηλό p => υψηλή προτεραιότητα. Υβριδικός αλγόριθμος: Round-Robin και προτεραιότητες Το σύστημα παρέχει Ν προτεραιότητες οι οποίες σχηματίζουν Μ ομάδες, καθεμιά με Ν/Μ προτεραιότητες. Ο αλγόριθμος διαλέγει πάντα ένα process από την ομάδα με τις μεγαλύτερες προτεραιότητες. Σε κάθε ομάδα χρησιμοποιείται Round-Robin scheduling 34

35 Χρονοπρογραμματισμός Με Προτεραιότητες Αν υπάρχει κάποιο process με προτεραιότητα 1 τότε αυτό τρέχει, αλλιώς κάποιο process με προτεραιότητα 2, κ.λπ. Όλα τα processes με προτεραιότητα 1 τρέχουν με Round- Robin κ.λπ. Με το πέρασμα του χρόνου οι προτεραιότητες πρέπει να αλλάζουν. Αλλιώς μερικά processes δεν θα τρέξουν ποτέ (λιμοκτονία). Ο υβριδικός αλγόριθμος υλοποιείται συνήθως με μια δομή «multi-level queue». Το ν-οστό queue έχει process της ν- οστής ομάδας, κ.λπ. Ο αλγόριθμος βρίσκει το πρώτο μη άδειο queue, διαλέγει το process στην κορυφή του και όταν τελειώσει το quantum του process το τοποθετεί στο τέλος του. Το Λ.Σ. UNIX χρησιμοποιεί αυτήν την προσέγγιση (με Ν=128, Μ=32, quantum=100 Msec). 35

36 Priority Scheduling 36

37 Χρονοπρογραμματισμός Με Προτεραιότητες Είναι δυνατόν κάθε ομάδα να σχετίζεται με διαφορετικό quantum. Δηλ. η ανώτερη ομάδα να χει 1 quantum, η αμέσως επόμενη να χει 2 quanta, κ.λπ. Έτσι ένα process με προτεραιότητα Π τρέχει για Π x quanta χρόνο. Είναι επίσης δυνατόν οι προτεραιότητες των processes να απορρέουν από τον τύπο του processes. π.χ. processes που περιμένουν για terminal I/O <-> 1 processes που περιμένουν για disk I/O <-> 2 processes των οποίων το quantum τελείωσε <-> 3 processes που έχουν χρησιμοποιήσει πολλά quanta <- > 4. 37

38 Multiple Queues with Priority Scheduling CTSS (Compatible Time Sharing System) Highest priority gets one quantum, second highest gets 2.. If highest finishes during quantum, great. Otherwise bump it to second highest priority and so on into the night Consequently, shortest (high priority) jobs get out of town first They announce themselves-no previous knowledge assumed! Θεωρείστε μία διεργασία με ένα κβάντο, μετά θα πάρει δύο μετά 4, 8, 16, 32 και 64 κβάντα. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

39 Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. 39

40 Η Μικρότερη Δουλειά Πρώτη σε Αλληλεπιδραστικά Περιβάλλοντα Μιας και to SJF ελαχιστοποιεί το χρόνο απόκρισης είναι επιθυμητό να το χρησιμοποιήσουμε και για αλληλεπιδραστκά συστήματα. Για να γίνει όμως αυτό πρέπει να μπορούμε να υπολογίσουμε πόσο CPU χρόνο απαιτεί κάθε process (ή μάλλον κάθε εντολή που ένας χρήστης πληκτρολόγησε στο τερματικό του). Έστω ότι εκτιμήθηκε ότι μια διεργασία χρειάζεται χρόνο T0. Oταν τρέχει σημειώνεται ότι χρησιμοποίησε τη CPU για χρόνο T1. Τότε ενημερώνουμε την εκτίμηση μας με βάση τα Τ0 & Τ1. π.χ. Τ = ατ0 + (1-α)Τ1 αποτελεί την καινούργια εκτίμηση. Την επόμενη φορά που τρέχει το ίδιο job σημειώνουμε ότι πήρε χρόνο T2. Τότε ενημερώνουμε την εκτίμησή μας με βάση Τ0 & T2. π.χ. Τ = α Τ + (1-α) T2 40

41 Η Μικρότερη Δουλειά Πρώτη σε Αλληλεπιδραστικά Περιβάλλοντα Αν α=1/2 Τ = (Τ0 / 2) + (Τ1 / 2), Τ = (Τ0 / 4) + (Τ1 / 4) + (Τ2 / 2),... Όσο πιο μικρή η τιμή του α, τόσο πιο γρήγορα ξεχνιούνται οι παλιές εκτιμήσεις... Δυστυχώς το SJF δεν είναι βέλτιστο όταν όλα τα jobs που θα δρομολογηθούν δεν είναι γνωστά εκ προοιμίου. 41

42 Χρονοπρογραμματισμός με εγγυήσεις - Guaranteed Sched. Βασική ιδέα: Δώσε εγγυήσεις σε κάθε χρήστη αναφορικά με το πόσα CPU cycles θα δοθούν στο process του. π.χ. Αν υπάρχουν Ν χρήστες, τότε όλοι θα πάρουν 1/Ν των CPU cycles. Ο αλγόριθμος: 1. Το Λ.Σ. υπολογίζει πόσο CPU χρόνο έχει πάρει το κάθε process. 2. Επίσης, υπολογίζει πόσο χρόνο έπρεπε να είχε πάρει (process_life_time/n). 3. Μετά υπολογίζει τον λόγο των (1) και (2). 4. Ο αλγόριθμος διαλέγει το process με τον μικρότερο λόγο, το οποίο τρέχει μέχρι ο λόγος του να γίνει μεγαλύτερος κάποιου άλλου process. 42

43 Lottery Scheduling Hold lottery for cpu time several times a second Can enforce priorities by allowing more tickets for more important processes Χρονοπρογραμματισμός δίκαιης κατανομής (με χρήστες) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

44 Real-Time Scheduling Hard real-time systems required to complete a critical task within a guaranteed amount of time Soft real-time computing requires that critical processes receive priority over less fortunate ones

45 Thread Scheduling Local Scheduling How the threads library decides which thread to put onto an available LWP Global Scheduling How the kernel decides which kernel thread to run next

46 Real Time Scheduling Hard real time vs soft real time Hard: robot control in a factory Soft: CD player Events can be periodic or aperiodic Algorithms can be static (know run times in advance) or dynamic (run time decisions) Περιοδικά και απεριοδικά γεγονότα, χρονοπρογραμματίσιμα Στατικοί και δυναμικοί αλγόριθμοι Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

47 Διαχωρισμός Πολιτικής & Μηχανισμού Χρονοπρογραμματισμού Ο διαχωρισμός αυτός είναι καλή ιδέα γενικά και όχι μόνο για scheduling. Η πολιτική αναφέρεται στην "φιλοσοφία" του αλγόριθμου. Ο μηχανισμός αναφέρεται κυρίως στην "υλοποίηση" του αλγορίθμου. Παράδειγμα: Μηχανισμός: προτεραιότητες Προτεραιότητες: ποιός αποφασίζει για προτεραιότητες Eνας χρήστης μπορεί ν' αποφασίζει για τις σχετικές προτεραιότητες των διεργασιών του. Ο kernel τις δρομολογεί ανάλογα μ' αυτές τις προτεραιότητες. Παρομοίως, ένα parent process δίνει προτεραιότητες στα παιδιά του. ο αλγόριθμος που εκτελείται από το Λ.Σ. έχει παραμέτρους που τις δίνουν user processes. 47

48 Πολυ-Επίπεδος Χρονοπρογραμματισμός (2-Level Scheduling) Μοντέρνα συστήματα συνήθως έχουν πολλά (πολλές φορές) μεγάλα process που θέλουν να τρέξουν. Eπειδή η Κ.Μ. κοστίζει πολύ, είναι συνήθως «μικρή» δεν χωράνε όλα τα process στην κύρια μνήμη. Η δρομολόγηση των process σ' αυτά τα συστήματα γίνεται ως εξής: short-term scheduling: Αφορά την δρομολόγηση που έχουμε δει μέχρι τώρα. Δηλ. διαλέγει ποίο από τα processes που βρίσκονται στην Κ.Μ. θα τρέξει Long-term scheduling: Υπεύθυνο για να καθορίζει ποια από όλα τα process που θέλουν να τρέξουν θα εισέλθουν στην κύρια μνήμη. 48

49 Πολυ-Επίπεδος Χρονοπρογραμματισμός (2-Level Scheduling) Eτσι, αντί να έχουμε έναν μονολιθικό αλγόριθμο που λαμβάνει υπ' όψιν του το κόστος για context switch ενός process που βρίσκεται στο δίσκο, υπάρχει ο παραπάνω διαχωρισμός ευθυνών. Συνήθως ο LTS χρησιμοποιεί (μερικά από) τα εξής κριτήρια: χρόνος παραμονής στο δίσκο ή Κ.Μ. χρόνος CPU που δόθηκε στο process προτεραιότητα του process μέγεθος του process (συνήθως τα μεγάλα processes στέλνονται στο δίσκο για να ρθουν πολλά μικρά...). 49

50 2.6 Νήματα και Πολυνηματικές Διεργασίες Η παραδοσιακή έννοια του process: ένας χώρος διευθύνσεων (address space) και ένα νήμα ελέγχου (thread of control) που εκτελεί τις εντολές του προγράμματος, προσπελαύνει δεδομένα, κ.λπ. Το κάθε process μπορεί να κάνει ΕΝΑ πράγμα κάθε φορά! Ισχυρισμός: Χρειαζόμαστε: πολλά νήματα, που μοιράζονται ένα address space, και που τρέχουν παράλληλα. Στην ουσία όλα αυτά τα νήματα προσπελαύνουν τον ίδιο κώδικα και δεδομένα. Δηλαδή μπορούν να προσφέρουν ίδιες υπηρεσίες και να μοιράζονται πληροφορία (δεδομένα). 50

51 Νήματα και Πολυνηματικές Διεργασίες Παράδειγμα File Server (FS): Έστω η κλήση: read (fd, &buf, count ) Όταν ο FS λαμβάνει την αίτηση read() εξετάζει πρώτα ένα αποταμιευτή (buffer cache -- BC) στην κύρια μνήμη. Αν η ζητούμενη πληροφορία είναι εκεί, την ανακτά και την επιστρέφει. Αλλιώς, εκδίδει μια αίτηση στο δίσκο (disk controller) να φέρει την πληροφορία στην BC. Ο FS μπλοκάρει μέχρι να ανακτηθεί η πληροφορία από τον δίσκο και να τοποθετηθεί στη BC. Όσο ο FS περιμένει για το disk I/O, καμία άλλη αίτηση δεν εξυπηρετείται σπατάλη CPU κύκλων και κακή/αργή απόκριση στους πελάτες. Θυμηθείτε τις καταστάσεις των διεργασιών! 51

52 Thread Example-web server.. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

53 Web server code (a) Dispatcher thread. (b) Worker thread. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

54 Another way to do the same thing-finite state machine If page is not there, use a non-blocking call When thread returns page send interrupt to CPU, (signal) Causes process context switch (expensive) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

55 Νήματα και Πολυνηματικές Διεργασίες Η εστία του προβλήματος είναι: ανασταλτικές κλήσεις (blocking system calls) (για I/O, IPC, κ.λπ.). Οι ανασταλτικές κλήσεις είναι επιθυμητές!!! Απλοποιούν σημαντικά τον προγραμματισμό. Οταν ξεμπλοκάρω, το ΙΟ έχει γίνει...! Σκεφθείτε πως θα γράφατε ένα F.S. χωρίς blocking system calls... Ασύγχρονη συμπεριφορά... «μηχανή καταστάσεων» (state machine δύσκολο!) Στόχος: Συνέχιση παροχής υπηρεσιών ακόμα και με blocking system calls από το ίδιο process. 55

56 Νήματα και Πολυνηματικές Διεργασίες Μια άλλη εναλλακτική λύση θα μπορούσε να είναι η χρήση πολλών διεργασιών που να προσφέρουν τις υπηρεσίες διαχείρισης αρχείων. Αυτά οι διεργασίες θα τρέχουν τον ίδιο κώδικα (του F.S.). Το πρόβλημα έγκειται ακριβώς στον ορισμό του process: το κάθε process έχει to δικό του ξεχωριστό address space αυτά τα process δεν έχουν ένα κοινό χωρο μνημης. 56

57 Νήματα και Πολυνηματικές Διεργασίες Αλλά, ακόμα και αν ξεπεράσουμε το παραπάνω πρόβλημα, (τα UNIX/LINUX π.χ. το ξεπερνά), επειδή το κάθε process έχει δικό του addressspace, Contexts witching& Process creation/termination είναι πολύ χρονοβόρες διαδικασίες. Απαιτείται λοιπόν άλλη λύση! Η σωστή λύση είναι η πολυνημάτωση πολυνηματικές διεργασίες (multithreadedprocesses). 57

58 Three ways to build the server Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

59 Νήματα και Πολυνηματικές Διεργασίες Για το παράδειγμα, ο F.S. θα μπορούσε να δομηθεί ως εξής: 59

60 Νήματα και Πολυνηματικές Διεργασίες Γεγονός 1: Τα threads μοιράζονται address space ένα thread μπορεί να "πειράξει" πληροφορία που χρειάζεται ένα άλλο thread απαιτείται έλεγχος ταυτόχρονης πρόσβασης (αμοιβαίος αποκλεισμός -- mutual exclusion). Γεγονός 2: Χρειαζόμαστε ένα scheduler (χρονοπρογραμματιστή) ο οποίος καλείται κάθε φορά που ένα thread μπλοκάρει και διαλέγει ένα άλλο "έτοιμο" thread να τρέξει. Αυτός ο scheduler δεν είναι ο ίδιος που δρομολογεί τις διεργασίες; 60

61 Δομή Πολυνηματικών Διεργασιών Το ομαδικό μοντέλο (team): Ένας αριθμός ισόβαθμων threads που συνεργάζονται, λαμβάνοντας αιτήσεις από μια ουρά αιτήσεων (workq) και εξυπηρετώντας αυτές. 61

62 Δομή Πολυνηματικών Διεργασιών Το dispatcher μοντέλο: Ένα νήμα διαχειρίζεται την ουρά αιτήσεων και διανέμει αιτήσεις στους κατάλληλους «εργάτες» (workerthreads). Δεν μπλοκάρει!!! 62

63 Δομή Πολυνηματικών Διεργασιών Το pipe μοντέλο: το κάθε νήμα επεξεργάζεται πληροφορίες και δίνει την έξοδό του στο επόμενο νήμα για επεξεργασία κ.λπ. Πότε χρησιμοποιούμε κάποιο μοντέλο; Πόσους «εργάτες» ; μπορεί να μεταβληθεί ο αριθμός τους δυναμικά; Με ένα μεταβλητό αριθμό νημάτων, μπορούμε να δημιουργούμε ένα νήμα με κάθε αίτηση, για παράδειγμα. Αυτό το σχήμα είναι πιο ευέλικτο, αλλά λιγότερο αποδοτικό (κόστος createthread(), terminate-thread()). 63

64 Threads are like processes Have same states Running Ready Blocked Have their own stacks same as processes Stacks contain frames for (un-returned) procedure calls Local variables Return address to use when procedure comes back Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

65 Threads are lightweight Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

66 A Pthreads example- Hello,world 66

67 Νήματα: το... δάσος Στην ουσία επιθυμούμε να έχουμε πολυπρογραμματισμό μέσα στο περιβάλλον μιας διεργασίας! Σκεφτείτε: Τί πληροφορία χρειαζόμαστε για να χειριστούμε κάθε νήμα (βλέπετε αντίστοιχη πληροφορία για τις διεργασίες και την εναλλαγή τους). 67

68 Υλοποίηση των Νημάτων Η υποστήριξη για νήματα μπορεί να υλοποιηθεί είτε σε επίπεδο πυρήνα (kernel) είτε σε επίπεδο χρήστη (userlevel). Η θεμελιώδης ερώτηση εδώ είναι: Πρέπει ο πυρήνας να έχει γνώση; (και συνεπώς να διαχειρίζεται νήματα) ή πρέπει να ξέρει μόνο για παραδοσιακές διεργασίες (και να μην μπορεί να διακρίνει αν οι διεργασίες είναι πολυ-νηματικές); Στην τελευταία περίπτωση τα νήματα υλοποιούνται στο user-level (δηλ. το λογισμικό που εκτελεί create(), delete(), και το scheduling για threads κλπ., δεν είναι τμήμα του πυρήνα του Λ.Σ.). Αλλά ενός συνοδευτικού «πακέτου» λογισμικού. 68

69 Implementing Threads in User Space (a) A user-level threads package. (b) A threads package managed by the kernel. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

70 Υλοποίηση των Νημάτων: επίπεδο χρήστη Το πρώτο βασικό πλεονέκτημα είναι ότι μπορούν να χρησιμοποιηθούν ακόμα και σε παραδοσιακά Λ.Σ. που δεν υποστηρίζουν νήματα. Αλλά, αν καλέσουν κλήσεις αναστολής (blocking), τί γίνεται; Η λειτουργία τους συνοψίζεται ως εξής: Όταν ένα νήμα πρόκειται να κάνει κάτι που μπορεί να το μπλοκάρει (π.χ. recv_msg(), read(fd,...), write(...), down(s), ) τότε καλεί ένα ειδικό systemcallμε το οποίο καθορίζεται αν το νήμα πρόκειται πράγματι να μπλοκάρει. Αν ΟΧΙ, τότε το νήμα συνεχίζει. 70

71 Υλοποίηση των Νημάτων: επίπεδο χρήστη Αν η απάντηση είναι ΝΑΙ, τότε το blocking system call δεν καλείται. Το πακέτο νημάτων(threads package) καλεί τον Scheduler ο οποίος βρίσκει ένα άλλο "έτοιμο" νήμα του ίδιου process και το τρέχει. Αυτός ο Scheduler μιμείται τον scheduler του Λ.Σ. Επίσης, το πακέτο νημάτων κρατά πληροφορίες για τις τιμές των stack, PC, SP, κ.λπ. καταχωρητών του κάθε νήματος. Το νέο νήμα τρέχει μόλις το PC, SP, και οι άλλες τιμές καταχωρητών φορτωθούν. 71

72 Υλοποίηση των Νημάτων: επίπεδο χρήστη ΣΗΜΕΙΩΣΗ: οι πιο πολλές μηχανές έχουν εντολές για "φόρτωμα" "ξεφόρτωμα" πολλών registers μαζί thread switching είναι πολύ γρήγορο!!! (1 τάξη μεγέθους γρηγορότερο). Αυτό είναι και το βασικότερο πλεονέκτημα των user-level threads: αποφεύγουν το κόστος των παγίδων στον πυρήνα kernel traps π.χ. για αναστολή και το κόστος εναλλαγής περιβάλλοντος (context) διεργασιών Επίσης, τώρα εφαρμογές μπορούν να χρησιμοποιήσουν το δικό τους αλγόριθμο χρονοπρογραμματισμμού. 72

73 Υλοποίηση των Νημάτων: επίπεδο χρήστη Το δάσος: Το Λ.Σ. δίνει τη CPU σε κάθε διεργασία (π.χ. για ένα κβάντο χρόνου) Το πακέτο νημάτων διαχειρίζεται αυτό το κβάντο χρόνου στη διάρκεια του οποίου τρέχουν διάφορα νήματα της ίδιας διεργασίας. Όσο υπάρχει κάποιο "έτοιμο" thread στο process και το timeslice του process δεν έχει παρέλθει, το πακέτο νημάτων συνεχίζει να δρομολογεί νήματα από αυτό το process. 73

74 Υλοποίηση των Νημάτων: επίπεδο πυρήνα Ο kernel του Λ.Σ. κρατάει πληροφορίες για κάθε νήμα μιας διεργασίας, παρόμοιες με αυτές που κρατούσε παραδοσιακά (δηλ. έχει δομές για κάθε νήμα όπου σημειώνονται οι τιμές των registers, PC, SP, κ.λπ). Αυτή είναι η φυσική υπόσταση του νήματος! Για κάθε πολυ-νηματική διεργασία συνεχίζει να κρατάει πληροφορίες παρόμοιες με μονο-νηματικές διεργασίες, όπως δείκτες στα PageTables, swapspace, κ.λπ. Όταν ένα νήμα μπλοκάρεται, ο kernel μπορεί να επιλέξει ένα άλλο νήμα από το ίδιο ή άλλο process (σε αντίθεση με το Scheduler για user-level threads). Οι λόγοι για τους οποίους user-levelthreads συγκριτικά μειονεκτούν είναι: Yλοποίηση blocking system calls Ισοκατανομή χρόνου scheduling στα threads ενός process. 74

75 Υλοποίηση των Νημάτων: Blocking system Calls Με νήματα-πυρήνα επιτρέπεται να κληθούν blocking system calls. Μετά το kernel trap το Λ.Σ. αρχίζει ένα καινούργιο thread. Με νήματα-χρήστη αυτό δεν πρέπει να γίνει. Διότι τότε ο kernel θα ανέστειλε όλο το (multi-threaded) process και έτσι θα έτρεχε κάποιο άλλο νήμα από κάποια άλλη διεργασία κανένα ώφελος από νημάτωση!!! Μια λύση είναι ν' αλλάξουν όλα τα blockingsystemcalls σε non-blocking. Αλλά αυτό απαιτεί αλλαγή του Λ.Σ., πέρα από το ανεπιθύμητο των ασύγχρονων κλήσεων. 75

76 Υλοποίηση των Νημάτων : Blocking system Calls Μια άλλη λύση εστιάζει στην χρησιμοποίηση «jacket» κώδικα γύρω από system calls που μπορούν να μπλοκάρουν. π.χ. στο UNIX υπάρχει το SELECT system call το οποίο σε πολλές περιπτώσεις προειδοποιεί αν ένα system call (e.g. read()) θα μπλοκάρει. Π.χ., ο jacket κώδικας καλεί SELECT και αν δεν πρόκειται να μπλοκάρει τότε καλεί read(), αλλιώς ο «scheduler» καλείται να τρέξει ένα άλλο thread. Κάθε φορά που ξανακαλείται ο «scheduler» εξετάζει αν κάποιο από τα SELECT έχει επιστρέψει την ένδειξη ότι πλέον δεν θα μπλοκάρει, και έτσι εκτελείται τότε το read()....αλλά έτσι απαιτείται αλλαγή στο system call library και δεν είναι υλοποιήσιμη απ' όλα τα Λ.Σ. 76

77 Υλοποίηση των Νημάτων: Δίκαιο scheduling Ο scheduler του πακέτου νημάτων τρέχει μόνο όταν κάποιο νήμα τον καλέσει είναι δυνατόν να μονοπωληθεί η CPU από ένα νήμα. Με νήματα-πυρήνα, ο scheduler καλείται είτε από τη ρουτίνα διαχείρισης διακοπών ρολογιού είτε από το block() το πρόβλημα δεν υφίσταται!. 77

78 Υλοποίηση των Νημάτων: Συμπέρασμα (Νήματα στον πυρήνα ή στο επίπεδο χρήστη); Τα νήματα χρειάζονται ακριβώς σε εφαρμογές που καλούν blocking system calls(π.χ. FSs). Όταν όλα τα threads ενός process συνέχεια καλούν system calls τότε όλα τα threads θα προξενήσουν kernel traps. Αφού γίνει το kernel trap, το επιπλέον κόστος για εναλλαγή νημάτων (thread switching) είναι αμελητέο δεν ισχύει το μεγαλύτερο πλεονέκτημα για user-level threads. Εφαρμογές που είναι CPU-bound και non-blocking δεν χρειάζονται νήματα. δηλ. Τα νήματα-χρήστη είναι προτιμότερα για εφαρμογές που... δεν χρειάζονται νήματα καθόλου...!!! 78

79 Hybrid approach Multiplex user-level threads onto kernel level threads Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

80 Hybrid Kernel is aware of kernel threads only User level threads are scheduled, created destroyed independently of kernel thread Programmer determines how many user level and how many kernel level threads to use Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

81 Scheduler activations-upcalls Want the run time system to switch threads when a thread blocks Associate a virtual processor with each process Run time system allocates threads to virtual processors Kernel notifies the run time system that a thread has blocked passes info to RTS (thread id ) RTS schedules another thread Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

82 Pop-Up Threads (How to handle message arrivals in distributed systems) Create a new thread when a message arrives Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

83 Why pop ups? Could use thread which blocks on a receive system call and processes messages when they arrive Means that you have to restore the history of the thread each time a message arrives Pop ups are entirely new-nothing to restore They are faster Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

84 Thread 1 gets the wrong permission Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

85 Solution-Create private global variables Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

86 How? Could use library routines to create, set and read globals. Global is then unique to each thread Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

87 More problems Library routine which is not re-entrant. Eg. Sending a message-one thread puts message in a buffer, new thread appears and over-writes message Memory allocation programs may be (temporarily) in an inconsistent state Eg. New thread gets wrong pointer Hard do we implement signals which are thread specific? If threads are in user space, kernel can t address right thread. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

88 MORAL OF THE STORY Need to re-work the semantics of system calls and library routines in order to add threads to a system

89 Το πακέτο νημάτων της OSF/DCE Πάνω από 50 κλήσεις συστήματος για νήματα, σε 7 κατηγορίες: Thread management: create, exit, join, detach. Το join αφορά στη συμπεριφορά του πατέρα που περιμένει ή όχι για το παιδί-thread (όμοιο με το wait() του UNIX). Το detach το χρησιμοποιεί ο πατέρας-thread για να δηλώσει ότι δεν τον ενδιαφέρει το παιδί-thread. Template management: για τη διαχείριση threads, mutexes και cond.vars. Χρησιμοποιούνται κυρίως για να γίνει ευκολότερη η χρήση των threads, cond.vars, mutexes. Τα templates δίνουν αρχικές τιμές (όταν δημιουργούνται threads, cond.vars, mutexes) στις περισσότερες παραμέτρους. Έτσι ο χρήστης αλλάζει μόνο λίγες παραμέτρους. 89

90 Το πακέτο νημάτων της OSF/DCE mutexes: create, destroy, lock, unlock, trylock.fast mutex& friendly mutex: (να κάνεις lock ένα mutex που ήδη έχεις); Condition Variables: create, destroy, wait, wakeup, broadcast. Broadcast ξυπνάει όλα τα threads που περιμένουν. Per-Thread Global Vars: a) create a global var γι αυτό το thread (αναθέτει μνήμη) b) getspecific: read: διάβασε ένα global var. c) setspecific: write: γράψε ένα global var. 90

91 Το πακέτο νημάτων της OSF/DCE Ακύρωση (Cancel) threads: «διέγραψε» ένα άλλο thread. SetCancel: ένα thread ορίζει ότι επιτρέπει ή όχι να διαγραφεί από ένα άλλο thread. Δρομολόγηση (Scheduling): Το πακέτο επιτρέπει να ορισθεί ο αλγόριθμος χρονοπρογραμματισμού για τα threads ενός process. 91

92 Ταυτόχρονη Πρόσβαση σε Διαμοιραζόμενη Μνήμη Τα εργαλεία που χρησιμοποιούνται είναι όμοια με αυτά για παραδοσιακές διεργασίες (semaphores, monitors, criticalsections). Ένα εργαλείο που χρησιμοποιείται σε πακέτα νημάτων (threads packages) είναι το mutex. Το mutex, στην ουσία του, είναι μια δυαδική σημαφόρος (binary semaphore). Εντολές: lock (mutex), unlock (mutex), try lock(mutex). 92

93 Ταυτόχρονη Πρόσβαση σε Διαμοιραζόμενη Μνήμη Χρήση: Κάθε κρίσιμη περιοχή συνδέεται με ένα mutex Πριν ένα νήμα μπει σε μια κρίσιμη περιοχή, καλεί lock (mutex). Αν το κλειδί (lock) του mutex το έχει πάρει κάποιο άλλο νήμα, τότε το νήμα μπλοκάρει. Όταν ένα νήμα βγει από την κρίσιμη περιοχή τότε καλεί unlock (mutex). Έτσι αν κάποιο άλλο νήμα περιμένει, θα του δοθεί το κλειδί και θα μπει στη δική του κρίσιμη περιοχή. 93

94 Ταυτόχρονη Πρόσβαση σε Διαμοιραζόμενη Μνήμη Δηλαδή, μόνο ένα thread μπορεί να έχει το lock ενός mutex σε κάθε χρονική στιγμή. Τι γίνεται όμως αν υπάρχουν πολλά νήματα που περιμένουν; Σε μερικές εφαρμογές θέλουμε να ξυπνήσουμε όλα αυτά τα νήματα. Σε άλλες μόνο ένα νήμα πρέπει να ξυπνήσει. Τα πιο πολλά πακέτα νημάτων προσφέρουν και τις δύο συμπεριφορές και ο προγραμματιστής της εφαρμογής επιλέγει. Η εντολή trylock(mutex) είναι παρόμοια με την lock (mutex). Η διαφορά τους έγκειται στο ότι αν το lock δεν είναι διαθέσιμο (δηλ. κάποιο άλλο νήμα το έχει πάρει) τότε το νήμα δεν μπλοκάρει, αλλά 94 συνεχίζει.

95 Ταυτόχρονη Πρόσβαση σε Διαμοιραζόμενη Μνήμη Ένα δεύτερο χρήσιμο εργαλείο είναι οι μεταβλητές συνθήκης (condition variables). Χρησιμοποιούνται κυρίως για συγχρονισμό. κάποιο νήμα περιμένει να συμβεί κάποιο γεγονός, για το οποίο ευθύνεται κάποιο άλλο νήμα. Για παράδειγμα, σκεφτείτε το πρόβλημα παραγωγού-καταναλωτή: Ένα νήμα «καταναλωτής» περιμένει για ένα buffer από ένα νήμα «παραγωγού». Κάθε condition variable συνδέεται με ένα mutex. Εντολές: wait(cond-var) και wakeup(cond-var). 95

96 Ταυτόχρονη Πρόσβαση σε Διαμοιραζόμενη Μνήμη Χρήση: Σαν έννοιες cond. vars και mutexes είναι όμοιες. (αναστέλλουν και επανακινούν διεργασίες/νήματα) Γενικά, το mutex χρησιμοποιείται για κρίσιμες περιοχές (δηλ. βραχυπρόθεσμο κλείδωμα -- locking). Condition variables χρησιμοποιούνται για πρόσβαση σε πόρους - μακρoπρόθεσμο κλείδωμα/αναμονή και συγχρονισμό. 96

97 Ταυτόχρονη Πρόσβαση σε Διαμοιραζόμενη Μνήμη Κάθε condition variable C συσχετίζεται με ένα mutex. Όταν καλείται από το νήμα Ν1 η wait(c), τότε το νήμα Ν1 «περιμένει» αν κάποιο άλλο νήμα Ν2 έχει τον πόρο, μέχρι το Ν2 να καλέσει wakeup(c). Επίσης, αυτόματα όταν καλείται το wait(c), το mutex που συνδέεται με το C ξεκλειδώνεται (αν ήταν πριν κλειδωμένο). (***) 97

98 Πρόσβαση σε Global Μεταβλητές Πρόβλημα:global vars που αφορούν στη διαχείριση διεργασιών συνολικά. Όταν πολλά threads προσπελάυνουν την τιμή ενός globalvar τότε προβλήματα μπορούν να προκύψουν. π.χ. το errno στο UNIX: δείχνει την επιτυχή ή μη εκτέλεση ενός systemcall. Tο Τ1 καλεί access() (...για να δεί αν δικαιούται πρόσβαση σε ένα αρχείο). Ο kernel επιστρέφει μια τιμή στην errno. Πριν όμως το Τ1 ξαναρχίσει, o scheduler δίνει τη CPU στο T2 που καλεί ένα άλλο system call που αποτυγχάνει και ο kernel ενημερώνει το errno. Όταν το Τ1 αρχίσει πάλι θα συμπεριφερθεί λανθασμένα...το errno περιέχει μια τιμή που δεν το αφορά! 98

99 Πρόσβαση σε Global Μεταβλητές Η λύση που προτιμάται είναι η δημιουργία ενός καινούργιου scope: per-thread global variables. Π.χ., κάθε thread έχει το δικό του errno. Αλλά πως χρησιμοποιούμε/υλοποιούμε ένα τέτοιο καινούργιο scope; Πολλές γλώσσες προγραμματισμού δεν υποστηρίζουν per-thread vars. Μια λύση είναι να δημιουργηθούν library routines όπως: create-global(v), read-global (v), writeglobal(v), όπου v είναι ένα per-thread global var (ή μάλλον η διεύθυνσή του). Για κάθε thread, διαφορετικές διευθύνσεις στο heap χρησιμοποιούνται για τα global var τους. 99

100 POSIX Threads (Pthreads) Start with one thread in a process Thread contains (id, registers, attributes) Use library call to create new threads and to use threads Thread_create includes parameter indicating what procedure to run Thread_exit causes thread to exit and disappear (can t schedule it) Thread_join Thread blocks until another thread finishes its work Thread_yield

101 POSIX Threads (Pthreads) Pthreads are IEEE Unix standard library calls Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

102 Mutexes Don t always need counting operation of semaphore, just mutual exclusion part Mutex: variable which can be in one of two states-locked (0), unlocked(1 or other value) Easy to implement Good for using with thread packages in user space Thread (process) wants access to cr, calls mutex_lock. If mutex is unlocked, call succeeds. Otherwise, thread blocks until thread in the cr does a mutex_unlock. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

103 Pthread calls for mutexes Pthread_mutex-trylock tries to lock mutex. If it fails it returns an error code, and can do something else. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

104 Condition Variables Allows a thread to block if a condition is not met, e.g. Producer-Consumer. Producer needs to block if the buffer is full. Mutex make it possible to check if buffer is full Condition variable makes it possible to put producer to sleep if buffer is full Both are present in pthreads and are used together Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

105 Pthread Condition Variable calls Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

106 Producer Consumer with condition variables and mutexes Producer produces one item and blocks waiting for consumer to use the item Signals consumer that the item has been produced Consumer blocks waiting for producer to signal that item is in buffer Consumer consumes item, signals producer to produce new item Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

107 Producer Consumer with condition variables.... Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

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

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

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

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

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 9 «Δρομολόγηση Διεργασιών» Διδάσκων: Δ, Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Δρομολόγηση σε σύστημα ενός επεξεργαστή 1. Εισαγωγή 2. Κριτήρια αποτίμησης της απόδοσης

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

Σκελετός Παρουσίασης

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

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

Δρομολόγηση σε σύστημα ενός επεξεργαστή

Δρομολόγηση σε σύστημα ενός επεξεργαστή Δρομολόγηση σε σύστημα ενός επεξεργαστή 1. Εισαγωγή 2. Κριτήρια αποτίμησης της απόδοσης 3. Κριτήρια βελτιστοποίησης 4. Τύποι δρομολόγησης του επεξεργαστή 5. Ο κύκλος καταιγισμού CPU-I/O 6. Πολιτικές δρομολόγησης

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7 ο Αλγόριθμοι Χρονοδρομολόγησης Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης, και θα παρουσιάσουμε τους κυριότερους. Θα μάθουμε:

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

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

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

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

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

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

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

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

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

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

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

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

Προγραμματισμός Ταυτόχρονος Προγραμματισμός Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

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

Περιγραφή και Έλεγχος ιεργασιών

Περιγραφή και Έλεγχος ιεργασιών Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα

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

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

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

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

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης 7.1 Ορισμός Στόχοι Αλγόριθμο χρονοδρομολόγησης (scheduling algorithm) ονομάζουμε την μεθοδολογία την οποία χρησιμοποιεί ο κάθε χρονοδρομολογητής (βραχυχρόνιος, μεσοχρόνιος

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

ENOTHTA 5 XPONO POMOΛOΓHΣH ENOTHTA 5 Περιεχόµενα 1. Xρονοδροµολόγηση 2. Eίδη χρονοδροµολόγησης 3. Στόχοι και κριτήρια της χρονοδροµολόγησης 4. Tαξινόµηση αλγόριθµων χρονοδροµολόγησης 5. Xρονοδροµολόγηση µε βάση τον χρόνο εισόδου

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση Εργαστηριακή Άσκηση Οι Αλγόριθμοι Χρονοπρογραμματισμού First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Επιμέλεια: Βασίλης Τσακανίκας Περιεχόμενα Αλγόριθμοι

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

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

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

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

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

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

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

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «ροµολόγηση ιεργασιών (1/2)» ροµολόγηση σε συστήµατα µε έναν επεξεργαστή ροµολόγηση σε πολυεπεξεργαστικά συστήµατα ροµολόγηση σε κατανεµηµένα

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

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

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

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

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1 Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution

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

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

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

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Λειτουργικά Συστήματα Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες Μ.Στεφανιδάκης Το μάθημα ΛΣ Πραγματικού Χρόνου Θεωρητικό υπόβαθρο Αρχές Προγραμματισμού Παραδείγματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες Το μάθημα ΛΣ Πραγματικού Χρόνου Θεωρητικό υπόβαθρο Αρχές Προγραμματισμού Παραδείγματα ΛΣ Εργασίες

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός (ή Χρονοδρομολόγηση ή Δρομολόγηση)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός (ή Χρονοδρομολόγηση ή Δρομολόγηση) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός (ή Χρονοδρομολόγηση ή Δρομολόγηση) Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and

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

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστηριακή Άσκηση Εργαστήριο Λειτουργικών Συστημάτων Οι First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Β. Τσακανίκας Β. Ταμπακάς Τμήμα Μηχανικών Πληροφορικής

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

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

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

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

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

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

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή» Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 2ο: Διεργασίες

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 2ο: Διεργασίες ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Κεφάλαιο 2ο: Διεργασίες 1 2.1 Εισαγωγή Διεργασία: Μία από τις δύο κεντρικές έννοιες και abstractions ενός Λ.Σ. Αποτελεί ένα μοντέλο για ένα πρόγραμμα που εκτελείται Οι διεργασίες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1 Λειτουργικά συστήµατα Λογισμικό Συστήματος 1 Figure 3.1 Batch processing 0-2 Λογισμικό Συστήματος Figure 3.2 Interactive processing 0-3 Λογισμικό Συστήματος Figure 3.3 Software classification 0-4 Λογισμικό

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

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

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

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

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

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα 1 (ΗΥ321) Διάλεξη 3: Χρονοδρομολόγηση Σε αυτό το Επεισόδιο: Χρονοδρομολόγηση 2 Ανάθεσε m διεργασίες σε n επεξεργαστές CPU CPU CPU Το Πρόβλημα; 3 Ποιος; θα τρέξει στον επόμενο τόνο;

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

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Κλειώ Σγουροπούλου Λειτουργικό Σύστημα Ένα πρόγραμμα που διαχειρίζεται τους πόρους ενός υπολογιστικού συστήματος και ενεργεί ως μεσάζων μεταξύ του χρήστη και των πόρων αυτών user

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Διεργασίες-Νήματα Εισαγωγή στα Λειτουργικά Συστήματα Εγκατάσταση Ιδεατής Μηχανής Linux Συστήματα Αρχείων Χειρισμός και Διαχείριση Linux

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

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

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

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

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

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

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty) Ιδεατή Μνήμη Άσκηση 1: Ένας υπολογιστής έχει τέσσερα πλαίσια σελίδων. Οι χρονικές στιγμές φόρτωσης, τελευταίας προσπέλασης, ο αριθμός αναφορών και τα bit αναφοράς (R) και μεταβολής (M ή dirty ) φαίνονται

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

Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling)

Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling) Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling) Περίληψη Χρονοπρογραµµατισµός διεργασιών και κριτήρια Κατηγορίες χρονοπρογραµµατιστών λγόριθµοι χρονοπρογραµµατισµού Χρονοπρογραµµατισµός Η πολιτική

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

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

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

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

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

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

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

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

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling) Μάθημα 6 ο Χρονοδρομολόγηση (Scheduling) Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και τη λειτουργία της χρονοδρομολόγησης σε ένα Λειτουργικό Σύστημα. Θα μάθουμε: Να ορίζουμε τι είναι

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

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

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

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Λειτουργικά Συστήματα Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Η χρήση του χρόνου Μ.Στεφανιδάκης Συστήματα πραγματικού χρόνου: ελεγκτής και ελεγχόμενο σύστημα real-time system

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8 Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8 Κεφάλαιο 8 ιαχείριση ΚΜΕ στα Λειτουργικά Συστήµατα Σκοπός του κεφαλαίου αυτού είναι να σου γνωρίσει τον τρόπο µε τον οποίο ένα λειτουργικό

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"

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

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

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

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

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

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

The challenges of non-stable predicates

The challenges of non-stable predicates The challenges of non-stable predicates Consider a non-stable predicate Φ encoding, say, a safety property. We want to determine whether Φ holds for our program. The challenges of non-stable predicates

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

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

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

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

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού Μ.Στεφανιδάκης Κοινοί πόροι Κοινοί (διαμοιραζόμενοι) πόροι με μία η περισσότερες μονάδες

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

Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling)

Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling) Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling) Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems

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

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

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

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

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης Εισαγωγή στην Πληροφορική Α σ κ ή σ ε ι ς σ τ η ν Χ ρ ο ν ο δ ρ ο µ ο λ ό γ η σ η ς Αντώνης Σταµατάκης Αλγόριθµοι Χρονοδροµολόγησης (1/5) Υπάρχουν διάφοροι αλγόριθµοι χρονοδροµολόγησης της κεντρικής µονάδας

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ ΔΟΜΗ ΤΟΥ Η/Υ (PC compatibles) RAM CPU PCI Bridge PCI Bridges P2P Bridge RAM CPU PCI Bridge PCI2ISA Bridge Δομή της CPU Register file IP CPU TLB Level-1 cache RAM SP MMU

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

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

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

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

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

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

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ 2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Κεφάλαιο 6ο: Αδιέξοδα 1 3.1 Εισαγωγή Αδιέξοδο = ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα όπου κάθε process στην αλυσίδα δεν μπορεί να προχωρήσει και περιμένει

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

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι Μ.Στεφανιδάκης Χρονοδρομολόγηση (scheduling) αλγόριθμος επιλογή (init) READY RUNNING (terminate)

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 8: Νήματα και Παραλληλισμός Διεργασιών Δρ. Μηνάς Δασυγένης 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 νήματα (το ένα νήμα είναι το αρχικό νήμα που

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

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος Εισαγωγή στα Λειτουργικά συστήματα Ι Καθηγητής Κώστας Αναγνωστόπουλος Τι είναι Λειτουργικό Σύστημα Ένα πρόγραμμα ή συλλογή προγραμμάτων που ελέγχει και διαχειρίζεται το υλικό μιας υπολογιστικής μηχανής

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3 Μάθημα 7ο: Επαναλαμβανόμενες ενέργειες (Loops) Σύλλογος Εκπαιδευτικών Πληροφορικής Χίου ΑΝΤΙΚΕΙΜΕΝΑ ΜΑΘΗΣΗΣ 1. Τι σημαίνει η επανάληψη 2. Πώς χρησιμοποιείται

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Το Πρόβλημα του Αδιεξόδου Ένα σύνολο από διεργασίες σε αναμονή, όπου η κάθε μια κατέχει έναν αριθμό από πόρους και περιμένει να αποκτήσει και έναν

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

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε: ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ Πρόβλημα 1: Το Πανεπιστήμιο Μακεδονίας, εφαρμόζοντας την αρχή της ισότητας μεταξύ των δύο φύλων μετέτρεψε τις τουαλέτες των φοιτητών σε κοινές τουαλέτες. Προς αποφυγή όμως παρεξηγήσεων

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

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα Σημαντικοί σταθμοί στην εξέλιξη των λειτουργικών συστημάτων Δομή και βασικά στοιχεία λειτουργικών συστημάτων Διεργασίες και συντονισμός τους Εισαγωγή στις πολιτικές χρονοπρογραμματισμού

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

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

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

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

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

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

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

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

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

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