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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

Κεφάλαιο Τμηματικός προγραμματισμός
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Στατική Συμβολική Παραγώγιση Λάμδα Εκφράσεων στην C++
Λειτουργικά Συστήματα
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ Κεφάλαιο 4 ο Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Λειτουργικό Σύστημα 2ο μέρος.
Support.ebsco.com Εισαγωγή στο EBSCOhost Εκπαιδευτικό μάθημα.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Σημειώσεις : Χρήστος Μουρατίδης
Πολυδιάστατοι Πίνακες, Δομές, Ενώσεις
Εισαγωγή στους Η/Υ Πίνακες.
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ζητήματα Σελιδοποίησης
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 11 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
7. Διαχείριση κύριας μνήμης
Αλγόριθμοι Αναζήτησης
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
Weatherly (2009) MinixVM: An Implementation of Virtual Memory in Minix 3.
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
Σχεδίαση αλγορίθμων (2ο μέρος)
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
Δυναμικη Δεσμευση Μνημης Συνδεδεμενες Λιστες (dynamic memory allocation, linked lists) Πως υλοποιουμαι προγραμματα που δεν γνωριζουμε πριν την εκτελεση.
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Ενότητα Α.4. Δομημένος Προγραμματισμός
Δομές Δεδομένων. Επιλογή δομής δεδομένων Κριτήρια: – Μέγεθος του προβλήματος – Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν το κόστος: – Lookup: αναζήτηση/έλεγχος.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
Ελεύθερη πτώση ΓεωργίαΕιρήνη Δημοτικό Σχολείο Αγίου Αντωνίου.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
ΧΡΗΣΗ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ PERIOD04 ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΣΥΧΝΟΤΗΤΩΝ ΑΝΑΠΑΛΣΗΣ ΠΑΛΛΟΜΕΝΩΝ ΑΣΤΕΡΩΝ Αλέξιος Λιάκος, M.Sc.
Κεφάλαιο 10 – Υποπρογράμματα
Κάντε κλικ για έναρξη… Τ Ο ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ Κέντρο εντολών Χώρος γραφικών (σελίδα) Χώρος σύνταξης διαδικασιών.
Θεωρία Υπολογισμού Ανεπίλυτα Προβλήματα από τη Θεωρία Γλωσσών.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Μερικές φορές το αποτέλεσμα εμφανίζεται αμέσως από κάτω.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
1 Διαχείριση Έργων Πληροφορικής Διάλεξη 7 η Διαχείριση Πόρων.
Κύρια Μνήμη Διάφοροι τύποι μνήμης RAM Από πάνω προς τα κάτω, DIP, SIPP, SIMM (30-pin), SIMM (72-pin), DIMM (168-pin), DDR DIMM (184-pin). Μνήμη RΟM.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Prolog Επεξεργασία και Αναπαράσταση Γνώσης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο: Τεχνητή Νοημοσύνη.
Δομές Επανάληψης ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ.
ΔIAXEIPIΣH MNHMHΣ.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Θεωρήστε το λογικό χώρο διευθύνσεων που αποτελείται από 8 σελίδες των 1024 λέξεων (word) η καθεμία, που απεικονίζεται σε φυσική μνήμη 32 πλαισίων. Πόσα.
Προβλήματα Ικανοποίησης Περιορισμών
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Άσκηση 1: Μετατροπή Θερμοκρασίας
Εισαγωγή στα Λειτουργικά Συστήματα (ΛΣ) Operating Systems (OS)
ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ POWERPOINT
Η Logo και ο σχεδιασμός γεωμετρικών σχημάτων
Ονοματεπώνυμο : Χρυσούλα Αγγελοπούλου Καθηγήτρια Πληροφορικής
Διδασκαλία με την μέθοδο project
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

4 η εργασία • 1 ο Πρόβλημα • Αναπτύξτε μια νέα κλήση του συστήματος (system call) στα πλαίσια του διαχειριστή διεργασιών (process manager) που να επιστρέφει τα εξής στοιχεία: – Το πλήθος των οπών μνήμης. – Το μέσο μέγεθος οπής. • Υλοποιείστε ένα απλό πρόγραμμα που χρησιμοποιεί την νέα κλήση του συστήματος που αναπτύξατε και να εμφανίζει τα ακόλουθα στοιχεία ανά 1 δευτερόλεπτο: – Πλήθος οπών Μέσο μέγεθος σε mb

θέματα • Από το και πέρα, χρησιμοποιείται virtual memory (pages κτλ.), η οποία περιπλέκει τα πράγματα. • Στο παράδειγμα θα χρησιμοποιηθεί μια παλαιότερη έκδοση όπου φαίνεται ξεκάθαρα η λειτουργία του hole list.

Ορισμός system call • Ορίζουμε τον αριθμό του νέου system call • Ορίζουμε το όνομα της συνάρτησης που υλοποιεί το system call • Και τέλος το prototype

Υλοποίηση της do_gethinfo

Υλοποίηση μιας συνάρτησης που καλεί το system call

Τροποποίηση makefiles

Δοκιμαστικό πρόγραμμα

Αποτέλεσμα

• 2 ο Πρόβλημα • Στην έκδοση 3.1.x του MINIX ο μηχανισμός ανάθεσης μνήμης που χρησιμοποιεί ο διαχειριστής διεργασιών (process manager) ακολουθεί την πολιτική first fit: ανατρέχει την λίστα των οπών, κάθε φορά από την αρχή της λίστας, προσπαθώντας να εντοπίσει την πρώτη οπή που είναι αρκετά μεγάλη για να χωρέσει το μέγεθος της μνήμης που πρέπει να ανατεθεί. – Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης έτσι ώστε σε κάθε ανάθεση μνήμης να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση – Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης έτσι ώστε να ακολουθεί την πολιτική best fit: ανατρέχει την λίστα των οπών και εντοπίζει την οπή που αφήνει το μικρότερο κενό χώρο όταν δεσμευθεί το μέγεθος της μνήμης που έχει ζητηθεί. Σε κάθε ανάθεση μνήμης θα πρέπει να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση. – Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης ξανά έτσι ώστε να ακολουθεί την πολιτική worst fit: ανατρέχει την λίστα των οπών και εντοπίζει την οπή που αφήνει τον περισσότερο κενό χώρο όταν δεσμευθεί το μέγεθος της μνήμης που έχει ζητηθεί. Σε κάθε ανάθεση μνήμης θα πρέπει να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση.

Τροποποίηση 1

Best – Worst Fit • Βασική πολιτική – Ας υπολογίσουμε για κάθε οπή, πόσος χώρος θα έμενε αν βάζαμε εκεί τη διεργασία. – Αποθηκεύουμε κάπου την καταλληλότερη οπή – Κάνουμε την ανάθεση σε αυτή την οπή

Best-fit Alloc.c

Alloc.c

Worst-fit Alloc.c

• 3 ο Πρόβλημα • Με χρήση της κλήσης του συστήματος και του προγράμματος που αναπτύξατε στο 1 ο πρόβλημα μελετήστε την συμπεριφορά του συστήματος όταν χρησιμοποιείται η κάθε μια πολιτική εντοπισμού οπών. Πιο συγκεκριμένα, θα πρέπει να δείξετε ότι ο αλγόριθμός σας επιλέγει οπές οι οποίες δεν θα επιλέγονταν με τον αλγόριθμο first-fit

Σύγκριση Κατόπιν εκκινήστε διεργασίες με την κατώθι σειρά: #programB & #programA & #programB & Τερματίστε το programA και μετά τη 2η programB. Θα μείνει μείνει μια λίστα οπών με • 1 η οπή μεγέθους programB και • 2η οπή μεγέθους programA Εκκινήστε ξανά μια διεργασία programA

First fit • Αναμένουμε ότι η programA θα εισχωρήσει στην 1 η οπή

• Εκτελώντας τα προγράμματα με την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε • με κόκκινο χρώμα, την οπή στην οποία τοποθετήθηκε η 2η εκτέλεση του programB, και • τον χώρο που κατέλαβε ( =20992byte) • με κίτρινο χρώμα την οπή στην οποία τοποθετήθηκε η εκτέλεση του programA και • τον χώρο που κατέλαβε ( =8704byte).

• Τερματίζουμε την εκτέλεση του programA και του 2 ου programB

First fit • Εκτελούμε μία φορά ακόμα το programA.

First fit

• Παρατηρούμε, με κίτρινο χρώμα, ότι η διεργασία Α τοποθετείται στην οπή που δημιουργήθηκε μετά τον τερματισμό της 2ης εκτέλεσης του ProgramB • Η οπή βρέθηκε πιο νωρίς από την οπή που δημιουργήθηκε τερματίζοντας την εκτέλεση του ProgramA.

Best fit • Αναμένουμε ότι η programA θα εισχωρήσει στην 2 η οπή • Εκτελούμε μία φορά ακόμα το programA.

Best Fit

Best fit • Παρατηρούμε, ότι με τον αλγόριθμο First-Fit, η διεργασία Α, τοποθετείται στην οπή που δημιουργήθηκε μετά τον τερματισμό της εκτέλεσης του ProgramA • η οπή αυτή αφήνει τον ελάχιστο δυνατό χώρο (0 bytes).

Worst fit • Αναμένουμε ότι η programA θα εισχωρήσει σε κάποια άσχετη οπή, άλλη από αυτές που απελευθερώθηκαν

Worst-fit • Εκτελώντας τα προγράμματα με την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε • με κόκκινο χρώμα, την οπή στην οποία τοποθετήθηκε η 2η εκτέλεση του programB, και • τον χώρο που κατέλαβε ( =20992byte) • με κίτρινο χρώμα την οπή στην οποία τοποθετήθηκε η εκτέλεση του programA και • τον χώρο που κατέλαβε ( =8704byte).

kill

Worst fit • Εκτελούμε μία φορά ακόμα το programA.

Worst-fit

Worst fit • Παρατηρούμε, με κίτρινο χρώμα, ότι με τον αλγόριθμο First-Fit, η διεργασία Α, τοποθετείται σε άσχετη οπή • η οπή αυτή αφήνει τον μέγιστο δυνατό χώρο.