Επαναληπτικές ασκήσεις Μάθημα: Λειτουργικά Συστήματα 17/1/2017
Αμοιβαίος αποκλεισμός Άσκηση 1 Δίνεται το παρακάτω πρόγραμμα P1: { P2:{ shared int x; shared int x; x = 10; x = 10; while (1) { while ( 1 ) { x = x - 1; x = x - 1; x = x + 1; x = x + 1; if (x != 10) if (x!=10) printf("x is %d",x) printf("x is %d",x) } } } } } } Λαμβάνοντας υπόψη ότι ο δρομολογητής σε ένα μονοεπεξεργαστικό σύστημα εναλλάσει τις εντολές των ταυτόχρονων διεργασιών χωρίς περιορισμούς βρείτε (α) το αποτύπωμα της εναλλαγής των διεργασιών που οδηγεί στην εκτύπωση του x is 10 (β) το αποτύπωμα της εναλλαγής που οδηγεί στην εκτύπωση «x is 8”. Θς πρέπει να θυμηθείτε ότι η υλοποίηση της απλής εντολής σε C “x=x+1” γίνεται από τη ρουτίνα σε Assembly LD R0,X /* load R0 from memory location x */ INCR R0 /* increment R0 */ STO R0,X /* store the incremented value back in X */
Αμοιβαίος αποκλεισμός Λύση (α) P1: x = x - 1; 9 P1: x = x + 1; 10 P2: x = x - 1; 9 P1: if(x != 10) 9 P2: x = x + 1; 10 P1: printf("x is %d", x); 10
Αμοιβαίος αποκλεισμός (β) Instruction M(x) P1-R0 P2-R0 P1: LD R0, x 10 10 -- P1: DECR R0 10 9 -- P1: STO R0, x 9 9 -- P2: LD R0, x 9 9 9 P2: DECR R0 9 9 8 P2: STO R0, x 8 9 8 P1: LD R0, x 8 8 8 P1: INCR R0 8 9 -- P2: LD R0, x 8 9 8 P2: INCR R0 8 9 9 P2: STO R0, x 9 9 9 P2: if(x != 10) printf("x is %d", x); P2: "x is 9" is printed. P1: STO R0, x 9 9 9 P1: if(x != 10) printf("x is %d", x); P1: "x is 9" is printed.
Αμοιβαίος αποκλεισμός -14- P1: LD R0, x 9 9 9 P1: DECR R0 9 8 -- P1: STO R0, x 8 8 -- P2: LD R0, x 8 8 8 P2: DECR R0 8 8 7 P2: STO R0, x 7 8 7 P1: LD R0, x 7 7 7 P1: INCR R0 8 8 7 P1: STO R0, x 8 8 7 P1: if(x != 10) printf("x is %d", x); P1: "x is 8" is printed.
Διαχείριση Μνήμης Χρησιμοποιείται ένα σχήμα δυναμικής κατάτμησης καιστο σχήμα που ακολουθεί δίνεται η διαμόρφωση της μνήμης σε μια δεδομένη χρονική στιγμή. Οι σκιασμένες περιοχές είναι blocks που έχουν ανατεθεί και οι λευκές είναι ελεύθερα blocks. Οι επόμενες τρεις αιτήσεις είναι για 40Μ, 20Μ και 10Μ. Προσδιορίστε τη διεύθυνση έναρξης για καθένα από τα τρια blocks χρησμοποιώντας τους παρακάτω αλγορίθμους 20Μ 20Μ 40Μ 60Μ 20Μ 10Μ 60Μ 40Μ 20Μ 30Μ 40Μ 40Μ
Διαχείριση μνήμης Α.
Ιδεατή Μνήμη Έστω ότι δίνεται ο παρακάτω πίνακας σελίδων για την τρέχουσα διεργασία που εκτελείται στον επεξεργαστή. ¨ολοι οι αριθμοί είνια δεκαδικοί, όλες οι αριθμήξσεις ξεκινούν από το 0 και όλες οι διευθύνσεις είναι διευθύνσεις των bytes μνήμης. Το μέγεθος σελίδας είναι 1024 bytes. Αριθμός ιδεατής σελίδας Έγκυρο bit Bit αναφοράς Bit τροποποίησης Αριθμός παλισίου σελίδας 1 4 7 2 - 3 5
Ιδεατή Μνήμη Α. Περιγράψτε ακριβώς τον τρόπο με τον οποίο γενικά μια ιδεατή διεύθυνση που οπαρ΄γεται από τη μεταφράζεται σε διεύθυνση της φυσικής κύρια μνήμης Β. Σε ποιά φυσική διεύθυνση αν υπάρχει, αντιστοιχούν οι παρακάτω ιδεατές διευθύνσεις 1052, 2221 και 5499
Ιδεατή Μνήμη Χώρισε δυαδική διεύθυνση σε ιδεατό αριθμό σελίδας και μετρατόπιση Χρησιμοποίησε VPN ως δείκτη στον πίκα σελίδων Βρες τον αριθμό πλαισίου Σύμπτυξε με ματατόπιση για να βρεις την φυσική διέυθυνση
Ιδεατή Μνήμη 1052=1024+28 -VPN 1 στη PFN 7,(7*1024+28=7196)