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

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

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

Transcript

1 Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Συνοπτικές Σημειώσεις για το μάθημα Λειτουργικά Συστήματα Μάνος Ρουμελιώτης Καθηγητής Θεσσαλονίκη, Μάιος

2 1 Εισαγωγή Το λειτουργικό σύστημα είναι το σύνολο των προγραμμάτων ενός υπολογιστικού συστήματος πού καλύπτει τον έλεγχο των διάφορων συσκευών του συστήματος καθώς και την επικοινωνία του χρήστη με το σύστημα. Τα προγράμματα αυτά προσπαθούν να κάνουν πιο αποδοτικό το σύστημα, να απλοποιήσουν τη χρήση του, και να βελτιστοποιήσουν την απόδοσή του. Αν δούμε το λειτουργικό σύστημα σαν διαχειριστή των υποσυστημάτων του συστήματος, τότε θα πρέπει να εκτελεί τις εξής λειτουργίες: 1. Επιβλέπει τη χρήση των υποσυστημάτων 2. Καθορίζει ποιός παίρνει τι, πότε, και πόσο. Απονέμει το υποσύστημα 4. Επανακτά το υποσύστημα Τα κυριώτερα υποσυστήματα πού ελέγχονται από το λειτουργικό σύστημα είναι: Η κυρίως μνήμη, η CPU, οι μονάδες εισόδου/εξόδου, και οι πληροφορίες. 1.1 Λειτουργίες διαχείρισης της μνήμης 1. Επιβλέπει τη χρήση της κυρίως μνήμης. Ποιά τμήματα χρησιμοποιούνται και από ποιόν, ποιά τμήματα είναι ελεύθερα (free). 2. Αν το σύστημα χρησιμοποιεί multiprogramming 1, αποφασίζει για το ποιά διεργασία παίρνει μνήμη, πότε θα την πάρει, και πόση θα πάρει.. Απονέμει το υποσύστημα (μνήμη) όταν η διεργασία την ζητήσει και η διαδικασία 2 το επιτρέπει. 4. Επανακτά τη μνήμη όταν η διεργασία δεν τη χρειάζεται πλέον. 1.2 Λειτουργίες διαχείρισης του processor 1. Επιβλέπει τη χρήση του ή των processor(s). Το πρόγραμμα που το κάνει αυτό λέγεται (traffic controller). 2. Αποφασίζει για το ποιός θα χρησιμοποιήσει τον processor. Το πρόγραμμα που το κάνει αυτό λέγεται processor scheduler.. Απονέμει το υποσύστημα (processor) τροποποιώντας τα περιεχόμενα κάποιων καταχωρητών (registers) στο hardware. Αυτό λέγεται συνήθως dispatcher. 4. Επανακτά τoν processor όταν η process τερματιστεί, απελευθερώσει τον processor, ή υπερβεί τον επιτρεπόμενο χρόνο χρήσης. 1. Λειτουργίες διαχείρισης περιφερειακών μονάδων 1 Ο όρος Multiprogramming χρησιμοποιείται για να υποδηλώσει την ταυτόχρονη "εκτέλεση" πολλών προγραμμάτων. Αυτό σημαίνει ότι πολλά προγράμματα είναι στην κατάσταση εκτέλεσης, χωρίς όμως να σημαίνει ότι η CPU τα εκτελεί ταυτόχρονα. Απλώς είτε βρίσκονται στην κυρίως μνήμη περιμένοντας τη σειρά τους για εκτέλεση, είτε περιμένουν τον τερματισμό κάποιας λειτουργίας εισόδου/εξόδου. Μόνο ένα πρόγραμμα εκτελείται πραγματικά από την CPU κάποια δεδομένη χρονική στιγμή. 2

3 1. Επιβλέπει τη χρήση των μονάδων εισόδου/εξόδου. Αυτό λέγεται συνήθως I/O traffic controller. 2. Αποφασίζει για το ποιά process θα χρησιμοποιήσει κάποια μονάδα, και για πόσο διάστημα. Αυτό λέγεται I/O scheduler.. Απονέμει το περιφερειακό και το ενεργοποιεί. 4. Επανακτά το περιφερειακό όταν η process δεν το χρειάζεται πλέον. 1.4 Λειτουργίες διαχείρισης της πληροφορίας 1. Επιβλέπει τη χρήση της πληροφορίας, την θέση της, τη χρήση της κλπ. Το σύνολο των λειτουργιών αυτών λέγεται file system. 2. Αποφασίζει για το ποιός θα χρησιμοποιήσει την πληροφορία, επιβάλει τις απαιτήσεις προστασίας, και διαθέτει τις υπορρουτίνες προσπέλασης.. Απονέμει την πληροφορία όταν η process τη ζητήσει. (δηλ. open file). 4. Επανακτά την πληροφορία όταν η process δεν τη χρειάζεται πλέον (δηλ. close file). 2 Λειτουργίες διαχείρισης της μνήμης Η διαχείριση της μνήμης από το λειτουργικό σύστημα εξαρτάται από πολλούς παράγοντες: πόση μνήμη έχει το σύστημα, αν το χρησιμοποιούν ένας ή πολλοί χρήστες, αν κάνει multiprogramming ή όχι κλπ. Θα εξετάσουμε τους δύο κυριώτερους τρόπους διαχείρισης της μνήμης, single contiguous allocation, και partitioned allocation. 2.1 Single contiguous allocation Η μέθοδος αυτή είναι πολύ απλή και δε χρειάζεται συγκεκριμένα χαρακτηριστικά από το hardware. Χρησιμοποιείται κυρίως σε μικρά συστήματα όπως το IBM PC που δεν χρησιμοποιούν multiprogramming. Η μνήμη απονέμεται σε ένα μόνο job, όπως φαίνεται στο Σχήμα 2.1. Operating System Available (allocated) for user's job Actually used by job Allocated but unused (wasted) Σχήμα 2.1 Single contiguous allocation Στην ουσία η μνήμη χωρίζεται σε τρία συνεχή τμήματα. Ένα μέρος της μνήμης ανήκει στο λειτουργικό σύστημα και χρησιμοποιείται συνεχώς απ' αυτό. Η υπόλοιπη μνήμη είναι

4 διαθέσιμη και απονέμεται στο μοναδικό job που εκτελείται από το σύστημα. Αυτό το job μπορεί να μην χρησιμοποιήσει όλη τη διαθέσιμη μνήμη, στην οποία περίπτωση το υπόλοιπο της μνήμης μένει αχρησιμοποίητο. 2.2 Partitioned allocation Όταν το σύστημα χρησιμοποιεί multiprogramming, όλα τα jobs πού εκτελούνται από την CPU θα πρέπει να βρίσκονται στη μνήμη. Το λειτουργικό σύστημα χωρίζει τη μνήμη σε τμήματα (partitions) και βάζει το κάθε job σε διαφορετικό τμήμα (Σχήμα 2.2) Operating System Partition 1 Job 1 Job 1's address space Partition 2 Job 2 Job 2's address space Partition Unassigned space Job Job 's address space Σχήμα 2.2 Partitioned allocation Υπάρχουν διάφοροι τρόποι να καθορισθούν τα τμήματα της μνήμης πού απαιτούνται για κάθε job, καθώς επίσης και το ποιά jobs θα μπουν στη μνήμη για εκτέλεση Static Allocation Κατά την στατική απονομή της μνήμης, το λειτουργικό σύστημα ελέγχει τα jobs πού περιμένουν για εκτέλεση και καθορίζει την ποσότητα της μνήμης που χρειάζεται το καθένα. Κατόπιν, τα jobs που χωρούν στην διαθέσιμη μνήμη μπαίνουν στη μνήμη και εκτελούνται. Η διαδικασία επαναλαμβάνεται όταν η εκτέλεση όλων των jobs που είναι στην μνήμη τερματιστεί. Η μέθοδος αυτή δεν κάνει καλή διαχείριση της μνήμης γιατί η μνήμη που απελευθερώνεται από κάποιο job πού τερματίστηκε δεν μπορεί να ξαναχρησιμοποιηθεί πριν τερματισθούν όλα τα jobs που βρίσκονται στη μνήμη Dynamic allocation καί reallocation Κατά τη δυναμική κατανομή της μνήμης, το λειτουργικό σύστημα διατηρεί έναν πίνακα με τη θέση και το μέγεθος των ελεύθερων τμημάτων της μνήμης. Όταν ένα νέο job είναι έτοιμο για εκτέλεση, τα ελεύθερα τμήματα της μνήμης ελέγχονται για να βρεθεί κάποιο που να χωράει το job (Σχήμα 2.). Στην περίπτωση αυτή, το τμήμα αυτό απονέμεται στο job το οποίο μπορεί τώρα να αρχίσει να εκτελείται. Όταν η εκτέλεση ενός job τερματισθεί, το 4

5 τμήμα της μνήμης πού καταλάμβανε σημειώνεται ως ελεύθερο και καταχωρείται στον πίνακα της ελεύθερης μνήμης Operating System Operating System Operating System 20K 6K Job 1 (16K) 20K 6K Job 1 (16K) 20K 6K Job 1 (16K) Job 2 (2K) Job 2 (2K) Free (2K) 68K 84K Free (16K) 68K 76K 84K Job 4 (8K) Free (8K) 68K 76K Job 4 (8K) Job (80K) Job (80K) Free (88K) 464K 464K 528K Job 5 (64K) 464K 528K Job 5 (64K) Job 6 (280K) Job 6 (280K) 808K 808K 1024K 1024K 1024K initial state jobs 4,5, and 6 jobs 2 and allocated partitions terminated Σχήμα 2. Partition allocation and deallocation Για την απονομή κάποιου τμήματος της ελεύθερης μνήμης σε ένα νέο job χρησιμοποιείται ένας από τους εξείς δύο αλγόριθμους: First fit algorithm. Το πρώτο τμήμα της ελεύθερης μνήμης που μπορεί να χωρέσει το job απονέμεται στο job αυτό. Best fit algorithm. Το μικρότερο τμήμα της ελεύθερης μνήμης πού μπορεί να χωρέσει το job απονέμεται στο job αυτό. Είναι προφανές ότι ο δεύτερος αλγόριθμος κάνει καλύτερη διαχείριση της μνήμης από τον πρώτο γιατί δημιουργεί μικρότερα αχρησιμοποίητα τμήματα μνήμης. Και με τους δύο αλγόριθμους όμως, μετά από κάποιο διάστημα λειτουργίας δημιουργείται ο λεγόμενος κατακερματισμός (fragmentation) της μνήμης. Υπάρχουν, δηλαδή, πολλά μικρά τμήματα ελεύθερης μνήμης πού δε μπορούν να χρησιμοποιηθούν από κανένα job γιατί είναι πολύ μικρά. Το λειτουργικό σύστημα εκτελεί τότε μια διαδικασία σύμπτυξης (compaction) της μνήμης μεταφέροντας τα jobs που υπάρχουν στην μνήμη το ένα μετά το άλλο. Αυτό δημιουργεί ένα μόνο μεγάλο τμήμα ελεύθερης μνήμης στο τέλος της διαθέσιμης μνήμης. 5

6 Φυσικά, για να μπορέσει να εκτελεσθεί αυτή η σύμπτυξη τα προγράμματα θα πρέπει να μπορούν να επανατοποθετηθούν σε άλλη θέση της μνήμης. Αυτό γίνεται όταν τα προγράμματα είναι relocatable, αναφέρονται, δηλαδή, σε σχετικές θέσεις της μνήμης και όχι σε απόλυτες. 2. Ιδεατή μνήμη και κρυφή μνήμη (virtual and cashe memory) Η ιδεατή μνήμη είναι μια από τις πιο σημαντικές λειτουργίες ενός λειτουργικού συστήματος που κάνει διαχείριση μνήμης. Η βασική ιδέα είναι να δώσει τη δυνατότητα σε ένα πρόγραμμα να χρησιμοποιήσει περισσότερες θέσεις μνήμης από αυτές πού είναι διαθέσιμες στη φυσική μνήμη. Μια διεύθυνση που παράγεται από ένα πρόγραμμα του χρήστη λέγεται ιδεατή διεύθυνση. Το σύνολο όλων των ιδεατών διευθύνσεων αποτελεί τον ιδεατό χώρο μνήμης. Η πραγματικά υπάρχουσα (ή φυσική) μνήμη έχει αντίστοιχα ένα συγκεκριμένο σύνολο διευθύνσεων πού αποτελούν το φυσικό χώρο μνήμης. Σε ένα σύστημα που χρησιμοποιεί ιδεατή μνήμη, ο ιδεατός χώρος μνήμης είναι πολύ μεγαλύτερος από το φυσικό χώρο. Η ιδεατή μνήμη απελευθερώνει τον προγραμματιστή από τους περιορισμούς της φυσικής μνήμης, έτσι ώστε να μπορεί να γράψει προγράμματα που να χρησιμοποιούν τεράστιο χώρο. Θα πρέπει να υπάρχει όμως κάποιος μηχανισμός πού να χωρίζει τον μεγάλο ιδεατό χώρο μνήμης ενός προγράμματος σε μικρότερα τμήματα που να χωρούν στη φυσική μνήμη. Αυτό μπορεί να γίνει είτε από τον ίδιο τον προγραμματιστή είτε από το λειτουργικό σύστημα. Συνήθως είναι το λειτουργικό σύστημα πού αναλαμβάνει την διαχείριση της ιδεατής μνήμης έτσι ώστε ο προγραμματιστής να μην χρειάζεται να γνωρίζει τις ιδιαιτερότητες διαχείρισης της μνήμης. Υπάρχουν δύο τρόποι διαχείρισης της ιδεατής μνήμης: Συστήματα σελίδων (paging systems) Συστήματα τμημάτων (Segmentation systems) 2..1 Paging systems Σε ένα σύστημα σελίδων, ο ιδεατός χώρος μνήμης χωρίζεται σε blocks ίσου μεγέθους που λέγονται σελίδες. Η φυσική μνήμη χωρίζεται αντίστοιχα σε blocks ίσου μεγέθους που λέγονται πλαίσια. Το μέγεθος της σελίδας είναι ίσο με το μέγεθος του πλαισίου. Στα συστήματα σελίδων, η ιδεατή διεύθυνση μπορεί να θεωρηθεί σαν ένα διατεταγμένο ζεύγος [p,n], όπου p είναι ο αριθμός σελίδας και n είναι ο αριθμός της λέξης μέσα στη σελίδα. Το n λέγεται displacement ή offset. Μία σελίδα p του προγράμματος ενός χρήστη μπορεί να τοποθετηθεί σε οποιοδήποτε πλαίσιο f της φυσικής μνήμης. Μιας και ολόκληρος ο ιδεατός χώρος του προγράμματος μπορεί να μην χωράει στην φυσική μνήμη, ένα αντίγραφο του ιδεατού χώρου διατηρείται πάντα σε δευτερεύουσα μνήμη. Το πρόγραμμα έχει προσπέλαση σε μία σελίδα, αν η σελίδα αυτή βρίσκεται στη κυρίως μνήμη. Σε ένα σύστημα σελίδων, οι σελίδες έρχονται από την δευτερεύουσα μνήμη στη κυρίως μνήμη δυναμικά. Όλες οι ιδεατές διευθύνσεις μνήμης του προγράμματος ενός χρήστη, πρέπει να μετατραπούν σε φυσικές διευθύνσεις της κυρίως μνήμης όπως φαίνεται στο σχήμα 2.4. Όταν το πρόγραμμα που τρέχει κάνει αναφορά στη διεύθυνση q=[p,n] της ιδεατής μνήμης, ο αλγόριθμος μετάφρασης βρίσκει ότι η σελίδα p βρίσκεται στο φυσικό πλαίσιο f. Η φυσική διεύθυνση καθορίζεται από το συνδυασμό των f και n. 6

7 Virtual address page number displacement Main memory p n 0th 1st p Page mapping algorithm f n f+n f frames 2nd Page frame numbers f th Σχήμα 2.4 Μετάφραση ιδεατής διεύθυνσης σε φυσική διεύθυνση. Η μετάφραση αυτή μπορεί να γίνει μόνο όταν η απαιτούμενη σελίδα βρίσκεται σε κάποιο πλαίσιο της φυσικής μνήμης. Στην πράξη όμως, αυτό δεν συμβαίνει πάντα. Όταν η απαιτούμενη σελίδα δεν βρίσκεται στη κυρίως μνήμη, έχουμε σφάλμα σελίδας (page fault). Αυτό προκαλεί στην πραγματικότητα ένα interrupt για το λειτουργικό σύστημα. Η υπορρουτίνα που χειρίζεται αυτό το interrupt λέγεται page-fault handler, και τα βήματα πού ακολουθεί είναι τα εξής: 1. Η θέση της απαιτούμενης σελίδας στη δευτερεύουσα μνήμη διαβάζεται από τον πίνακα σελίδων. 2. Η σελίδα p μεταφέρεται από τη δευτερεύουσα μνήμη σε ένα πλαίσιο της κυρίως μνήμης.. Ο πίνακας σελίδων ενημερώνεται με τον αριθμό του πλαισίου που περιέχει την σελίδα p. Όταν η υπορρουτίνα μεταφοράς των σελίδων τερματισθεί, ο έλεγχος μεταφέρεται στο πρόγραμμα του χρήστη. Υπάρχουν διάφορες πολιτικές για τη μεταφορά σελίδων από τη δευτερεύουσα μνήμη στην κυρίως μνήμη. Η πολιτική πού καθορίζει ποιά σελίδα θα μεταφερθεί από την δευτερεύουσα μνήμη, λέγεται fetch policy. Εδώ θα πρέπει να σημειωθεί ότι οι σελίδες δεν μεταφέρονται μόνο όταν ζητηθούν. Ανάλογα με τον αλγόριθμο του fetch policy μπορεί να έχουμε μια μεταφορά σελίδας από τη δευτερεύουσα μνήμη στην κυρίως μνήμη, ακόμα και αν δεν έχει ζητηθεί. Αν όλα τα διαθέσιμα πλαίσια της κυρίως μνήμης είναι κατειλημμένα όταν μια σελίδα πρέπει να μεταφερθεί από τη δευτερεύουσα μνήμη, τότε κάποιο από τα πλαίσια πρέπει να αφαιρεθεί από την κυρίως μνήμη και να τοποθετηθεί πίσω στην δευτερεύουσα. Η πολιτική πού καθορίζει ποιό πλαίσιο θα αφαιρεθεί από την κυρίως μνήμη λέγεται replacement policy Segmentation systems Η τεχνική του paging που είδαμε μέχρι τώρα είναι μια μονοδιάστατη τεχνική γιατί η διεύθυνση της ιδεατής μνήμης αυξάνει γραμμικά από το 0 μέχρι κάποια τιμή Μ. Σε μερικές περιπτώσεις, είναι σκόπιμο να έχουμε μια πολυδιάστατη τεχνική. Αυτό ακριβώς κάνει ένα segmentation system. 7

8 Στα segmentation systems κάθε λογική ενότητα, όπως είναι το stack, μια υπορρουτίνα, ή ένας πίνακας δεδομένων, μπορεί να έχει το δικό της χώρο ιδεατής μνήμης. Κάθε χώρος ιδεατής μνήμης λέγεται segment. Αφού και κάθε segment αναφέρεται σε διαφορετικό χώρο ιδεατής μνήμης, μπορεί να αυξηθεί ή να μειωθεί ανεξάρτητα από τα άλλα segments. Τα στοιχεία κάθε segment ενός συστήματος διατηρούνται σε έναν πίνακα που λέγεται segmentation table. Κάθε εγγραφή στον πίνακα αυτό περιλαμβάνει τα ακόλουθα στοιχεία: 1. Segment base address b (η αρχική διεύθυνση του segment στην κυρίως μνήμη). 2. Μήκος του segment l. Segment presence bit (καθορίζει αν το segment βρίσκεται στην κυρίως μνήμη ή όχι) 4. Protection bits (καθορίζουν προστασία για το segment). Είναι προφανές ότι μπορούμε να έχουμε segments με διαφορετικό μήκος το καθένα. Αν το μήκος l από όλα τα segments είναι το ίδιο, τότε το σύστημα είναι παρόμοιο με το paging σύστημα. Η μετάφραση της ιδεατής διεύθυνσης γίνεται με παρόμοιο τρόπο με αυτόν του paging. Στην περίπτωση των segments όμως, ένας επιπλέον έλεγχος πρέπει να γίνει για την περίπτωση που το ofsset ή displacement είναι μεγαλύτερο από το μήκος του segment. Αυτό θα προκαλέσει πάλι ένα interrupt για το λειτουργικό σύστημα. Συνοπτικά, τα interrupts που μπορεί να έχουμε σε ένα segmentation system είναι: 1. Segment fault. Το interrupt αυτό ενεργοποιείται όταν το απαιτούμενο segment δεν βρίσκεται στην κυρίως μνήμη. 2. Address violation trap. Το interrupt αυτό ενεργοποιείται όταν η απαιτούμενη διεύθυνση μέσα στο segment είναι μεγαλύτερη από το μήκος του segment.. Protection violation trap. Το interrupt αυτό ενεργοποιείται όταν υπάρξει παραβίαση της προστασίας του segment. Τα πιο συνηθισμένα πρωτόκολλα προστασίας ενός segment είναι: 1. Read only (το πρόγραμμα μπορεί μόνο να διαβάσει από αυτό το segment). 2. Execute only (το πρόγραμμα μπορεί μόνο να εκτελέσει εντολές από αυτό το segment).. Read and execute only (το πρόγραμμα μπορεί μόνο να διαβάσει ή να εκτελέσει εντολές από αυτό το segment). 4. Unlimited access (απεριόριστη προσπέλαση). 5. No access (καμία προσπέλαση). Σε μερικά μεγάλα συστήματα χρησιμοποιούνται και οι δύο τεχνικές ιδεατής μνήμης. Πρώτα καθορίζονται τα segments ανάλογα με τις λογικές ενότητες του προγράμματος, και κατόπιν τα segments χωρίζονται σε σελίδες. Χρησιμοποιώντας την δυναμική τοποθέτηση των σελίδων και των segments στην κυρίως μνήμη, η εξής διαδικασία ακολουθείται όταν ζητηθεί μια διεύθυνση: Εξετάζεται πρώτα το segment table για να διαπιστωθεί αν το απαιτούμενο segment βρίσκεται στην κυρίως μνήμη. Αν ναι, τότε εξετάζεται ο πίνακας σελίδων για να διαπιστωθεί αν η απαιτούμενη σελίδα βρίσκεται σε κάποιο πλαίσιο της μνήμης. Αν η σελίδα βρίσκεται στη μνήμη τότε γίνεται η μετάφραση της διεύθυνσης. Αν η απαιτούμενη σελίδα δεν βρίσκεται στην κυρίως μνήμη, τότε μεταφέρεται από τη δευτερεύουσα μνήμη και ενημερώνεται ο πίνακας σελίδων. Αν τέλος το απαιτούμενο segment δεν βρίσκεται στην κυρίως μνήμη, τότε 8

9 δημιουργείται χώρος γι' αυτό και η απαιτούμενη σελίδα του μεταφέρεται από τη δευτερεύουσα μνήμη στην κυρίως μνήμη. Λειτουργίες διαχείρισης του processor Οι λειτουργίες διαχείρισης του processor καθορίζουν ποιό πρόγραμμα θα εκτελεσθεί, πότε θα αρχίσει η εκτέλεσή του, για πόσο χρόνο θα απασχολήσει τον processor κλπ. Γενικά, οι λειτουργίες αυτές μπορούν να χωρισθούν σε δύο κατηγορίες: 1. Job scheduling είναι η λειτουργία πού ελέγχει πότε το πρόγραμμα θα τοποθετηθεί στην κυρίως μνήμη και θα εκτελεσθεί. Αν το σύστημα εφαρμόζει επίσης time-sharing τότε ο job scheduler καθορίζει επίσης πότε το πρόγραμμα θα βγει για λίγο από την κυρίως μνήμη έτσι ώστε και κάποιο άλλο πρόγραμμα να έχει την ευκαιρία να εκτελεσθεί για κάποιο χρονικό διάστημα. 2. Multiprogramming είναι η λειτουργία πού επιτρέπει σε πολλά προγράμματα να βρίσκονται ταυτόχρονα στη μνήμη και να εκτελούνται εναλλάξ μέχρι να τερματισθούν. Η κύρια λειτουργία του λειτουργικού συστήματος που κάνει multiprogramming λέγεται Process scheduling..1 Job scheduling Από την στιγμή πού ένα πρόγραμμα θα δοθεί στο υπολογιστικό σύστημα μέχρι τη στιγμή πού η εκτέλεσή του θα τελειώσει και τα αποτελέσματα θα δοθούν στον χρήστη, περνάει από διάφορα στάδια επεξεργασίας. Τα στάδια αυτά φαίνονται διαγραμματικά στο Σχήμα.1. Terminate Run Submit Hold Ready Wait Σχήμα.1 Στάδια επεξεργασίας ενός προγράμματος. Το μέρος του λειτουργικού συστήματος που κάνει το job scheduling (ο job scheduler δηλαδή) ασχολείται μόνο με τη μετάβαση από το στάδιο hold στο στάδιο ready ή και το αντίστροφο αν το σύστημα εφαρμόζει time-sharing. Πιο αναλυτικά, τα διάφορα στάδια ενός προγράμματος είναι: 1. Submit. Το πρόγραμμα εισέρχεται στο σύστημα για εκτέλεση. 2. Hold. Το πρόγραμμα περιμένει στην δευτερεύουσα μνήμη μέχρι να τελειώσει κάποιο πρόγραμμα πού εκτελείται.. Ready. Το πρόγραμμα τοποθετείται στην κυρίως μνήμη και περιμένει την σειρά του να εκτελεσθεί. 9

10 4. Run. Το πρόγραμμα εκτελείται. 5. Wait. Το πρόγραμμα περιμένει να τελειώσει κάποια διαδικασία εισόδου-εξόδου. 6. Terminate. Η εκτέλεση του προγράμματος έχει τελειώσει. Οι βασικοί σκοποί του job scheduling είναι: α) Να εκτελεσθούν όσο το δυνατόν περισσότερα προγράμματα κατά την διάρκεια της ημέρας. β) Να ελαχιστοποιηθεί ο χρόνος ανάμεσα στην παράδοση ενός προγράμματος για εκτέλεση και την επιστροφή των αποτελεσμάτων στον χρήστη. γ) Να διατηρείται ο processor απασχολημένος όσο το δυνατόν γίνεται. Μερικές φορές οι σκοποί αυτοί είναι αντικρουόμενοι. Για παράδειγμα, το α) ευνοεί τα μικρά προγράμματα, ενώ το γ) ευνοεί τα μεγάλα προγράμματα που εκτελούν πολύπλοκους υπολογισμούς. Για τον λόγο αυτό μπορούν να εφαρμοσθούν διάφορες πολιτικές από τον job scheduler. Σε περιβάλλοντα που δεν κάνουν multiprogramming οι δυο πιο απλές πολιτικές που μπορούν να χρησιμοποιηθούν είναι: 1) FIFO (First In First Out), δηλαδή το πρώτο πρόγραμμα πού θα μπει στο σύστημα θα είναι και το πρώτο που θα εκτελεσθεί, και 2) Το μικρότερο πρόγραμμα πρώτα που σημαίνει ότι αν δύο προγράμματα περιμένουν για εκτέλεση, το πιο μικρό από τα δύο θα εκτελεσθεί πρώτο. Η απόδοση κάθε πολιτικής ή αλγόριθμου για job scheduling εκτιμάται με βάση το χρόνο επιστροφής (turnaround time), τον πραγματικό χρόνο δηλαδή που περνάει από την στιγμή πού θα μπει ένα πρόγραμμα στο σύστημα μέχρι τη στιγμή που θα βγει από αυτό. Ο χρόνος αυτός είναι συνήθως πολύ μεγαλύτερος από τον πραγματικό χρόνο εκτέλεσης (run time) του προγράμματος. Επειδή είναι φυσικό ένα μεγάλο πρόγραμμα να τελειώσει σε μεγαλύτερο χρόνο από ένα μικρό, τις περισσότερες φορές σαν μέτρο σύγκρισης χρησιμοποιείται ο ανηγμένος χρόνος επιστροφής (weighted turnaround time) πού είναι ο χρόνος επιστροφής ενός προγράμματος διαιρούμενος με τον χρόνο εκτέλεσης του προγράμματος. Μερικές από τις πολιτικές δίνουν καλύτερο μέσο χρόνο επιστροφής, ενώ άλλες δίνουν καλύτερο μέσο ανηγμένο χρόνο επιστροφής. Ο καλύτερος δυνατός μέσος ανηγμένος χρόνος επιστροφής επιτυγχάνεται όταν εκτός από κάποιο job scheduling, το σύστημα εφαρμόζει επίσης multiprogramming..2 Process scheduling Το process scheduling ελέγχει και καθορίζει τις μεταβάσεις ενός προγράμματος από τα στάδια Ready, Run και Wait. Η μετάβαση από το στάδιο run στο στάδιο wait γίνεται όταν ένα πρόγραμμα απαιτήσει κάποια διαδικασία εισόδου-εξόδου. Μόλις αυτή η διαδικασία περατωθεί, το πρόγραμμα περνάει στο στάδιο ready. Δεν είναι όμως μόνο αυτή η περίπτωση κατά την οποία ένα πρόγραμμα θα μεταβεί στο στάδιο ready. Σε ένα περιβάλλον multiprogramming, ο processor scheduler φροντίζει ώστε όλα τα προγράμματα που βρίσκονται στο στάδιο ready να έχουν την ευκαιρία να εκτελεσθούν για λίγο χρονικό διάστημα. Ο processor scheduler καθορίζει ένα κάποιο μικρό χρονικό διάστημα (συνήθως 100 ms) κατά το οποίο το πρόγραμμα έχει στην πλήρη κατοχή του το CPU. Αν το διάστημα αυτό εξαντληθεί και το πρόγραμμα δεν έχει τερματισθεί, ούτε έχει ζητήσει κάποιο I/O, τότε επιστρέφει στο στάδιο ready και κάποιο άλλο πρόγραμμα από αυτά που ήταν στο στάδιο ready συνεχίζει την εκτέλεσή του. Το χρονικό αυτό διάστημα λέγεται time quantum. 10

11 Υπάρχουν διάφορες πολιτικές για την απονομή των quantums στα διάφορα προγράμματα. Οι πιο συνηθισμένες απ' αυτές είναι: 1. Round robin. Κάθε πρόγραμμα με τη σειρά του παίρνει από ένα time quantum. 2. Inverse of remainder of quantum. Αν το πρόγραμμα χρησιμοποίησε όλο το quantum την προηγούμενη φορά, πηγαίνει στο τέλος της ουράς. Αν χρησιμοποίησε το μισό (γιατί περίμενε γιά I/O), πηγαίνει στο μέσο της ουράς.. Multiple-level feedback round robin. Όταν ένα νέο πρόγραμμα μπαίνει στο σύστημα, εκτελείται συνεχώς για όσα time quantums έχουν χρησιμοποιήσει όλα τα άλλα προγράμματα στο σύστημα. Μετά εκτελείται με κανονικό round robin. 4. Priority. Το πρόγραμμα με την μεγαλύτερη προτεραιότητα επιλέγεται να εκτελεσθεί. 5. Limited round robin. Τα προγράμματα εκτελούνται με τη διαδικασία του round robin μέχρι να χρησιμοποιήσουν κάποιο προκαθορισμένο αριθμό quantums. Μετά εκτελούνται μόνο αν δεν υπάρχει άλλο πρόγραμμα στο σύστημα. 6. System balance. Δίνεται προτεραιότητα στα προγράμματα πού απαιτούν πολύ I/O. 7. Preferred interactive. Δίνεται προτεραιότητα στα προγράμματα πού εκτελούνται από τερματικά. 8. Job merits. Αυτή είναι η πιο πολύπλοκη τεχνική απονομής χρόνου στα προγράμματα που βρίσκονται στο στάδιο ready. Το λειτουργικό σύστημα απονέμει δυναμικά προτεραιότητες στα προγράμματα εξετάζοντας τις απαιτήσεις τους γιά I/O, τον χρόνο πού έχουν παραμείνει στο σύστημα, τον αριθμό των περιφερειακών που χρησιμοποιούν κλπ.. Deadlocks Κατά τη διάρκεια εκτέλεσης ενός προγράμματος, αυτό κάνει χρήση διάφορων περιφερειακών. Όταν το πρόγραμμα χρειασθεί κάποιο περιφερειακό, το λειτουργικό σύστημα ελέγχει αν το περιφερειακό είναι διαθέσιμο. Στην περίπτωση που το περιφερειακό δεν είναι διαθέσιμο το πρόγραμμα θα πρέπει να περιμένει. Αυτό λέγεται μπλοκάρισμα (block) του προγράμματος. Σε ορισμένες περιπτώσεις, είναι δυνατόν το πρόγραμμα Α να έχει στην διάθεσή του κάποιο περιφερειακό και να απαιτεί ένα περιφερειακό που κατέχεται από το πρόγραμμα Β. Αν τώρα το πρόγραμμα Β απαιτήσει το περιφερειακό που κατέχει το Α έχουμε μια κατάσταση που λέγεται deadlock (ή deadly embrace). Κανένα από τα δύο προγράμματα δεν μπορεί να βγει από την κατάσταση blocked γιατί το περιφερειακό πού απαιτεί δεν θα απελευθερωθεί ποτέ από το άλλο πρόγραμμα. Το deadlock είναι μια ανεπιθύμητη κατάσταση και γι' αυτό αναπτύχθηκαν διάφοροι αλγόριθμοι για την επίλυσή του. Ο πιο απλός αλγόριθμος απονέμει στα προγράμματα πού πρόκειται να εκτελεσθούν, όλα τα περιφερειακά πού θα ζητήσουν κατά την εκτέλεσή τους. Η μέθοδος αυτή απαιτεί γνώση των μελλοντικών απαιτήσεων κάθε προγράμματος και επιπλέον, γίνεται κακή χρήση των περιφερειακών αφού κατακρατούνται καθ' όλη την διάρκεια εκτέλεσης του προγράμματος ακόμα και αν αυτό τα χρειασθεί μόνο για ελάχιστο χρόνο. Ένας άλλος αλγόριθμος χρησιμοποιεί μια διάταξη των περιφερειακών αριθμώντας τα από 1 μέχρι το μέγιστό τους αριθμό (π.χ. 1=printer, 2=plotter, =disk κλπ.). Ένα πρόγραμμα μπορεί να απαιτήσει περιφερειακά μόνο με αύξουσα σειρά. Για παράδειγμα, αν ένα πρόγραμμα κατέχει ήδη το περιφερειακό 7 δεν μπορεί να απαιτήσει το περιφερειακό 4, γιατί το 4 είναι μικρότερο απ' το 7. Το σύστημα αυτό έχει πολλά προβλήματα. Αν για παράδειγμα το tape 11

12 είναι άμεσα απαραίτητο και ο printer δεν χρειάζεται παρά πολύ αργότερα, το πρόγραμμα θα πρέπει πρώτα να ζητήσει τον printer και μετά το tape. Η καλύτερη λύση του προβλήματος του deadlock έχει αποδειχθεί ότι είναι το detect and recover. Σύμφωνα με την τεχνική αυτή, το deadlock επιτρέπεται να εμφανισθεί, αλλά το λειτουργικό σύστημα έχει τη δυνατότητα να το λύσει. Σε τακτά χρονικά διαστήματα, το λειτουργικό σύστημα ελέγχει την αλληλοσυσχέτιση των προγραμμάτων για deadlock και αν διαπιστωθεί ότι υπάρχει deadlock, το ένα από τα δύο προγράμματα υποχρεώνεται να αποδώσει τα περιφερειακά πού κατέχει, έτσι ώστε το άλλο πρόγραμμα να μπορέσει να συνεχίσει. 4 Αλγόριθμοι (πολιτικές) χρονοδρομολόγησης Οι χρονοδρομολογητές ενός λειτουργικού συστήματος, χρησιμοποιούν αλγόριθμους, οι οποίοι προσπαθούν να βελτιστοποιήσουν διάφορα χαρακτηριστικά του συστήματος. Στα χαρακτηριστικά αυτά περιλαμβάνονται ο βαθμός χρήσης (Utilization) της CPU, ο χρόνος επιστροφής (turnaround time), ο χρόνος απόκρισης (response time), κλπ. Στο παράδειγμα που ακολουθεί γίνεται μια προσπάθεια σύγκρισης μερικών αλγορίθμων κατά την εκτέλεση του ιδίου σετ διεργασιών. Ορίζουμε τις παρακάτω μεταβλητές: Χρόνος Εκτέλεσης (Running Time ή RT): Ο πραγματικός χρόνος που απαιτείται για την εκτέλεση μιάς διεργασίας. Είναι ο χρόνος που χρειάζεται για να "τρέξει" μια διεργασία αν ήταν η μόνη διεργασία του συστήματος (είχε δηλαδή όλη τη CPU δική της). Χρόνος Επιστροφής (Turnaround Time ή ΤΤ): Ο χρόνος που μεσολαβεί από την παράδοση της εργασίας προς εκτέλεση μέχρι την παραλαβή των αποτελεσμάτων. Ανηγμένος Χρόνος επιστροφής (Weighted Turnaround Time ή WTT): Ο λόγος του χρόνου επιστροφής μιάς διεργασίας προς τον χρόνο εκτέλεσης της διεργασίας Χρόνος Αναμονής (Waiting Time ή WT): Είναι ο χρόνος για τον οποίο περιμένει μια διεργασία χωρίς να εκτελείται. Ισούται με το χρόνο επιστροφής μείον τον χρόνο εκτέλεσης. Ανηγμένος Χρόνος Αναμονής (Weighted Waiting Time ή WWT): Ο λόγος του χρόνου αναμονής προς το χρόνο εκτέλεσης κάθε διεργασίας. Ορίζονται επίσης και οι μέσοι χρόνοι ως η μέση τιμή των παραπάνω χρόνων. Για το παράδειγμα που εξετάζουμε, θα υπολογισθούν οι χρόνοι αυτοί για το ίδιο σετ διεργασιών και για τρεις διαφορετικούς αλγόριθμους χρονοδρομολόγησης. Έστω ένα σύστημα που είναι αδρανές (idle) στον χρόνο 0, έρχονται τρεις εργασίες για εκτέλεση με τα παρακάτω χαρακτηριστικά: Job 1 2 Χρόνος άφιξης 40 sec 60 sec 110 sec Χρόνος εκτέλεσης 100 sec 10 sec 50 sec Για τον υπολογισμό των χρόνων είναι πολύ σημαντικό να σχεδιασθούν σωστά τα σχεδιαγράμματα χρονισμού από τα οποία εξάγονται αμέσως οι απαιτούμενοι χρόνοι. 12

13 α) Αλγόριθμος FCFS (First Come First Served) Σύμφωνα με τον αλγόριθμο αυτό, ο οποίος είναι αλγόριθμος μη προεκχώρησης, η διεργασία που έρχεται πρώτη, θα εκτελεσθεί πρώτη χωρίς να μπορεί να διακοπεί από άλλη διεργασία. Το χρονοδιάγραμμα των διεργασιών δίνεται στο σχήμα 4.1. Στο διάγραμμα αυτό, για κάθε διεργασία σημειώνεται με διακεκομμένη γραμμή ο χρόνος αναμονής και με συνεχή γραμμή ο χρόνος εκτέλεσης. Ο χρόνος εκτέλεσης δίνεται αριθμητικά και πάνω στη συνεχή γραμμή εκτέλεσης. ιεργασία Οι χρόνοι υπολογίζονται ως εξής: Σχήμα 4.1 Χρονοδιάγραμμα αλγόριθμου FCFS. TT 1 =140-40=100 WT 1 =TT 1 -RT 1 = =0 TT 2 =150-60=90 WT 2 =TT 2 -RT 2 =90-10=80 TT = =90 WT =TT -RT =90-50=40 Οι μέσοι χρόνοι είναι: ATT TT 1 TT 2 TT και AWT WT 1 WT 2 WT Οι ανηγμένοι χρόνοι είναι: WTT WWT WTT WWT WTT WWT Τέλος, οι μέσοι ανηγμένοι χρόνοι είναι: AWTT WTT 1 WTT 2 WTT και AWWT WWT 1 WWT 2 WWT

14 Παρατηρούμε ότι ο μέσος ανηγμένος χρόνος αναμονής (AWWT) είναι ίσος με τον μέσο ανηγμένο χρόνο επιστροφής (AWTT) μείον 1, όπως μπορεί εύκολα να αποδειχθεί μαθηματικά. α) Αλγόριθμος SRTN (Shortest Remaining Time Next) Σύμφωνα με τον αλγόριθμο αυτό, ο οποίος είναι αλγόριθμος προεκχώρησης, η διεργασία που έχει τον συντομότερο εναπομείναντα χρόνο εκτέλεσης θα εκτελεσθεί πρώτα, διακόπτοντας τυχόν εκτελούμενη εργασία με μεγαλύτερο εναπομείναντα χρόνο εκτέλεσης. Το χρονοδιάγραμμα των διεργασιών δίνεται στο σχήμα 4.2. ιεργασία Οι χρόνοι υπολογίζονται ως εξής: Σχήμα 4.2 Χρονοδιάγραμμα αλγόριθμου SRTN. TT 1 =150-40=110 WT 1 =TT 1 -RT 1 = =10 TT 2 =70-60=10 WT 2 =TT 2 -RT 2 =10-10=0 TT = =90 WT =TT -RT =90-50=40 Οι μέσοι χρόνοι είναι: ATT TT 1 TT 2 TT και AWT WT 1 WT 2 WT Οι ανηγμένοι χρόνοι είναι: WTT WWT WTT WWT WTT WWT Τέλος, οι μέσοι ανηγμένοι χρόνοι είναι: AWTT και AWWT

15 Παρατηρούμε ότι με τον αλγόριθμο αυτό έχουν βελτιωθεί αισθητά οι μέσοι ανηγμένοι χρόνοι., σε σχέση με τον αλγόριθμο FCFS. Πρέπει να σημειωθεί όμως, ότι για να δουλέψει ο αλγόριθμος αυτός, θα πρέπει ο χρονοδρομολογητής να γνωρίζει το χρόνο εκτέλεσης κάθε διεργασίας, πράγμα που δεν συμβαίνει γενικά. α) Αλγόριθμος εκ περιτροπής (Round Robin) Σύμφωνα με τον αλγόριθμο αυτό, ο οποίος είναι αλγόριθμος προεκχώρησης, όσες διεργασίες βρίσκονται στο σύστημα εκτελούνται εκ περιτροπής, για ένα κβάντο χρόνου η κάθε μια. Το χρονοδιάγραμμα των διεργασιών δίνεται στο σχήμα 4.. Στην κατασκευή του χρονοδιαγράμματος αυτού χρειάζεται προσοχή στο να σημειώνουμε το μισό χρόνο εκτέλεσης για κάθε διεργασία αν εκτελούνται δύο ταυτόχρονα, το ένα τρίτο του χρόνου αν εκτελούνται τρεις ταυτόχρονα, κ.ο.κ. ιεργασία Οι χρόνοι υπολογίζονται ως εξής: Σχήμα 4. Χρονοδιάγραμμα αλγόριθμου εκ περιτροπής. TT 1 =190-40=150 WT 1 =TT 1 -RT 1 = =50 TT 2 =80-60=20 WT 2 =TT 2 -RT 2 =20-10=10 TT = =90 WT =TT -RT =90-50=40 Οι μέσοι χρόνοι είναι: ATT AWT Οι ανηγμένοι χρόνοι είναι: WTT WWT WTT WWT WTT WWT Τέλος, οι μέσοι ανηγμένοι χρόνοι είναι: AWTT AWWT

16 Παρατηρούμε ότι οι μέσοι ανηγμένοι χρόνοι είναι μικρότεροι από τον αλγόριθμο FCFS αλλά μεγαλύτεροι από τον αλγόριθμο SRTN. Σε αντίθεση όμως με τον αλγόριθμο SRTN, ο αλγόριθμος εκ περιτροπής μπορεί να χρησιμοποιηθεί και όταν ο χρονοδρομολογητής δεν γνωρίζει το χρόνο εκτέλεσης κάθε διεργασίας. Επίσης, ο αλγόριθμος εκ περιτροπής είναι περισσότερο "δίκαιος" από τον αλγόριθμο SRTN, όπως μπορεί να διαπιστωθεί ελέγχοντας τους ανηγμένους χρόνους επιστροφής. Στον αλγόριθμο SRTN ο λόγος του μεγαλύτερου προς το μικρότερο ανηγμένο χρόνο επιστροφής είναι 1,8/1=1,8, ενώ στον αλγόριθμο εκ περιτροπής ο λόγος αυτός είναι 2/1,5=1,. 5 Προγραμματισμός Εισόδου/Εξόδου Ο έλεγχος της λειτουργίας των συσκευών εισόδου/εξόδου (I/O) μπορεί να γίνει με δύο τρόπους: (α) έλεγχο με πρόγραμμα, και (β) έλεγχο με διακοπές (interrupts). Στην πρώτη περίπτωση κατασκευάζουμε ένα πρόγραμμα που εκτελεί την είσοδο ή έξοδο για κάθε χαρακτήρα διαδοχικά. Ανάμεσα στην είσοδο (ή έξοδο) κάθε χαρακτήρα, το πρόγραμμα ελέγχει τη συσκευή για να διαπιστώσει αν είναι έτοιμη να στείλει (ή να δεχθεί) τον επόμενο χαρακτήρα. Με δεδομένη την τεράστια διαφορά ταχύτητος ανάμεσα στις συσκευές I/O και τον επεξεργαστή, είναι προφανές ότι το πρόγραμμα καταναλώνει τον περισσότερο χρόνο στον έλεγχο αυτό, ενώ θα μπορούσε να εκτελεί κάποια άλλη διεργασία. Αυτό έχει ως αποτέλεσμα την μείωση στο ελάχιστο του βαθμού χρήσης (utilization) του επεξεργαστή. Ένα παράδειγμα εκτύπωσης με προγραμματισμένο I/O δίνεται στο Σχήμα 5.1. Για να αυξήσουμε το βαθμό χρήσης του επεξεργαστή προτιμούμε τον δεύτερο τρόπο ελέγχου που κάνει χρήση των διακοπών τις οποίες μπορεί να δεχθεί κάθε επεξεργαστής. Κατασκευάζοντας τις κατάλληλες ρουτίνες ελέγχου διακοπών (interrupt service routines ή ISRs), ο επεξεργαστής δεν καταναλώνει πλέον χρόνο ελέγχοντας αν η συσκευή είναι έτοιμη να στείλει (ή να δεχθεί) τον επόμενο χαρακτήρα. Ο επεξεργαστής εκτελεί πλέον κανονικά οποιαδήποτε διεργασία και όταν η συσκευή I/O είναι έτοιμη να στείλει (ή να δεχθεί) τον επόμενο χαρακτήρα, ειδοποιεί τον επεξεργαστή με την κατάλληλη διακοπή. Στο σημείο αυτό διακόπτεται η εκτέλεση της διεργασίας, εκτελείται η ρουτίνα ελέγχου της αντίστοιχης διακοπής, η οποία και διαβάζει (ή στέλνει) τον επόμενο χαρακτήρα, και κατόπιν συνεχίζεται κανονικά η εκτέλεση της διεργασίας που διεκόπει. Το παράδειγμα του σχήματος 5.1 αλλά με έλεγχο από διακοπές δίνεται στο Σχήμα 5.2. Στο επόμενο παράδειγμα (που φαίνεται στο σχήμα 5.) έχουμε δύο συσκευές: μία εισόδου (keyboard) και μία εξόδου (display). Έχουμε επίσης μια διεργασία που εκτελεί κάποιους υπολογισμούς (compute). Οι ρουτίνες ελέγχου διακοπών είναι η process keyboard και η process display. Δίνονται τρεις εκδόσεις του κυρίως προγράμματος για να γίνει κατανοητός ο τρόπος επικάλυψης των υπολογισμών (compute) με τις διακοπές που κάνουν την είσοδο και έξοδο. Στην πρώτη έκδοση, δεν υπάρχει καμία επικάλυψη ανάμεσα στις λειτουργίες γιατί περιμένουμε να τελειώσει η κάθε μία πριν αρχίσει η επόμενη. Στην δεύτερη έκδοση, περιμένουμε μεν να τελειώσει η είσοδος πριν κάνουμε οτιδήποτε άλλο, αλλά υπάρχει επικάλυψη ανάμεσα στους υπολογισμούς και την έξοδο. Τέλος, στην τρίτη έκδοση υπάρχει πλήρης επικάλυψη των τριών λειτουργιών. Στο σχήμα 5.4 δίνεται το χρονοδιάγραμμα εκτέλεσης των τριών λειτουργιών. Οι λειτουργίες εισόδου/εξόδου γίνονται με διακοπές και γι' αυτό φαίνονται με διακεκομμένες γραμμές. 16

17 program/module computeprint; const max =...; {μέγιστο μήκος εξόδου} outrdy =...; {έξοδος έτοιμη} type text = array [l..max] of char; Var data: text; numberof: integer; procedure compute(var comdata: text; var count: integer);... procedure print(outdata: text; outcount: integer); Var outindex : integer; outindex := 1; while outcount>0 do while ioport_status<>outrdy do {keeptesting}; ioport_dataout := outdata[outindex]; outindex := outindex + 1; outcount := outcount -1 end {while} end; {print} {computeprint} initialize_hardware; while true do {για πάντα} compute(data, numberof); print(data, numberof) end {while} end {computeprint} Σχήμα 5.1 Έξοδος ελεγχόμενη από πρόγραμμα 17

18 program/module interruptcp; const max =...; {μέγιστο μήκος εξόδου} type text = array [l..max] of char; var datal, data2 : text; {απομονωτές δεδομένων} outdone: boolean; {σημαία: τελείωσε η εκτύπωση} procedure compute(var comdata: text; var count: integer);... procedure start_output(outdata: text; outcount: integer); var outindex: integer; process print; while true do {await_printer_interrupt} save_context; ioport_dataout := outdata[outindex]; outindex := outindex + 1; outcount := outcount - 1; if outcount = 0 then disable_interrupts; outdone := true end; restore_context end {while} end; {print} {start_output} outindex := 1; outdone := false; enable_interrupts end; {start_output} {interruptcp} disable_interrupts; initialize_hardware; connect_interrupt_vector(print); compute(datal, numl); {υπολογισμόςl} start_output(datal, numl); {ξεκινά εκτύπωσηl, και} compute(data2, num2); {ταυτόχρονα υπολογισμός2} while not outdone do {keeptesting}; {περίμενε μέχρι να τυπωθεί το 1} start_output(data2, num2); {ξεκινά εκτύπωση2, και} compute(datal, numl); {ταυτόχρονα υπολογισμός} while not outdone do {keeptesting}; {περίμενε μέχρι να τυπωθεί το 2} start_output(datal, numl); {ξεκινά εκτύπωση, και} compute(data2, numl); {ταυτόχρονα υπολογισμός4}... end {interruptcp} Σχήμα 5.2 Έξοδος ελεγχόμενη από διακοπές 18

19 program/module concurrent I/O; const max = 80; {μέγιστο μήκος εισόδου} line_end = return; {χαρακτήρας τερματισμού γραμμής} type text = array [1..max] of char; var indata, outdata, save_data: text; {data buffers} indone, outdone: boolean; {flags τερματισμού} inindex, incount, outindex, outcount, save_count: integer; procedure process_data; procedure start_input; process keyboard; while true do {await_kbd_interrupt} save_context; kbd_status := ioport_status; kbd_data := ioport_datain; if kbd status = OK then indata[inindex] := kbd_data; inindex := inindex + 1; incount:= incount + 1; if kbd data = line_end then {επιβεβαίωση interrupt} {λήψη χωρίς σφάλματα} {η γραμμή εισόδου συμπληρώθηκε} ioport_command := kbd_interrupts_disable; indone := true end {if} end {if} else handle_error(kbd_status); {σφάλμα στη λήψη} restore_context end {while} end; {keyboard} {start_input} indone := false; inindex := 1; incount:= 0; ioport_command := kbd_interrupts_enable end; {start_input} 19

20 procedure start_output; process display; while true do {await_dsp_interrupt} save_context; ioport_dataout := outdata[outindex]; outindex:= outindex + 1; outcount := outcount - 1; if outcount = 0 then {η γραμμή τυπώθηκε} ioport_command := dsp _interrupts_disable; outdone := true end; {if} restore context end {while} end; {display} {start_output} outdone := false; outindex := 1; outcount := save_count; ioport_command := dsp _interrupts_enable end; {start_output} {MAIN - version 1} {concurrent I/O} ioport_command := kbd_and_dsp_interrupts_disable; initialize_hardware; connect_interrupt_vectors(kbd, dsp); while true do {για πάντα} start_input; {ενεργοποίηση εισόδου(x)} while not indone do {keeptesting}; {αναμονή τερματισμού} copy(indata, outdata); save_count := incount; process_data; {επεξεργασία εισόδου(x)} start_output; {προβολή εισόδου(x)} while not outdone do {keeptesting} end {while} end {concurrent I/O, version 1} 20

21 {MAIN - version 2} {concurrent I/O} ioport_command := kbd_and_dsp_interrupts_disable; initialize_hardware; connect_interrupt_vectors(kbd, dsp); while true do start_input; {ενεργοποίηση εισόδου(x)} while not indone do {keeptesting}; {αναμονή τερματισμού} copy(indata, outdata); save_count := in count; start_output; {προβολή εισόδου(x), και} process_data; {ταυτόχρονη επεξεργασία της} while not outdone do {keeptesting} end {while} end {concurrent I/O, version 2} {MAIN - version } (concurrent I/O} ioport_command := kbd_and_dsp _interrupts_disable; initialize_hardware; connect_interrupt_vectors(kbd, dsp); outdone := true; start_input; {ενεργοποίηση εισόδου(1)} while true do while not indone do {keeptesting}; {αναμονή εισόδου(x)} copy(indata, save_data); {αποθήκευση εισόδου(x)} save_count := incount; start_input; {ενεργοποίηση εισόδου(x+1)} while not outdone do {keeptesting}; {αναμονή εξόδου(x-1)} copy(save_data, outdata); {είσοδος(x) στην έξοδο} start_output; {προβολή εισόδου(x), και} process_data {ταυτόχρονη επεξεργασία της} end {while} end {concurrent I/O, version } Σχήμα 5. Προγραμματισμός I/O με διακοπές. 21

22 program display output 1 output 2 keyboard input 1 input 2 compute compute 1 compute 2 program (a) Version 1 time display output 1 output 2 output keyboard input 1 input 2 input compute compute 1 compute 2 compute program (b) Version 2 time display output 1 output 2 output keyboard input 1 input 2 input input compute compute 1 compute 2 compute 4 (c) Version time Σχήμα 5.4 Χρονοδιάγραμμα προγραμμάτων ελέγχου I/O με διακοπές. 22

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 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 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

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

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

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

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

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

Διαχείριση Κύριας Μνήμης

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

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

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

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

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ρονοδροµολόγηση µε βάση τον χρόνο εισόδου

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) ..8 Κατανομή των αρχείων σε συσκευές Ακολουθείται κάποια λογική στην αποθήκευση των αρχείων:.αρχεία που χρησιμοποιούνται συχνά τοποθετούνται στους σκληρούς δίσκους που έχουν μεγάλη ταχύτητα πρόσβασης..αν

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Πληροφορικής Ενότητα 8η: Συσκευές Ε/Ε - Αρτηρίες Άσκηση 1: Υπολογίστε το µέσο χρόνο ανάγνωσης ενός τµήµατος των 512 bytes σε µια µονάδα σκληρού δίσκου µε ταχύτητα περιστροφής

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

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

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

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

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

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

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

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

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

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation Προηγμένοι Μικροεπεξεργαστές Paging & Segmentation Segmentation Τεχνική για σπάσουμε την μνήμη σε λογικά κομμάτια Κάθε κομμάτι αποθηκεύει πληροφορία σχετική με data segments for each process code segments

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

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

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

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

Εισαγωγή στους Η/Υ. Ενότητα 4: Λειτουργικά Συστήματα Ι. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Εισαγωγή στους Η/Υ. Ενότητα 4: Λειτουργικά Συστήματα Ι. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Εισαγωγή στους Η/Υ Ενότητα 4: Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Αναφορά και κατανόηση των τύπων υπολογιστικών συστημάτων Απόδοση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1 Λειτουργικά Συστήματα Κεφάλαιο 5 Κεφ. 5 Λειτουργικά Συστήματα 1 Διαχείριση Κεντρικής Μνήμης Στην Κεντρική (κύρια) Μνήμη του Η/Υ αποθηκεύονται ανα πάσα στιγμή όλα τα προγράμματα που εκτελούνται στην ΚΜΕ

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

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

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

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

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

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

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Λειτουργικά συστήματα Στόχοι 1 Να εξηγήσουμε τη διάκριση μεταξύ Λογισμικού Συστημάτων

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

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

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

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

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

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

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

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα 14: Λειτουργικά Συστήματα Αβούρης Νικόλαος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Σκοπός της ενότητας είναι κατανόηση

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

Πληροφορική 2. Λειτουργικά Συστήματα

Πληροφορική 2. Λειτουργικά Συστήματα Πληροφορική 2 Λειτουργικά Συστήματα 1 2 Λογισμικό Υπολογιστών Υπολογιστής Υλικό Λογισμικό Λειτουργικό Σύστημα Προγράμματα Εφαρμογών 3 Λειτουργικό Σύστημα (Operating System) Λειτουργικό Σύστημα (ΛΣ) είναι

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Πλατφόρμες ενσωματωμένων συστημάτων Διδάσκων: Παναγιώτης Καρκαζής Περίγραμμα - Δίαυλοι επικοινωνίας - Μνήμες -Συσκευές Ι/Ο Timers Counters keyboards Leds 7 segment display

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

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

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

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

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

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

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

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