2008-2009:Ασκήσεις:3η Άσκηση

Από OSLab

1o Πρόβλημα
Αναπτύξτε μια νέα κλήση του συστήματος (system call) στα πλαίσια του διαχειριστή διεργασιών (process manager) που να επιστρέφει τα εξής στοιχεία:
  • το πλήθος των οπών μνήμης
  • το μέγιστο μέγεθος οπής
  • το ελάχιστο μέγεθος οπής
  • το μέσο μέγεθος οπής
  • την απόκλιση των μεγεθών (standard deviation)
Υλοποιείστε ένα απλό πρόγραμμα που χρησιμοποιεί την νέα κλήση του συστήματος που αναπτύξατε και να εμφανίζει τα ακόλουθα στοιχεία ανά 1 δευτερόλεπτο:
 
"%d\t%d\t%d\t%.2f\t%.2f\n", nholes, max_size_in_mb, min_size_in_mb, 
                            avg_size_in_mb, std_dev_size_in_mb
2o Πρόβλημα
Αναπτύξτε μια νέα κλήση του συστήματος (system call) στα πλαίσια του συστήματος αρχείων (file system) που να δέχεται ένα όνομα αρχείου (char * name) ως παράμετρο. Επιστρέφει στην διεργασία που την κάλεσε το ποσοστό κατακερματισμού των blocks του αρχείου. Ως ποσοστό κατακερματισμού ορίζουμε τον αριθμό των blocks που δεν είναι συναιχόμενα ως προς το συνολικό αριθμό των blocks του αρχείου.
Παράδειγμα: Ένα αρχείο είναι αποθηκευμένο στα blocks: 1001, 1002, 1003, 1050, 1420, 1421, 1422. Τα blocks 1003, 1050 και 1420 δεν ειναι συναιχόμενα. Το ποσοστό κατακερματισμού είναι 3/7=42.8%


Παράδοση:

  • Η άσκηση είναι ατομική
  • Η προθεσμία υποβολής είναι η Παρασκευή 19 Ιουνίου, ώρα 23:59 Κυριακή 21 Ιουνίου, ώρα 23:59 Δευτέρα 22 Ιουνίου, ώρα 23:59
    • Σε περίπτωση που η άσκηση παραδοθεί με καθυστέρηση, για κάθε εβδομάδα καθηστέρησης θα υπάρξει μείωση 30%.
    • Αν παρατηρηθεί αντιγραφή, τότε όλοι όσοι συνεργάστηκαν και εμπλέκονται στην αντιγραφή, θα μηδενιζονται στο μάθημα.
  • Η παράδοση γίνεται με την χρήση του εργαλείου submit μόνο από τον εκπρόσωπο της ομάδας
  • Το αρχείο που θα παραδώσετε πρέπει να έχει το όνομα 3.tar.gz και να περιέχει:
    1. Ένα αρχείο με όνομα readme που περιέχει μια γραμμή με το ΑΜ, Ονοματεπώνυμο, e-mail -- με αυτή την σειρά και με το ονοματεπώνυμο να είναι γραμμένο με την χρήση λατινικών χαρακτήρων (όπως εμφανίζονται στο σύστημα diogenis).
    2. Για τα προβλήματα 1-2, τα αρχεία που υλοποιούν τις νέες λειτουργίες θα πρέπει να τοποθετηθούν σε φακέλους αντίστοιχους με αυτούς που χρησιμοποιεί ο κώδικας minix 3. π.χ. για το 1o πρόβλημα, τα αρχεία που αφορούν τον process manager θα πρέπει να είναι τοποθετημένα στον υποφάκελο src/servers/pm, το αρχείο που υλοποιεί την απλή εντολή θα πρέπει να βρίσκεται στον υποφάκελο src/commands/simple, για το 2o πρόβλημα, τα αρχεία που αφορούν το file system θα πρέπει να είναι τοποθετημένα στον υποφάκελο src/servers/fs κοκ.
  • Μόνο τα παραπάνω αρχεία θα βαθμολογηθούν και ΚΑΝΕΝΑ άλλο.
  • ΌΛΑ ΤΑ ΟΝΟΜΑΤΑ ΤΩΝ ΑΡΧΕΙΩΝ ΚΑΘΩΣ ΚΑΙ ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΟΥΝΤΑΙ ΜΟΝΟ ΑΠΟ ΛΑΤΙΝΙΚΟΥΣ ΧΑΡΑΚΤΗΡΕΣ.


Σχετικό υλικό: