Αρχική ΑΕΠΠ - Δομές Δεδομένων Λειτουργικά Συστήματα Δίκτυα Υπολογιστών ΙΙ Βάσεις Δεδομένων Παιδαγωγικά - Διδακτική
Εισαγωγή στα Λ.Σ. Βασικές Δομές Η/Υ Βασικές Δομές Λ.Σ
Διεργασίες Χρονοπρογραμματισμός Συγχρονισμός
Μονοπρογραμματισμός Εναλλαγή Εικονική Μνήμη Κατάτμηση
Το σύστημα στο οποίο υπάρχει στη μνήμη κάθε φορά μία μόνο διεργασία και τη χρησιμοποιεί στο σύνολό της (για την ακρίβεια ένα κομμάτι της το κατέχει το Λ.Σ.), είναι το απλούστερο σύστημα διαχείρισης που υπάρχει.
Παρόλι την απλότητα, η μελέτη του μονοπρογραμματισμού θέτει τα πρώτα προβλήματα διαχείρισης μνήμης που πρέπει να αντιμετωπίσουμε.
What is the system manager’s main problem in using fixed partitions?
Determining the optimum number of partitions and their size.
Ένα υπολογιστικό σύστημα έχει αρκετό χώρο για να διατηρήσει τέσσερα προγράμματα στην κύρια μνήμη του. Τα προγράμματα αυτά μένουν αδρανή αναμένοντας είσοδο/έξοδο (Ε/Ε) το μισό χρόνο. Ποιο ποσοστό του χρόνου της CPU σπαταλιέται;
Η αναμονή για Ε/Ε είναι 50%, άρα p=0.5. Οι διεργασίες είναι τέσσερις οπότε n=4.
Βαθμός Χρήσης CPU = 1 - pn = 1 - 0.54 = 0,9375 ή 93,75%
Το ποσοστό του χρόνου της CPU σπαταλιέται είναι: 100 - 93,75 = 6,25%
Υποθέτουμε ότι ένας υπολογιστής έχει 2GBytes μνήμης από τα οποία το λειτουργικό σύστημα χρησιμοποιεί το 1GB και κάθε πρόγραμμα χρήστη χρησιμοποιεί 512MB. Αν όλα τα προγράμματα έχουν αναμονή λόγω Ε/Ε, 60%
Διαθέσιμο είναι το 1GB. Αφού το κάθε πρόγραμμα χρησιμοποιεί 512MB μπορούν να υπάρχουν μέχρι 2 προγράμματα ταυτόχρονα στη μνήμη (n=2). Η αναμονή για Ε/Ε είναι 60%, δηλαδή p=0.6.
Με 1GB ακόμη στη μνήμη μπορούμε να έχουμε συνολικά επιπλέον 2 προγράμματα, έτσι n=4
Θεωρείστε ένα υπολογιστικό κέντρο του οποίου οι διεργασίες συμπεριλαμβάνουν μεταφορές πληροφοριών Ε/Ε που φθάνουν το 80% του χρόνου εκτέλεσής τους. Σ' αυτό το σύστημα καταφθάνουν τέσσερις διεργασίες όπως φαίνεται στον παρακάτω πίνακα. Ο μηχανισμός χρονοπρογραμματισμού είναι η εξυπηρέτηση εκ περιτροπής (round robin).
Διεργασία | Χρόνος Άφιξης | Διάρκεια (min) |
---|---|---|
1 | 0 | 4 |
2 | 10 | 3 |
3 | 15 | 2 |
4 | 20 | 2 |
Για τη διεργασία 1, έχουμε: Αξιοποίηση CPU = 1-pn=1-0.81=0.2 (20%). Δηλαδή, απασχολεί την CPU για το 20% του χρόνου. Έτσι, σε 1min η διεργασία 1 θα έχει τρέξει για 60x20/100=12sec. Αν είναι μόνη της στο σύστημα χρειάζεται πραγματικό χρόνο για να εκτελέσει τα 4min που θέλει: x*0.2 = 4 => x = 20min.
Η διεργασία 2 είναι παράλληλα με την 1 στο σύστημα: Αξιοποίηση CPU = 1-pn=1-0.82=0.36 Ο αλγόριθμος RR δίνει ίσο ποσοστό απασχόλησης σε κάθε διεργασία. Έτσι, έχουμε CPU/Διεργασία = 0.36/2 = 0.18
Με την 3 στο σύστημα: Αξιοποίηση CPU = 1-pn=1-0.83=0.49 και CPU/Διεργασία = 0.49/3 = 0.16
Με την 4 στο σύστημα: Αξιοποίηση CPU = 1-pn=1-0.84=0.59 και CPU/Διεργασία = 0.59/4 = 0.15
Έχουμε, λοιπόν,
Στον παρακάτω πίνακα φαίνεται η κατάσταση τη χρονική στιγμή 20.
Διεργασία | 0 - 10 | 10 - 15 | 15 - 20 | Διεκπεραίωση | Υπόλοιπο |
---|---|---|---|---|---|
1 | 2 | 0.9 | 0.8 | 3.7 | 0.3 |
2 | 0 | 0.9 | 0.8 | 1.7 | 1.3 |
3 | 0 | 0 | 0.8 | 0.8 | 1.2 |
4 | 0 | 0 | 0 | 0 | 2 |
Η στήλη Διεκπεραίωση μας δείχνει πόσα λεπτά από τα συνολικά κάθε διεργασίες έχει διεκπεραιωθεί.
Η διεργασία 1 έχει υπόλοιπο 0.3. Απασχολώντας τη CPU για το 15% χρειάζεται για να ολοκληρώσει: x*0.15=0.3 => x=2min. Άρα στο 22ο λεπτό ολοκληρώνει η 1. Τα νέα υπόλοιπα (όλες έχουν "προχωρήσει" για 0.3min):
Διεργασία | Υπόλοιπο |
---|---|
2 | 1 |
3 | 0.9 |
4 | 1.7 |
Από το 22o και μετά έχουμε 3 διεργασίες όπου η κάθε μία έχει το 16% της CPU. Η διεργασία 3 έχει το μικρότερο υπόλοιπο και ο χρόνος που χρειάζεται για να ολοκληρώσει είναι: x*0.16=0.9 => x =5.6. Άρα ολοκληρώνει στο 27.6 λεπτό. Τα νέα υπόλοιπα:
Διεργασία | Υπόλοιπο |
---|---|
2 | 0.1 |
3 | 0.8 |
Έχουμε 2 διεργασίες με κάθε μία να έχει το 18% της CPU. Η διεργασία 2 χρειάζεται χρόνο: x*0.18=0.1 => x=0.5. Ολοκληρώνει λοιπόν στο 28.2 και το υπόλοιπο της 4 είναι 0.7.
Για να ολοκληρώσει και η 4 χρειάζεται: x*0.2 = 0.7 => x = 3.5. Έτσι, στο 31.7 τελειώνει και η 4.
Το διάγραμμα Gantt έχει ως εξής.
Copyright 2008 - Άρης Φεργάδης