Από OSLab
- 1o Πρόβλημα
- Αναπτύξτε μια νέα κλήση (system call) του διαχειριστή διεργασιών (process manager) που να επιστρέφει τα εξής στοιχεία:
- . Το πλήθος των οπών μνήμης.
- . Το μέγιστο μέγεθος οπής.
- . Το ελάχιστο μέγεθος οπής.
- . Το μέσο μέγεθος οπής.
- Υλοποιείστε ένα απλό πρόγραμμα που χρησιμοποιεί την νέα κλήση του συστήματος που αναπτύξατε και να εμφανίζει τα ακόλουθα στοιχεία ανά 1 δευτερόλεπτο:
"%d\t%d\t%d\t%.2f\t\n", nholes, max_size_in_mb, min_size_in_mb, avg_size_in_mb
- Τα αρχεία που θα παραδώσετε θα πρέπει να είναι καλά δομημένα (με την χρήση tab, κλπ.) και καλά σχολιασμένα.
- 2o Πρόβλημα
- Στην έκδοση 3.1.8 του MINIX ο μηχανισμός ανάθεσης μνήμης που χρησιμοποιεί ο διαχειριστής διεργασιών (process manager) ακολουθεί την πολιτική first fit: ανατρέχει την λίστα των οπών, κάθε φορά από την αρχή της λίστας, προσπαθώντας να εντοπίσει την πρώτη οπή που είναι αρκετά μεγάλη για να χωρέσει το μέγεθος της μνήμης που πρέπει να ανατεθεί.
- Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης έτσι ώστε να ακολουθεί την πολιτική best fit: ανατρέχει την λίστα των οπών και εντοπίζει την οπή που αφήνει το μικρότερο κενό χώρο όταν δεσμευθεί το μέγεθος της μνήμης που έχει ζητηθεί. Τα αρχεία που θα παραδώσετε θα πρέπει να είναι καλά δομημένα (με την χρήση tab, κλπ.) και καλά σχολιασμένα.
- Με χρήση της κλήσης του συστήματος και του προγράμματος που αναπτύξατε στο 1ο πρόβλημα μελετήστε την συμπεριφορά του συστήματος όταν χρησιμοποιείται η κάθε μια πολιτική εντοπισμού οπών. Περιγράψτε τα συμπεράσματα σας σε μια συνοπτική αναφορά που δεν θα ξεπερνά τις 500 λέξεις.
|
Παράδοση:
- Η άσκηση είναι ατομική
- Η προθεσμία υποβολής είναι η Παρασκευή 20 Μαΐου, ώρα 23:59
- Αν παρατηρηθεί αντιγραφή, τότε όλοι όσοι συνεργάστηκαν και εμπλέκονται στην αντιγραφή, θα μηδενίζονται στο μάθημα.
- Η παράδοση γίνεται με την χρήση του εργαλείου submit
- Το αρχείο που θα παραδώσετε πρέπει να έχει το όνομα 4.tar.gz και να περιέχει:
- Ένα αρχείο με όνομα readme που περιέχει μια γραμμή με το ΑΜ, Ονοματεπώνυμο, e-mail -- με αυτή την σειρά και με το ονοματεπώνυμο να είναι γραμμένο με την χρήση λατινικών χαρακτήρων (όπως εμφανίζονται στο σύστημα diogenis).
- Τα αρχεία που υλοποιούν τις νέες λειτουργίες θα πρέπει να τοποθετηθούν σε φακέλους αντίστοιχους με αυτούς που χρησιμοποιεί ο κώδικας minix 3. π.χ. για το 1o πρόβλημα, τα αρχεία θα πρέπει να βρίσκονται στον υποφάκελο 1/src/servers/pm κοκ.
- Μόνο τα παραπάνω αρχεία θα βαθμολογηθούν και ΚΑΝΕΝΑ άλλο.
- ΌΛΑ ΤΑ ΟΝΟΜΑΤΑ ΤΩΝ ΑΡΧΕΙΩΝ ΚΑΘΩΣ ΚΑΙ ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΟΥΝΤΑΙ ΜΟΝΟ ΑΠΟ ΛΑΤΙΝΙΚΟΥΣ ΧΑΡΑΚΤΗΡΕΣ.
Σχετικό υλικό: