Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Εργασιών

Σχετικά έγγραφα
Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Projects

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Projects

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 5 - Editor

Εικονική Μνήμη (Virtual Μemory)

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 3 Task Switching in PM

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Εικονική Μνήμη (Virtual Μemory)

Writing kernels for fun and profit

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Προηγμένοι Μικροεπεξεργαστές. Protected Mode & Multitasking

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Keyboard. Ασσιούρας Ιωάννης 5593 Βούκας Ιωάννης 5001 Πρωτονοτάριος Ιωάννης 6072

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Αρχιτεκτονική Υπολογιστών

Διαχείριση Κύριας Μνήμης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Δημήτρης Πρίτσος. ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής

Λειτουργικά Συστήματα

Αρχιτεκτονική Υπολογιστών

Λειτουργικά Συστήματα Η/Υ

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Μετάφραση ενός Προγράμματος Εξαιρέσεις

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Εικονική Μνήμη (virtual memory)

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

Αρχιτεκτονική-ΙI Ενότητα 6 :

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση Υπολογιστών (Ι)

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

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Εισαγωγή στην Πληροφορική

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

Εισαγωγή στην πληροφορική -4

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Λειτουργικά Συστήματα (Λ/Σ)

Μαλούτα Θεανώ Σελίδα 1

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Λειτουργικά Συστήματα. Εισαγωγή

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Κεφάλαιο 4: Λογισμικό Συστήματος

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

Λειτουργικά Συστήματα

Εικονική Μνήμη (virtual memory)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

Λειτουργικά Συστήματα (ΗΥ321)

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Εισαγωγή στην Πληροφορική

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Λιβανός Γιώργος Εξάμηνο 2017Β

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Λειτουργικά Συστήματα (Λ/Σ)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Λειτουργικά Συστήματα (Λ/Σ)

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Αρχιτεκτονικές Συνόλου Εντολών

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ ΣΧΕ ΙΑΣΜΟΥ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Αρχιτεκτονική υπολογιστών

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Transcript:

Προηγμένοι Μικροεπεξεργαστές Παρουσίαση Εργασιών

Γενικά 2 Projects για ένα άτομο 5 Projects για δύο άτομα 4 Project για ένα έως δύο άτομα

Γενικά Προθεσμία: Τέλος Εξεταστικής (Hard Deadline) Τυπικός απαιτούμενος χρόνος: 1-3 μέρες σχεδιασμός και προετοιμασία 3-8 μέρες δουλειά full time 1-2 μέρες για την αναφορά ή/και την παρουσίαση Παραδοτέα: Κώδικας και αναλυτική αναφορά Ενδεχομένως και παρουσίαση

Debugging To debugging είναι κομμάτι της δουλειάς σας: Δεν παραιτούμαστε με το παραμικρό πρόβλημα Αναλύουμε τον κώδικά μας Εκτυπώνουμε τιμές μεταβλητών και καταχωρητών με τις Hex2ASCII και printstr ώστε να βρούμε το πρόβλημα Ψάχνουμε στο manual και στο δίκτυο για πληροφορίες Αν το πρόβλημα επιμένει, έρχεστε για να κοιτάξουμε μαζί τον κώδικά σας Αλλά να έχετε φροντίσει να έχετε εντοπίσει που βρίσκεται το πρόβλημα

Κώδικας Ο κώδικας σας θα διαβαστεί και από άλλους Πρέπει να είναι: οργανωμένος και δομημένος (συναρτήσεις, structs, πολλαπλά αρχεία) καθαρογραμμένος (δηλώσεις σταθερών, σχόλια, περιγραφές συναρτήσεων, στοίχιση κώδικα)

Θέμα 1 ο Program Loader Υλοποίηση μηχανισμού μέσω του οποίου να μπορούμε να εκτελέσουμε δυναμικά object files Για 2 άτομα

Θέμα 1 ο Program Loader Μέχρι τώρα εκτελούμε μόνο tasks που έχουν περάσει από το build μαζί με τον κυρίως κωδικά Θέλουμε να δημιουργούμε ξεχωριστά object files από τον nasm και να τα φορτώνουμε και να τα εκτελούμε

Θέμα 1 ο Program Loader Για να γίνει αυτό πρέπει: Να ανοίξουμε το αρχείο που περιέχει το object code Να αντιγράψουμε byte-προς-byte τα δεδομένα σε μία ελεύθερη περιοχή μνήμης Να θέσουμε code, data και stack descriptors ώστε να δείχνουν σε αυτήν την περιοχή μνήμης Να αρχικοποιήσουμε tss και tss descriptors για αυτό το task Να μεταφέρουμε την εκτέλεση στο νέο task

Θέμα 1 ο Program Loader Δίνονται έτοιμα: Ο κώδικας που θα επεκτείνετε Ένας sample κώδικας που θα φορτώσετε με τον loader Η συναρτήση x86_rm_int που επιτρέπει την εκτέλεση real mode BIOS και DOS Services από Protected Mode (κυρίως για το άνοιγμα και το διάβασμα του αρχείου)

Θέμα 2 ο Filesystem Υλοποίηση ενός απλού filesystem Γραμμένο κυρίως σε C με κλήσεις προς assembly όπου χρειάζεται Προσπέλαση δισκέτας με BIOS Services Για 2 άτομα

Θέμα 2 ο Filesystem Υποτυπώδες filesystem: Ονόματα αρχείων μέχρι 8 χαρακτήρες (9 bytes μαζί με το null character) Μέχρι 16 αρχεία Τα αρχεία βρίσκονται συνεχόμενα στον δίσκο Ένα απλό allocation table στο πρώτο sector της δισκέτας που περιέχει όλες τις πληροφορίες για τα αρχεία: Όνομα / Block αρχής / Block τέλους Filename StartBlock EndBlock test.txt 1 42 readme 43 125........ 9 bytes 2 bytes 2 bytes

Θέμα 2 ο Filesystem Προσπέλαση δισκέτας BIOS Services + x86_rm_int Παρεχόμενες υπηρεσίες: Δημιουργία file system Εμφάνιση λίστας αρχείων Αντιγραφή αρχείου σε memory buffer Εγγραφή από memory buffer σε αρχείο Δημιουργία κενού αρχείου Διαγραφή αρχείου Επίδειξη με δύο απλές συναρτήσεις: Print: εμφάνιση αρχείου στην οθόνη Store: διάβασμα πληκτρολογίου και αποθήκευση σε αρχείο

Θέμα 2 ο Filesystem Σε C το μεγαλύτερο μέρος του προγράμματος Σε assembly η κλήση των DOS και BIOS Services και η εκτύπωση στην video memory Απαιτήσεις: Bochs για DOS Emulation (το Dosbox δεν επιτρέπει δισκέτες) gcc για το compile της C linux ή windows με cygwin Δίνονται έτοιμα: Ο κώδικας μέχρι και το πέρασμα σε C Οι assembly συναρτήσεις για την κλήση RM services Το bochs με σεταρισμένα τα configuration files και την δισκέτα Scripts για το build του εκτελέσιμου

Θέμα 3 ο Stack Protection Υλοποίηση μηχανισμού για προστασία από υπερχείλιση της στοίβας Για 1-2 άτομα

Θέμα 3 ο Stack Protection Επέκταση του κώδικα του εργαστηρίου Στον τρέχων κώδικα, αν εξαντλήσουμε τα 256 bytes της στοίβας, θα αρχίσουμε να γράφουμε πάνω σε χρήσιμα δεδομένα και κώδικα Θέλουμε να χρησιμοποιήσουμε το limit protection του protected mode, ώστε να συλλαμβάνουμε αυτές τις περιπτώσεις

Θέμα 3 ο Stack Protection Συγκεκριμένα: Αλλάζουμε τον stack descriptor ώστε να αξιοποιεί σωστά το expansiondirection bit Το expansion-direction bit αλλάζει την μετάφραση του limit: αν σεταριστεί έγκυρα offsets [limit+1, 64K-1] Αλλάζουμε το base address, ώστε base address + 64K-1 = stack_end Αλλάζουμε το limit ώστε base address + limit+1 = stack_start Γράφουμε ISR για το interrupt 12 (Stack Exception), ώστε όταν ο ESP πέσει κάτω από το limit+1, να τρέξει ο κωδικάς μας ο οποίος: θα μεταφέρει τα δεδομένα της στοίβας σε μεγαλύτερη κενή περιοχή θα τροποποιήσει τον stack descriptor ώστε να δείχνει σε αυτήν την περιοχή

Θέμα 3 ο Stack Protection Για την επίδειξη του μηχανισμού σας θα γράψετε μία μικρή recursive συνάρτηση, η οποία θα πιέζει υπερβολικά την στοίβα Δίνονται έτοιμα: Ο κώδικας που θα επεκτείνετε

Θέμα 4 ο TLB Διερεύνηση και παρουσίαση του τρόπου λειτουργίας των TLB Για 2 άτομα

Θέμα 4 ο TLB Ta TLB είναι μικρές κρυφές μνήμες του επεξεργαστή που επιταχύνουν το page translation Κρατάνε τις αντιστοιχίες virtual physical address για τα πιο πρόσφατα χρησιμοποιημένα pages TLB miss Αν ο επεξεργαστής προσπελάσει page για το οποίο η μετάφραση δεν υπάρχει στο TLB τότε πρέπει να βρει την σωστή μετάφραση στις δομές του virtual memory manager στην κύρια μνήμη και να την γράψει στο TLB

Θέμα 4 ο TLB Μικρό kernel module για Linux: Θα διαβάζει τον αριθμό των TLB misses μέσω των performance counters performance counters hardware counters των intel επεξεργαστών, μπορούν να μετρήσουν μία σειρά από events του επεξεργαστή Θα τον προσφέρει για ανάγνωση μέσω ψευδοαρχείου, πχ μέσω του /proc

Θέμα 4 ο TLB Πρόγραμμα χρήστη σε C: Θα ζητάει από το λειτουργικό μεσω της malloc διαρκώς μεγαλύτερες περιοχές μνήμης, τις οποίες θα διαβάζει/γράφει σειριακά πολλαπλές φορές Προτεινόμενα μεγέθη μνήμης: 4ΚΒ εώς 256ΜB, με διπλασιασμό σε κάθε βήμα Τα accesses σε κάθε βήμα να είναι τα ίδια. Πχ αν διαβάσουμε τα 256MB τέσσερις φορές 8 φορές τα 128ΜΒ 16 φορές τα 64ΜΒ κοκ Για κάθε βήμα θα βρίσκει τα TLB misses που προκλήθηκαν, διαβάζοντας το ψευδοαρχείο που δημιούργησε το kernel module

Θέμα 4 ο TLB Αναφορά: Παρουσίαση του τρόπου λειτουργίας των TLB Γράφημα που θα δείχνει την σχέση μεταξύ TLB misses και εύρους μνήμης που χρησιμοποιούμε Εξήγηση του γραφήματος και εύρεση (προσεγγιστικά) του μεγέθους του TLB με βάση τα δεδομένα μας Δίνονται: Παραδείγματα για το πως δημιουργούμε kernel modules στο linux και για το πως χρησιμοποιούμε performance counters

Θέμα 5 ο Virtual Mode Scheduler Υλοποίηση round-robin scheduler που θα εκτελεί ταυτόχρονα protected mode tasks και real mode tasks μέσω του virtual 8086 mode. Για 2 άτομα

Θέμα 5 ο Virtual Mode Scheduler Το Virtual Mode είναι mode συμβατότητας Φτιάχτηκε για εκτέλεση παλιού real mode κώδικα από protected mode Μένουμε σε PM αλλά το address translation γίνεται με τον RM τρόπο Ενεργοποιείται με το VM flag στον eflags Απενεργοποιείται με reset του VM flag ή με εκτέλεση sensitive εντολής

Θέμα 5 ο Virtual Mode Scheduler Για να εκτελεστεί ένα task σε virtual mode πρέπει στο TSS του: το VM flag αρχικοποιημένο σε 1(VM mode) οι segment registers με real mode τιμές o CS:EIP θα δείχνει στην RM address που θέλουμε να εκτελέσουμε

Θέμα 5 ο Virtual Mode Scheduler Κατά τα άλλα για τον scheduler το vm task συμπεριφέρεται όπως τα pm tasks Χρειάζεται όμως προσοχή: Πεδίο IOPL στον eflags Πως διαχειριζόμαστε τα interrupts σε virtual mode Θεωρήστε πολύ απλά vm tasks: Χωρίς software interrupts, I/O accesses Επίδειξη με 2 pm και 2 rm tasks References: 386 Intel Manual, Chapter 15 http://wiki.osdev.org/virtual_8086_mode

Θέμα 6 ο Paging Υλοποίηση απλού paging μηχανισμού επεκτείνοντας την άσκηση του task switching Για 1-2 άτομα

Θέμα 6 ο Paging Απλό paging Λίγα pages των 4ΚΒ που να καλύπτουν μόνο τον κώδικα και τα δεδομένα μας Virtual address == Physical address Αφού μπείτε σε protected mode Στήσιμο του paging (Page Directories, Page Tables) Ενεργοποίηση του paging Πειραματισμός με κοινή χρήση σελίδων από δύο διαφορετικά tasks Προσοχή στην σωστή τοποθέτηση των TSS

Θέμα 7 ο Access Violation Προσομοίωση του μηχανισμού access violation ενός λειτουργικού συστήματος Για ένα άτομο

Θέμα 7 ο Access Violation General Protection Exception προκαλούν οι προσπελάσεις μνήμης που: παραβιάζουν το limit protection παραβιάζουν τα δικαιώματα χρησης ενός segment καθώς και η φόρτωση segment registers με άκυρους/λάθος descriptors

Θέμα 7 ο Access Violation Θέλουμε: ISR για το General Protection Exception (GPE) που να αναγνωρίζει την πηγή σφάλματος και να την εκτυπώνει στην οθόνη Κώδικα επίδειξης σε privilege level 3 που να προκαλεί GPE Κώδικα που επιτελεί την ίδια λειτουργικότητα, αλλά να αποφεύγει το GPE 1) με χρήση call gate, 2) με χρήση conforming bit Παρουσίαση στην αναφορά των τρόπων με τους οποίους χειρίζονται τα GPE η οικογένεια των Windows '95 ('95, '98, Me) και η οικογένεια των Windows NT (NT, 2K, XP, Vista, 7)

Θέμα 8 ο I/O Map Διερεύνηση του πως αξιοποιείται το πεδίο I/O Map του TSS Πρόγραμμα επίδειξης που να χρησιμοποιεί αυτό το πεδίο Για 1-2 άτομα

Θέμα 8 ο I/O Map Αναλυτική περιγραφή στην αναφορά του πως λειτουργεί το πεδίο I/O Map και πως το αξιοποιούμε Επέκταση του κώδικα του εργαστηρίου: 2 tasks σε privilege level 3 Το πρώτο θα διαβάζει το πληκτρολόγιο (πρόσβαση μόνο στις θύρες του πληκτρολογίου) Το δεύτερο θα παράγει ήχο ανάλογο του πλήκτρου που πατήθηκε (πρόσβαση μόνο στις θύρες του PC Speaker) Παλιά projects για την ανάγνωση του πληκτρολογίου και την χρήση του PC Speaker δίνονται έτοιμα

Θέμα 9 ο Virtual Memory μέσω Segmentation Υλοποίηση virtual memory μηχανισμού χρησιμοποιώντας το segmentation Για 2 άτομα

Θέμα 9 ο Virtual Memory μέσω Segmentation Θέλουμε έναν virtual memory manager: Θα κρατάει στην μνήμη ένα υποσύνολο των χρησιμοποιούμενων segments Τα υπόλοιπα σε αρχεία στον δίσκο Το present bit των αντίστοιχων descriptors 1 0 Θα έχει τον έλεγχο του interrupt 11 (Segment not present) Αν το πρόγραμμα χρήστη προσπαθήσει να χρησιμοποιήσει segment που δεν βρίσκεται στην μνήμη: Θα μεταφέρει ένα segment εκτός μνήμης Θα φέρνει το segment που ζητήθηκε πίσω στην μνήμη

Θέμα 9 ο Virtual Memory μέσω Segmentation Η αντικατάσταση θα γίνεται με λογική not recently used (NRU) Το πεδίο accessed στους descriptors μας δείχνει ποια segments χρησιμοποιήθηκαν μετά τον τελευταίο καθαρισμό των accessed bit Όσα έχουν accessed bit = 0 υποψήφια για αντικατάσταση Τα segments του scheduler και του vm manager δεν πρέπει να φεύγουν ποτέ από την μνήμη Επίδειξη με δύο tasks που γράφουν συνεχώς σειριακά σε 8 διαφορετικα μη-αλληλοεπικαλυπτόμενα segments των 64ΚΒ Κάθε χρονική στιγμή μόνο 2 από τα segments δεδομένων των tasks θα βρίσκονται στην μνήμη

Θέμα 10 ο Μετάφραση x86 εντολών Βιβλιογραφική μελέτη και αναφορά για το πως μεταφράζει ο επεξεργαστής τις x86 εντολές ενός προγράμματος (CISC εντολές), ώστε να τις εκτελέσει το εσωτερικό κομμάτι του επεξεργαστή που δέχεται x86 u-ops (RISC εντολές) Για ένα άτομο

Θέμα 10 ο Μετάφραση x86 εντολών Η αναφορά πρέπει να εξετάσει: Γιατί μεταφράζονται οι εντολές Ποιοι μηχανισμοί συμμετέχουν στην μετάφραση Σε γενικές γραμμές πως γίνεται η μετάφραση Πως επιταχύνεται η μετάφραση στους σύγχρονους x86 Εναλλακτικές μέθοδοι αντί για μετάφραση μία προς μία του instruction stream Πχ επεξεργαστής Crusoe της Transmera

Θέμα 11 ο Processor bus και multithreaded εφαρμογές Μελέτη του βαθμού χρήσης του bus του επεξεργαστή από επιστημονικές multithreaded εφαρμογές, χρησιμοποιώντας performance counters Για 1-2 άτομα

Θέμα 11 ο Processor bus και multithreaded εφαρμογές Το bus του επεξεργαστή συνδέει τα διαφορετικά cores μεταξύ τους και τους παρέχει την διεπαφή με τον ελεγκτή μνήμης Κρίσιμο συστατικό του επεξεργαστή Είναι το bottleneck του συστήματος για multithreaded εφαρμογές με υψηλό βαθμό επικοινωνίας

Θέλουμε: Θέμα 11 ο Processor bus και multithreaded εφαρμογές Χρησιμοποιώντας προγράμματα που βασίζονται στους performance counters (πχ Intel Vtune ή oprofile) να μετρήσετε στατιστικά που σχετίζονται με το bus για την σουίτα benchmarks PARSEC Πολλαπλές μετρήσεις για διαφορετικό αριθμό δημιουργούμενων threads Παρουσίαση και ανάλυση των αποτελεσμάτων (πχ μέγεθος μεταφερόμενων δεδομένων, μέγιστο bandwidth, βέλτιστος αριθμός threads κοκ)

Απαιτήσεις: Θέμα 11 ο Processor bus και multithreaded εφαρμογές PC με σχετικά πρόσφατο επεξεργαστή της Intel Linux

Επίλογος Τα projects δίνονται με λογική First Come First Served Δεν έχουν όλα τα projects τον ίδιο βαθμό ευκολίας και αυτό το παίρνουμε υπόψιν στην βαθμολόγηση Πολύ δύσκολο project 80% τελειωμένο, θα πάρει αξιοπρεπή βαθμό Πολύ εύκολο project στο ίδιο επίπεδο ολοκλήρωσης, δεν περνάει Για ερωτήσεις στο γραφείο μου μέχρι και 22/12. Μετά πάλι από την 5/1 Ώρες φοιτητών: 12:00-14:00 Σε mail θα απαντάμε μόνο για διευκρινίσεις Μην αφήσετε το project για το τέλος της εξεταστικής Θα υπο-εκτιμήσετε το χρόνο που χρειάζεστε και δεν θα προλάβετε