Φροντιστ
Download
1 / 37

Φροντιστ ήριο Εργ. Λειτουργικών Συστημάτων - PowerPoint PPT Presentation


  • 116 Views
  • Uploaded on

Φροντιστ ήριο Εργ. Λειτουργικών Συστημάτων. Αλγ όριθμοι ανάθεσης μνήμης. 4 η εργασία 2012-13. 1 ο Πρόβλημα Αναπτύξτε μια νέα κλήση του συστήματος (system call) στα πλαίσια του διαχειριστή διεργασιών (process manager) που να επιστρέφει τα εξής στοιχεία: Το πλήθος των οπών μνήμης.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Φροντιστ ήριο Εργ. Λειτουργικών Συστημάτων' - bessie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Φροντιστήριο Εργ. Λειτουργικών Συστημάτων

Αλγόριθμοι ανάθεσης μνήμης


4 2012 13
4η εργασία 2012-13

  • 1ο Πρόβλημα

  • Αναπτύξτε μια νέα κλήση του συστήματος (system call) στα πλαίσια του διαχειριστή διεργασιών (process manager) που να επιστρέφει τα εξής στοιχεία:

    • Το πλήθος των οπών μνήμης.

    • Το μέσο μέγεθος οπής.

  • Υλοποιείστε ένα απλό πρόγραμμα που χρησιμοποιεί την νέα κλήση του συστήματος που αναπτύξατε και να εμφανίζει τα ακόλουθα στοιχεία ανά 1 δευτερόλεπτο:  

    • Πλήθος οπών <tab> Μέσο μέγεθος σε mb


θέματα

  • Από το 3.1.5 και πέρα, χρησιμοποιείται virtual memory (pages κτλ.), η οποία περιπλέκει τα πράγματα.

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


System call
Ορισμός system call

  • Ορίζουμε τον αριθμό του νέου system call

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

  • Και τέλος το prototype






Makefiles
Τροποποίηση καλεί το makefiles



Αποτέλεσμα καλεί το


  • 2 καλεί το ο Πρόβλημα

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

    • Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης έτσι ώστε σε κάθε ανάθεση μνήμης να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση

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

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


Τροποποίηση 1 καλεί το


Best worst fit
Best – Worst Fit καλεί το

  • Βασική πολιτική

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

    • Αποθηκεύουμε κάπου την καταλληλότερη οπή

    • Κάνουμε την ανάθεση σε αυτή την οπή


Best fit alloc c
Best-fit καλεί το Alloc.c


Alloc c
Alloc.c καλεί το


Alloc c1
Alloc.c καλεί το


Worst fit alloc c
Worst-fit καλεί το Alloc.c


Worst fit alloc c1
Worst-fit καλεί το Alloc.c


Worst fit alloc c2
Worst-fit καλεί το Alloc.c


  • 3 καλεί το οΠρόβλημα

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


Σύγκριση καλεί το

  • Κατόπιν εκκινήστε διεργασίες με την κατώθι σειρά:

  • #programB &

  • #programB &

  • #programB &

  • #programA &

  • #programB &

  • Τερματίστε το programAκαι μετά τη 2η programB. Θα μείνει μείνει μια λίστα οπών με

  • 1η οπή μεγέθους programBκαι

  • 2η οπή μεγέθους programA

  • Εκκινήστε ξανά μια διεργασία programA


First fit
First fit καλεί το

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


  • Εκτελώντας τα προγράμματα με την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

    • με κόκκινο χρώμα, την οπή στην οποία τοποθετήθηκε η 2η εκτέλεση του programB, και

      • τον χώρο που κατέλαβε (394496-373504=20992byte)

    • με κίτρινο χρώμα την οπή στην οποία τοποθετήθηκε η εκτέλεση του programA και

      • τον χώρο που κατέλαβε (352512-343808=8704byte).



First fit1
First fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

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


First fit2
First fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε


First fit3
First fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

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

  • Η οπή βρέθηκε πιο νωρίς από την οπή που δημιουργήθηκε τερματίζοντας την εκτέλεση του ProgramA.


Best fit
Best fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

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

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


Best fit1
Best Fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε


Best fit2
Best fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

  • Παρατηρούμε, ότι με τον αλγόριθμο First-Fit, η διεργασία Α, τοποθετείται στην οπή που δημιουργήθηκε μετά τον τερματισμό της εκτέλεσης του ProgramA

  • η οπή αυτή αφήνει τον ελάχιστο δυνατό χώρο (0 bytes).


Worst fit
Worst fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

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


Worst fit1
Worst-fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

  • Εκτελώντας τα προγράμματα με την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

    • με κόκκινο χρώμα, την οπή στην οποία τοποθετήθηκε η 2η εκτέλεση του programB, και

      • τον χώρο που κατέλαβε (659373056-659352064=20992byte)

    • με κίτρινο χρώμα την οπή στην οποία τοποθετήθηκε η εκτέλεση του programA και

      • τον χώρο που κατέλαβε (659316224-659307520=8704byte).


kill την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε


Worst fit2
Worst fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

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


Worst fit3
Worst-fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε


Worst fit4
Worst fit την σειρά που δίνεται (Β-Β-Β-Α-Β), παρατηρούμε

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

  • η οπή αυτή αφήνει τον μέγιστο δυνατό χώρο.


ad