Εργαστήριο Λειτουργικών Συστημάτων Ακ. Έτος Άσκηση 4. Πλήθος οπών <tab> Μέσο μέγεθος σε mb

Σχετικά έγγραφα
Εργαστήριο Λειτουργικών Συστημάτων Ακ. Έτος Άσκηση 3

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγή στον Προγραμματισμό

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΜΕΣΟΛΟΓΓΙ ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΕΡΓΑΣΤΗΡΙΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ Διαδικασία Κατάρτησης Επιχειρηματικού Σχεδίου

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

είκτες και Πίνακες (2)

Δομημένος Προγραμματισμός

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00

Ενδεικτικές λύσεις και στατιστικά

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Η γλώσσα προγραμματισμού C

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Δομημένος Προγραμματισμός (ΤΛ1006)

Μεθόδων Επίλυσης Προβλημάτων

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Ενσωματωμένα Συστήματα

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Η γλώσσα προγραμματισμού Strange

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Ένα πρώτο πρόγραμμα ΔΟΜΗ TOY ΠΡΟΓΡΑΜΜΑΤΟΣ. Τι σημαίνουν οι εντολές. Από τι αποτελείται ένα πρόγραμμα

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

11. Συναρτήσεις (Μέρος Ι)

Προγραμματισμός Η/Υ (ΤΛ2007 )

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Η γλώσσα προγραμματισμού C

Κατανεμημένα Συστήματα

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 4η Διάλεξη Πίνακες Συναρτήσεις

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Ηλεκτρονικοί Υπολογιστές

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Η βασική συνάρτηση προγράμματος main()

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον δομημένο προγραμματισμό

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Η γλώσσα προγραμματισμού C

Προγραμματισμός I (Θ)

Δομημένος Προγραμματισμός

Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1. Εργαστήριο 6. Εαρινό Εξάμηνο

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Διαδικασιακός Προγραμματισμός

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Διαδικαστικός Προγραμματισμός

Εισαγωγή στην γλώσσα προγραμματισμού C

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διαδικασιακός Προγραμματισμός

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Βασικές Αρχές Προγραμματισμού

Transcript:

Εργαστήριο Λειτουργικών Συστημάτων Ακ. Έτος 2012-13 Άσκηση 4 Η εργασία να εκπονηθεί με την έκδοση minix 3.1.x 1 ο Πρόβλημα Αναπτύξτε μια νέα κλήση του συστήματος (system call) στα πλαίσια του διαχειριστή διεργασιών (process manager) που να επιστρέφει τα εξής στοιχεία: 1. Το πλήθος των οπών μνήμης. 2. Το μέσο μέγεθος οπής. Υλοποιείστε ένα απλό πρόγραμμα που χρησιμοποιεί την νέα κλήση του συστήματος που αναπτύξατε και να εμφανίζει τα ακόλουθα στοιχεία ανά 1 δευτερόλεπτο: Πλήθος οπών <tab> Μέσο μέγεθος σε mb Τα αρχεία που θα παραδώσετε θα πρέπει να είναι καλά δομημένα (με την χρήση tab, κλπ.) και καλά σχολιασμένα. 2 ο Πρόβλημα Στην έκδοση 3.1.x του MINIX ο μηχανισμός ανάθεσης μνήμης που χρησιμοποιεί ο διαχειριστής διεργασιών (process manager) ακολουθεί την πολιτική first fit: ανατρέχει την λίστα των οπών, κάθε φορά από την αρχή της λίστας, προσπαθώντας να εντοπίσει την πρώτη οπή που είναι αρκετά μεγάλη για να χωρέσει το μέγεθος της μνήμης που πρέπει να ανατεθεί. Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης έτσι ώστε σε κάθε ανάθεση μνήμης να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης έτσι ώστε να ακολουθεί την πολιτική best fit: ανατρέχει την λίστα των οπών και εντοπίζει την οπή που αφήνει το μικρότερο κενό χώρο όταν δεσμευθεί το μέγεθος της μνήμης που έχει ζητηθεί. Σε κάθε ανάθεση μνήμης θα πρέπει να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση. Τροποποιήστε τον μηχανισμό ανάθεσης μνήμης ξανά έτσι ώστε να ακολουθεί την πολιτική worst fit: ανατρέχει την λίστα των οπών και εντοπίζει την οπή που αφήνει τον περισσότερο κενό χώρο όταν δεσμευθεί το μέγεθος της μνήμης που έχει ζητηθεί. Σε κάθε ανάθεση μνήμης θα πρέπει να εμφανίζεται στην οθόνη το μέγεθος της οπής που εντοπίστηκε και ο υπόλοιπος διαθέσιμος χώρος στην οπή, μετά την ανάθεση. Για να μελετήσετε τη συμπεριφορά των τροποποιήσεών σας, εκτελέστε οποιοδήποτε πρόγραμμα στο Minix δίνοντας στο τέλος το σύμβολο & (π.χ. nano& - εκκινεί το πρόγραμμα nano παράλληλα με την κονσόλα, αν δώσετε κατόπιν την εντολή ps θα το δείτε σαν διεργασία).

3 ο Πρόβλημα Με χρήση της κλήσης του συστήματος και του προγράμματος που αναπτύξατε στο 1 ο πρόβλημα μελετήστε την συμπεριφορά του συστήματος όταν χρησιμοποιείται η κάθε μια πολιτική εντοπισμού οπών. Πιο συγκεκριμένα, θα πρέπει να δείξετε ότι ο αλγόριθμός σας επιλέγει οπές οι οποίες δεν θα επιλέγονταν με τον αλγόριθμο first- fit. Χρησιμοποιήστε τον κατώθι απλό τρόπο ελέγχου: Δημιουργήστε 2 απλά προγράμματα, programa και programb, με τις main συναρτήσεις programa: main() { while (1) {} } programb: main() { int arr[100]; printf( Hello World\n ); while (1){ } } Κατόπιν εκκινήστε διεργασίες με την κατώθι σειρά: % programa & Ελέγξτε ότι το programb πιάνει περισσότερη μνήμη από το programa, αν όχι, δώστε του περισσότερη μνήμη με την εντολή chmem ή προσθέτοντας κάποιο μεγάλο array. Κατόπιν τερματίστε την 4 η διεργασία (programa) και αμέσως μετά την 2 η. Θα πρέπει έτσι να μείνει μια λίστα οπών με πρώτη μια οπή μεγέθους programβ και κατόπιν μια οπή μεγέθους program A. Μπορείτε να βρείτε τα process ids με την εντολή % ps a και να τις τερματίσετε με τις εντολές % kill -9 [process_id] Τώρα εκκινήστε μια νέα διεργασία programa (% programa &). Με τον first fit αλγόριθμο, η διεργασία θα πρέπει να εισαχθεί στην οπή που αφήνει η τερματισμένη διεργασία programb, ενώ με τον best- fit, σε αυτή που αφήνει η τερματισμένη programa. Υπάρχει μια μικρή περίπτωση να εμφανισθεί σπατάλη μνήμης κατά τον τερματισμό της programa, οπότε η νέα programa να μην μπορεί να χωρέσει ακριβώς στην οπή, οπότε μπορείτε να δοκιμάσετε και κάποια τρίτη διεργασία με διαφορετικά μεγέθη μνήμης. Περιγράψτε τα συμπεράσματα σας σε μια συνοπτική αναφορά, χρησιμοποιώντας το template στο τέλος της εκφώνησης. Στην αναφορά θα πρέπει να δείξτε με κατάλληλα screenshots τον τρόπο με τον οποίο συμπεριφέρεται ο first- fit και κατόπιν ο best- fit και ο worst- fit αλγόριθμος, κάνοντας χρήση της υλοποίησης που κάνατε στο πρόβλημα 1. Παράδοση Άσκησης Για κάθε άσκηση θα πρέπει να υποβάλλετε μια λίστα με όλα τα τροποποιημένα αρχεία συστήματος και τις αλλαγές σε αυτά, σε ένα ενιαίο αρχείο Word / PDF. Θα πρέπει επίσης να φαίνεται καθαρά το πλήρες path και ο πηγαίος κώδικας

τυχόν αρχείων που έχετε δημιουργήσει εκ νέου. Για την υποβολή θα πρέπει υποχρεωτικά να χρησιμοποιηθεί το template που βρίσκεται παρακάτω. Τέλος, θα πρέπει να υποβάλλετε Να ονομάσετε το συμπιεσμένο αρχείο σε [ΑΜ]_ex4.[zip rar] (π.χ. 3345_ex4.rar ή 3345_ex4.zip) Το συμπιεσμένο αρχείο θα πρέπει να υποβληθεί ηλεκτρονικά στην ιστοσελίδα http://diogenis.ceid.upatras.gr/~akomninos/oslab ΟΛΑ ΤΑ ΟΝΟΜΑΤΑ ΤΩΝ ΑΡΧΕΙΩΝ ΚΑΘΩΣ ΚΑΙ ΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΕΠΕΙ ΝΑ ΑΠΟΤΕΛΟΥΝΤΑΙ ΜΟΝΟ ΑΠΟ ΛΑΤΙΝΙΚΟΥΣ ΧΑΡΑΚΤΗΡΕΣ. Σημειώνεται ότι η εργασία είναι ομαδική με επιθυμητό μέγεθος ομάδας το πολύ 3 άτομα.

Φόρμα υποβολής 4ης Άσκησης Ονόματα φοιτητών ΑΜ φοιτητών Πρόβλημα 1 Άσκηση 4 2. Κώδικας δοκιμαστικού προγράμματος test.c //test.c dokimastiko programma #include <stdlib.h> #include <stdio.h> #include <string.h> 3. Screenshot εκτέλεσης δοκιμαστικού προγράμματος [σχετικά screenshots τα οποία δείχνουν το output από τα δοκιμαστικά προγράμματα]

Πρόβλημα 2 First fit Screenshot first fit [σχετικό screenshot το οποίο δείχνει τα στοιχεία της οπής στην οποία έγινε ανάθεση] Best - fit Screenshot best fit [σχετικό screenshot το οποίο δείχνει τα στοιχεία της οπής στην οποία έγινε

ανάθεση] Worst fit Screenshot worst fit [σχετικό screenshot το οποίο δείχνει τα στοιχεία της οπής στην οποία έγινε ανάθεση] Πρόβλημα 3 1. Σχόλια για τη συμπεριφορά των αλγορίθμων [μέχρι 500 λέξεις, εξαιρουμένων των screenshots για κάθε αλγόριθμο]