Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,

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

Download "Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,"

Transcript

1 Διεργασίες 1. Εισαγωγή - ορισμοί 2. Καταστάσεις διεργασίας 3. Διαγράμματα καταστάσεων 4. Μπλοκ ελέγχου διεργασίας PCB 5. Υπηρεσίες Λ.Σ. για διαχείριση διεργασιών 6. Εναλλαγή Πλαισίου (Context Switch) 7. Προστασία διεργασιών 8. Συνεξέλιξη (concurrency) 9. Διαδιεργασιακή επικοινωνία (IPC) 10. Χρήση πόρων 11. Αλληλεπίδραση διεργασιών 1

2 1. Εισαγωγή Πολλά συστήματα στη φύση έχουν την ικανότητα να πραγματοποιούν πολλές δραστηριότητες (λειτουργίες) την ίδια χρονική στιγμή (π.χ. το ανθρώπινο σώμα). Οι Η/Υ εκτελούν παράλληλα (ταυτόχρονα concurrently) διάφορες λειτουργίες (π.χ. μετάφραση ενός προγράμματος, εκτύπωση ενός αρχείου, λήψη ενός κλπ). Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο οι σύγχρονοι Η/Υ επιτελούν και ελέγχουν πλήθος ταυτόχρονων δραστηριοτήτων. Ο όρος «διεργασία» στα πλαίσια των Λ.Σ. χρησιμοποιήθηκε για πρώτη φορά από τους σχεδιαστές του Multics. Μέχρι τότε ο όρος χρησιμοποιείτο εναλλακτικά με τον όρο task (εργασία) και είχαν δοθεί αρκετοί ορισμοί, όπως : 2

3 Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα, Μια εκτελούμενη διαδικασία που συσχετίζεται με την ύπαρξη μιας δομής δεδομένων στο Λ.Σ., τον περιγραφέα διεργασίας (process descriptor) ή μπλοκ ελέγχου διεργασίας (Process Control Block). Στην οντότητα αυτή εκχωρείται ο επεξεργαστής και η μονάδα διεκπεραίωσης (dispatcher unit). 3

4 Μια διεργασία είναι μια οντότητα με τον δικό της χώρο διευθύνσεων, που αποτελείται από : την περιοχή κώδικα (text region), περιέχει τον κώδικα που εκτελεί ο επεξεργαστής. Την περιοχή δεδομένων (data region), όπου αποθηκεύονται οι μεταβλητές και η δυναμικά παραχωρούμενη μνήμηπου χρησιμοποιεί ο επεξεργαστής κατά τη διάρκεια της εκτέλεσης. Την περιοχή στοίβας (stack region), όπου αποθηκεύονται οι εντολές και οι τοπικές μεταβλητές για τις ενεργές κλήσεις διαδικασιών. Τα περιεχόμενα της στοίβας αυξάνονται καθώς η διεργασία πραγματοποιεί επαναλαμβανόμενες κλήσεις διαδικασιών και μειώνονται με τον τερματισμό των καλούμενων διαδικασιών. Διαφορά μεταξύ διεργασίας και προγράμματος : Ένα πρόγραμμα είναι μια άψυχη οντότητα και μόνον όταν ο επεξεργαστής ξεκινά να εκτελέσει το πρόγραμμα αυτό καθίσταται μια ενεργή οντότητα που ονομάζεται διεργασία. 4

5 Εναλλακτικοί ορισμοί της διεργασίας : Ένα εκτελέσιμο πρόγραμμα που περιλαμβάνει και τις τρέχουσες τιμές του μετρητή προγράμματος, των καταχωρητών και των μεταβλητών του. Κάθε διεργασία έχει τη δική της ιδεατή CPU. Μια δραστηριότητα κάποιου είδους που περιλαμβάνει: ένα πρόγραμμα, είσοδο, έξοδο και βρίσκεται σε μια κατάσταση Η διεργασία είναι μια αφαιρετική άποψη της ακολουθίας εντολών που εκτελούνται από τον επεξεργαστή. Ο επεξεργαστής είναι πιθανόν να χρειαστεί να εξυπηρετήσει συσκευές (hardware devices) εκτελώντας τους αντίστοιχους οδηγούς συσκευών (device drivers) ενδιαμέσως των εντολών μιας διεργασίας. 5

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

7 Οι διεργασίες μπορούν να προχωρήσουν μόνον όταν υπάρχει το μέσον που θα εκτελέσει τα σχετικά προγράμματα. Αυτό το μέσο είναι ο επεξεργαστής (processor). Ανάλογα με τη φύση των εντολών, ο επεξεργαστής μπορεί να υλοποιηθεί αποκλειστικά με υλικό ή με συνδυασμό υλικού και λογισμικού. Παράδειγμα: μια CPU είναι ένας επεξεργαστής για εκτέλεση εντολών γλώσσας μηχανής, ενώ μια CPU μαζί με έναν διερμηνευτή (interpreter) μιας γλώσσας προγραμματισμού συνθέτουν έναν επεξεργαστή που εκτελεί εντολές της συγκεκριμένης γλώσσας προγραμματισμού. 7

8 Το πρόγραμμα ή τα προγράμματα που σχετίζονται με μια διεργασία δεν είναι απαραίτητο να υλοποιούνται υποχρεωτικά με τη μορφή λογισμικού. Παράδειγμα : η δραστηριότητα ενός διαύλου που πραγματοποιεί μεταφορά δεδομένων, θα μπορούσε να θεωρηθεί ως διεργασία στην οποία το σχετικό πρόγραμμα βρίσκεται μέσα στο υλικό του διαύλου. Από την πλευρά αυτή κάθε ελεγκτής μιας περιφερειακής συσκευής είναι ένας επεξεργαστής που μπορεί να εκτελεί μια μόνο διεργασία. 8

9 Η διαχείριση των διεργασιών αποτελεί το θεμελιώδες αντικείμενο οποιουδήποτε Λ.Σ. Το Λ.Σ. διατηρεί μια δομή δεδομένων για κάθε διεργασία που περιγράφει : την κατάστασή της, την κατοχή πόρων του συστήματος και δίνει τη δυνατότητα στο Λ.Σ. να ασκεί επιρροή στον έλεγχο της διεργασίας. 9

10 Ένας επεξεργαστής εκτελεί εντολές μηχανής που βρίσκονται στην κύρια μνήμη σε μορφή προγράμματος. Για να εκτελεσθεί ένα πρόγραμμα δημιουργείται μια διεργασία για το συγκεκριμένο πρόγραμμα. Κατά τη διάρκεια του χρόνου οι εντολές προγράμματος που εκτελούνται δημιουργούν μια λίστα που ονομάζεται αποτύπωση της διεργασίας. Ένας επεξεργαστής μπορεί να απασχοληθεί σε διαφορετικές διεργασίες μέσω ενός αλγορίθμου χρονοδρομολόγησης (scheduling) που καθορίζει πότε και ποια διεργασία θα έχει κάθε φορά το δικαίωμα αποκλειστικής χρήσης του. Το ζητούμενο είναι να εξισορροπηθούν οι ανταγωνιστικές απαιτήσεις για την αποδοτικότητα (efficiency) όλου του συστήματος και για τις σχέσεις δικαιοσύνης (fairness) μεταξύ των διεργασιών. 10

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

12 2. Καταστάσεις διεργασίας Το Λ.Σ. πρέπει να εξασφαλίσει ότι κάθε διεργασία αναλαμβάνει για αρκετό χρόνο τη χρήση του επεξεργαστή. Σε κάθε σύστημα μπορούν να υπάρχουν τόσες ταυτόχρονες διεργασίες όσοι είναι και οι επεξεργαστές. Στην πραγματικότητα σε κάθε επεξεργαστή υπάρχουν περισσότερες διεργασίες. Κατά τη διάρκεια ζωής της κάθε διεργασία μπορεί να βρεθεί σε μια σειρά από διακριτές καταστάσεις. Διάφορα γεγονότα αναγκάζουν μια διεργασία να μεταβάλει την κατάστασή της. 12

13 Εκτελούμενη (running): η διεργασία χρησιμοποιεί τη CPU εκείνη τη στιγμή Έτοιμη (ready): η διεργασία έχει διακοπεί προσωρινά για να εκτελεστεί κάποια άλλη Υπό αναστολή (blocked): η διεργασία δεν μπορεί να εκτελεστεί μέχρι να συμβεί κατάλληλο εξωτερικό συμβάν 13

14 Παράδειγμα 14

15 Στιγμιότυπο εκτέλεσης 15

16 Αποτύπωση διεργασιών 16

17 Δρομολόγηση 17

18 3. Διαγράμματα καταστάσεων Κατά την εκτέλεση των προγραμμάτων των χρηστών, οι διεργασίες δημιουργούνται και εισέρχονται στη λίστα των έτοιμων διεργασιών. Με την πάροδο του χρόνου μια διεργασία προωθείται προς την κεφαλή της λίστας και μόλις ο επεξεργαστής γίνει διαθέσιμος η διεργασία ανατίθεται στον επεξεργαστή και η κατάστασή της αλλάζει σε εκτελούμενη. Η διαδικασία της ανάθεσης της πρώτης διεργασίας από τη λίστα των έτοιμων διεργασιών στον επεξεργαστή ονομάζεται διεκπεραίωση και υλοποιείται από μια οντότητα του συστήματος, τον διεκπεραιωτή (dispatcher). Για να αποφευχθεί η μονοπώληση της χρήσης του επεξεργαστή, το Λ.Σ. χρησιμοποιεί έναν εσωτερικό χρονιστή, μια συσκευή (interrupting clock) που παράγει μια διακοπή (interrupt) μετά από την πάροδο ενός προκαθορισμένου χρονικού ορίου, που ονομάζεται καταιγισμός (burst) ή κβάντο χρόνου (quantum). Αν η διεργασία δεν εκχωρήσει από μόνη της τον επεξεργαστή, πριν παρέλθει το κβάντο χρόνου, το Λ.Σ. μέσω της διακοπής που παράγεται, αναλαμβάνει τον έλεγχο του επεξεργαστή. 18

19 Η κατάσταση της τρέχουσας διεργασίας αλλάζει σε έτοιμη και προωθείται προς εκτέλεση η αμέσως επόμενη διεργασία. Αν μια εκτελούμενη διεργασία απαιτήσει μια λειτουργία Ι/Ο πριν λήξει το κβάντο χρόνου της, παραιτείται από τη χρήση του επεξεργαστή (επειδή αναμένει την ολοκλήρωση της Ι/Ο λειτουργίας). Η διεργασία τελεί υπό αναστολή. Οι υπό αναστολή διεργασίες θεωρούνται κοιμώμενες (sleep), επειδή δεν μπορούν να εκτελεστούν, ακόμη και αν ο επεξεργαστής καταστεί διαθέσιμος. Όταν ολοκληρωθεί μια διαδικασία Ι/Ο η αντίστοιχη διεργασία αλλάζει την κατάστασή της (wakeup) από υπό αναστολή σε έτοιμη και εισέρχεται στη λίστα των έτοιμων διεργασιών. Οι καταστάσεις διεργασιών αποτυπώνονται στα διαγράμματα καταστάσεων. Η μετάβαση από μια κατάσταση σε μία άλλη γίνεται λόγω της ύπαρξης συγκεκριμένων γεγονότων. 19

20 Μοντέλο διεργασίας δύο καταστάσεων 20

21 Μοντέλο διεργασιών 5-καταστάσεων Τύποι γεγονότων: New Ready Running Ready Running Blocked 21

22 Διεργασίες υπό αναστολή 22

23 Διεργασίες υπό αναστολή 23

24 Καταστάσεις διεργασιών Running : η διεργασία που είναι σε εκτέλεση Ready : είναι έτοιμη για εκτέλεση Blocked : δεν μπορεί να εκτελεστεί μέχρι να προκύψει κάποιο γεγονός New : έχει μόλις δημιουργηθεί από το ΛΣ Exit : έχει απελευθερωθεί από τη δεξαμενή εκτελέσιμων εργασιών από το ΛΣ 24

25 Τύποι γεγονότων New Ready: μια επιπρόσθετη διεργασία εισάγεται όταν δεν παραβιάζεται ένα μέγιστο όριο που εξαρτάται από τις υπάρχουσες διεργασίες και το μέγεθος της ιδεατής μνήμης. Running Ready: η εκτελούμενη διεργασία έχει φθάσει στο μέγιστο επιτρεπτό όριο μη διακοπτόμενης εκτέλεσής της. Running Blocked: η διεργασία απαιτεί μια υπηρεσία από το ΛΣ για την οποία το ΛΣ δεν είναι προετοιμασμένο να την εκτελέσει άμεσα. 25

26 Διάγραμμα καταστάσεων διεργασιών στο UNIX 26

27 Χρονοδρομολογητές (schedulers) Όταν μια διεργασία βρίσκεται σε μια ουρά το Λ.Σ. με κάποιον τρόπο πρέπει να επιλέξει μια διεργασία από την ουρά, η λειτουργία αυτή επιτελείται από έναν χρονοδρομολογητή. Long-term scheduler (or job scheduler) αποφασίζει και επιλέγει τις διεργασίες που θα περιληφθούν στην ουρά των έτοιμων προς εκτέλεση διεργασιών (ready queue). Ελέγχει τον βαθμό πολυπρογραμματισμού. Short-term scheduler (or CPU scheduler) επιλέγει ποια διεργασία θα είναι η επόμενη προς εκτέλεση και εκχωρεί τη χρήση της CPU. Medium-term scheduler χρησιμοποιείται ειδικά σε time-sharing συστήματα ως ένα ενδιάμεσο επίπεδο χρονοδρομολόγησης. Χρησιμοποιεί ένα σχήμα εναλλαγής που μετακινεί περιοδικά διεργασίες από τη μνήμη και τις εγκαθιστά αργότερα για να συνεχίσουν από το σημείο που είχαν σταματήσει. 27

28 Ουρές διεργασιών 28

29 29

30 Ουρές για τη διαχείριση διεργασιών 30

31 4. Μπλοκ ελέγχου διεργασίας (PCB Process Control Block) Το Λ.Σ. εκτελεί αρκετές λειτουργίες όταν δημιουργεί μια νέα διεργασία. Καταρχήν πρέπει να μπορεί να ταυτοποιήσει κάθε νέα διεργασία, έτσι αναθέτει σε κάθε μία ένα μοναδικό αριθμό (Process Identification number PID). Στη συνέχεια δημιουργεί το μπλοκ ελέγχου διεργασίας (PCB), ονομάζεται και περιγραφέας διεργασίας, που διατηρεί τις πληροφορίες που απαιτούνται για τη διαχείριση της διεργασίας. Το PCB είναι το σύνολο των χαρακτηριστικών που χρησιμοποιούνται από το Λ.Σ. για τον έλεγχο της διεργασίας. 31

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

33 PCB Process identification Process state information Process control information User stack Process identification Process state information Process control information User stack Process identification Process state information Process control information User stack Process Control Block Private user address space Private user address space Private user address space Shared address space Shared address space Shared address space 33

34 Process Control Blocks (PCBs)/Process Descriptors 34

35 Πίνακας διεργασιών Για να υλοποιηθεί οποιοδήποτε μοντέλο κατάστασης διεργασιών, το Λ.Σ. οικοδομεί έναν πίνακα διεργασιών (process table), ο οποίος περιλαμβάνει μια καταχώρηση για κάθε διεργασία. Στην καταχώρηση αυτή εγγράφονται πληροφορίες σχετικές με την κατάσταση της διεργασίας (εικόνα της διεργασίας) ώστε να συνεχίσει να εκτελείται μετά από κάποια διακοπή. 35

36 Πίνακας διεργασιών Process Memory Images Memory Devices Files Processes Memory Tables I/O Tables File Tables Process 1 Process Table Process 1 Process 2. Process N Process N 36

37 Πεδία καταχώρησης του πίνακα διεργασιών Διαχείριση διεργασιών Καταχωρητές Δείκτης εντολών προγράμματος Λέξη κατάστασης προγράμματος Δείκτης στοίβας Κατάσταση διεργασίας Χρόνος εκκίνησης διεργασίας Χρόνος χρήσης CPU Χρόνος CPU θυγατρικών διεργασιών Χρόνος επόμενης εγρήγορσης Δείκτης ουράς μηνυμάτων 37

38 Διαχείριση μνήμης Δείκτης σε τμήμα κειμένου Δείκτης σε τμήμα δεδομένων Κατάσταση εξόδου Κατάσταση σήματος Ταυτότητα διεργασίας Γονική διεργασία Ομάδα διεργασιών Πραγματική και λειτουργική ταυτότητα χρήστη και ομάδας χρήστη Χάρτης δυαδικών ψηφίων για σήματα 38

39 Διαχείριση αρχείων Μάσκα δικαιωμάτων Πρωταρχική διαδρομή Διαδρομή εργασίας Περιγραφείς αρχείων Λειτουργική ταυτότητα χρήστη και ομάδας Παράμετροι κλήσεων συστήματος Διάφοροι ενδείκτες 39

40 Λόγοι εναλλαγής εκτελούμενης διεργασίας Clock interrupt Η διεργασία έχει εξαντλήσει το μέγιστο επιτρεπόμενο χρονικό όριο (time slice) I/O interrupt Σφάλμα μνήμης Η διεύθυνση μνήμης βρίσκεται στην εικονική μνήμη και πρέπει να μεταφερθεί στην κύρια μνήμη Trap Έχει συμβεί σφάλμα Κλήση επόπτη (κλήση συστήματος) π.χ. άνοιγμα αρχείου 40

41 Αλλαγή κατάστασης διεργασίας (εναλλαγή πλαισίου) Εκτελούμενη (running) άλλη κατάσταση Αποθήκευση του πλαισίου του επεξεργαστή που περιλαμβάνει τον PC και άλλους καταχωρητές (στο PCB) Μετακίνηση του PCB στην αντίστοιχη ουρά (ready, blocked, ) Επιλογή μιας άλλης διεργασίας προς εκτέλεση Ενημέρωση του PCB της διεργασίας που έχει επιλεγεί Ενημέρωση των δομών δεδομένων της διαχείρισης μνήμης Επαναφορά πλαισίου (στον επεξεργαστή) της διεργασίας που έχει επιλεγεί 41

42 5. Υπηρεσίες Λ.Σ. για διαχείριση διεργασιών Τα Λ.Σ. πρέπει να μπορούν να υλοποιούν συγκεκριμένες λειτουργίες που αφορούν τις διεργασίες. Στη συνέχεια περιγράφονται υπηρεσίες (system calls) που παρέχονται τυπικά από τους πυρήνες των Λ.Σ. πολυπρογραμματισμού για τη διαχείριση των διεργασιών. Ως υπηρεσίες εννοούνται οι προκαθορισμένες κλήσεις συστήματος που μπορούν να τεθούν σε λειτουργία από το χρήστη : Άμεσα, μέσω κλήσεων του supervisor που ενσωματώνονται στον κώδικα του χρήστη Έμμεσα, μέσω εντολών που δίνονται στο τερματικό και μεταφράζονται σε κλήσεις από το Λ.Σ. 42

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

44 Οι πιο συνήθεις είναι: CREATE DELETE FORK / JOIN ABORT SUSPEND RESUME DELAY GET_ATTRIBUTES CHANGE_PRIORITY 44

45 Δημιουργία διεργασιών Όταν πρόκειται να προστεθεί μια καινούρια διεργασία, σε αυτές που ήδη υπάρχουν, το Λ.Σ. δημιουργεί τις δομές δεδομένων που χρησιμοποιούνται για τη διαχείρισή της και εκχωρεί στην νέα διεργασία χώρο στην κύρια μνήμη. Αιτίες για τη δημιουργία διεργασίας Απόκριση στην υποβολή μιας εργασίας Ένας νέος χρήστης προσπαθεί να συνδεθεί Απαίτηση για παροχή κάποιας υπηρεσίας από μια εφαρμογή Παραγωγή από υπάρχουσα διεργασία 45

46 CREATE (processid, attributes) To Λ.Σ. απαντά στη κλήση CREATE δημιουργώντας μια νέα διεργασία με τα συγκεκριμένα χαρακτηριστικά Μια διεργασία ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΔΗΜΙΟΥΡΓΗΘΕΙ ΑΠΟ ΜΟΝΗ ΤΗΣ επειδή θα πρέπει η εκτέλεσή της να τεθεί σε λειτουργία από το Λ.Σ. Έτσι θα πρέπει να δημιουργηθεί από μια άλλη διεργασία. Το Λ.Σ. αποκτά ένα ελεύθερο PCB από την διαθέσιμη περιοχή της μνήμης, συμπληρώνει τα πεδία με τις κατάλληλες τιμές και εισάγει το PCB στη λίστα των έτοιμων διεργασιών. 46

47 Μερικές από τις παραμέτρους που ορίζονται κατά τη δημιουργία της διεργασίας είναι : επίπεδο (συστήματος ή χρήστη) προτεραιότητα μέγεθος και απαιτήσεις μνήμης μέγιστη περιοχής δεδομένων και στοίβας πληροφορίες προστασίας μνήμης και δικαιώματα πρόσβασης άλλα δεδομένα εξαρτώμενα από το σύστημα 47

48 Τυπικά λάθη που δηλώνουν ότι η διεργασία δεν δημιουργήθηκε σαν αποτέλεσμα της κλήσης, μπορούν να περιλαμβάνουν: Λάθος ID (μη αποδεκτό ή η διεργασία είναι ήδη ενεργή) Δεν υπάρχει χώρος για το PCB (παροδικό) Η καλούσα διεργασία δεν είναι εξουσιοδοτημένη για να εκτελέσει αυτή τη συνάρτηση 48

49 Τερματισμός διεργασιών Λόγοι τερματισμού μιας διεργασίας Φυσιολογική ολοκλήρωση Υπέρβαση χρονικού ορίου Μη διαθέσιμη μνήμη Καταπάτηση ορίων Σφάλμα προστασίας Αριθμητικό σφάλμα Υπερχείλιση χρονικού ορίου Σφάλμα Ι/Ο Μη έγκυρη εντολή Προνομιούχος εντολή Λανθασμένη χρήση δεδομένων Τερματισμός ή αίτηση γονέα Μεσολάβηση χειριστή ή του Λ.Σ. 49

50 DELETE(processID) Ονομάζεται και DESTROY, TERMINATE, EXIT Όταν τεθεί σε λειτουργία αναγκάζει το Λ.Σ. να καταστρέψει τη διεργασία και να την διαγράψει από το σύστημα Μια διεργασία μπορεί να διαγράψει από μόνη της μια άλλη διεργασία Το Λ.Σ. ανακαλεί όλους τους πόρους που είχαν εκχωρηθεί στη διεργασία, κλείνει όλα τα αρχεία και κάνει κάθε αναγκαία ενέργεια. Το PCB της διεργασίας διαγράφεται και η αντίστοιχη περιοχή μνήμης ελευθερώνεται 50

51 Η υπηρεσία DELETE τίθεται σε λειτουργία ως αναπόσπαστο τμήμα του κανονικού τερματισμού ενός προγράμματος Πολλοί compilers μεταφράζουν την τελευταία εντολή END του κυρίως προγράμματος σε μια κλήση συστήματος DELETE. Οι σχεδιαστές των Λ.Σ. διαφοροποιούνται ως προς τη δυνατότητα μια διεργασία να μπορεί να τερματίσει άλλες διεργασίες. Η σχεδίαση πρέπει να εξισορροπήσει την ανάγκη για αποτελεσματικότητα με την ακεραιότητα του συστήματος. 51

52 Πιθανά λάθη: Μια θυγατρική διεργασία (child process) είναι ενεργή (και πρέπει να τερματιστεί πρώτη) Λάθος ID Η καλούσα διεργασία δεν είναι εξουσιοδοτημένη για να εκτελέσει αυτή τη συνάρτηση 52

53 ABORT(processID) Εξαναγκασμένος τερματισμός μιας διεργασίας Η πιο συχνή χρήση αυτής της κλήσης είναι για αναγκαστικούς τερματισμούς ως αποτέλεσμα κακής χρήσης μιας διεργασίας Το Λ.Σ. υλοποιεί την διεργασία όπως και την DELETE παρέχοντας επιπλέον ένα καταχωρητή και μια αποτύπωση μνήμης με πληροφορίες για την ταυτότητα της διεργασίας που εγκαταλείπεται καθώς και για κάποια πιθανή αιτία. Οι πληροφορίες αυτές μπορούν να παρέχονται σε αρχείο, σε μήνυμα ή σαν είσοδος σε μια λειτουργία crash-dump analyzer. Τα πιθανά λάθη είναι τα ίδια με αυτά της DELETE 53

54 SUSPEND(processID) Ονομάζεται και SLEEP ή BLOCK. Η διεργασία που την καλεί αναστέλλεται αλλά παραμένει στο σύστημα. Μια διεργασία μπορεί να αναστείλει τον εαυτό της η κάποια άλλη, αν είναι εξουσιοδοτημένη. RESUME(processID) Ονομάζεται και WAKEUP Το ζεύγος SUSPEND/RESUME είναι ένας κατάλληλος μηχανισμός για πρωτογενείς και μη δομημένες μορφές διαδιεργασιακού συγχρονισμού. Χρησιμοποιείται συχνά σε συστήματα που δεν υποστηρίζουν ανταλλαγή σημάτων 54

55 DELAY(processID, time) Ονομάζεται και SLEEP Η διεργασία αναστέλλεται για το χρονικό διάστημα που καθορίζεται σε μονάδες του ρολογιού συστήματος ή σε κανονικές χρονικές μονάδες. Μια διεργασία μπορεί να καθυστερήσει τον εαυτό της καθώς και άλλες Οι ενέργειες του Λ.Σ. για τη διαχείριση αυτής της κλήσης εξαρτώνται από τις διεργασίες διακοπών που υλοποιεί ο εσωτερικός χρονιστής. 55

56 FORK / JOIN (γενικά) Οι εντολές fork και join χρησιμοποιούνται για τη δημιουργία και τον τερματισμό διεργασιών, κυρίως σε συστήματα UNIX. Η FORK χρησιμοποιείται για να διαιρέσει μια ακολουθία εντολών σε δύο ταυτόχρονα παράλληλες εκτελούμενες ακολουθίες. Μόλις ο έλεγχος φθάσει στη διεργασία που προσδιορίζεται στη FORK μια νέα διεργασία (child) παράγεται για να εκτελέσει τον ένα κλάδο του παράλληλου κώδικα ενώ η γονική (parent) διεργασία συνεχίζει παράλληλα να εκτελεί τον άλλο κλάδο. Οι δύο αυτές διεργασίες μοιράζονται τις ίδιες μεταβλητές. Η γονική μπορεί ακόμη να δημιουργήσει περισσότερες θυγατρικές, που μπορούν να εκτελούνται όλες μαζί παράλληλα. Οποιαδήποτε από αυτές μπορεί επίσης να καλέσει την FORK, έτσι ώστε να δημιουργηθεί ένα δένδρο διεργασιών οποιουδήποτε βάθους. 56

57 Η FORK επιστρέφει συνήθως την ταυτότητα της θυγατρικής στη γονική διεργασία και η γονική διεργασία μπορεί να τη χρησιμοποιήσει για να σχεδιάσει τον τερματισμό της θυγατρικής διεργασίας, η οποία πρέπει να συμβεί πριν τεθεί σε λειτουργία η JOIN. Η JOIN συνενώνει τις δύο ακολουθίες του κώδικα και είναι διαθέσιμη σε μια γονική διεργασία για συγχρονισμό με τη θυγατρική. Με τη χρήση των fork join μπορεί να περιγραφεί κάθε γράφος προήγησης. Ο γράφος προήγησης είναι ένας φυσικός τρόπος για την περιγραφή ταυτόχρονων προγραμμάτων. Είναι ένας κατευθυνόμενος άκυκλος γράφος (directed acyclic graph) με τις διεργασίες να αντιστοιχούν στους κόμβους, ενώ οι ακμές καθορίζουν τις προτεραιότητες εκτέλεσης των διεργασιών. 57

58 Ιεραρχία δημιουργίας διεργασιών 58

59 Θεμελιώδη χαρακτηριστικά της fork Στο Λ.Σ. Unix η κλήση συστήματος για τη δημιουργία διεργασίας ονομάζεται fork(). Η κλήση συστήματος fork δημιουργεί μια θυγατρική διεργασία που είναι κλώνος της διεργασίας - γονέα. Η θυγατρική διεργασία: Διατηρεί ένα εικονικό αντίγραφο της εικονικής μνήμης του γονέα. «Τρέχει» στο ίδιο πρόγραμμα όπως και ο γονέας. Κληρονομεί τους περιγραφείς (open file descriptors) των ανοικτών αρχείων του γονέα. (Οι file descriptors του γονέα και του απόγονου δείχνουν σε μια κοινή είσοδο του πίνακα ανοικτών αρχείων του συστήματος.) Ξεκινά με τις τιμές καταχωρητών ίδιες με αυτές του γονέα. 59

60 Η θυγατρική διεργασία είναι πιθανόν να εκτελεί στο πλαίσιό της ένα διαφορετικό πρόγραμμα, με μια ξεχωριστή κλήση συστήματος exec(). Χρησιμοποιώντας την ακολουθία fork/exec, ο γονέας (συνήθως ένας command interpreter ή ο φλοιός) ουσιαστικά επιτρέπει στους απογόνους να κάνουν προσπελάσεις/εγγραφές σε αρχεία, τερματικά, συνδέσεις δικτύου, διασωληνώσεις, κλπ. 60

61 Το μοντέλο Fork/Join (με νήματα) Parent Thread Fork Start Overhead Child Threads Compute time Join End Overhead 61

62 6. Εναλλαγή Πλαισίου (Context Switch) Όταν η CPU εναλλάσσει την τρέχουσα διεργασία με μια άλλη διεργασία, το σύστημα πρέπει να αποθηκεύσει την κατάσταση (state) της παλιάς διεργασίας και να φορτώσει την αποθηκευμένη κατάσταση για την νέα διεργασία. Ο χρόνος εναλλαγής πλαισίου αποτελεί καθυστέρηση (overhead). Το σύστημα δεν κάνει κάποια χρήσιμη λειτουργία κατά τη διάρκεια της εναλλαγής. Ο χρόνος εναλλαγής πλαισίου εξαρτάται από την υποστήριξη εκ μέρους του υλικού. 62

63 63

64 7. Προστασία διεργασιών Το Λ.Σ. χρησιμοποιεί διάφορα σχήματα προστασίας των διεργασιών για να διαφυλάξει την απαιτούμενη ευρυθμία User Process User Process System Process T1 T2 T3 T1 T1 T2 Local Data Local Data Local Data Μια διεργασία περιέχει νήματα εκτέλεσης που επενεργούν σε τοπικά δεδομένα Οι διεργασίες επικοινωνούν μέσω μηχανισμών του Λ.Σ. Kernel π.χ. μηνυμάτων, διαμοιραζόμενης μνήμης, και σημαφόρων Οι υψηλού επιπέδου συναρτήσεις βρίσκονται στην κορυφή του πυρήνα Το Λ.Σ. είναι στρωματοποιημένο. Μόνον ένα μικρό απομονωμένο τμήμα έχει πρόσβαση στα πλέον κρίσιμα δεδομένα. Ο χώρος μνήμης κάθε διεργασίας διατηρείται ξεχωριστά από το Λ.Σ. 64

65 8. Συνεξέλιξη (concurrency) Ένα σημαντικό και θεμελιώδες χαρακτηριστικό των σύγχρονων Λ.Σ. είναι η ταυτόχρονη εξέλιξη (ή συνεξέλιξη) πολλών διεργασιών. Το χαρακτηριστικό αυτό είναι ουσιώδες για την κατανόηση του πολυπρογραμματισμού, της πολυεπεξεργασίας, των κατανεμημένων συστημάτων και του μοντέλου πελάτη εξυπηρέτη των υπολογιστικών συστημάτων. Η συνεξέλιξη εμπεριέχει πολλά σχεδιαστικά χαρακτηριστικά που περιλαμβάνουν: επικοινωνία και συγχρονισμό μεταξύ των διεργασιών διαχείριση πόρων του υπολογιστικού συστήματος 65

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

67 Αν θεωρήσουμε τις διεργασίες ως ακολουθίες ενεργειών που μπορούν να διακοπούν σε κάποια στάδια εκτέλεσής τους, υπάρχει γενικά αδυναμία πρόβλεψης της σειράς με την οποία θα εμφανιστούν οι διακοπές και επομένως αδυναμία πρόβλεψης (ακαθοριστία) της σειράς με την οποία εξελίσσονται οι ακολουθίες των ενεργειών. Η διακοπή μιας διεργασίας πρέπει να συνοδεύεται από μια καταγραφή πληροφοριών που θα δώσουν στη συνέχεια τη δυνατότητα στη διεργασία να ξαναρχίσει. 67

68 Η συνεξέλιξη περιλαμβάνει: την επικοινωνία μεταξύ των διεργασιών τη διαμοίραση των πόρων το συγχρονισμό πολλαπλών διεργασιών την εκχώρηση χρόνου του επεξεργαστή στις διεργασίες Δυσκολίες που προκύπτουν: διαμοίραση των πόρων διαχείριση της εκχώρησης των πόρων προγραμματιστικά λάθη που εντοπίζονται δύσκολα 68

69 Η συνεξέλιξη είναι σημαντική, αλλά πρέπει να αντιμετωπιστούν : ο αμοιβαίος αποκλεισμός η παρατεταμένη στέρηση το αδιέξοδο ο συγχρονισμός το αυξημένο κόστος εναλλαγής των διεργασιών 69

70 9. Διαδιεργασιακή επικοινωνία (IPC) Οι διεργασίες σε ένα υπολογιστικό σύστημα δεν ενεργούν ανεξάρτητα η μια από την άλλη. Η διαδιεργασιακή επικοινωνία (Inter-Process Communication - IPC) είναι ένας μηχανισμός που επιτρέπει στις διεργασίες να επικοινωνούν και να συγχρονίζουν τις ενέργειές τους. Είναι απαραίτητη σε δικτυακά περιβάλλοντα καθώς και σε περιβάλλοντα πολυπρογραμματισμού. Με ποιους τρόπους επικοινωνούν οι διεργασίες μεταξύ τους; 70

71 H διαδιεργασιακή επικοινωνία μπορεί να επιτευχθεί με : τη συνεργασία και τον ανταγωνισμό Η συνεργασία και ο ανταγωνισμός των διεργασιών απαιτούν την κατάλληλη υποστήριξη του Λ.Σ. Η συνεργασία εξαρτάται από την ύπαρξη μηχανισμού ελέγχου των διαμοιραζόμενων δεδομένων και την ανταλλαγή σημάτων συγχρονισμού. Ο ανταγωνισμός απαιτεί προσεκτική εκχώρηση και προστασία πόρων. Κατά τη σχεδίαση των Λ.Σ. πρέπει να λαμβάνονται υπόψη όλες αυτές οι απαιτούμενες και συχνά αλληλοσυγκρουόμενες προδιαγραφές. 71

72 Τρόποι διαδιεργασιακής επικοινωνίας Διαμοιραζόμενη μνήμη (shared memory) ανάγνωση/εγγραφή σε διαμοιραζόμενη περιοχή της μνήμης Σηματοφορείς (semaphores) σήματα που ενημερώνουν για διεργασίες σε αναμονή Διακοπές λογισμικού (software interrupts) οι διεργασίες ενημερώνονται ασύγχρονα Διασωληνώσεις (pipes) επικοινωνία αλληλουχίας διεργασιών με χρήση streams Μεταβίβαση μηνυμάτων (message passing) διεργασίες που στέλνουν και λαμβάνουν μηνύματα. 72

73 Προβλήματα IPC Κατά τη διαδιεργασιακή επικοινωνία είναι ενδεχόμενο να προκύψουν προβλήματα που πρέπει να αντιμετωπισθούν ή να προβλεφθούν. Όταν η επικοινωνία είναι ουσιαστική, το Λ.Σ. πρέπει να διαχειριστεί κυρίως: το συγχρονισμό (synchronization) τον αμοιβαίο αποκλεισμό (mutual exclusion) το αδιέξοδο (deadlock) 73

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

75 10. Χρήση πόρων Οι πόροι (resources) του συστήματος μπορεί να είναι διαμοιραζόμενοι (shareable) δηλ. μπορούν να χρησιμοποιούνται από πολλές διεργασίες που εξελίσσονται ταυτόχρονα ή μη διαμοιραζόμενοι (non-shareable) όπου η χρήση τους περιορίζεται σε μια μόνο διεργασία κάθε φορά. Ο μη διαμοιρασμός ενός πόρου οφείλεται στους παρακάτω λόγους: στη φύση του πόρου η παράλληλη χρησιμοποίηση του πόρου από διαφορετικές διεργασίες προκαλεί την σύγκρουση δραστηριοτήτων διαφορετικών διεργασιών 75

76 Διαχειριστής πόρων Process Process Requests Allocate Release Resource Manager Release Allocate Process Release Allocate Resource Pool 76

77 Κοινή χρήση πόρων Σε ορισμένα Λ.Σ. συνεργαζόμενες διεργασίες μοιράζονται συχνά την ίδια περιοχή μνήμης, για εγγραφή και ανάγνωση δεδομένων. Η περιοχή αυτή μπορεί να βρίσκεται στην κύρια μνήμη ή να είναι ένα διαμοιραζόμενο αρχείο δίσκου. Ωστόσο η θέση αυτής της περιοχής δε μεταβάλλει ούτε την υφή της επικοινωνίας, ούτε και τα ζητήματα που προκύπτουν. Παραδείγματα : μια θέση μνήμης που περιέχει μια μεταβλητή προσπελάσιμη από περισσότερες από μια διεργασίες (π.χ.σύστημα κράτησης θέσεων πτήσεων). διεκπεραιωτής ετεροχρονισμένης εκτύπωσης (spooler) 77

78 Το Λ.Σ. πρέπει να προστατεύει έναν πόρο από την πιθανότητα «να παραποιηθεί» Χειριστής 1 Χειριστής 2 τελευταία θέση στην πτήση

79 ο ταξιδ. πράκτορας Α βλέπει ότι η θέση Χ είναι ελεύθερη και συμβουλεύεται τον πελάτη του Ο ταξιδ. πράκτορας Α κλείνει τη θέση Χ ο ταξιδ. πράκτορας Β βλέπει ότι η θέση Χ είναι ελεύθερη και συμβουλεύεται τον πελάτη του Ο ταξιδ. πράκτορας Β κλείνει τη θέση Χ 79

80 Διεκπεραιωτής ετεροχρονισμένης εκτύπωσης (spooler) ΔΙΕΡΓΑΣΙΑ Α ΔΙΕΡΓΑΣΙΑ Β κατάλογος ετεροχρονισμένης εκτύπωσης abc prog.c prog.n out = 4 in = 7 Δύο διεργασίες επιθυμούν πρόσβαση σε διαμοιραζόμενη μνήμη την ίδια χρονική στιγμή Spooler directory Printer daemon... 80

81 Η διεργασία Α διαβάζει την τιμή της in και αποθηκεύει την τιμή 7 σε μια τοπική μεταβλητή. Μια διακοπή χρονιστή (clock interrupt) επιβάλλει την εκτέλεση της διεργασίας Β. Η Β διαβάζει την τιμή της in, αποθηκεύει το όνομα του προς εκτύπωση αρχείου και αυξάνει την τιμή της in κατά 1, δηλ. in=8. Η Α συνεχίζει από το σημείο διακοπής δηλ. καταχωρεί το όνομα του προς εκτύπωση αρχείου και αυξάνει την τιμή της in κατά 1 δηλαδή in=8. Το spooler directory είναι εσωτερικά συνεπές. Η διεργασία Β δεν θα λάβει ποτέ την εκτύπωσή της. 81

82 Spooler Ο spooler παρέχει τον τρόπο για ταυτόχρονη χρήση συσκευών Ι/Ο σε συστήματα πολυπρογραμματισμού. Επιτρέπει την επικάλυψη ανάμεσα σε συσκευές Ι/Ο και σε ένα πλήθος διεργασιών που απαιτούν εξυπηρέτηση, διατηρώντας έτσι τους ρυθμούς χρήσης της CPU και των συσκευών I/O υψηλούς. 82

83 11. Αλληλεπίδραση διεργασιών Σύστημα πολυπρογραμματισμού : ένα σύστημα που μοιράζει το χώρο της μνήμης του και διανέμει το χρόνο της CPU σε περισσότερες από μια διεργασίες. Σε πολύ-προγραμματιστικό σύστημα ενός επεξεργαστή οι διεργασίες εναλλάσσονται ώστε να δίνουν την εικόνα της ταυτόχρονης εκτέλεσης, ενώ σε συστήματα πολλών επεξεργαστών είναι δυνατή και η επικάλυψη των διεργασιών. Και στις δύο περιπτώσεις τα προβλήματα κατά τη διαδιεργασιακή επικοινωνία προέρχονται από ένα βασικό χαρακτηριστικό των πολύ-προγραμματιστικών συστημάτων: η ταχύτητα εκτέλεσης των διεργασιών δεν μπορεί να προβλεφθεί. 83

84 Δυσκολίες που προκύπτουν λόγω της αλληλεπίδρασης των διεργασιών : η διαμοίραση και η ανάθεση των πόρων το Λ.Σ. συνήθως δεν διαχειρίζεται την ανάθεση των πόρων με βέλτιστο τρόπο εντοπισμός των προγραμματιστικών σφαλμάτων (τα αποτελέσματα είναι μη αιτιοκρατικά (nondeterministic) ) 84

85 Θέματα του Λ.Σ. Η ύπαρξη της συνταύτισης πολλών διεργασιών δημιουργεί τα εξής προβλήματα, που πρέπει να ληφθούν υπόψη κατά τη σχεδίαση και τη διαχείριση του Λ.Σ. : 1. Το Λ.Σ. θα πρέπει να μπορεί να παρακολουθεί τις ενεργές διεργασίες (χρήση των μπλοκ ελέγχου διεργασιών). 2. Το Λ.Σ. θα πρέπει να αναθέτει και να απελευθερώνει πόρους από κάθε ενεργή διεργασία. Οι πόροι αυτοί περιέχουν: Χρόνο επεξεργαστή, Μνήμη, Αρχεία, Συσκευές Ι/Ο 3. Το Λ.Σ. θα πρέπει να προστατεύει τα δεδομένα και τους φυσικούς πόρους κάθε διεργασίας από τη μη σκόπιμη παρέμβαση άλλων διεργασιών. 4. Τα αποτελέσματα μιας διεργασίας πρέπει να είναι ανεξάρτητα της ταχύτητας εκτέλεσης της διεργασίας. Ο επόμενος πίνακας παρουσιάζει τους τρόπους αλληλεπίδρασης των διεργασιών ως προς τον βαθμό που η μια γνωρίζει την ύπαρξη της άλλης. 85

86 Τρόποι αλληλεπίδρασης διεργασιών Επιρροή που έχει η μια στην άλλη Ενδεχόμενα προβλήματα ελέγχου Οι διεργασίες αγνοούν η μια την άλλη Ανταγωνισμός Τα αποτελέσματα της διεργασίας είναι ανεξάρτητα των λειτουργιών άλλων διεργασιών Ο χρονοπρογραμματισμός της διεργασίας μπορεί να επηρεαστεί Αμοιβαίος αποκλεισμός Αδιέξοδο Παρατεταμένη στέρηση Οι διεργασίες γνωρίζουν έμμεσα η μια την άλλη Συνεργασία μέσω διαμοίρασης Τα αποτελέσματα μιας διεργασίας μπορεί να εξαρτώνται από πληροφορίες άλλων διεργασιών Ο χρονοπρογραμματισμός της διεργασίας μπορεί να επηρεαστεί Αμοιβαίος αποκλεισμός Αδιέξοδο Παρατεταμένη στέρηση Συνοχή δεδομένων Οι διεργασίες γνωρίζουν άμεσα η μια την άλλη Συνεργασία μέσω επικοινωνίας Τα αποτελέσματα μιας διεργασίας μπορεί να εξαρτώνται από πληροφορίες άλλων διεργασιών Αδιέξοδο Παρατεταμένη στέρηση Ο χρονοπρογραμματισμός της διεργασίας μπορεί να επηρεαστεί 86

87 Συνεργαζόμενες διεργασίες Οι συνεργαζόμενες διεργασίες μπορούν να επηρεάσουν ή να επηρεαστούν από την εκτέλεση μιας άλλης διεργασίας Πλεονεκτήματα από τη συνεργασία των διεργασιών Διαμοίραση πληροφοριών Αύξηση της ταχύτητας υπολογισμού Δυνατότητα τμηματοποίησης 87

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

89 Συνεργασία διεργασιών μέσω επικοινωνίας Οι διεργασίες συμμετέχουν σε μια κοινή προσπάθεια που τις συνδέει μεταξύ τους. Η επικοινωνία παρέχει έναν τρόπο συγχρονισμού και συντονισμού των διαφόρων δραστηριοτήτων και υλοποιείται μέσω μηνυμάτων. Παρουσιάζονται τα προβλήματα του αδιεξόδου και της παρατεταμένης στέρησης. 89

90 Συνθήκες ανταγωνισμού Οι συνθήκες κατά τις οποίες δύο ή περισσότερες διεργασίες διαμοιράζονται την ίδια περιοχή μνήμης και το τελικό αποτέλεσμα εξαρτάται από τη σειρά αλλά και το χρόνο εκτέλεσής τους, λέγονται συνθήκες ανταγωνισμού. Η διόρθωση προγραμμάτων που περιλαμβάνουν συνθήκες ανταγωνισμού δεν είναι ούτε ευχάριστη, ούτε εύκολη. Τα σφάλματα παρουσιάζονται τυχαία και μόνο κατά τη διενέργεια αλλεπάλληλων ελέγχων. Ο έλεγχος του ανταγωνισμού αφορά αναπόφευκτα το Λ.Σ. διότι αυτό κάνει ανάθεση πόρων, άρα οποιαδήποτε λύση θα αφορά και υποστήριξη από το Λ.Σ. 90

91 Στην περίπτωση ανταγωνιζόμενων διεργασιών πρέπει να αντιμετωπιστούν τρία προβλήματα ελέγχου: Αδιέξοδο (deadlock) Παρατεταμένη στέρηση (starvation) Αμοιβαίος αποκλεισμός (mutual exclusion) 91

92 Αδιέξοδο (Deadlock) Μόνιμη αναστολή ενός συνόλου διεργασιών που είτε ανταγωνίζονται για ένα κοινό πόρο του συστήματος είτε επικοινωνούν μεταξύ τους Η κατάσταση κατά την οποία δύο ή περισσότερες διεργασίες δεν μπορούν να έχουν πρόσβαση στους πόρους που χρειάζονται. Παράδειγμα: Η διεργασία A απαιτεί αποκλειστική πρόσβαση στους πόρους R,S για να συνεχίσει τους υπολογισμούς της Η διεργασία B απαιτεί αποκλειστική πρόσβαση στους πόρους S,R για να συνεχίσει τους υπολογισμούς της Η διεργασία A δεσμεύει αποκλειστικά τον R και προσπαθεί να δεσμεύσει και τον S Η διεργασία B δεσμεύει αποκλειστικά τον S και προσπαθεί να δεσμεύσει και τον R Οι διεργασίες A και B έχουν εισέλθει σε αδιέξοδο! 92

93 Σενάριο αδιεξόδου προειδοποίηση: πιθανό αδιέξοδο 93

94 Απλό αδιέξοδο κατά τη χρήση πόρων Το σύστημα αυτό βρίσκεται σε αδιέξοδο επειδή κάθε διεργασία δεσμεύει έναν πόρο που απαιτείται από την άλλη διεργασία και καμία διεργασία δεν είναι πρόθυμη να απελευθερώσει τον πόρο που δεσμεύει. 94

95 Παρατεταμένη στέρηση (Starvation) 95

96 Παρατεταμένη στέρηση (Starvation) 96

97 Παρατεταμένη στέρηση (Starvation) 97

98 Παρατεταμένη στέρηση (Starvation) Η κατάσταση στην οποία μερικές διεργασίες σημειώνουν πρόοδο οδεύοντας προς την ολοκλήρωσή τους ενώ μερικές άλλες δεν μπορούν να έχουν πρόσβαση στους πόρους τους. Παράδειγμα : Client 1 Client 2 Server Client n Πολιτική επιλογής εργασίας: Πάντα επιλέγεται η εργασία με την μικρότερη χρονική διάρκεια εξυπηρέτησης 98

99 Αδιέξοδο & παρατεταμένη στέρηση : σύγκριση Η παρατεταμένη στέρηση συμβαίνει όταν μια διεργασία αναμένει ένα πόρο που διαρκώς καθίσταται μη διαθέσιμος, αλλά δεν εκχωρείται ποτέ στη διεργασία αυτή λόγω προτεραιοτήτων ή προβλημάτων κατά τη σχεδίαση του δρομολογητή διεργασιών του συστήματος. Στην παρατεταμένη στέρηση, δεν είναι σίγουρο ότι η διεργασία θα δεσμεύσει κάποτε τον πόρο που χρειάζεται, ενώ μια διεργασία σε αδιέξοδο είναι μόνιμα μπλοκαρισμένη. Στην παρατεταμένη στέρηση ο πόρος που απαιτείται από τη διεργασία βρίσκεται σε συνθήκες ανταγωνισμού και σε διαρκή χρήση, γεγονός που δεν είναι αληθές για την κατάσταση του αδιεξόδου. 99

100 Ενεργός αναμονή (livelock) Η κατάσταση κατά την οποία κάποια κρίσιμο τμήμα μιας διεργασίας αδυνατεί να ολοκληρωθεί. Παράδειγμα - σενάριο : αποφυγή αδιεξόδου με απόσυρση (οπισθοχώρηση) Η διεργασία A απαιτεί αποκλειστική πρόσβαση στους πόρους R,S για να συνεχίσει τους υπολογισμούς της Η διεργασία B απαιτεί αποκλειστική πρόσβαση στους πόρους S,R για να συνεχίσει τους υπολογισμούς της Η διεργασία A δεσμεύει αποκλειστικά τον R και προσπαθεί να δεσμεύσει και τον S Η διεργασία B δεσμεύει αποκλειστικά τον S και προσπαθεί να δεσμεύσει και τον R Για την αποφυγή αδιεξόδου, η διεργασία A παραχωρεί τον πόρο R για μια περίοδο και επανακτά τον πόρο S ενώ ταυτόχρονα η διεργασία B κάνει το ίδιο 100

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1 ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος

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

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

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

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

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

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

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

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

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

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

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

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

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

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

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

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

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 2

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 2 Λειτουργικά Συστήματα & Γλώσσες Προγραμματισμού Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 2 1 Λειτουργικά Συστήματα & Γλώσσες Προγραμματισμού Διαφάνειες σύμφωνα με

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ H/Y

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ H/Y ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΙΟΙΚΗΣΗΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ H/Y ΠΑΝΑΓΙΩΤΗΣ ΧΑΤΖΗ ΟΥΚΑΣ ΑΡΤΑ 2007 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Κεφάλαιο 1 Εισαγωγή... 1 1.1 Ορισµός λειτουργικού

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,

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

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

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

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

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

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

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

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

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

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

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

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

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

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

Κεφάλαιο 3: Λειτουργικά Συστήματα

Κεφάλαιο 3: Λειτουργικά Συστήματα Κεφάλαιο 3: Λειτουργικά Συστήματα (από το βιβλίο του Brookshear) B Μέρος Συντονισμός Δραστηριοτήτων Υπολογιστή Εισαγωγή Σήμερα θα περιγράψουμε πως ένα λειτουργικό σύστημα συντονίζει την εκτέλεση Λογισμικού

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

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

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

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

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

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

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

ΛΟΓΙΣΜΙΚΟ (software)

ΛΟΓΙΣΜΙΚΟ (software) ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων

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

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

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

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

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

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

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

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

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

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

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Τι είναι το υλικό ενός υπολογιστικού συστήματος; Το σύνολο των ηλεκτρονικών και μηχανικών μερών του που έχουν

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση

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

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

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

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

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

Εικονική Μνήμη (1/2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

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

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

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

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

Δείγμα σημειώσεων για τα Λειτουργικά Συστήματα για τις εξετάσεις του ΑΣΕΠ Εκπαιδευτικών ΠΕ19-ΠΕ20

Δείγμα σημειώσεων για τα Λειτουργικά Συστήματα για τις εξετάσεις του ΑΣΕΠ Εκπαιδευτικών ΠΕ19-ΠΕ20 Δείγμα σημειώσεων για τα Λειτουργικά Συστήματα για τις εξετάσεις του ΑΣΕΠ Εκπαιδευτικών ΠΕ19-ΠΕ20 Υλικολογικό (firmware) Υπάρχει επίσης και το υλικολογικό (firmware) που είναι ένα σύνολο από μικροπρογράμματα

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

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

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

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

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

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

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

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

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

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