Μελζτθ αλγορίκμων αναςτροφισ και τυχαίασ μετάκεςθσ πίνακα με αξιοποίθςθ τθσ κρυφισ μνιμθσ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελζτθ αλγορίκμων αναςτροφισ και τυχαίασ μετάκεςθσ πίνακα με αξιοποίθςθ τθσ κρυφισ μνιμθσ"

Transcript

1 ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ ΠΟΛΤΣΕΧΝΙΚΗ ΧΟΛΗ ΣΜΗΜΑ ΗΛΕΚΣΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΤΠΟΛΟΓΙΣΩΝ ΣΟΜΕΑ ΗΛΕΚΣΡΟΝΙΚΗ & ΤΠΟΛΟΓΙΣΩΝ Μελζτθ αλγορίκμων αναςτροφισ και τυχαίασ μετάκεςθσ πίνακα με αξιοποίθςθ τθσ κρυφισ μνιμθσ Μαμαγιάννος Δημήτριος - Μπάκας Στυλιανός Επίβλεψη: Πιτςιάνησ Νίκοσ Οκτϊβριοσ 2016

2

3 Πρόλογοσ Η εργαςία επικεντρϊνεται ςτθν μελζτθ αλγορίκμων αναςτροφισ και τυχαίασ μετάκεςθσ ενόσ πίνακα ςτθν μνιμθ. Η αναςτροφι ενόσ πίνακα είναι καίρια ςε επιςτθμονικά πεδία όπωσ θ επεξεργαςίασ εικόνασ, θ διαμόρφωςθ και θ αποδιαμόρφωςθ ςιματοσ, τα ςυςτιματα γεωγραφικοφ προςδιοριςμοφ και θ ανάλυςθ κοινωνικϊν δικτφων. τθν εργαςία παρουςιάηεται ζνα πλικοσ αλγορίκμων για τθν αναςτροφι πίνακα. Αναλυτικότερα, περιγράφονται αλγόρικμοι, τόςο απλοϊκοί, όςο και πιο εξελιγμζνοι, οι οποίοι επιδιϊκουν τθν καλφτερθ αξιοποίθςθ τθσ κρυφισ μνιμθσ για καλφτερθ απόδοςθ. Η τυχαία μετάκεςθ ενόσ πίνακα είναι εξίςου ςθμαντικό κομμάτι τθσ μελζτθσ. Οι μετακζςεισ χρθςιμοποιοφνται ευρζωσ ςτον κόςμο των μακθματικϊν και ιδιαίτερα ςτθν ςυνδυαςτικι. Επιπλζον, είναι ζνα ςθμαντικό κεφάλαιο για τα υπολογιςτικά ςυςτιματα κακϊσ κατάλλθλεσ μετακζςεισ ςτθν μνιμθ δεδομζνων μποροφν να οδθγιςουν ςε βελτίωςθ τθσ χωρικισ τοπικότθτασ των δεδομζνων και ςυνεπϊσ ςε πιο αποδοτικοφσ αλγόρικμουσ. Παρουςιάηονται απλζσ ιεραρχικζσ μζκοδοι για τθν μετάκεςθ και γίνεται προςπάκεια εφρεςθσ αλγορίκμων για αξιοποίθςθ τθσ κρυφισ μνιμθσ με ςτόχο τθν αφξθςθ τθσ απόδοςθσ. Σόςο ςτθν αναςτροφι, όςο και ςτθν τυχαία μετάκεςθ, παρουςιάηονται εκτενϊσ οι αρχζσ ςτισ οποίεσ βαςίηονται οι εν λόγω αλγόρικμοι και κϊδικασ που τισ υλοποιεί. Επιπροςκζτωσ, πραγματοποιοφνται αναλυτικά πειράματα για τθν εξαγωγι ςυμπεραςμάτων ςε ςχζςθ με τθν α- πόδοςθ τουσ. ε αυτό το ςθμείο, πρζπει να επιςθμανκεί ότι όλα τα ςυμπεράςματα που προκφπτουν βαςίηονται ςτα προαναφερκζντα πειράματα. Η εργαςία περιλαμβάνει τα εξισ κεφάλαια: 1. Οργάνωςθ Μνιμθσ 2. Αναςτροφι πίνακα (Matrix Transpose) 3. Πειράματα αναςτροφισ πίνακα 4. Συχαία Μετάκεςθ (Random Permutation) 5. Καταλθκτικά ςυμπεράςματα 6. Βιβλιογραφία Καταλθκτικά, ςκοπόσ τθσ εργαςίασ είναι θ εισ βάκοσ κατανόθςθ τθσ λειτουργίασ τθσ κρυφισ μνιμθσ και θ κατάλλθλθ αξιοποίθςθ τθσ για τθν βελτίωςθ τθσ απόδοςθσ τθσ αναςτροφισ και εν ςυνεχεία τθσ τυχαίασ μετάκεςθσ ενόσ πίνακα.

4 Abstract The paper focuses on the study of algorithms for transposing a matrix and applying random permutations to a matrix stored in memory. Matrix transpose is crucial in a variety of scientific fields including image processing, signal modulation/demodulation, Geographic Information Systems and analyzing social networks. Within the paper a number of algorithms for transposing a matrix are presented, ranging from naive algorithms to more sophisticated that try to take advantage of cache memory in order to boost their performance. Examining a random permutation of a matrix is equally important in the scope of this study. Permutations are used widely in mathematics, especially in the field of Combinatorics. Furthermore, permutations are widely utilized in computer science. Applying a suitable permutation on a set of data can potentially lead to higher levels of spatial locality and as a result boost the performance of algorithms applied to them. Simple hierarchical methods for implementing a permutation are presented and efforts are made in order to develop cache efficient algorithms for this purpose. A matrix is described analytically for each algorithm for transposing and permutating and the corresponding code is presented. Extensive experiments were conducted in order to reach proper conclusions. The conclusions reached are based solely on the aforementioned experiments. The paper is organized in the following chapters: Chapter 1 : Memory Hierarchy and Organization in a computer Chapter 2 : Matrix Transpose Chapter 3 : Experiments on Matrix Transpose Chapter 4 : Random Permutation and experiments on it Chapter 5 : Conclusions based on experiments Chapter 6 : Bibliography In conclusion, the purpose of this paper is the in depth understanding of the functionality of cache memory and its proper utilization in order to boost the performance of matrix transpositions and matrix permutations.

5 Ευχαριςτίεσ Θα κζλαμε να ευχαριςτιςουμε κερμά τον κακθγθτι κ. Πιτςιάνθ Νικόλαο για τθν εμπιςτοςφνθ που μασ ζδειξε ϊςτε να φζρουμε εισ πζρασ τθν παροφςα μελζτθ, αλλά και για τον χρόνο και τθν προςπάκεια που κατζβαλε για τθν καλυτζρευςι τθσ. Μαμαγιάννοσ Δημήτριοσ & Μπάκασ Στυλιανόσ Θεςςαλονίκη, Οκτώβριοσ 2016 ε αυτοφσ τουσ χαλεποφσ καιροφσ θ επιμόρφωςθ των νζων αποτελεί πραγματικά ζναν άκλο και μια ολόκλθρθ οικογζνεια μπορεί να δοκιμάηεται κακθμερινά. Για το λόγο αυτό το μεγαλφτερο ευχαριςτϊ το χρωςτάω ςτουσ γονείσ μου Γιϊργο και Κατερίνα, κακϊσ και ςτθν αδερφι μου Ελιςάβετ, για όλθ τθν ςτιριξθ που μου παρείχαν ϊςτε να ολοκλθρϊςω τισ ςπουδζσ μου. Θα ιταν παράλλειψι μου να μθν ευχαριςτιςω ζναν άνκρωπο που με βοικθςε πραγματικά να βελτιωκϊ και να γίνω καλφτεροσ. Αγαπθτζ Θωμά, ςε ευχαριςτϊ για τον χρόνο που ζχεισ αφιερϊςει για μζνα και για τθν ανιδιοτελι ςου προςπάκεια να μου μάκεισ πάντα ςωςτά κάτι παραπάνω. Σζλοσ κα ικελα να ευχαριςτιςω, τον ςυμφοιτθτι, ςυνάδελφο και ςυνεργάτθ ςε αυτι τθν διπλωματικι, Μπάκα τυλιανό για τθν άψογθ ςυνεργαςία όλα αυτά τα χρόνια και ιδιαίτερα κατά τθν περίοδο τθσ εκπόνθςθσ αυτισ τθσ διπλωματικισ. Μαμαγιάννοσ Δημήτριοσ Θεςςαλονίκη, Οκτώβριοσ 2016 Θα ικελα να ευχαριςτιςω κερμότατα τθν οικογζνεια και τουσ φίλουσ μου για τθν υποςτιριξθ και τθν κακοδιγθςθ που μου παρείχαν. Μπάκασ Στυλιανόσ Θεςςαλονίκη, Οκτώβριοσ 2016

6 Περιεχόμενα 1 ΟΡΓΑΝΩΗ ΜΝΗΜΗ (MEMORY HIERARCHY AND ORGANIZATION) Βαςική δομή υπολογιςτικοφ ςυςτήματοσ Κρυφή Μνήμη (Cache Memory) χεδίαςθ ενόσ τυπικοφ SRAM cell Προςπζλαςθ κρυφισ μνιμθ απλισ απεικόνιςθσ Εγγραφι κρυφισ μνιμθ απλισ απεικόνιςθσ Εναλλακτικοί αλγόρικμοι βελτίωςθσ τθσ απόδοςθσ τθσ κρυφισ μνιμθσ Πολυεπίπεδεσ κρυφζσ μνιμεσ Κρυφι μνιμθ ςε πολυπφρθνα υπολογιςτικά ςυςτιματα Κφρια/Πρωτεφουςα Μνήμη (Main/Primary Memory) χεδίαςθ ενόσ τυπικοφ DRAM cell Διευκυνςιοδότθςθ μνιμθσ Απαιτιςεισ διαχείριςθσ μνιμθσ Διαχείριςθ Μνιμθσ Κατάτμθςθ μνιμθσ ελιδοποίθςθ μνιμθσ Σμθματοποίθςθ μνιμθσ Εικονικι Μνιμθ Αλγόρικμοι αντικατάςταςθσ ςτθν κφρια μνιμθ Δομζσ Διαςφνδεςησ Διαςφνδεςθ μζςω διαφλου Διαςφνδεςθ μζςω πολλαπλϊν διαφλων Άμεςη Προςπζλαςη Μνήμησ (Direct Memory Access, DMA) ΑΝΑΣΡΟΥΗ ΠΙΝΑΚΑ (MATRIX TRANSPOSE) In place matrix transposition Αλγόρικμοι για NxN πίνακεσ για in place transposition Naïve transposition of an NxN matrix Cache efficient transposition of an NxN matrix using one buffer Cache efficient transposition of an NxN matrix using two buffers Αλγόρικμοι για MxN πίνακεσ για in place transposition Naïve transposition of an MxN matrix using cycles Cache efficient transposition of an MxN matrix using tiles Out of place transposition Naïve transposition of MxN matrix Cache oblivious transposition of an MxN matrix Cache efficient transposition of an MxN matrix Hybrid cache efficient transposition of an MxN matrix based on cache oblivious method Cache efficient transposition of an MxN matrix using SSE

7 3 ΠΕΙΡΑΜΑΣΑ ΑΝΑΣΡΟΥΗ ΠΙΝΑΚΑ (MATRIX TRANSPOSE EXPERIMENTS) Τπολογιςτικά ςυςτήματα: Προδιαγραφζσ και Benchmarks Βαςικζσ προδιαγραφζσ STREAM Benchmark Geekbench Πειράματα ςε ςειριακό κϊδικα Πειράματα για NxN πίνακεσ για in place transposition Πειράματα για MxN πίνακεσ για in place transposition Πειράματα για out of place transposition υμπεράςματα ςειριακοφ κϊδικα αναςτροφισ πίνακα Πειράματα ςε παράλληλο κϊδικα Πειράματα για NxN πίνακεσ για in place transposition Πειράματα για MxN πίνακεσ για in place transposition Πειράματα για out of place transposition υμπεράςματα παράλλθλου κϊδικα αναςτροφισ πίνακα BLAS & Intel MKL Library υνοπτικά ςυμπεράςματα ΣΤΦΑΙΑ ΜΕΣΑΘΕΗ (RANDOM PERMUTATION) Μετάθεςη πίνακα ςε μνήμη υπολογιςτικοφ ςυςτήματοσ Αλγόριθμοι μετάθεςησ ςτην μνήμη Πειράματα βαςικϊν αλγορίθμων μετάθεςησ πίνακα ειριακά πειράματα ιεραρχικισ εγγραφισ και ιεραρχικισ ανάγνωςθσ Πειράματα ςε πίνακεσ με 8 bytes/εγγραφι Πειράματα ςε πίνακεσ με 152 bytes/εγγραφι Πειράματα ςε πίνακεσ με 824 bytes/εγγραφι Παράλλθλα πειράματα ιεραρχικισ εγγραφισ και ιεραρχικισ ανάγνωςθσ Πειράματα ςε πίνακεσ με 8 bytes/εγγραφι Πειράματα ςε πίνακεσ με 152 bytes/εγγραφι Πειράματα ςε πίνακεσ με 824 bytes/εγγραφι υμπεράςματα για τθν ςφγκριςθ των δφο μεκόδων Μζθοδοσ μετάθεςησ τριϊν ςταδίων ειριακά πειράματα μεκόδου τριϊν ςταδίων Παράλλθλα πειράματα μεκόδου τριϊν ςταδίων υμπεράςματα πειραμάτων μεκόδου τριϊν ςταδίων Εναλλακτική μζθοδοσ μετάθεςησ τριϊν ςταδίων ειριακά πειράματα εναλλακτικισ μεκόδου τριϊν ςταδίων Παράλλθλα πειράματα εναλλακτικισ μεκόδου τριϊν ςταδίων υμπεράςματα πειραμάτων εναλλακτικισ μεκόδου τριϊν ςταδίων Αναςτροφή Πίνακα με την χρήςη των αλγορίθμων τυχαίασ μετάθεςησ ειριακά πειράματα αναςτροφισ πίνακα με τουσ αλγορίκμουσ τθσ τυχαίασ μετάκεςθσ Παράλλθλα πειράματα αναςτροφισ πίνακα με τουσ αλγορίκμουσ τθσ τυχαίασ μετάκεςθσ

8 4.6.3 υμπεράςματα για πειράματα αναςτροφισ πίνακα με τουσ αλγορίκμουσ τθσ τυχαίασ μετάκεςθσ ΚΑΣΑΛΗΚΣΙΚΑ ΤΜΠΕΡΑΜΑΣΑ (CONCLUSIONS) ΒΙΒΛΙΟΓΡΑΥΙΑ (BIBLIOGRAPHY)

9 Πίνακασ εικόνων Εικόνα 1 : Διάγραμμα απεικόνιςησ εςωτερικϊν μονάδων μιασ CPU (10)... 5 Εικόνα 2 : Ιεραρχία μνήμησ ςε ζνα υπολογιςτικό ςφςτημα (11)... 6 Εικόνα 3 : Διάγραμμα απεικόνιςησ τησ ιεραρχίασ ςτη μνήμη μεταξφ CPU, κρυφήσ μνήμησ και κφριασ μνήμησ για ζνα και τρία επίπεδα κρυφήσ μνήμησ αντίςτοιχα (12)... 7 Εικόνα 4 : Ζνα κελί CMOS SRAM με ζξι transistor (17)... 7 Εικόνα 5 : Ζνα κελί CMOS DRAM με ζνα transistor και ζναν πυκνωτή (16)...12 Εικόνα 6 : Διαςφνδεςη μζςω πολλαπλϊν διαφλων (3)...21 Εικόνα 7 : Direct Access Memory (13)...23 Εικόνα 8 : Παράδειγμα αναςτροφήσ ενόσ τετραγωνικοφ πίνακα (18)...24 Εικόνα 9 : Περιγραφή μεθόδου Tiled Transpose (14)...35 Λίςτα πινάκων Πίνακασ 1 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Half Write ζναντι τησ Naive...29 Πίνακασ 2 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Full Write ζναντι τησ Naive...31 Πίνακασ 3 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Tiled ζναντι τησ Naive...37 Πίνακασ 4 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Cache efficient ζναντι τησ Naïve...40 Πίνακασ 5 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Hybrid Cache efficient Oblivious ζναντι τησ Naïve...42 Πίνακασ 6 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Cache efficient using SSE ζναντι τησ Naïve...43 Πίνακασ 7 : Προδιαγραφζσ υπολογιςτικϊν ςυςτημάτων που χρηςιμοποιήθηκαν ςτα πειράματα...44 Πίνακασ 8 : Περιγραφή των tests που εκτελοφνται ςτο STREAM benchmark...45 Πίνακασ 9 : Αποτελζςματα STREAM benchmark για υπολογιςτικό ςφςτημα Πίνακασ 10 : Αποτελζςματα STREAM benchmark για υπολογιςτικό ςφςτημα Πίνακασ 11 : Total Memory bandwidths και Memory copy bandwidths για τα δφο υπολογιςτικά ςυςτήματα από το Geekbench benchmark...46 Πίνακασ 12 : Μζςη τιμή των bandwidths για όλεσ τισ μεθόδουσ αναςτροφήσ πίνακα...64 Πίνακασ 13 : Προδιαγραφζσ υπολογιςτικοφ ςυςτήματοσ "Διάδησ" Πίνακασ 14 : Μζςη τιμή των bandwidths για τισ μεθόδουσ τυχαίασ μετάθεςησ

10 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) 1 Οργάνωςη Μνήμησ (Memory Hierarchy and Organization) 1.1 Βαςική δομή υπολογιςτικού ςυςτήματοσ ε ζνα υπολογιςτικό ςφςτθμα διακρίνονται τα εξισ τρία τμιματα : Κεντρικι Μονάδα Επεξεργαςίασ (Central Processor Unit). Τποςφςτθμα ειςόδου/εξόδου. Μνιμθ (Memory). Η Κεντρική Μονάδα Επεξεργαςίασ (Εικόνα 1) είναι το ενεργό τμιμα του υπολογιςτικοφ ςυςτιματοσ, που ακολουκεί κατά γράμμα τισ εντολζσ ενόσ προγράμματοσ και εκτελεί λειτουργίεσ ςτα δεδομζνα. Κατά κφριο λόγο αποτελείται από τθν Διαδρομή Δεδομζνων (Datapath) και τθ Μονάδα Ελζγχου (Control Unit). Η Διαδρομι δεδομζνων περιλαμβάνει τθν αρικμθτικι και λογικι μονάδα (Arithmetic & Logical Unit), τουσ καταχωρθτζσ (Registers) και τουσ διαφλουσ επικοινωνίασ (Buses). τθν ALU εκτελοφνται οι αρικμθτικζσ (πρόςκεςθ, αφαίρεςθ, πολλαπλαςιαςμόσ, διαίρεςθ) και λογικζσ πράξεισ (π.χ. AND, OR, NOT, NAND). Οι καταχωρθτζσ είναι κζςεισ γριγορθσ αποκικευςθσ (μνιμεσ) εντόσ του επεξεργαςτι. Διακρίνονται ςε καταχωρθτζσ δεδομζνων (data registers), καταχωρθτζσ μνιμθσ (Address registers), instruction register (αποκθκεφει τθν εντολι που εκτελείται εκείνθ τθ ςτιγμι) και μετρθτι προγράμματοσ (Program Counter), ο οποίοσ δείχνει που βρίςκεται ο επεξεργαςτισ ςε ςχζςθ με τθ ροι του κϊδικα εκτζλεςθσ. Σζλοσ, τα buses ςυνδζουν τον επεξεργαςτι με το εξωτερικό του περιβάλλον, δθλαδι τθ μνιμθ και τα υπόλοιπα ςτοιχεία ειςόδου εξόδου. H Μονάδα Ελζγχου (Control Unit) κατευκφνει τθ διαδρομι δεδομζνων, τθν μνιμθ και τισ ςυςκευζσ ειςόδου-εξόδου ςτο να ανταποκρίνονται ανάλογα με τισ εντολζσ του εκτελοφμενου προγράμματοσ και είναι ταυτόχρονα υπεφκυνθ για τθ διαχείριςθ των πόρων του ςυςτιματοσ. Η κακοδιγθςθ αυτι γίνεται παρζχοντασ ςιματα χρονιςμοφ και ελζγχου ςτα διάφορα τμιματα. Εικόνα 1 : Διάγραμμα απεικόνιςησ εςωτερικϊν μονάδων μιασ CPU (10) Σο υποςφςτθμα ειςόδου/εξόδου είναι το μζςο που ςυνδζει τον επεξεργαςτι και τθ μνιμθ με τισ περιφερειακζσ ςυςκευζσ. Με αυτό τον τρόπο μια λειτουργία ειςόδου ειςάγει δεδομζνα 5

11 - ΚΕΦΑΛΑΙΟ 1 ο - από τθ ςυςκευι ςτθ μνιμθ, όπου μόνο ζτςι ο επεξεργαςτισ ζχει τθ δυνατότθτα να τα αναγνϊςει και μια λειτουργία εξόδου εξάγει δεδομζνα ςτθ ςυςκευι από τθ μνιμθ, όπου ο επεξεργαςτισ τα ζχει τοποκετιςει εκεί. Η μνιμθ αποτελείται από ζνα ςφνολο κζςεων αποκικευςθσ με ςκοπό τθν αποκικευςθ πλθροφορίασ είτε προςωρινά, είτε μόνιμα. υγκεκριμζνα υλοποιείται ωσ ιεραρχία μνήμησ (Εικόνα 2), δθλαδι πολλά επίπεδα μνιμθσ με διαφορετικζσ ταχφτθτεσ, μεγζκθ και κόςτοσ ανά bit. υγκεκριμζνα, όςο πιο κάτω ςτθν ιεραρχία βρίςκεται θ μνιμθ, τόςο το μζγεκοσ τθσ αυξάνεται και μειϊνεται το κόςτοσ ανά bit, παρουςιάηοντασ ωςτόςο δραματικι μείωςθ ςτισ ταχφτθτεσ προςπζλαςθσ και εγγραφισ. Πιο αναλυτικά θ ζννοια τθσ μνιμθσ περιλαμβάνει τθν : 1) Κρυφή μνήμη (Cache Memory) : Εξαιρετικά ταχφτατθ μνιμθ, μικροφ μεγζκουσ, με χριςθ τθ προςωρινι αποκικευςθ για τθν πιο αργι κφρια μνιμθ. 2) Κφρια ή πρωτεφουςα μνήμη (Main/Primary Memory) : Πτθτικι (Volatile) μνιμθ που χρθςιμοποιιται για τθν αποκικευςθ των δεδομζνων και των προγραμμάτων όςο αυτά ε- κτελοφνται. 3) Δευτερεφουςα μνήμη (Secondary Memory) : Μθ πτθτικι μνιμθ (Non-volatile) που χρθςιμοποιείται για τθν αποκικευςθ των προγραμμάτων και των δεδομζνων μεταξφ των διαδοχικϊν εκτελζςεων τουσ. Επιπροςκζτωσ, τα δεδομζνα που αποκθκεφονται ςτισ μνιμεσ ακολουκοφν τθν ίδια ιεραρχία. Όταν ο επεξεργαςτισ απαιτεί τθν προςπζλαςθ δεδομζνων, τότε θ αναηιτθςθ τουσ ξεκινάει από τθν πρϊτθ κατά τθν ιεραρχία μνιμθ και αν δεν εντοπιςκοφν ςε αυτιν (αςτοχία), τότε θ αναηιτθςθ των δεδομζνων προχωρά ςτθν επόμενθ κατά τθν ιεραρχία μνιμθ, μζχρι να εντοπιςκοφν επιτυχϊσ (ευςτοχία). Εικόνα 2 : Ιεραρχία μνήμησ ςε ζνα υπολογιςτικό ςφςτημα (11) 6

12 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) 1.2 Κρυφή Μνήμη (Cache Memory) Για τθν εκτζλεςθ των προγραμμάτων, ο επεξεργαςτισ επικοινωνεί τουλάχιςτον μία φορά με τθν Κφρια Μνιμθ ςε όλουσ τουσ κφκλουσ εντολϊν προκειμζνου να παραλάβει εντολζσ και δεδομζνα και να εξάγει αποτελζςματα. Εντοφτοισ, ο ρυκμόσ με τον οποίον ο επεξεργαςτισ εκτελεί εντολζσ είναι περιοριςμζνοσ από τθν ςυχνότθτα τθσ κφριασ μνιμθσ (ο χρόνοσ που απαιτείται για τθν ανάγνωςθ/ εγγραφι μιασ λζξθσ ςτθν μνιμθ). Με ςκοπό τθν αξιοποίθςθ τθσ αρχήσ τησ τοπικότητασ (τα προγράμματα προςπελάηουν ζνα ςχετικά μικρό τμιμα του χϊρου διευκφνςεων τουσ ςε κάκε χρονικι ςτιγμι) θ λφςθ είναι μια μικρι αλλά πολφ γριγορθ μνιμθ μεταξφ του επεξεργαςτι και τθσ κφριασ μνιμθσ, δθλαδι θ κρυφή μνήμη (Εικόνα 3). Η κρυφι μνιμθ, ςε αντίκεςθ με τθν κφρια μνιμθ, είναι τφπου SRAM (Static Random Access Memory), δθλαδι επιτρζπει τθν αποκικευςθ δεδομζνων χωρίσ να χρειάηεται θ ανά χρονικζσ περιόδουσ ενθμζρωςθ τουσ για να παραμείνουν αποκθκευμζνα. ε αυτό το ςθμείο αξίηει να ςθμειωκεί ότι θ SRAM ςε κεωρθτικό επίπεδο παραμζνει πτθτικι μνιμθ, εφόςον τα δεδομζνα που είναι εγγεγραμμζνα ςε αυτιν χάνονται χωρίσ τθν παροχι τάςθσ (δθλαδι απενεργοποίθςθ του υπολογιςτικοφ ςυςτιματοσ). Εικόνα 3 : Διάγραμμα απεικόνιςησ τησ ιεραρχίασ ςτη μνήμη μεταξφ CPU, κρυφήσ μνήμησ και κφριασ μνήμησ για ζνα και τρία επίπεδα κρυφήσ μνήμησ αντίςτοιχα (12) χεδίαςη ενόσ τυπικού SRAM cell Ζνα τυπικό SRAM κελί (Εικόνα 4) αποτελείται από ζξι MOSFETs. Κάκε bit αποκθκεφεται ςε τζςςερα transistors τα οποία ςχθματίηουν δφο αντίςτροφα ταιριαςμζνουσ αντιςτροφείσ (cross-coupled inverters). Σο κελί ζχει δφο ςτακερζσ καταςτάςεισ : 0 και 1. Σα υπόλοιπα δφο transistors ελζγχουν τθν πρόςβαςθ ςτο κελί κατά τθν διάρκεια τθσ εγγραφισ και τθσ ανάγνωςθσ του. Εικόνα 4 : Ζνα κελί CMOS SRAM με ζξι transistor (17) 7

13 - ΚΕΦΑΛΑΙΟ 1 ο Προςπέλαςη κρυφήσ μνήμη απλήσ απεικόνιςησ H κφρια μνιμθ αποτελείται από 2 n διευκυνςιοδοτθμζνεσ λζξεισ. Κάκε λζξθ διακζτει μια μοναδικι διεφκυνςθ από n bits. Για λόγουσ αντιςτοίχιςθσ όμωσ, θ μνιμθ κεωρείται πωσ αποτελείται από ςτακεροφ μικουσ blocks. Κάκε block περιλαμβάνει k λζξεισ. Άρα υπάρχουν m=2 n /k blocks. Η κρυφι μνιμθ ακολουκεί τθν ίδια ακριβϊσ δομι, αλλά με προφανϊσ ςθμαντικά μικρότερο αρικμό από blocks. Ο απλοφςτεροσ τρόποσ για τθν αντιςτοίχιςθ μιασ κζςθσ ςτθν κρυφι μνιμθ βαςίηεται ςτθν διεφκυνςθ τθσ λζξθσ ςτθν κφρια μνιμθ. Αυτι θ δομι τθσ κρυφισ μνιμθσ ονομάηεται άμεςη απεικόνιςη (direct mapped), εξαιτίασ του γεγονότοσ ότι κάκε κζςθ τθσ μνιμθσ αντιςτοιχίηεται ςε μία ακριβϊσ κζςθ ςτθν κρυφι μνιμθ. Η κάκε εγγραφι τθσ κρυφισ μνιμθσ αποτελείται από τρία τμιματα : ζνα ζγκυρο bit (valid bit), μια ετικζτα (tag) και τα δεδομζνα (data). Σο ζγκυρο bit δθλϊνει αν μια εγγραφι παρζχει μία ζγκυρθ διεφκυνςθ. Οι ετικζτεσ περιζχουν τισ πλθροφορίεσ διεφκυνςθσ που απαιτοφνται για να προςδιοριςτεί εαν θ λζξθ ςτθν κρυφι μνιμθ αντιςτοιχεί ςτθν λζξθ που ηθτικθκε από τον επεξεργαςτι. H ετικζτα χρειάηεται μόνο το υψθλότερο τμιμα τθσ διεφκυνςθσ, δθλαδι το block τθσ κφριασ μνιμθσ ςτο οποίο βρίςκεται θ πλθροφορία. Όταν γίνεται προςπζλαςθ τθσ κρυφισ μνιμθσ, υπάρχει πρότερθ γνϊςθ για τθν πικανι τοποκεςία των δεδομζνων ςε αυτιν. υγκεκριμζνα, όταν τα δεδομζνα που βρίςκονται ςε μία διεφκυνςθ τθσ κφριασ μνιμθσ τοποκετοφνται ςτθν κρυφι, το υψθλότερο τμιμα τθσ διεφκυνςθσ τοποκετείται ςτθν ετικζτα και το χαμθλότερο τμιμα τθσ διεφκυνςθσ υποδθλϊνει τον αρικμοδείκτθ τθσ κρυφισ μνιμθσ (cache index) που χρθςιμοποιείται για τθν επιλογι του block. υνεπϊσ, όταν αναηθτείται μια διεφκυνςθ δεδομζνων τθσ κφριασ μνιμθσ ςτθν κρυφι, τότε προςπελάςεται το τμιμα τθσ κρυφισ μνιμθσ με τον κατάλλθλο αρικμοδείκτθ (χαμθλότερο τμιμα τθσ διεφκυνςθσ). Εάν θ ετικζτα είναι ίςθ με το υψθλότερο τμιμα τθσ αναηθτοφμενθσ διεφκυνςθσ και το ζγκυρο bit είναι ενεργοποιθμζνο τότε υπάρχει ευςτοχία. Εάν όμωσ υπάρξει αδυναμία αντιςτοίχθςθσ, τότε υπάρχει αςτοχία θ οποία πρζπει να διαχειριςτεί. Όταν υπάρξει μια αςτοχία, τότε το ηθτοφμενο block πρζπει να μεταφερκεί από τθν κφρια μνιμθ ςτθν κρυφι. Εάν ςτον αντίςτοιχο αρικμοδείκτθ θ μνιμθ δεν περιλαμβάνει κάποια ζγκυρθ διεφκυνςθ, τότε απλά μεταφζρεται απευκείασ το ηθτοφμενο block από τθν κφρια μνιμθ ςτθν κρυφι. Ωςτόςο, εάν θ αντίςτοιχθ κζςθ τθσ κρυφισ μνιμθσ είναι ιδθ κατειλθμμζνθ τότε προκφπτει πρόβλθμα αντικατάςταςθσ και το νζο block αντικακιςτά το παλιό που ιταν αποκθκευμζνο ςτθν αντίςτοιχο αρικμοδείκτθ. Εάν το ζγκυρο bit τθσ προθγοφμενθσ εγγραφισ ιταν 0 ( dirty ), τότε τα δεδομζνα πριν αντικαταςτακοφν γράφονται ςτθν κφρια μνιμθ και ςτθν αντίςτοιχθ κζςθ. 8

14 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) Εγγραφή κρυφήσ μνήμη απλήσ απεικόνιςησ Ο χειριςμόσ των εγγραφϊν γίνεται διαφορετικά από τον χειριςμό τθσ προςπζλαςθσ τθσ κρυφισ μνιμθσ. Αρχικά ςε περίπτωςθ ευςτοχίασ, τα δεδομζνα γράφονται μόνο ςτθν κρυφι μνιμθ. υνεπϊσ, μετά τθν εγγραφι ςτθν κρυφι μνιμθ θ κφρια μνιμθ κα ζχει διαφορετικι κατάςταςθ από τθν αντίςτοιχθ τθσ κρυφισ. ε αυτιν τθν κατάςταςθ, θ κρυφι και θ κφρια ζρχονται ςε α- ντίφαςθ (inconsistent). Για τον ςκοπό αυτόν θ πιο απλι μζκοδοσ είναι θ μζκοδοσ τθσ ταυτόχρονησ εγγραφήσ (write-through), ςφμφωνα με τθν οποία τα δεδομζνα εγγράφονται τόςο ςτθν κφρια μνιμθ, όςο και ςτθν κρυφι. ε περίπτωςθ αςτοχίασ με βάςθ αυτι τθν μζκοδο, τα δεδομζνα μεταφζρονται πρϊτα από τθν κφρια μνιμθ ςτθν κρυφι και μετά εγγράφονται τα νζα δεδομζνα και ςτισ δφο. Αυτι όμωσ θ διαδικαςία είναι μθ αποδοτικι και μια λφςθ είναι θ αξιοποίθςθ μιασ προςωρινισ μνιμθσ (buffer). ε αυτιν, αποκθκεφονται τα νζα δεδομζνα και παραμζνουν εκεί μζχρι να εγγραφοφν ςτθν κφρια μνιμθ, χωρίσ να απαιτεί τθν προςοχι του επεξεργαςτι. Εάν ό- μωσ ο ρυκμόσ παράγωγθσ των εγγραφϊν είναι μεγαλφτεροσ από τον ρυκμό εγγραφισ του προςωρινοφ buffer, θ μζκοδοσ παραμζνει μθ αποδοτικι. Μια εναλλακτικι μζκοδοσ εγγραφισ είναι θ ετερόχρονη εγγραφή (write back). φμφωνα με αυτιν, θ νζα εγγραφι εγγράφεται μόνο ςτο block τθσ κρυφισ μνιμθσ. Η εγγραφι τθσ πραγματικισ τιμισ ςτθν κφρια μνιμθ γίνεται μόνο όταν το αντίςτοιχο block αντικαταςτακεί ςτθν κρυφι μνιμθ Εναλλακτικοί αλγόριθμοι βελτίωςησ τησ απόδοςησ τησ κρυφήσ μνήμησ Εξαιτίασ του γεγονότοσ ότι θ μνιμθ άμεςθσ απεικόνιςθσ παρουςιάηει μεγάλο ρυκμό αςτοχίασ, υπάρχουν ςυναρτήςεισ αντιςτοίχηςησ (mapping function) που αποφαςίηουν ποια κζςθ τθσ κρυφισ μνιμθσ καταλαμβάνει κάκε νζο block που εγγράφεται ςε αυτιν. Όμωσ, θ ενζργεια αντικατάςταςθσ ενόσ υπάρχοντοσ block πρζπει να πραγματοποιείται με τζτοιον τρόπο ϊςτε να ελαχιςτοποιείται θ πικανότθτα αντικατάςταςθσ ενόσ block που κα χρειαςτεί ςε ςφντομο χρονικό διάςτθμα. υνεπϊσ, πλζον ζνα block δεδομζνων μπορεί να τοποκετθκεί ςε οποιαδιποτε κζςθ εντόσ τθσ κρυφισ μνιμθσ. Αυτι θ μζκοδοσ ονομάηεται πλήρωσ ςυςχετιςτική (fully associated), επειδι ζνα block ςτθ μνιμθ μπορεί να ςυςχετιςτεί με οποιαδιποτε καταχϊρθςθ ςτθν κρυφι μνιμθ. Όςο πιο ευζλικτθ θ ςυνάρτθςθ αντιςτοίχθςθσ, τόςο μεγαλφτερο είναι το περικϊριο ςχεδίαςθσ ενόσ αλγορίκμου αντικατάςταςθσ που μεγιςτοποιεί τον λόγο επιτυχίασ (hit rate). Ωςτόςο, όςο πιο ευζλικτθ είναι θ ςυνάρτθςθ αντιςτοίχθςθσ, τόςο πιο πολφπλοκθ είναι θ διάταξθ των κυκλωμάτων αναηιτθςθσ τθσ κρυφισ μνιμθσ, που απαιτοφνται για να μπορεί να προςδιοριςτεί επιτυχϊσ εάν ζνα block είναι εγγεγραμμζνο ςτθν κρυφι μνιμθ. Η πολυπλοκότθτα των διατάξεων αυτϊν αυξάνει το κόςτοσ του υλικοφ. υνεπϊσ, είναι πρακτικι για μικροφ μεγζκουσ κρυφζσ μνιμεσ. Οι πιο ςυχνοί αλγόρικμοι αντικατάςταςθσ κρυφισ μνιμθσ είναι: Least Recently Used (LRU): Σα block ςτα οποία δεν ζχει γίνει αναφορά για το μεγαλφτερο χρονικό διάςτθμα, αντικακίςτανται. Αυτόσ ο αλγόρικμοσ απαιτεί τθν αποκικευςθ τθσ τελευταίασ προςπζλαςθσ τθσ κάκε εγγραφισ, γεγονόσ που είναι κοςτοβόρο. 9

15 - ΚΕΦΑΛΑΙΟ 1 ο - Most Recently Used (MRU): Σα block ςτα οποία ζχει γίνει προςπζλαςθ πιο πρόςφατα, αντικακίςτανται. Αυτόσ ο αλγόρικμοσ απαιτεί τθν αποκικευςθ τθσ τελευταίασ προςπζλαςθσ τθσ κάκε εγγραφισ. Pseudo-LRU (PLRU): Παρόμοια με τθν LRU, αλλά αποκθκεφει με μικρότερθ ακρίβεια τθν τελευταία προςπζλαςθ, με αποτζλεςμα να αντικακίςτανται ζνα από τα λιγότερο πρόςφατα προςπελαςμζνα ςτοιχεία και όχι αυςτθρά το λιγότερο πρόςφατο. Random Replacement (RR): Ζνα block αντικακίςταται τυχαία. n-way set associative: Χρθςιμοποιείται ςε CPU υψθλισ απόδοςθσ, εκεί όπου ακόμα και ο PLRU είναι αργόσ. Κάκε νζα εγγραφι, ανάλογα με τθ διεφκυνςι τθσ ςτθν κφρια μνιμθ, μπορεί να τοποκετθκεί μόνο ςε n κζςεισ τθσ κρυφισ μνιμθσ. Η τοποκζτθςθ γίνεται ςτθν λιγότερο πρόςφατα προςπελαςμζνθ κζςθ από τισ n υποψιφιεσ. Least-Frequently Used (LFU): Τπολογίηει πόςο ςυχνά προςπελάςεται μια εγγραφι και αυτζσ που χρθςιμοποιοφνται λιγότερο είναι οι πρϊτεσ που αντικακίςτανται. LFU with Dynamic Aging (LFUDA): Παρόμοια με τθν LFU, αλλά ςε αυτό τον αλγόρικμο ό- λεσ οι προςπελάςεισ δεν κεωροφνται εξίςου ςθμαντικζσ. Όςο πιο παλιά είναι μια προςπζλαςθ, τόςο λιγότερο ςθμαντικι είναι για τον υπολογιςμό τθσ ςυχνότθτασ προςπζλαςθσ ενόσ ςτοιχείου Πολυεπίπεδεσ κρυφέσ μνήμεσ Όλα τα ςφγχρονα υπολογιςτικά ςυςτιματα χρθςιμοποιοφν κρυφζσ μνιμεσ. Όμωσ, όςο αυξάνεται το μζγεκοσ τθσ κρυφισ μνιμθσ τόςο πιο αργι κακίςταται θ εφρεςθ και θ προςπζλαςθ μιασ εγγραφισ τθσ. υνεπϊσ, προκφπτει θ ιδζα τθσ χριςθσ πολλαπλϊν επιπζδων κρυφισ μνιμθσ: μια μικρι ςε μζγεκοσ και γρθγορότατθ κρυφι μνιμθ L1 και μία μεγαλφτερθ ςε μζγεκοσ αλλά πιο αργι και μακριά από τον επεξεργαςτι L2. Με αυτόν τον τρόπο ζχουμε μία κρυφι μνιμθ L1 με πολφ μικρό χρόνο προςπζλαςθσ (low latency) με ςκοπό τον μικρό χρόνο ευςτοχίασ, αλλά με μεγάλο ρυκμό αςτοχίασ και μία κρυφι μνιμθ L2 με μεγάλο χρόνο προςπζλαςθσ, αλλά μικρό ρυκμό αςτοχίασ. Κάκε κρυφι μνιμθ μπορεί να είναι είτε unified είτε split. Μια κρυφι μνιμθ αποκαλείται unified όταν αποκθκεφει δεδομζνα και εντολζσ μαηί, χωρίσ να υπάρχει ξεχωριςτόσ χϊροσ αποκικευςθσ για τθν κάκε μία κατθγορία. Μια κρυφι μνιμθ ονομάηεται split όταν παρζχει ξεχωριςτό αποκθκευτικό χϊρο για τα δεδομζνα (data, π.χ. L1d) και για τισ εντολζσ (instructions, π.χ. L1i). Μια unified κρυφι μνιμθ υλοποιείται από μόνο μία μνιμθ SRAM και ζχει υψθλότερο ρυκμό ευςτοχίασ, επειδι θ κρυφι μνιμθ διαχειρίηεται αυτόματα εντολζσ και δεδομζνα. Μια split κρυφι μνιμθ είναι πολφ πιο γριγορθ και βοθκάει ςτθν ςυνζχεια τθσ ροισ εκτζλεςθσ, ζτςι ϊςτε θ μονάδα εκτζλεςθσ (Execution Unit) να μθν ςταματάει τθν αποκωδικοποίθςθ τθσ επόμενθσ εντολισ. Για τθν καλφτερθ αξιοποίθςθ των πλεονεκτθμάτων του κάκε είδουσ κρυφισ μνιμθσ, θ L1 είναι κατά κφριο λόγο split και θ L2 unified. 10

16 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) Η ςθμαντικότερθ απόφαςθ ςτθν ςχεδίαςθ ενόσ υπολογιςτικοφ ςυςτιματοσ με πολυεπίπεδεσ κρυφζσ μνιμεσ είναι εάν οι πλθροφορίεσ που αποκθκεφονται ςτθν L1 είναι απαραίτθτο να είναι εγγεγραμμζνεσ και ςτθν L2 ι όχι. τθν πρϊτθ περίπτωςθ, πρόκειται για strictly inclusive cache, ενϊ ςτθν δεφτερθ περίπτωςθ πρόκειται για exclusive cache. ε μία exclusive ςχεδίαςθ, όταν υπάρχει αςτοχία ςτθν L1 αλλά ευςτοχία ςτθν L2, τότε ανταλλάςςονται οι πλθροφορίεσ μεταξφ των L1 και L2, ζτςι ϊςτε να υπάρχει θ πιο πρόςφατα προςπελαςμζνθ εγγραφι ςτθν L1. Σο πλεονζκτθμα των exclusive κρυφϊν μνθμϊν είναι ότι μποροφν να αποκθκεφουν περιςςότερεσ πλθροφορίεσ. Η ςχεδίαςθ είναι άκρωσ βοθκθτικι εάν οι L1 και L2 είναι ςυγκρίςιμεσ μεταξφ τουσ, αλλά φκίνει ςε αποδοτικότθτα όςο μεγαλφτερθ είναι θ L2. ε μία strictly inclusive ςχεδίαςθ, όταν πρζπει να τοποκετθκεί ζνα νζο block ςτθν L1, τότε τοποκετείται τόςο ςτθν L1 όςο και ςτθν L2. Εάν ςε εκείνθ τθν κζςθ των L1, L2 υπιρχε ιδθ αποκθκευμζνο κάποιο block τότε αυτό τοποκετείται κάπου ςτο κομμάτι τθσ L2 που δεν αντιςτοιχίηεται ςτθν L1. Επιπροςκζτωσ, όταν μεταβάλλεται θ τιμι μιασ εγγραφισ ςτθν L1 τότε μεταβάλλεται άμεςα και ςτθν L2 (δθλαδι θ L1 εγγράφει με τθν μζκοδο write-through), ενϊ θ αλλαγι πραγματοποιείται ςτθν κφρια μνιμθ μόνο όταν θ εγγραφι αφαιρεκεί από τθν L2 (δθλαδι θ L2 εγγράφει με τθν μζκοδο write-back). Σα κφρια πλεονεκτιματα των strictly inclusive κρυφϊν μνθμϊν είναι όταν εξωτερικζσ ςυςκευζσ ι άλλοι πυρινεσ ενόσ πολυπφρθνου ςυςτιματοσ επικυμοφν να προςπελάςουν μια γραμμι από τθν κρυφι μνιμθ, χρειάηεται να προςπελάςουν μόνο τθν L2 και επιτρζπουν ςτθν L2 να χρθςιμοποιιςει μεγαλφτερεσ γραμμζσ και όχι ίςου μεγζκουσ με τθν L1, όπωσ κα ςυνζβαινε ςε μια exclusive ςχεδίαςθ. Ζνα μειονζκτθμα τθσ strictly inclusive ςχεδίαςθσ είναι ότι εάν αφαιρεκεί μία εγγραφι από τθν L2 πρζπει για να διατθρθκεί θ ςυνοχι να αφαιρεκεί και από τθν L1 και αντίςτροφα, το οποίο είναι αρκετά κοςτοβόρο. ε ςφγχρονα υπολογιςτικά ςυςτιματα θ L1 είναι προφανϊσ exclusive αφοφ δεν υπάρχει υψθλότερο επίπεδο κρυφισ μνιμθσ. Όςον αφορά τθν L2 είναι ςυνικωσ exclusive, αλλά ςτισ περιςςότερεσ των περιπτϊςεων είναι πικανό μία γραμμι τθσ L1 να βρίςκεται ςτθν L2 παρουςιάηοντασ inclusive ςυμπεριφορά. Μάλιςτα, πλζον γίνεται χριςθ μιασ ακόμα μεγαλφτερθσ αλλά πιο αργισ κρυφισ μνιμθσ, τθσ L3 και ςε οριςμζνα υπολογιςτικά ςυςτιματα ακόμα και L4 για τθν βελτίωςθ τθσ απόδοςθσ του ςυςτιματοσ. Η ςχεδίαςθ τθσ L3 διαφζρει προφανϊσ από υπολογιςτικό ςφςτθμα ςε υπολογιςτικό ςφςτθμα, αλλά κατά κφριο λόγο πρόκειται για strictly inclusive και unified κρυφι μνιμθ. Ζνασ εμπειρικόσ κανόνασ για τθν ςχεδίαςθ μιασ πολυεπίπεδθσ κρυφισ μνιμθσ είναι ότι το μζγεκοσ κάκε επιπζδου πρζπει να είναι τουλάχιςτον 8 φορζσ μεγαλφτερο από το προθγοφμενο για να αυξθκεί αρκετά το ποςοςτό ευςτοχίασ ςε ςχζςθ με τον μεγαλφτερο χρόνο προςπζλαςθσ Κρυφή μνήμη ςε πολυπύρηνα υπολογιςτικά ςυςτήματα ε ζνα ςφςτθμα με περιςςότερουσ από ζναν πυρινεσ, προκφπτει θ ςχεδιαςτικι απορία για το είδοσ των cache memory, δθλαδι αν και ποιεσ από αυτζσ πρζπει να είναι τοπικζσ (δθλαδι για κάκε πυρινα) και ποιεσ να μοιράηονται μεταξφ των πυρινων. Αυτό που ςυμβαίνει μζχρι ςιμερα είναι ότι κάκε πυρινασ ζχει τθν δικι του L1 cache, κακϊσ θ κοινι χριςθ τθσ L1 κα μείωνε τθν αποδοτικότθτα του κάκε πυρινα και κα δθμιουργοφςε ζναν ανταγωνιςμό μεταξφ των 11

17 - ΚΕΦΑΛΑΙΟ 1 ο - πυρινων που κα ζπρεπε να αντιμετωπίηεται με μεγάλθ ςυχνότθτα. Ωςτόςο ςτισ χαμθλότερεσ ςε ιεραρχία μνιμεσ (π.χ. L2, L3) αυτό δεν είναι ζνα τόςο ζντονο πρόβλθμα λόγω τθσ μεγαλφτερθσ χωρθτικότθτασ που παρζχουν. Ζνασ από τουσ λόγουσ που μια κοινι μνιμθ είναι επικυμθτι είναι ότι ζνασ πυρινασ μπορεί να κάνει χριςθ όλθσ τθσ κοινισ μνιμθσ, μειϊνοντασ ζτςι τον πλεοναςμό δεδομζνων και κάνοντασ εφικτι τθν πρόςβαςθ και από άλλουσ πυρινεσ. Η ςυνικθσ πρακτικι ςιμερα είναι ότι θ L2 διαμοιράηεται κάκε δφο πυρινεσ, με τθν L3 να είναι κοινι για όλουσ τουσ πυρινεσ. Αξίηει να ςθμειωκεί ότι θ χριςθ κοινϊν κρυφϊν μνθμϊν ειςάγει επιπλζον πολυπλοκότθτα ςτθ ςχεδίαςθ και τθν διαχείριςθ τουσ. 1.3 Κύρια/Πρωτεύουςα Μνήμη (Main/Primary Memory) Η κφρια μνιμθ είναι το τμιμα του υπολογιςτικοφ ςυςτιματοσ ςτο οποίο αποκθκεφονται τα προγράμματα που εκτελεί θ CPU, κακϊσ και τα δεδομζνα τουσ. το επίπεδο τθσ οργάνωςθσ τθσ ςυνολικισ μνιμθσ βρίςκεται αμζςωσ μετά τθν κρυφι μνιμθ και πάνω από τθ δευτερεφουςα μνιμθ (λ.χ. ςκλθρόσ δίςκοσ ). τα πρϊτα υπολογιςτικά ςυςτιματα, θ πιο κοινι μορφι μνιμθσ τυχαίασ προςπζλαςθσ (RAM) για τθν κφρια μνιμθ χρθςιμοποιοφςε μια ςυςτοιχία φερρομαγνθτικϊν δακτυλίων με τθν ονομαςία πυρινεσ. Ωσ αποτζλεςμα, θ κφρια μνιμθ αναφερόταν ςυχνά ωσ πυρινασ, ζνασ όροσ που χρθςιμοποιείται ενίοτε και ςιμερα. Όςο αναφορά τθν εςωτερικι οργάνωςθ τθσ κφριασ μνιμθσ, αυτι αποτελείται από ζνα πλικοσ κελιϊν ι κυττάρων (cells), κάκε ζνα από τα οποία ζχει μια ςυγκεκριμζνθ διεφκυνςθ. Όλα τα κελιά τθσ μνιμθσ αποτελοφνται από τον ίδιο αρικμό bits. Σο κελί αποτελεί τθν μικρότερθ προςπελάςιμθ μονάδα, που ςτθ ςθμερινι εποχι είναι τα 8 bits. Η κφρια μνιμθ χωρίηεται ςε δφο τμιματα: ζνα τμιμα για το λειτουργικό ςφςτθμα (εγκατεςτθμζνοσ παρακολουκθτισ, πυρινασ) και ζνα τμιμα για το πρόγραμμα που εκτελείται τθν ο- ποιαδιποτε χρονικι ςτιγμι. ε ζνα ςφςτθμα πολυπρογραμματιςμοφ όμωσ, το τμιμα τθσ μνιμθσ του χριςτθ πρζπει να υποδιαιρεκεί περαιτζρω, ζτςι ϊςτε πολλαπλζσ διεργαςίεσ να εξυπθρετοφνται ςυγχρόνωσ. Η εργαςία τθσ υποδιαίρεςθσ εκτελείται δυναμικά από το εκάςτοτε λειτουργικό ςφςτθμα και ονομάηεται διαχείριςθ μνιμθσ χεδίαςη ενόσ τυπικού DRAM cell Σο αποκθκευτικό ςτοιχείο ενόσ κελιοφ (cell) μιασ DRAM μνιμθσ (Εικόνα 5) είναι ζνασ πυκνωτισ. Σο φορτίο που αποκθκεφεται ςτον πυκνωτι φκίνει με τθν πάροδο του χρόνου, ζτςι θ τιμι του πρζπει να ανανεϊνεται περιοδικά. Ακόμθ ζνα nmos transistor ςυμπεριφζρεται ωσ πφλθ που επιτρζπει τθν εγγραφι ι τθν ανάγνωςθ του κελιοφ όταν είναι ανοιχτό (saturated) και τθν αποκικευςθ όταν είναι κλειςτό (cut off). Εικόνα 5 : Ζνα κελί CMOS DRAM με ζνα transistor και ζναν πυκνωτή (16) 12

18 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) Διευθυνςιοδότηςη μνήμησ Σο κομμάτι τθσ κφριασ μνιμθσ που ανατίκεται ςε μια διεργαςία είναι πικανό με τθν πάροδο του χρόνου να χρειαςτεί να μετατοπιςτεί. Απόρροια αυτοφ είναι οι κζςεισ εντολϊν και δεδομζνων ςτισ οποίεσ γίνεται αναφορά από μια διεργαςία, να μθν είναι ςτακερζσ. Για το λόγο αυτό γίνεται ζνασ διαχωριςμόσ μεταξφ των διαφορετικϊν τφπων διευκφνςεων. Μια λογική διεφθυνςη (logical address) είναι μια αναφορά ςε μια κζςθ μνιμθσ ανεξάρτθτθ από τθν τρζχουςα ανάκεςθ των δεδομζνων ςτθν μνιμθ. Μια ςχετική διεφθυνςη (relative address) είναι ζνα παράδειγμα λογικισ διεφκυνςθσ ςτθν οποία θ διεφκυνςθ εκφράηεται ωσ προσ ζνα γνωςτό ςθμείο, ςυχνά μια τιμι ςε ζνα καταχωρθτι του επεξεργαςτι. Μια φυςική διεφθυνςη (physical address) ι απόλυτθ διεφκυνςθ, είναι μια πραγματικι κζςθ ςτθν κφρια μνιμθ. Θα ιταν επικυμθτό να υπάρχει δυνατότθτα αναφοράσ ςε μια μεγάλθ περιοχι τθσ κφριασ μνιμθσ, παρά το γεγονόσ ότι τα πεδία διευκφνςεων ςε μια ςυνθκιςμζνθ εντολι είναι ςχετικά μικρά. Για το λόγο αυτό υπάρχουν οριςμζνεσ τεχνικζσ διευκυνςιοδότθςθσ με τισ πιο ςυνθκιςμζνεσ να είναι οι: Άμεςη διευθυνςιοδότηςη : Ο τελεςτζοσ είναι ςτθν πραγματικότθτα μζςα ςτθν εντολι (ΣΕΛΕΣΕΟ = Α). Χρθςιμοποιείται για να ορίςει ςτακερζσ ι αρχικζσ τιμζσ μεταβλθτϊν και δεν χρειάηεται άλλθ αναφορά ςτθ μνιμθ, παρά τθν προςκόμιςθ τθσ εντολισ. Σο μειονζκτθμα είναι ότι το μζγεκοσ του αρικμοφ περιορίηεται ςτο μζγεκοσ του πεδίου διεφκυνςθσ. Απευθείασ διευθυνςιοδότηςη : Σο πεδίο διεφκυνςθσ περιζχει τθν ενεργό διεφκυνςθ του τελεςτζου (effective address = A). Ζμμεςη διευθυνςιοδότηςη : Σο πεδίο διεφκυνςθσ αναφζρεται ςε μια διεφκυνςθ τθσ λζξθσ ςτθ μνιμθ θ οποία με τθ ςειρά τθσ παρζχει μια διεφκυνςθ πλιρουσ μικουσ του τελεςτζου( effective address = (A) ). Παρζχει πολφ μεγαλφτερο χϊρο μνιμθσ από τθν απευκείασ διευκυνςιοδότθςθ, αλλά απαιτεί πολλαπλζσ αναφορζσ μνιμθσ. Διευθυνςιοδότηςη καταχωρητή : Παρόμοια με τθν απευκείασ διευκυνςιοδότθςθ με τθν διαφορά ότι αναφζρεται ςε καταχωρθτι και όχι ςε διεφκυνςθ τθσ κφριασ μνιμθσ (effective address = R). Ζμμεςη διευθυνςιοδότηςη καταχωρητή : Παρόμοια με τθν ζμμεςθ διευκυνςιοδότθςθ, με τθν διαφορά ότι αναφζρεται ςε καταχωρθτι και όχι ςε διεφκυνςθ τθσ κφριασ μνιμθσ (effective address = (R) ). Διεφθυνςη μετατόπιςησ : Η διεφκυνςθ μετατόπιςθσ ηθτάει από τθν εντολι να ζχει δφο πεδία διεφκυνςθσ: ζνα για να χρθςιμοποιθκεί απευκείασ και ζνα που αναφζρεται ςε ζναν καταχωρθτι, τα περιεχόμενα του οποίου προςτίκενται για να δθμιουργθκεί θ ενεργόσ διεφκυνςθ (effective address = Α + (R) ). Οι τρεισ κφριεσ χριςεισ τθσ είναι : o χετική διευθυνςιοδότηςη : Ο καταχωρθτισ είναι ο μετρθτισ προγράμματοσ (Program Counter) και θ ενεργόσ διεφκυνςθ κα είναι ουςιαςτικά μετατόπιςθ ςχετικι με τθν διεφκυνςθ τθσ εντολισ. o Διευθυνςιοδότηςη καταχωρητή βάςησ : Ο καταχωρθτισ παρζχει μια διεφκυνςθ μνιμθσ και το πεδίο διεφκυνςθσ παρζχει μια μετατόπιςθ για τθν διεφκυνςθ ςε αυτι. 13

19 - ΚΕΦΑΛΑΙΟ 1 ο - o Δεικτοδότηςη : Σο πεδίο διεφκυνςθσ αναφζρεται ςε μια διεφκυνςθ τθσ κφριασ μνιμθσ και ο καταχωρθτισ περιζχει μια κετικι μετατόπιςθ προσ τθ διεφκυνςθ αυτι. Διευθυνςιοδότηςη ςωροφ Απαιτήςεισ διαχείριςησ μνήμησ Οι βαςικζσ απαιτιςεισ για τθ διαχείριςθ μνιμθσ είναι οι εξισ : Επανατοποκζτθςθ Προςταςία Διαμοιραςμόσ Λογικι οργάνωςθ Φυςικι οργάνωςθ τα ςφγχρονα υπολογιςτικά ςυςτιματα, ζνα ςφνολο διεργαςιϊν (processes) διαμοιράηεται τθν διακζςιμθ κφρια μνιμθ. Επιπρόςκετα, πρζπει να είναι εφικτι θ εναλλαγι των ενεργϊν διεργαςιϊν μζςα και ζξω από τθν κφρια μνιμθ, με ςκοπό τθν βελτιςτοποίθςθ του βακμοφ χριςθσ του επεξεργαςτι. υνεπϊσ, είναι πολφ πικανό μια διεργαςία να χρειαςτεί ςε κάποια ςτιγμι να επανατοποκετθκεί (relocated) ςε κάποια άλλθ περιοχι τθσ μνιμθσ. Σο λειτουργικό ςφςτθμα οφείλει να γνωρίηει τθ κζςθ των πλθροφοριϊν ελζγχου τθσ διεργαςίασ και τθσ ςτοίβασ εκτζλεςθσ, κακϊσ επίςθσ και το ςθμείο ζναρξθσ του προγράμματοσ για αυτι τθ διεργαςία, πλθροφορίεσ που βρίςκονται ςτθν κφρια μνιμθ και το λειτουργικό ςφςτθμα ζχει πρόςβαςθ αφοφ τθν διαχειρίηεται. Επιπλζον, ο επεξεργαςτισ πρζπει να διαχειριςτεί τισ αναφορζσ εντόσ του προγράμματοσ και να τισ αντιςτοιχίηει ςε διευκφνςεισ φυςικισ μνιμθσ, που αντικατοπτρίηουν τθν τρζχουςα κζςθ του προγράμματοσ ςτθν κφρια μνιμθ. Κάκε διεργαςία πρζπει να προςτατεφεται από ανεπικφμθτεσ παρεμβολζσ από άλλεσ διεργαςίεσ, είτε είναι ςκόπιμεσ είτε είναι τυχαίεσ. Σισ περιςςότερεσ φορζσ μια διεργαςία χριςτθ δεν ζχει πρόςβαςθ οφτε ςτο τμιμα του λειτουργικοφ ςυςτιματοσ, οφτε ςε προγράμματα, οφτε ςε δεδομζνα. Όλεσ οι αναφορζσ μνιμθσ που παράγονται από τθν διεργαςία ελζγχονται για να διαςφαλιςτεί το γεγονόσ ότι αναφζρονται μόνο ςτο χϊρο μνιμθσ που ζχει ανατεκεί ςε αυτιν τθν διεργαςία. Η απαίτθςθ προςταςίασ τθσ μνιμθσ αυτισ διαςφαλίηεται ςε επίπεδο hardware από τον επεξεργαςτι και όχι από το λειτουργικό ςφςτθμα. Ο μθχανιςμόσ προςταςίασ οφείλει να είναι ευζλικτοσ, ζτςι ϊςτε να επιτρζπει ςε πολλζσ διεργαςίεσ να ζχουν πρόςβαςθ ςτθν ίδια περιοχι τθσ κφριασ μνιμθσ. Αυτό είναι απαραίτθτο ςτθν περίπτωςθ που πολλζσ διεργαςίεσ ςυνεργάηονται για να φζρουν αποτελεςματικά εισ πζρασ μια κοινι εργαςία. Η κφρια μνιμθ, όπωσ αναφζρκθκε και παραπάνω οργανϊνεται ωσ ζνασ γραμμικόσ, μονοδιάςτατοσ χϊροσ διευκφνςεων που αποτελείται από μια ακολουκία bytes. Σα περιςςότερα προγράμματα όμωσ είναι οργανωμζνα ςε μονάδεσ, μερικζσ από τισ οποίεσ απαγορεφεται να τροποποιθκοφν και άλλεσ που περιζχουν δεδομζνα και δίνεται δυνατότθτα τροποποίθςθσ. Ωσ φυςικό επακόλουκο, θ μνιμθ πρζπει να διαχειρίηεται αποτελεςματικά δεδομζνα με τθ μορφι μονάδων, 14

20 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) ϊςτε οι διαφορετικζσ μονάδεσ να μεταγλωττίηονται ανεξάρτθτα, να ζχουν διαφορετικοφσ βακμοφσ προςταςίασ και να διαμοιράηονται μεταξφ διεργαςιϊν. Οι απαιτιςεισ αυτζσ ικανοποιοφνται με τθν τμθματοποίθςθ τθσ μνιμθσ που αναλφεται ςτθ ςυνζχεια Διαχείριςη Μνήμησ Τπάρχουν διάφοροι μζκοδοι διαχείριςθσ τθσ μνιμθσ, με τθν πιο βαςικι να είναι θ απλι κατάτμθςθ τθσ μνιμθσ. τα περιςςότερα πολυπρογραμματιςτικά ςυςτιματα, όμωσ το μοντζλο που επικρατεί είναι ζνα ςφνκετο ςχιμα που ονομάηεται ιδεατι μνιμθ (virtual memory). τθ ςυνζχεια του υποκεφαλαίου κα αναλυκοφν πρϊτα θ απλι μζκοδοσ κατάτμθςθσ μνιμθσ, κακϊσ και οι μζκοδοι τθσ απλισ ςελιδοποίθςθσ και τθσ απλισ τμθματοποίθςθσ ςτο οποίο ςτθρίηεται το μοντζλο τθσ εικονικισ μνιμθσ Κατάτμηςη μνήμησ Η κατάτμθςθ είναι ο χωριςμόσ τθσ κφριασ μνιμθσ ςε περιοχζσ, οι οποίεσ ανατίκενται ςε διεργαςίεσ. Αυτζσ οι περιοχζσ μπορεί είτε να ζχουν ςτακερά όρια (κατάτμθςθ ςτακεροφ μεγζκουσ), είτε να δθμιουργοφνται δυναμικά (δυναμικι κατάτμθςθ). Η κατάτμθςθ ςτακεροφ μεγζκουσ είναι απλι ςτθν υλοποίθςθ και οδθγεί ςε μικρι επιβάρυνςθ του λειτουργικοφ ςυςτιματοσ. Όμωσ εφόςον τα διαμερίςματα ςτα οποία χωρίηεται θ μνιμθ είναι ςτακεροφ μεγζκουσ, είναι πολφ ςυχνό φαινόμενο μια διεργαςία να μθν καταλαμβάνει όλο το διαμζριςμα που τθσ αναλογεί και ζτςι να μθν αξιοποιείται πλιρωσ ο εςωτερικόσ χϊροσ του διαμερίςματοσ. Αυτό το φαινόμενο είναι γνωςτό ωσ εςωτερικόσ κατακερματιςμόσ (internal fragmentation). Επιπροςκζτωσ, ο μζγιςτοσ αρικμόσ ενεργϊν διεργαςιϊν είναι ςτακερόσ και περιορίηει ζτςι τθν ευελιξία και τθν λειτουργικότθτα του λειτουργικοφ ςυςτιματοσ. Όταν θ μνιμθ εκχωρείται δυναμικά, το λειτουργικό ςφςτθμα οφείλει να τθ διαχειριςτεί με βζλτιςτο τρόπο. Αυτι θ παρακολοφκθςθ είναι εφικτι με τουσ χάρτεσ bit (bitmaps) ι με ελεφθερεσ λίςτεσ (free lists). τθν περίπτωςθ των bitmaps, θ μνιμθ χωρίηεται ςε μονάδεσ κατανομισ, με μζγεκοσ από μερικζσ λζξεισ ζωσ μερικά Kilobytes, ςε κάκε μία από τισ οποίεσ αντιςτοιχεί ζνα bit που ζχει μθδενικι τιμι αν είναι ελεφκερθ και τιμι 1 αν είναι κατειλθμμζνθ. Οι χάρτεσ bit είναι ζνασ απλοϊκόσ τρόποσ για τθν παρακολοφκθςθ τθσ χριςθσ τθσ μνιμθσ, αλλά όταν απαιτοφνται Κ μονάδεσ δθμιουργοφνται δυςκολίεσ, κακϊσ είναι απαραίτθτθ θ εφρεςθ K ςυνεχόμενων bits με μθδενικι τιμι. Ο άλλοσ τρόποσ παρακολοφκθςθσ τθσ μνιμθσ είναι θ διατιρθςθ μιασ ςυνδεδεμζνθσ λίςτασ (link list), θ οποία περιζχει τα εκχωρθμζνα και τα ελεφκερα τμιματα τθσ μνιμθσ. Κάκε τμιμα είτε περιζχει μια διεργαςία είτε αποτελεί μια οπι μεταξφ δφο διεργαςιϊν. Κάκε καταχϊρθςθ κακορίηει μια οπι ι μια διεργαςία, τθν διεφκυνςθ από τθν οποία ξεκινά και ζνα δείκτθ από τθν επόμενθ καταχϊρθςθ τθσ λίςτασ. Τπάρχουν αρκετοί αλγόρικμοι για να εκχωρθκεί μνιμθ ςε μια διεργαςία που μόλισ δθμιουργικθκε. Ο απλοφςτεροσ αλγόρικμοσ είναι θ πρϊτθ προςαρμογι (first fit), όπου ο διαχειριςτισ μνιμθσ ςαρϊνει τθν λίςτα των τμθμάτων μζχρι να βρει ζνα τμιμα (partition) αρκετά μεγάλο ϊςτε να χωρζςει αυτι θ διεργαςία. Παραλλαγι αυτισ τθσ μεκόδου είναι θ επόμενη προςαρμογή (next fit), ςτθν οποία ο διαχειριςτισ μνιμθσ δεν ξεκινά τθν ςάρωςθ 15

21 - ΚΕΦΑΛΑΙΟ 1 ο - από τθν αρχι τθσ κφριασ μνιμθσ, αλλά από το τελευταίο τμιμα που παραχϊρθςε ςε μια διεργαςία. Μια τρίτθ εναλλακτικι είναι θ βζλτιςτη προςαρμογή (best fit), μζςω τθσ οποίασ ολόκλθρθ θ λίςτα ςαρϊνεται και επιλζγεται το μικρότερο ελεφκερο τμιμα (partition) το οποίο χωράει θ διεργαςία. Ζνασ τελευταίοσ αλγόρικμοσ κατανομισ μνιμθσ είναι θ γρήγορη προςαρμογή (quick fit), θ οποία διατθρεί ξεχωριςτζσ λίςτεσ για κάποια από τα πιο ςυνθκιςμζνα μεγζκθ μνιμθσ που ηθτοφνται. Η δυναμικι κατάτμθςθ αποτρζπει τον εςωτερικό κατακερματιςμό και είναι αρκετά πιο αποτελεςματικι από τθν κατάτμθςθ ςτακεροφ μεγζκουσ. Ωςτόςο θ μζκοδοσ αν και είναι αποτελεςματικι ςτθν αρχι, αλλά τελικά καταλιγει ςε μια κατάςταςθ όπου υπάρχουν μικρά αχρθςιμοποίθτα τμιματα ςτθ μνιμθ ςτα οποία καμία διεργαςία δεν μπορεί να τοποκετθκεί. Σο φαινόμενο αυτό είναι γνωςτό ωσ εξωτερικόσ κατακερματιςμόσ (external fragmentation). Ζνασ τρόποσ αντιμετϊπιςθσ του παραπάνω φαινομζνου είναι θ ςφμπτυξη. Με τθν πάροδο του χρόνου το ςφςτθμα μετατοπίηει τισ διεργαςίεσ, ζτςι ϊςτε να καταλαμβάνουν ςυνεχόμενο χϊρο ςτθν κφρια μνιμθ και όλθ θ ελεφκερθ μνιμθ να ςυγκεντρϊνεται ςε ζνα block ελιδοποίηςη μνήμησ ε αυτι τθν ενότθτα κα αναλυκεί θ μζκοδοσ τθσ απλισ ςελιδοποίθςθσ. Αρχικά κεωρείται ότι θ κφρια μνιμθ είναι οργανωμζνθ και χωριςμζνθ ςε ςχετικά μικρά τμιματα ίςου και ςτακεροφ μεγζκουσ και κάκε διεργαςία χωρίηεται επίςθσ ςε μικρά ιςομεγζκθ τμιματα. Σα τμιματα αυτά τθσ διεργαςίασ ονομάηονται ςελίδεσ (pages) και μποροφν να ανατεκοφν ςε διακζςιμα κομμάτια μνιμθσ, γνωςτά ωσ πλαίςια (frames) ι πλαίςια ςελίδασ. Σο λειτουργικό ςφςτθμα διατθρεί ζνα πίνακα ςελίδων (page table) για κάκε διεργαςία. Ο πίνακασ αυτόσ δείχνει τθν κζςθ πλαιςίου κάκε ςελίδασ ςτθ διεργαςία. Μζςα ςτο πρόγραμμα, κάκε λογικι διεφκυνςθ αποτελείται από ζνα αρικμό ςελίδασ και μια απόκλιςθ εντόσ τθσ ςελίδασ. Επιπρόςκετα το λειτουργικό ςφςτθμα διατθρεί μια μοναδικι λίςτα πλαιςίων, θ οποία περιλαμβάνει όλα τα διακζςιμα πλαίςια τθσ κφριασ μνιμθσ για τισ ςελίδεσ. Για να είναι το ςχιμα λειτουργικό το μζγεκοσ τθσ ςελίδασ και το μζγεκοσ του πλαιςίου πρζπει να είναι δυνάμεισ του δφο. Κάκε λογικι διεφκυνςθ (αρικμόσ ςελίδασ, απόκλιςθ) ενόσ προγράμματοσ είναι ίδια με τθ ςχετικι διεφκυνςθ και θ δυναμικι μετάφραςθ των διευκφνςεων είναι αρκετά απλι. Αναλυτικότερα, απαιτείται θ εξαγωγι του αρικμοφ ςελίδασ από τα n πιο αριςτερά bits τθσ λογικισ διεφκυνςθσ και θ χριςθ του αρικμοφ ςελίδασ ωσ δείκτθ ςτον πίνακα ςελίδων τθσ διεργαςίασ για τθν εφρεςθ του αρικμοφ πλαιςίου k. Η αρχικι διεφκυνςθ του πλαιςίου είναι k*2 m (όπου m τα bits τθσ απόκλιςθσ) και θ φυςικι διεφκυνςθ του αναφερόμενου byte είναι το άκροιςμα αυτοφ του αρικμοφ ςυν τθν απόκλιςθ. Με αυτι τθ μζκοδο, δεν υπάρχει εξωτερικόσ κατακερματιςμόσ, αλλά υπάρχει ζνα μικρό ποςό εςωτερικοφ κατακερματιςμοφ. 16

22 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) Σμηματοποίηςη μνήμησ Ζνα πρόγραμμα χριςτθ μπορεί να χωριςτεί με τθν χριςθ τθσ τμθματοποίθςθσ, ςε ζνα πλικοσ τμθμάτων. Όλα τα τμιματα δεν ζχουν το ίδιο μικοσ και μια λογικι διεφκυνςθ αποτελείται από δφο μζρθ, τον αρικμό τμιματοσ και τθν απόκλιςθ. Ζνα πρόγραμμα μπορεί να κατζχει παραπάνω από ζνα διαμερίςματα και αυτά δεν είναι αναγκαίο να είναι ςυνεχόμενα ςτθν κφρια μνιμθ. ε αντίκεςθ με τθ ςελιδοποίθςθ, θ τμθματοποίθςθ είναι ςυνικωσ ορατι ςτο χριςτθ και διευκολφνει τθν οργάνωςθ των προγραμμάτων και των δεδομζνων. Εφόςον υπάρχουν τμιματα διαφορετικοφ μεγζκουσ, δεν υπάρχει απλι ςχζςθ μεταξφ των ςχετικϊν και των λογικϊν διευκφνςεων. Αξιοποιείται ζνασ πίνακασ τμημάτων (segment table) που παρζχει τθν αρχικι διεφκυνςθ και το μζγεκοσ του κάκε τμιματοσ που αντιςτοιχεί ςε μια διεργαςία και μια λίςτα ελεφκερων μπλοκ κφριασ μνιμθσ. Για τθν διεφκυνςθ τθσ μετάφραςθσ α- παιτείται θ εξαγωγι του αρικμοφ ςελίδασ από τα n πιο αριςτερά bits τθσ λογικισ διεφκυνςθσ και θ χριςθ του αρικμοφ τμιματοσ ωσ δείκτθ ςτον πίνακα τμθμάτων τθσ διεργαςίασ για τθν εφρεςθ τθσ πρϊτθσ διεφκυνςθσ του τμιματοσ. Εν ςυνεχεία, γίνεται ςφγκριςθ τθσ απόκλιςθσ (m πιο δεξιά bits) με το μικοσ του τμιματοσ. Αν είναι μεγαλφτερθ ι ίςθ, θ διεφκυνςθ είναι άκυρθ. Η επικυμθτι φυςικι διεφκυνςθ είναι το άκροιςμα τθσ πρϊτθσ φυςικισ διεφκυνςθσ του τμιματοσ ςυν τθν απόκλιςθ. τθ μζκοδο δεν υφίςταται εςωτερικόσ κατακερματιςμόσ και θ χριςθ τθσ οδθγεί ςε βελτιωμζνο βακμό χριςθσ μνιμθσ και μειωμζνθ επιβάρυνςθ ςε ςχζςθ με τθν δυναμικι κατάτμθςθ. Παρόλα αυτά όπωσ και ςτθ δυναμικι κατάτμθςθ, ςυνεχίηει να εμφανίηεται το πρόβλθμα του εςωτερικοφ κατακερματιςμοφ Εικονική Μνήμη το προθγοφμενο υποκεφάλαιο διαπιςτϊκθκε ότι οι κρυφζσ μνιμεσ παρζχουν γριγορθ πρόςβαςθ ςτα τμιματα του κϊδικα και των δεδομζνων που χρθςιμοποιικθκαν πρόςφατα. Με παρεμφερζσ τρόπο, θ κφρια μνιμθ μπορεί να λειτουργιςει ςαν μια κρυφι μνιμθ για τθν δευτερεφουςα μνιμθ. Αυτι θ τεχνικι ονομάηεται εικονική μνήμη (virtual memory). Η εικονικι μνιμθ ςτθρίηεται ςτθ ςελιδοποίθςθ ι ςτθ τμθματοποίθςθ ι ςυνθκζςτερα και ςτισ δφο. Η κατά απαίτηςη ςελιδοποίηςη (demand paging) ι ςελιδοποίηςη ιδεατήσ μνήμησ είναι ανάλογθ με τθν απλι ςελιδοποίθςθ, με τθ διαφορά ότι δεν είναι απαραίτθτο να φορτωκοφν ό- λεσ οι ςελίδεσ μιασ διεργαςίασ. Αν το πρόγραμμα διακλαδϊςει ςε μια εντολι ι ςελίδα που δεν βρίςκεται ςτθν κφρια μνιμθ, τότε προκαλείται ςφάλμα ςελίδασ και το λειτουργικό ςφςτθμα προςκομεί τθν επικυμθτι ςελίδα ςτθν κφρια μνιμθ από τθν δευτερεφουςα. Με αυτό τον τρόπο, επειδι τοποκετοφνται ςτθν μνιμθ λιγότερεσ ςελίδεσ, μποροφν να χωρζςουν περιςςότερεσ διεργαςίεσ. Επειδι μια διεργαςία εκτελείται μόνο όταν βρίςκεται ςτθν κφρια μνιμθ (πραγματικι μνιμθ real memory), αλλά ο προγραμματιςτισ αντιλαμβάνεται μια ποφ μεγαλφτερθ μνιμθ που εκχωρείται ςτο δίςκο, αυτι ονομάηεται εικονικι μνιμθ (virtual memory). Μολονότι με τθ ςελιδοποίθςθ ιδεατισ μνιμθσ δεν υπάρχει πλζον εξωτερικόσ κατακερματιςμόσ και υπάρχει μεγάλοσ χϊροσ ιδεατϊν διευκφνςεων, θ διαχείριςθ μνιμθσ γίνεται πολφπλοκθ και προκαλεί επιβάρυνςθ ςτο υπολογιςτικό ςφςτθμα. 17

23 - ΚΕΦΑΛΑΙΟ 1 ο - Η τμηματοποίηςη ιδεατήσ μνήμησ είναι ανάλογθ με τθν απλι τμθματοποίθςθ με τθν διαφορά ότι δεν είναι απαραίτθτο να φορτωκοφν όλα τα τμιματα μιασ διεργαςίασ. Αντίςτοιχα με τθν ςελιδοποίθςθ ιδεατισ μνιμθσ, αν απαιτθκεί ζνα τμιμα που δεν υπάρχει ςτθν κφρια μνιμθ, προκφπτει ςφάλμα και προςκομίηεται το αντίςτοιχο τμιμα από τθν δευτερεφουςα μνιμθ. Δεν υπάρχει εςωτερικόσ κατακερματιςμόσ όπωσ ςτθν απλι τμθματοποίθςθ και ζχει αντίςτοιχα πλεονεκτιματα και μειονεκτιματα με τθν ςελιδοποίθςθ ιδεατισ μνιμθσ Αλγόριθμοι αντικατάςταςησ ςτην κύρια μνήμη τα ςυςτιματα πολυπρογραμματιςμοφ τα οποία χρθςιμοποιοφν δυναμικι κατάτμθςθ, είναι ςυχνά απαραίτθτθ θ αντικατάςταςθ μιασ διεργαςίασ ςτθν κφρια μνιμθ από κάποια άλλθ. Για τθν επιλογι τθσ ςελίδασ που πρόκειται να αντικαταςτακεί, υπάρχουν κάποιοι βαςικοί αλγόρικμοι αντικατάςταςθσ : Βζλτιςτοσ (optimal) : Επιλζγει προσ αντικατάςταςθ τθν ςελίδα που κα γίνει αναφορά το αργότερο δυνατό ςτο μζλλον. Ο αλγόρικμοσ είναι αδφνατο να υλοποιθκεί ςτθν πράξθ και χρθςιμοποιείται ωσ πρότυπο ςφγκριςθσ για τουσ υπόλοιπουσ πραγματικοφσ αλγορίκμουσ. Λιγότερα πρόςφατα χρηςιμοποιημζνη (Least Recently Used) : Αντικακιςτά τθν ςελίδα ςτθ μνιμθ ςτθν οποία δεν ζχει γίνει αναφορά για το μεγαλφτερο χρονικό διάςτθμα. Πρϊτη μζςα πρϊτη ζξω (First In First Out) : Η πρϊτθ ςελίδα που εγγράφθκε ςτθ μνιμθ αντικακίςταται. Ρολογιοφ (Clock) : Η απλοφςτερθ μορφι πολιτικισ ρολογιοφ απαιτεί τθ ςυςχζτιςθ ενόσ επιπλζον bit για κάκε πλαίςιο, γνωςτό ωσ bit χριςθσ (use bit). Όταν μια ςελίδα φορτϊνεται για πρϊτθ φορά το bit χριςθσ γίνεται μθδζν, ενϊ όταν ςτθ ςυνζχεια γίνεται αναφορά ςτθν ςελίδα το bit χριςθσ γίνεται 1. Σο ςφνολο των πλαιςίων που είναι υποψιφια για α- ντικατάςταςθ, κεωρείται ότι βρίςκονται ςε ζνα κυκλικό απομονωτι. Όταν ζρκει θ ςτιγμι αντικατάςταςθσ το λειτουργικό ςφςτθμα ςαρϊνει τον απομονωτι και όταν βρίςκει πλαίςιο με bit χριςθσ 1 το μετατρζπει ςε μθδζν και προχωράει. Αντίκετα, αν βρει πλαίςιο με bit χριςθσ 0 το αντικακιςτά, μετατρζπει το bit χριςθσ ςε 1 και ο δείκτθσ ρυκμίηεται ζτςι ϊςτε να δείχνει ςτο επόμενο πλαίςιο του απομονωτι μετά από αυτό που ρυκμίςτθκε. 18

24 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) 1.4 Δομέσ Διαςύνδεςησ Σο ςφνολο των οδϊν διαςφνδεςθσ που διαςυνδζει τισ διαφορετικζσ υπομονάδεσ μεταξφ τουσ ονομάηεται δομή διαςφνδεςησ. Οι κφριεσ μορφζσ ειςόδου και εξόδου για κάκε τφπο μονάδασ είναι: Μνήμη: Μια μονάδα μνιμθσ αποτελείται από Ν λζξεισ ίςου μικουσ με μια μοναδικι διεφκυνςθ. Μια λζξθ δεδομζνων μπορεί να αναγνωςτεί από τθν μνιμθ ι να εγγραφεί ςε αυτιν, πράξθ που υποδεικνφεται από αντίςτοιχα ςιματα ελζγχου και θ λζξθ για τθν πράξθ κακορίηεται από μία διεφκυνςθ. Τπομονάδα ειςόδου/εξόδου: Όμοια λειτουργία με τθν μνιμθ από εςωτερικι άποψθ. Επιπλζον, μπορεί να ελζγχει περιςςότερεσ από μία εξωτερικζσ ςυςκευζσ. Κακζνα από τα ενδιάμεςα κυκλϊματα που είναι υπεφκυνο για τον ζλεγχο μιασ ςυςκευισ ειςόδου/εξόδου ονομάηεται θφρα (port) και ζχει μια μοναδικι διεφκυνςθ. Επιπρόςκετα, υπάρχουν εξωτερικζσ διαδρομζσ δεδομζνων για τθν διεπαφι με μία εξωτερικι ςυςκευι. Σζλοσ, μπορεί να παράγει ςιματα διακοπισ προσ τον επεξεργαςτι. Επεξεργαςτήσ: Δζχεται εντολζσ και δεδομζνα, παράγει δεδομζνα μετά από επεξεργαςία, χρθςιμοποιεί ςιματα ελζγχου για τον ζλεγχο τθσ λειτουργίασ του ςυςτιματοσ και διαχειρίηεται τα ςιματα διακοπισ. Η δομι διαςφνδεςθσ πρζπει ωσ αποτζλεςμα να υποςτθρίηει τισ παρακάτω μορφζσ μεταφορϊν δεδομζνων: Μνήμη-Επεξεργαςτήσ: Ο επεξεργαςτισ διαβάηει τθν εντολι από τθν μνιμθ και διαβάηει ι εγγράφει μια μονάδα δεδομζνων από ι ςτθν μνιμθ. Τπομονάδα ειςόδου/εξόδου-επεξεργαςτήσ: Ο επεξεργαςτισ διαβάηει δεδομζνα από μια ςυςκευι ειςόδου/εξόδου ι ςτζλνει δεδομζνα ςε αυτιν. Τπομονάδα ειςόδου/εξόδου-μνήμη: Μια υπομονάδα ειςόδου/εξόδου μπορεί να α- νταλλάςει δεδομζνα απευκείασ με τθν μνιμθ με τθν χριςθ τθσ Άμεςησ Προςπζλαςησ Μνήμησ (Direct Memory Access) χωρίσ τθν επζμβαςθ του επεξεργαςτι. Προκειμζνου να πραγματοποιθκοφν οι παραπάνω μεταφορζσ δεδομζνων ζχουν δοκιμαςτεί ποικίλεσ αρχιτεκτονικζσ δομϊν διαςφνδεςθσ, με πιο κοινζσ τθν δομι του διαφλου (bus) και τισ δομζσ πολλαπλϊν διαφλων. 19

25 - ΚΕΦΑΛΑΙΟ 1 ο Διαςύνδεςη μέςω διαύλου Ζνασ δίαυλοσ (bus) είναι ζνα μονοπάτι επικοινωνίασ που ςυνδζει δυο ι περιςςότερεσ ςυςκευζσ. Εξαιτίασ του γεγονότοσ ότι ο δίαυλοσ είναι κοινόσ μεταξφ διάφορων ςυςκευϊν, ζνα ςιμα που εκπζμπεται από μία από αυτζσ, είναι διακζςιμο για λιψθ από όλεσ τισ υπόλοιπεσ. Για τθν αποφυγι τθσ επικάλυψθσ του ςιματοσ, ϊςτε αυτό να είναι κατανοθτό, μόνο μία ςυςκευι μπορεί να εκπζμπει κάκε χρονικι ςτιγμι. Ζνασ δίαυλοσ αποτελείται από πολλζσ διαδρομζσ επικοινωνίασ ι γραμμζσ. Ζνα ςιμα μπορεί να μεταφερκεί ωσ ακολουκία δυαδικϊν ψθφίων από μία γραμμι. Ωςτόςο, πολλζσ γραμμζσ μποροφν να χρθςιμοποιθκοφν μαηί για τθν ταυτόχρονθ και γρθγορότερθ μετάδοςθ ψθφίων (π.χ. 8,32,64 bits). Ο δίαυλοσ που ςυνδζει επεξεργαςτι - μνιμθ - υπομονάδεσ ειςόδου/εξόδου ονομάηεται δίαυλοσ ςυςτήματοσ (system bus) και κάνει χριςθ εκατοντάδων γραμμϊν. Αυτζσ οι γραμμζσ μποροφν να ταξινομθκοφν ςε τρεισ λειτουργικζσ ομάδεσ: Γραμμζσ δεδομζνων (Data bus): Ο δίαυλοσ δεδομζνων αποτελείται από ζνα ςφνολο Ν γραμμϊν, που ονομάηεται εφροσ διαφλου. Επειδι κάκε γραμμι μπορεί να μεταφζρει μονάχα ζνα bit, ο αρικμόσ γραμμϊν κακορίηει πόςα bits μποροφν να μεταφερκοφν ςυνολικά. υνεπϊσ, το εφροσ του διαφλου είναι κακοριςτικό για τθν ςυνολικι απόδοςθ του ςυςτιματοσ. Γραμμζσ διευθφνςεων (Address bus): Χρθςιμοποιοφνται για τον κακοριςμό τθσ πθγισ και του προοριςμοφ των δεδομζνων. Σο εφροσ του διαφλου αυτοφ κακορίηει τον αρικμό των πικανϊν διευκφνςεων και άρα και τθν μζγιςτθ δυνατι ποςότθτα μνιμθσ του ςυςτιματοσ. Σα υψθλότερα bits χρθςιμοποιοφνται για τθν επιλογι κφρασ ειςόδου/εξόδου ι κζςθ μνιμθσ και τα χαμθλότερα bits κακορίηουν τθν ακριβι διεφκυνςθ μζςα ςε αυτιν. Γραμμζσ ελζγχου (Control bus): Χρθςιμοποιοφνται για τον ζλεγχο τθσ πρόςβαςθσ και τθσ χριςθσ των γραμμϊν δεδομζνων και διευκφνςεων, επειδι είναι κοινζσ μεταξφ τουσ. Σα ςιματα ελζγχου που ςτζλνονται μζςω αυτϊν μεταδίδουν είτε πλθροφορίεσ εντολϊν είτε πλθροφορίεσ χρονιςμοφ μεταξφ των μονάδων. Η λειτουργία του διαφλου γίνεται με τον εξισ τρόπο: για να ςτείλει μια υπομονάδα δεδομζνα ςε μία άλλθ, πρζπει να κάνει χριςθ του διαφλου, να κάνει μία αίτθςθ επικοινωνίασ προσ τθν άλλθ υπομονάδα με τθν χριςθ των κατάλλθλων γραμμϊν ελζγχου και διευκφνςεων και τζλοσ να περιμζνει τθν αποςτολι/λιψθ των ηθτοφμενων δεδομζνων Διαςύνδεςη μέςω πολλαπλών διαύλων Η ςφνδεςθ μεγάλου αρικμοφ ςυςκευϊν ςε ζνα δίαυλο προκαλεί πτϊςθ τθσ απόδοςθσ. Αυτό ςυμβαίνει κυρίωσ γιατί πολλζσ ςυςκευζσ ςθμαίνουν μεγάλο μικοσ διαφλου που ςυνεπάγεται κακυςτζρθςθ μετάδοςθσ. Αυτι θ κακυςτζρθςθ κακορίηει τον χρόνο ςυντονιςμοφ του διαφλου. Επιπρόςκετα, υπάρχει θ πικανότθτα κορεςμοφ του διαφλου όταν αιτοφνται ταυτόχρονα πολλζσ ςυςκευζσ για μεταφορά δεδομζνων. 20

26 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) Για τθν αντιμετϊπιςθ των παραπάνω προβλθμάτων, εφαρμόηεται θ χριςθ πολλαπλϊν διαφλων που διατάςςονται ςε μία ιεραρχία (Εικόνα 6). υγκεκριμζνα θ ιεραρχία αυτι είναι: Ζνασ τοπικόσ δίαυλοσ που διαςυνδζει τον επεξεργαςτι με τθν κρυφι μνιμθ (cache memory) και τον τοπικό ελεγκτι ειςόδου εξόδου. Ο δίαυλοσ του ςυςτιματοσ μζςω του οποίου ςυνδζονται θ κφρια μνιμθ (main memory), θ κρυφι μνιμθ και ζνασ ενδιάμεςο κφκλωμα για ςφνδεςθ με ζνα δίαυλο επζκταςθσ. Ο δίαυλοσ επζκταςθσ που ςυνδζει τισ υπόλοιπεσ περιφερειακζσ ςυςκευζσ και τον δίαυλο του ςυςτιματοσ. Εικόνα 6 : Διαςφνδεςη μζςω πολλαπλϊν διαφλων (3) 21

27 - ΚΕΦΑΛΑΙΟ 1 ο Άμεςη Προςπέλαςη Μνήμησ (Direct Memory Access, DMA) Μία λειτουργία ειςόδου/εξόδου μπορεί να είναι είτε προγραμματιςμζνθ, είτε οδθγοφμενθ από διακοπζσ. Η CPU μπορεί να ηθτιςει από τον ελεγκτι Ε/Ε ζνα bit τθν φορά, αλλά αυτό καταναλϊνει άςκοπα τον χρόνο τθσ CPU. Ωσ αποτζλεςμα, χρειάηεται ςυχνά μια διαφορετικι μζκοδοσ που ονομάηεται Άμεςη Προςπζλαςη Μνήμησ (Direct Memory Access) (Εικόνα 7). Σο λειτουργικό ςφςτθμα απαιτεί τθν φπαρξθ ενόσ ελεγκτή DMA (DMA controller) για να επιτρζπει τθν λειτουργία αυτι και να τθν αξιοποιεί κυρίωσ για τθν μετακίνθςθ μεγάλων όγκων δεδομζνων. Ο ελεγκτισ DMA ζχει πρόςβαςθ ςτο δίαυλο του ςυςτιματοσ (system bus) ανεξάρτθτα από τθν CPU. Ο ελεγκτισ περιζχει διάφορουσ καταχωρθτζσ, από τουσ οποίουσ μπορεί θ CPU να γράφει και να διαβάςει δεδομζνα. ε αυτοφσ περιλαμβάνεται ζνασ καταχωρητήσ διεφθυνςησ μνήμησ (memory address register), ζνασ καταχωρητήσ καταμζτρηςησ byte (byte count register), και ζνασ ι περιςςότεροι καταχωρητζσ ελζγχου (control registers). Οι καταχωρθτζσ ελζγχου κακορίηουν τθ κφρα ειςόδου/ εξόδου που κα χρθςιμοποιθκεί, τθ μονάδα μεταφοράσ (ζνα bit ι μια λζξθ τθν φορά) και τον αρικμό των bit που κα μεταφερκοφν εν μια ριπή (burst). Αρχικά, κα αναλυκεί ο τρόποσ μεταφοράσ δεδομζνων χωρίσ τθν φπαρξθ τθσ DMA. Ζνα block διαβάηεται ςειριακά από τθν ςυςκευι μζχρι να μεταφερκεί ολόκλθρο ςτθν προςωρινι μνιμθ του ελεγκτι ειςόδου/εξόδου. Αφοφ υπολογιςτεί το άθροιςμα ελζγχου (checksum) για να διαπιςτωκεί ότι δεν ζχουν προκφψει λάκθ ανάγνωςθσ, ο ελεγκτισ προκαλεί μία διακοπι ϊςτε το λειτουργικό ςφςτθμα να τοποκετιςει ςτθν μνιμθ τα περιεχόμενα του ελεγκτι. Με τθν χριςθ τθσ DMA, θ διαδικαςία είναι ριηικά διαφορετικι. τθν ςυνζχεια, κα αναλυκεί ο πιο απλόσ τρόποσ λειτουργίασ τθσ DMA, δθλαδι θ μεταφορά μιασ λζξησ κάθε φορά (wordat-a-time mode). Η CPU προγραμματίηει τον ελεγκτι DMA ϊςτε να γνωρίηει αν απαιτείται ανάγνωςθ ι εγγραφι, τθν διεφκυνςθ τθσ εμπλεκόμενθσ ςυςκευισ ειςόδου/εξόδου, τθν κζςθ μνιμθσ από τθν οποία κα ξεκινιςει θ ανάγνωςθ/εγγραφι και το μζγεκοσ των δεδομζνων που εμπλζκονται. Ο επεξεργαςτισ ςυνεχίηει με άλλεσ διεργαςίεσ και όχι με τθν ανάγνωςθ/εγγραφι δεδομζνων που ανζλαβε θ DMA. Όταν ολοκλθρωκεί θ μεταφορά, θ μονάδα DMA ςτζλνει ζνα ςιμα διακοπισ ςτον επεξεργαςτι, δθλϊνοντασ το τζλοσ τθσ μεταφοράσ. Όμωσ, και θ μονάδα DMA χρθςιμοποιεί τον δίαυλο που χρθςιμοποιεί ο επεξεργαςτισ για τθν μεταφορά δεδομζνων. Οπότε προκφπτει ανταγωνιςμόσ μεταξφ τθσ DMA και του επεξεργαςτι, αναγκάηοντασ τον επεξεργαςτι να περιμζνει τθν DMA να ολοκλθρϊςει τον κφκλο εργαςίασ τθσ. Ωςτόςο, δεν πρόκειται για διακοπι, δθλαδι ο επεξεργαςτισ δεν αποκθκεφει το περιβάλλον του (π.χ. Program Counter, τιμζσ καταχωρθτϊν). Αντίκετα, απλά ςταματά για όςο διαρκεί ο κφκλοσ διαφλου. Ο μθχανιςμόσ αυτόσ ονομάηεται υπεξαίρεςη κφκλου (cycle stealing). Με αυτόν τον τρόπο, μπορεί ο επεξεργαςτισ να λειτουργεί βραδφτερα, αλλά αυτό είναι πιο αποτελεςματικό από τθν λειτουργία ειςόδου/εξόδου είτε είναι προγραμματιςμζνθ είτε είναι οδθγοφμενθ από διακοπζσ. Οι περιςςότερεσ μονάδεσ DMA ζχουν τθν δυνατότθτα να λειτουργοφν ςε δφο καταςτάςεισ: μεταφορά μιασ λζξησ κάθε φορά (word-at-a-time mode) και μεταφοράσ ενόσ block κάθε φορά (block mode). Η πρϊτθ κατάςταςθ αναλφκθκε παραπάνω και ςε αυτιν εμφανίηεται το φαινόμενο υπεξαίρεςθσ κφκλου. τθν μεταφορά block, o DMA αποκτά τον ζλεγχο επί του διαφλου για να κάνει μία ςειρά από μεταφορζσ. Αυτό εναλλακτικά ονομάηεται και λειτουργία ριπήσ (burst mode). Η τελευταία είναι πιο αποδοτικι, κακϊσ θ απόκτθςθ του ελζγχου επί του διαφλου απαιτεί χρόνο και είναι πιο ςυμφζρον να πραγματοποιείται μία φορά ανά πολλζσ μεταφορζσ και 22

28 - Οργάνωςθ Μνιμθσ (Memory Hierarchy and Organization) όχι μία φορά ανά μεταφορά. Σο μειονζκτθμα τθσ λειτουργίασ ριπισ είναι ότι είναι πικανό να κακυςτεριςει τθν CPU ι να μπλοκάρει άλλεσ ςυςκευζσ για ςθμαντικό χρόνο που εξαρτάται από το μζγεκοσ τθσ μεταφοράσ. Η λειτουργία που περιγράφθκε μζχρι αυτό το ςθμείο ονομάηεται ευθφσ τρόποσ λειτουργίασ (fly-by mode) τθσ DMA. Ζνασ εναλλακτικόσ τρόποσ λειτουργίασ είναι να ςτζλνεται κάκε λζξθ από τον ελεγκτι ςυςκευισ ςτον ελεγκτι DMA, ο οποίοσ προκαλεί μια δεφτερθ αίτθςθ διαφλου για να τοποκετιςει τθν λζξθ ςτθ ςωςτι κζςθ μνιμθσ. Παρά το γεγονόσ ότι αυτόσ ο μθχανιςμόσ απαιτεί ζναν παραπάνω κφκλο διαφλου, είναι πιο ευζλικτοσ κακϊσ μπορεί να κάνει αντίγραφα από ςυςκευι ςε ςυςκευι και από μνιμθ ςε μνιμθ. Οι περιςςότεροι ελεγκτζσ DMA χρθςιμοποιοφν φυςικζσ διευκφνςεισ για τθν λειτουργία τουσ. Οριςμζνοι όμωσ μποροφν να λειτουργιςουν και με τισ εικονικζσ διευκφνςεισ, χωρίσ να α- παιτείται μετάφραςθ τουσ εκ των προτζρων ςε φυςικζσ. Αυτό όμωσ προχποκζτει ότι θ DMA ζχει πρόςβαςθ ςτο Memory Management Unit για να μπορζςει να πραγματοποιιςει τθν μετάφραςθ. Πρακτικά, απαιτείται θ MMU να είναι τμιμα τθσ κφριασ μνιμθσ και όχι τθσ CPU. Όπωσ περιγράφκθκε παραπάνω, είναι απαραίτθτθ θ φπαρξθ εςωτερικισ προςωρινισ μνιμθσ ςτον ελεγκτι τθσ DMA. Η ανάγκθ αυτι προκφπτει από τθν υποχρζωςθ ελζγχου του checksum για να διαπιςτωκεί εάν μεταφζρκθκαν ςωςτά τα δεδομζνα. Εάν ςε αυτό το ςτάδιο διαπιςτωκοφν αποκλίςεισ, ακυρϊνεται θ μεταφορά και ςτζλνεται ςιμα ςφάλματοσ. Η ανάγκθ τθσ φ- παρξθσ τθσ εςωτερικισ μνιμθσ προκφπτει ακόμα από το γεγονόσ ότι δεν είναι επικυμθτό τα δεδομζνα να εγγράφονται απευκείασ ςτθν μνιμθ, κακϊσ ο δίαυλοσ κα χρθςιμοποιείται ζτςι ςυνζχεια. Αξίηει να επιςθμανκεί ότι θ DMA μπορεί να χρθςιμοποιθκεί και για μεταφορά δεδομζνων από μία κζςθ τθσ κφριασ μνιμθσ ςε μία άλλθ κζςθ τθσ κφριασ μνιμθσ. Αυτι θ λειτουργία είναι ειδικά χριςιμθ για πολφ κοςτοβόρεσ διεργαςίεσ, όπωσ θ αντιγραφι μεγάλο όγκου δεδομζνων ι θ μεταφορά δεδομζνων από πολλοφσ buffers ςε ζναν buffer μνιμθσ (scatter-gather operations). Εικόνα 7 : Direct Access Memory (13) 23

29 - ΚΕΦΑΛΑΙΟ 2 ο - 2 Αναςτροφή πίνακα (Matrix Transpose) Ζνασ πίνακασ είναι μια ορκογϊνια διάταξθ αρικμϊν ι ςυμβόλων ι εκφράςεων διατεταγμζνων ςε ςειρζσ ι ςτιλεσ. Σα μεμονωμζνα ςτοιχεία ενόσ πίνακα ονομάηονται εγγραφζσ. Ζνασ πίνακασ MxN ι (Μ,Ν) είναι ζνασ πίνακασ που τα ςτοιχεία του διατάςςονται ςε Μ γραμμζσ (rows) και Ν ςτιλεσ (columns). Ονομάηουμε ανάςτροφο (transpose) ενόσ MxN πίνακα Α, ζναν NxM πίνακα Β, του οποίου οι ςτιλεσ ςυμπίπτουν με τισ γραμμζσ του Α και οι γραμμζσ ςυμπίπτουν με τισ ςτιλεσ του Α. Ο ανάςτροφοσ πίνακασ του Α ςυμβολίηεται με Α Σ (Εικόνα 8). Η ζννοια τθσ αναςτροφισ (transpose) ειςιχκθ πρϊτθ φορά από τον Βρετανό μακθματικό Arthur Cayley το Η αναςτροφι του πίνακα είναι καίρια ςε επιςτθμονικά πεδία όπωσ θ επεξεργαςίασ εικόνασ (image processing), θ διαμόρφωςθ και θ αποδιαμόρφωςθ ςιματοσ (Signal modulation / demodulation), τα ςυςτιματα γεωγραφικοφ προςδιοριςμοφ (Geographic Information Systems) και θ ανάλυςθ κοινωνικϊν δικτφων. Ιδιαίτερα ςτθν επεξεργαςία εικόνασ, για να είναι δυνατι θ επεξεργαςία των εικόνων με ςκοπό τθν εξαγωγι ςυμπεραςμάτων ι τθν βελτιςτοποίθςι τουσ, εφαρμόηονται ςε αυτζσ φίλτρα ανάλογα με τθν επεξεργαςία που απαιτείται. υνικωσ ςτθν ε- φαρμογι τουσ εμπλζκεται θ χριςθ του μεταςχθματιςμοφ Fourier, με τον Fast Fourier Transformation να κάνει χριςθ τθσ αναςτροφισ πίνακα. Μια άλλθ χριςθ τθσ ζννοιασ τθσ αναςτροφισ αφορά τον πολλαπλαςιαςμό δφο πινάκων, Α και Β. ε αυτό το ςθμείο αξίηει να ςθμειωκεί ο τρόποσ οργάνωςθσ ενόσ πίνακα ςτθν Εικόνα 8 : Παράδειγμα αναςτροφήσ ενόσ τετραγωνικοφ πίνακα (18) μνιμθ. Ζνασ πίνακασ μπορεί να είναι καταχωρθμζνοσ ςτθ μνιμθ είτε γραμμι-γραμμι (row-major) είτε ςτιλθ-ςτιλθ (column-major). υνεπϊσ, ό- ταν είναι απαραίτθτο να πολλαπλαςιαςτοφν τα ςτοιχεία μιασ γραμμισ του Α με τα ςτοιχεία μιασ ςτιλθσ του Β, ανάλογα με τθν οργάνωςθ των πινάκων ςτθ μνιμθ, μια από τισ δφο προςπελάςεισ κα είναι πολφ ακριβι κακϊσ αυτά τα ςτοιχεία δεν κα βρίςκονται ςε ςυνεχείσ κζςεισ τθσ μνιμθσ και κα χρειαςτοφν άλματα (jumps) για τθν ανάκτθςι τουσ. Μάλιςτα, όςο ποιο μεγάλοσ είναι ο αρικμόσ των ςτοιχείων τθσ ςυγκεκριμζνθσ ςτιλθσ ι γραμμισ, τόςο μεγαλφτεροσ γίνεται ο χρόνοσ εκτζλεςθσ. Για να αποφευχκεί θ εν λόγω επιβάρυνςθ, αναςτρζφεται ο προβλθματικόσ πίνακασ και πλζον θ προςπζλαςθ γίνεται και ςτουσ δφο πίνακεσ είτε γραμμι-γραμμι είτε ςτιλθ-ςτιλθ. Με αυτό τον τρόπο θ διαδικαςία γίνεται ταχφτερα. Οι αλγόρικμοι που υπάρχουν για τθν αναςτροφι ενόσ πίνακα μποροφν να διακρικοφν ςε δφο κατθγορίεσ : In-place matrix transposition: Η αναςτροφι πραγματοποιείται τοπικά ςτθ μνιμθ, δθλαδι δεν απαιτείται επιπλζον χϊροσ για τθν εξαγωγι του ανεςτραμμζνου πίνακα. Ιδανικά θ πολυπλοκότθτα ςε χϊρο (space complexity) είναι O(1), αλλά ςτθν πράξθ 24

30 - Αναςτροφι πίνακα (Matrix Transpose) γίνεται χριςθ επιπλζον χϊρου, πολφ μικρότερου όμωσ από αυτόν που καταλαμβάνει ζνασ MxN πίνακασ. Out of place matrix transposition: Η αναςτροφι γίνεται με τθν χριςθ ενόσ πίνακα εξόδου που καταλαμβάνει ξεχωριςτό χϊρο μνιμθσ από τον αρχικό πίνακα. ε αυτό το ςθμείο κα ιταν επωφελζσ για τθν ανάλυςθ των αλγορίκμων που ακολουκοφν να αναλυκεί το κόςτοσ τθσ πρόςβαςθσ τθσ κφριασ μνιμθσ. Όπωσ αναφζρκθκε ςε ςχζςθ με τθν ιεραρχία των μνθμϊν ςτο προθγοφμενο κεφάλαιο, όταν ο επεξεργαςτισ απαιτιςει πρόςβαςθ ςε δεδομζνα, τότε το υπολογιςτικό ςφςτθμα αναηθτάει τα αντίςτοιχα δεδομζνα ςτθν πρϊτθ κατά τθν ιεραρχία μνιμθ (Εικόνα 2). Αν δεν βρίςκονται ςε αυτό το επίπεδο, τότε θ αναηιτθςθ προχωράει ςτο επόμενο. Πρακτικά, θ ιεραρχία τθσ μνιμθσ περιλαμβάνει κατά ςειρά τουσ καταχωρθτζσ, τθν κρυφι μνιμθ που ςυνικωσ χωρίηεται ςε τρία επίπεδα ςτα ςφγχρονα υπολογιςτικά ςυςτιματα, τθν κφρια μνιμθ και τθν δευτερεφουςα μνιμθ. Η προςοχι εςτιάηεται ςτθν διαφορά ανάμεςα ςτθν κρυφι μνιμθ και τθν κφρια. Αν δεν υπάρχει θ πλθροφορία που αναηθτείται ςτθν κρυφι μνιμθ (αςτοχία), τότε είναι απαραίτθτθ θ πρόςβαςθ ςτθν κφρια μνιμθ. Όμωσ, το κόςτοσ τθσ πρόςβαςθσ αυτισ είναι ςαφϊσ μεγαλφτερο από το κόςτοσ τθσ πρόςβαςθσ τθσ κρυφισ μνιμθσ για διάφορουσ λόγουσ. Πρϊτον, θ ταχφτθτα προςπζλαςθσ τθσ μνιμθσ τφπου DRAM που χρθςιμοποιεί θ κφρια μνιμθ είναι αρκετζσ φορζσ μικρότερθ από τθν ταχφτθτα τθσ μνιμθσ τφπου SRAM τθσ κρυφισ μνιμθσ. Για αυτό τον λόγο εξάλλου, το χρθματικό κόςτοσ τθσ κρυφισ μνιμθσ είναι πολφ μεγαλφτερο ςε ςχζςθ με τθν κφρια μνιμθ. Επιπροςκζτωσ, όταν βρεκοφν τα απαραίτθτα δεδομζνα ςτθν κφρια μνιμθ πρζπει αυτά να εγγραφοφν πίςω ςτθν κρυφι μνιμθ για μελλοντικι χριςθ, κακυςτερϊντασ ακόμα περιςςότερο τθν διαδικαςία. Αναλυτικά, θ προςπζλαςθ τθσ κρυφισ μνιμθσ διαρκεί περίπου 5-20 κφκλουσ μθχανισ ανάλογα με το επίπεδο τθσ, ενϊ αντίκετα θ προςπζλαςθ τθσ κφριασ μνιμθσ απαιτεί εκατοντάδεσ κφκλουσ μθχανισ. υνεπϊσ, είναι αναγκαίο για καλφτερθ απόδοςθ ενόσ προγράμματοσ να λθφκοφν μζτρα για καλφτερθ αξιοποίθςθ τθσ κρυφισ μνιμθσ. Ο κφριοσ ςτόχοσ για τθν καλφτερθ αξιοποίθςθ τθσ κρυφισ μνιμθσ είναι θ βελτίωςθ τθσ τοπικότθτασ. Σα δφο βαςικά ςτοιχεία που επιδιϊκονται να επιτευχκοφν είναι : Χρονική Σοπικότητα (Temporal Locality): Όταν μία δοςμζνθ κζςθ μνιμθσ προςπελάςεται, τότε είναι πολφ πικανό να ξαναπροςπελαςτεί ςτο άμεςο μζλλον. Ιδανικά, όταν αυτό ςυμβεί κα υπάρχει ιδθ ςτθν κρυφι μνιμθ. Χωρική Σοπικότητα (Spatial Locality): Αναφζρεται ςτθν τοποκζτθςθ ςχετικϊν δεδομζνων, κοντά μεταξφ τουσ ςτθν μνιμθ. υνικωσ, όταν μεταφζρεται ζνα τμιμα δεδομζνων που ηθτικθκε από τθν κφρια μνιμθ ςτθν κρυφι, μεταφζρονται και τα γειτονικά του. υνεπϊσ, εάν είναι απαραίτθτο να προςπελαςτοφν τα γειτονικά αυτά τμιματα ςτο άμεςο μζλλον, κα βρίςκονται ιδθ ςτθν κρυφι μνιμθ και κα αποφευχκοφν ζτςι αςτοχίεσ. Χωρίσ βλάβθ τθσ γενικότθτασ, αυτό το ςενάριο ςυγκεντρϊνει τισ περιςςότερεσ πικανότθτεσ. 25

31 - ΚΕΦΑΛΑΙΟ 2 ο - Οι πιο ςυχνζσ τεχνικζσ που χρθςιμοποιοφνται για τθν αφξθςθ τθσ τοπικότθτασ είναι οι εξισ: Χριςθ μικρότερων ςε μζγεκοσ (bytes) τφπων δεδομζνων. Οργάνωςθ των δεδομζνων που χρθςιμοποιοφνται π.χ. ςε δομζσ δεδομζνων, για να τθν αποφυγι αλμάτων ςτθν μνιμθ. Προςοχι ςτθν δυναμικι δζςμευςθ τθσ μνιμθσ ζτςι ϊςτε τα δεδομζνα που δεςμεφονται να βρίςκονται ςε ςυνεχείσ κζςεισ μνιμθσ ςτθν κφρια μνιμθ. Διαχωριςμόσ των δομϊν ςε μικρότερεσ δομζσ, ζτςι ϊςτε δεδομζνα που προςπελάηονται ςυχνότερα μαηί να βρίςκονται μαηί και ςτθν μνιμθ. Σο ίδιο ιςχφει και για αυτά που δεν προςπελάηονται ςυχνά. Αποφυγι αλγορίκμων και δομϊν που ακολουκοφν τυχαία, αςυςχζτιςτα μονοπάτια προςπζλαςθσ των δεδομζνων και οδθγοφν ςε πολλαπλζσ αποτυχίεσ. Η τελευταία τεχνικι που αναφζρκθκε είναι ιδιαίτερα ενδιαφζρουςα, τόςο για το πρόβλθμα τθσ αναςτροφισ πίνακα που μελετάται ςτο παρϊν κεφάλαιο, όςο και για τθν τυχαία μετάκεςθ ενόσ πίνακα που μελετάται ςτο Κεφάλαιο 5. ε πολυπφρθνα ςυςτιματα, ζνασ ακόμα πολφ ςθμαντικόσ παράγοντασ είναι ότι ςτα ςφγχρονα υπολογιςτικά ςυςτιματα θ κρυφι μνιμθ L3 είναι κοινι για όλουσ τουσ πυρινεσ, ενϊ θ L2 είναι κοινι ανά δφο πυρινεσ. υνεπϊσ, υπάρχει πικανότθτα περιςςότεροι του ενόσ πυρινεσ να ηθτιςουν πρόςβαςθ ςτθν ίδια γραμμι τθσ κοινισ κρυφισ μνιμθσ. Απόρροια αυτοφ είναι θ ςυγκεκριμζνθ γραμμι τθσ κρυφισ μνιμθσ να αλλάηει ςυνζχεια περιεχόμενο και ςυνεπϊσ να μειϊνεται δραματικά θ τοπικότθτα και επομζνωσ θ απόδοςθ. Μια λφςθ για το παραπάνω πρόβλθμα είναι ο καταμεριςμόσ των διεργαςιϊν ςτουσ πυρινεσ, ζτςι ϊ- ςτε να εκτελείται μια μόνο διεργαςία που απαιτεί ςυχνά πρόςβαςθ ςτθν μνιμθ. Αποφεφγεται ζτςι θ πικανότθτα να ηθτιςουν πολλαπλοί πυρινεσ να γράψουν ςτθν ίδια γραμμι τθσ κρυφισ μνιμθσ. Οι τεχνικζσ κατάλλθλθσ αξιοποίθςθσ τθσ κρυφισ μνιμθσ που αναλφκθκαν παραπάνω βελτιϊνουν τθν τοπικότθτα και μειϊνουν τθν ανάγκθ τθσ προςπζλαςθσ τθσ κφριασ μνιμθσ. Πολλζσ από αυτζσ τισ τεχνικζσ είναι ιδθ ενςωματωμζνεσ ςτουσ ςθμερινοφσ compilers. Θεωρείται ότι πίνακεσ ςτουσ αλγόρικμουσ που ακολουκοφν, είναι οργανωμζνοι γραμμι-γραμμι (row-major) και ζχουν υλοποιθκεί ςτθ γλϊςςα προγραμματιςμοφ C++. 26

32 - Αναςτροφι πίνακα (Matrix Transpose) 2.1 In place matrix transposition Για τουσ αλγορίκμουσ για in place matrix transposition πρζπει να λθφκεί ιδιαίτερθ προςοχι για MxN πίνακεσ ςε αντίκεςθ με τουσ NxN. τουσ τετραγωνικοφσ οι κζςεισ είναι ίδιεσ, με αποτζλεςμα θ αλλαγι να είναι μια απλι ανταλλαγι (swap). ε μθ τετραγωνικοφσ αυτό δεν ιςχφει. υγκεκριμζνα, αν κεωριςουμε ζνα ςτοιχείο ςε ζναν πίνακα NxN αντιςτοιχίηεται ςτθν κζςθ i*n + j τθσ κζςθσ μνιμθσ του πίνακα, αυτό πρζπει να ανταλλαχκεί με το ςτοιχείο που βρίςκεται ςτθ κζςθ j*n + i. Αντίκετα ςε ζναν πίνακα MxN το ςτοιχείο ( i,j ) αντιςτοιχίηεται ςτθν ίδια κζςθ με πριν αλλά πρζπει πλζον να μετακινθκεί ςτθ κζςθ j*μ + i τθσ μνιμθσ. Αλλά το ςτοιχείο τθσ κζςθσ j*μ + i τθσ μνιμθσ δεν πρζπει πλζον να μετακινθκεί ςτθ κζςθ i*n + j τθσ μνιμθσ, οπότε θ ανταλλαγι μεταξφ τουσ κα οδθγιςει ςε ςφάλμα Αλγόριθμοι για NxN πίνακεσ για in place transposition Naïve transposition of an NxN matrix Πρόκειται για τον απλοφςτερο αλγόρικμο για τθν αναςτροφι ενόσ πίνακα NxN. τθν πράξθ το ςτοιχείο i*n + j τθσ μνιμθσ ανταλλάςςεται με το ςτοιχείο j*n + i τθσ μνιμθσ με τθν χριςθ μιασ βοθκθτικισ μεταβλθτισ. Δθλαδι, ο αλγόρικμοσ κάνει χριςθ μόνο μια παραπάνω κζςθσ μνιμθσ. Κϊδικασ void transpositionnaive(int *A, long int N){ } for(long int i=0;i<n;i++){ for(long int j=i;j<n;j++){ int temp = 0; memcpy(&temp,&a[i*n + j],sizeof(int)); memcpy(&a[i*n + j],&a[j*n + i],sizeof(int)); memcpy(&a[j*n + i],&temp,sizeof(int)); } } 27

33 - ΚΕΦΑΛΑΙΟ 2 ο Cache efficient transposition of an NxN matrix using one buffer Ο προθγοφμενοσ απλοϊκόσ αλγόρικμοσ προκαλεί μεγάλα άλματα ςτθ μνιμθ, κακϊσ αναηθτά τθν κζςθ κάκε ςτοιχείου ςειριακά. υνεπϊσ προτείνεται μια εναλλακτικι λφςθ μζςω τθσ οποίασ γίνονται πιο τοπικζσ αλλαγζσ ςτθ μνιμθ, με απόρροια τθν καλφτερθ αξιοποίθςθ τθσ κρυφισ μνιμθσ. Ο πίνακασ ειςόδου χωρίηεται ςε τετραγωνικά blocks μεγζκουσ blocksize x blocksize. Για να γίνει με επιτυχία θ μετάκεςθ πρζπει να ανταλλάξουν κζςθ ανά δφο τα κατάλλθλα blocks. Tο block δθλαδι που ξεκινάει ςτθ κζςθ [i*blocksize, j*blocksize] με το block που ξεκινάει ςτθ κζςθ [j*blocksize, i*blocksize], και να αναςτραφοφν. Η διαδικαςία περιγράφεται ωσ εξισ : Επιλζγονται τα δφο block που πρζπει να ανταλλάξουν κζςθ. Σο πρϊτο block αντιγράφεται ςε ζνα buffer και ςτθ κζςθ του τοποκετείται ανεςτραμμζνο το δεφτερο block. Ο buffer αναςτρζφεται και τοποκετείται ςτθ κζςθ του δεφτερου block. Η διαδικαςία απαιτεί επιπλζον χϊρο μεγζκουσ blocksize x blocksize. Αυτι θ μζκοδοσ ο- νομάηεται Half Write, κακϊσ κάνει χριςθ ενόσ μόνο επιπλζον buffer. Η επιλογι του blocksize είναι κρίςιμθ, κακϊσ κα ιταν επικυμθτό να χωράει ολόκλθροσ ο buffer ςτθν κρυφι μνιμθ ζτςι ϊςτε οι αναςτροφζσ των blocks να είναι πολφ γριγορεσ. Διαφορζσ ςε ςχζςη με τη naive υλοποίηςη Για καλφτερη αξιοποίηςη τησ κρυφήσ μνήμησ: Αποφεφγονται τα μεγάλα άλματα ςτθν μνιμθ γιατί δεν μετατίκενται απευκείασ μόνα τουσ τα ςτοιχεία τθσ δευτερεφουςασ διαγωνίου. Αντικζτωσ, αναςτρζφονται μζςα ςε ζνα block το οποίο χωράει ακριβϊσ ςτθν πιο γριγορθ κρυφι μνιμθ για κάποιο βζλτιςτο blocksize. Αναςτρζφονται πλζον ολόκλθροι υποπίνακεσ και όχι ςτοιχείο ςτοιχείο, περιορίηοντασ ζτςι τα άλματα ςτθν μνιμθ κακϊσ κα γίνεται ζνα άλμα εκεί που κα γινόντουςαν (Blocksize)x(Blocksize) άλματα παλιά. 28

34 - Αναςτροφι πίνακα (Matrix Transpose) Κϊδικασ void cacheefficienthalfwritetranspostition(int *A,int N,int blocksize, int *buffer){ for(int i=0;i<n;i+=blocksize){ for(int j=0;j<=i;j+=blocksize){ if(i==j){ copytobuffer(buffer,a,n,blocksize,i,j); transpositionnaive(buffer,blocksize); copyfrombuffer(buffer,a,n,blocksize,i,j); } else{ copytobuffer(buffer,a,n,blocksize,i,j); for(long int k=i;k<i+blocksize;k++){ for(long int l=j;l<j+blocksize;l++){ memcpy(&a[k*n + l],&a[l*n + k],sizeof(int)); } } transpositionnaive(buffer,blocksize); copyfrombuffer(buffer,a,n,blocksize,j,i); } } } } φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ ςε ςχζςη με τον naive 1 N Αλγόρικμοι Χρόνοι Εκτζλεςθσ (sec) Naive Half Write (Blocksize=64) Half Write (Blocksize=128) Naive Half Write (Blocksize=64) Half Write (Blocksize=128) Πίνακασ 1 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Half Write ζναντι τησ Naive 1 Αναλυτικά πειράματα πάνω ςτισ μεκόδουσ ακολουκοφν ςτο Κεφάλαιο 3. 29

35 - ΚΕΦΑΛΑΙΟ 2 ο Cache efficient transposition of an NxN matrix using two buffers Ο προθγοφμενοσ αλγόρικμοσ αντιγράφει μόνο ζναν από τα δυο block προσ ανταλλαγι ςε ζναν buffer. Αντίκετα, ςτον αλγόρικμο Full Write αντιγράφονται και τα δφο blocks ςε δφο ξεχωριςτοφσ buffer, όπου αναςτρζφονται εκεί πριν ανταλλάξουν κζςθ. Αναλυτικά : Επιλζγονται τα δφο blocks που πρζπει να ανταλλάξουν κζςθ. Σο πρϊτο block αντιγράφεται ςε ζνα buffer1 και το δεφτερο ςε ζνα buffer2. Οι buffer1 και buffer2 αναςτρζφονται και τοποκετοφνται ςτισ κατάλλθλεσ κζςεισ. Η διαδικαςία απαιτεί επιπλζον χϊρο μεγζκουσ 2 x blocksize x blocksize. Η επιλογι του blocksize είναι και πάλι κρίςιμθ. τθ κεωρία, θ μζκοδοσ κάνει τισ αλλαγζσ ακόμα πιο τοπικζσ και αξιοποιεί καλφτερα τθν κρυφι μνιμθ με τθν προχπόκεςθ τθσ κατάλλθλθσ επιλογισ του blocksize. Διαφορζσ ςε ςχζςη με τη naive υλοποίηςη Για καλφτερη αξιοποίηςη τησ κρυφήσ μνήμησ: Αποφεφγονται τα μεγάλα άλματα ςτθν μνιμθ γιατί δεν μετατίκενται απευκείασ μόνα τουσ τα ςτοιχεία τθσ δευτερεφουςασ διαγωνίου. Αντικζτωσ, αναςτρζφονται μζςα ςε ζνα block το οποίο χωράει ακριβϊσ ςτθν πιο γριγορθ κρυφι μνιμθ για κάποιο βζλτιςτο blocksize. Αναςτρζφονται πλζον ολόκλθροι υποπίνακεσ και όχι ςτοιχείο ςτοιχείο, περιορίηοντασ ζτςι τα άλματα ςτθν μνιμθ, κακϊσ κα γίνεται ζνα άλμα εκεί που κα γινόντουςαν (Blocksize)x(Blocksize) άλματα παλιά. Η χριςθ δφο buffers εγγυάται μεγάλθ τοπικότθτα και άρα απόδοςθ ςτθν μετάκεςθ και των δφο υποπινάκων πλζον και όχι του ενόσ όπωσ ςτθν Half Write. 30

36 - Αναςτροφι πίνακα (Matrix Transpose) Κϊδικασ void cacheefficientfullwritetranspostition(int *A,int N,int blocksize, int *buffer1, int*buffer2){ for(int i=0;i<n;i+=blocksize){ for(int j=0;j<=i;j+=blocksize){ if(i==j){ copytobuffer(buffer1,a,n,blocksize,i,j); transpositionnaive(buffer1,blocksize); copyfrombuffer(buffer1,a,n,blocksize,i,j); } else{ copytobuffer(buffer1,a,n,blocksize,i,j); copytobuffer(buffer2,a,n,blocksize,j,i); transpositionnaive(buffer1,blocksize); transpositionnaive(buffer2,blocksize); copyfrombuffer(buffer1,a,n,blocksize,j,i); copyfrombuffer(buffer2,a,n,blocksize,i,j); } } } } φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ ςε ςχζςη με τον naive 2 N Αλγόρικμοι Χρόνοι Εκτζλεςθσ (sec) Naive Full Write (Blocksize=64) Full Write (Blocksize=128) Naive Full Write (Blocksize=64) Full Write (Blocksize=128) Πίνακασ 2 : φντομο πείραμα επιβεβαίωςησ τησ επιτάχυνςησ τησ Full Write ζναντι τησ Naive 2 Αναλυτικά πειράματα πάνω ςτισ μεκόδουσ ακολουκοφν ςτο Κεφάλαιο 3. 31

37 - ΚΕΦΑΛΑΙΟ 2 ο Αλγόριθμοι για MxN πίνακεσ για in place transposition Naïve transposition of an MxN matrix using cycles Όπωσ ζχει αναφερκεί παραπάνω, θ in place αναςτροφι ςε πίνακεσ MxN δεν μπορεί να γίνει απευκείασ με τον κλαςςικό τρόπο. Σθν λφςθ ςτο παραπάνω πρόβλθμα δίνει θ εφρεςθ των κφκλων (cycles) μετάκεςθσ. υγκεκριμζνα, θ αναςτροφι ενόσ MxN πίνακα μπορεί να κεωρθκεί ωσ μια κακοριςμζνθ μετάκεςθ (permutation) P των ςτοιχείων τθσ. Αν K θ αρχικι κζςθ ενόσ ςτοιχείου, τότε θ νζα κζςθ προκφπτει ωσ P(K) = (K*M) mod (N*M-1), 0<Κ<Ν*Μ-1. Αν εφαρμοςτεί θ P με αρχι ζνα ςθμείο Κ επαναλθπτικά, κάποια ςτιγμι το αποτζλεςμα κα είναι το Κ. Η ακολουκία των αποτελεςμάτων τθσ εφαρμογισ τθσ P δθμιουργεί ζναν κφκλο. τθ ςυνζχεια το πρϊτο ςτοιχείο του κφκλου αποκθκεφεται ςε μια προςωρινι κζςθ μνιμθσ και το δεφτερο ςτοιχείο μεταφζρεται ςτθν κζςθ του πρϊτου, το τρίτο ςτθν κζςθ του δευτζρου και οφτω κάκε εξισ. τθ κζςθ του τελευταίου ςτοιχείου αντιγράφεται θ τιμι του πρϊτου ςτοιχείου που είχε αποκθκευτεί ςτθ προςωρινι κζςθ μνιμθσ. Η εφρεςθ όλων των παραπάνω κφκλων και θ πραγματοποίθςθ των μετακζςεων ςε αυτοφσ υλοποιεί τθν αναςτροφι του πίνακα. Κϊδικασ void cycle_transposition(int *A,int m,int n,){ int k=0,index=0,temp=0; //isincycle denotes if an element is already in a cycle or not bool *isincycle = NULL; isincycle=new bool[m*n]; int max_cycle=find_max_cycle(m,n); //The cycle matrix contains the elements of each cycle found long int *cycle = NULL; cycle=new long int[max_cycle]; for(int i=0;i<m*n;i++){ isincycle[i]=0; } for(int i=0;i<max_cycle;i++){ cycle[i]=0; } isincycle[0]=1; isincycle[n*m-1]=1; for(int i=0;i<m*n;i++){ index=0; //Check If already in cycle if(isincycle[i]!=0) continue; //Find the new position of the element k=transposemapping(i,m,n); //Check if the element is already in the correct position if(k==i){ isincycle[k]=1; continue; 32

38 - Αναςτροφι πίνακα (Matrix Transpose) } isincycle[k]=1;; cycle[index]=k; index++; //Find cycle for(;;){ k=transposemapping(k,m,n); //Check if cycle is closed if(k==i) break; isincycle[k]=1; cycle[index]=k; index++; } // Apply the cycle permutation k=i; memcpy(temp,&a[k],sizeof(int)); for(int l=0;l<index;l++){ memcpy(&a[k],&a[cycle[l]],sizeof(int)); k=cycle[l]; } memcpy(&a[k],temp,sizeof(int)); } } delete[] cycle; cycle=new long int[max_cycle]; 33

39 - ΚΕΦΑΛΑΙΟ 2 ο Cache efficient transposition of an MxN matrix using tiles Ο χωριςμόσ ενόσ MxN πίνακα ςε blocks και θ αναςτροφι αυτϊν αξιοποιεί πιο βζλτιςτα τθν κρυφι μνιμθ από τθν naive υλοποίθςθ. Όπωσ όμωσ ςτθ naive, ιταν απαραίτθτθ θ εφρεςθ των κφκλων για ζναν MxN πίνακα και θ περίπτωςθ τθσ cache efficient υλοποίθςθσ χρειάηεται προςαρμογι. Μια μζκοδοσ υλοποίθςθσ που ζχει προτακεί, αποτελεί θ Tiled Transposition των Gustavson, Karlsson. Η μζκοδοσ χωρίηει κατάλλθλα τον πίνακα ςε m τμιματα κατά τθν Μ διάςταςθ και ςε n τμιματα κατά τθν Ν διάςταςθ. Ζτςι ο πίνακασ πλζον κεωρείται ωσ ζνασ πίνακασ τεςςάρων διαςτάςεων : (M/m) x m x (Ν/n) x n. Σα ςτάδια τθσ μεκόδου είναι τα εξισ : 1) Ο πίνακασ κεωρείται ωσ πίνακασ M x (N/n) x n. Ο πίνακασ αρχικά χωρίηεται ςε n τμιματα κατά τθν Ν διάςταςθ και ζτςι γίνεται πίνακασ τριϊν διαςτάςεων. τθ ςυνζχεια, αναςτρζφεται ζτςι ϊςτε να γίνει (N/n) x M x n. Πρακτικά, για κάκε mxn υποπίνακα πραγματοποιείται μια αναςτροφι με τθν χριςθ κφκλων, απλά κεωρϊντασ πλζον n μαηί ςτοιχεία ωσ μία εγγραφι. Αυτι θ αναςτροφι χαρακτθρίηεται ωσ 0100 αναςτροφι. 2) Ο πίνακασ πλζον κεωρείται ωσ (M/m) x (N/n) x m x n πίνακασ τεςςάρων διαςτάςεων. Οι υποπίνακεσ mxn αναςτρζφονται και ζτςι πλζον ο πίνακασ ζρχεται ςτθν μορφι (N/n) x (M/m) x n x m. Πρακτικά αυτό απαιτεί (N/n) x (M/m) απλζσ αναςτροφζσ mxn πινάκων με τθν χριςθ κφκλων. Αυτι θ αναςτροφι χαρακτθρίηεται ωσ 0010 αναςτροφι. 3) Ο πίνακασ αναςτρζφεται ωσ προσ τισ (N/n) και (M/m) διαςτάςεισ. Ουςιαςτικά, πρόκειται για μια αναςτροφι ενόσ (N/n) x (M/m) πίνακα όπου απλά κάκε εγγραφι δεν είναι ζνα ςτοιχείο αλλά ζνασ nxm πίνακασ. Αυτι θ αναςτροφι χαρακτθρίηεται ωσ 1000 αναςτροφι 4) Εφαρμόηεται ςτον πίνακα άλλθ μία 0100 αναςτροφι και ζτςι προκφπτει ο τελικόσ (N/n) x n x (M/m) x m πίνακασ, που μπορεί πλζον να κεωρθκεί ωσ ζνασ NxM πίνακασ. Η διαδικαςία φαίνεται αναλυτικά ςτθν παρακάτω εικόνα (Εικόνα 9) : 34

40 - Αναςτροφι πίνακα (Matrix Transpose) Εικόνα 9 : Περιγραφή μεθόδου Tiled Transpose (14) 35

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ελιδοποίθςθ (1/10) Σόςο θ κατάτμθςθ διαμεριςμάτων ςτακεροφ μεγζκουσ όςο και θ κατάτμθςθ διαμεριςμάτων μεταβλθτοφ και άνιςου μεγζκουσ δεν κάνουν

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β 1 ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β 2 ελιδοποίθςθ με Χριςθ Ιδεατισ Μνιμθσ (1/5) Ο όροσ ιδεατή μνήμη ςυνικωσ ςχετίηεται με ςυςτιματα τα οποία εφαρμόηουν ςελιδοποίθςθ, παρόλο που

Διαβάστε περισσότερα

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Ειςαγωγό Όπωσ είδαμε, ο χϊροσ εικονικϊν διευκφνςεων μνιμθσ που χρθςιμοποιεί κάκε διεργαςία, είναι αρκετά μεγαλφτεροσ από το χϊρο των φυςικϊν διευκφνςεων.

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α Βαςικι Ορολογία Ιδεατή Μνήμη: χιμα ανάκεςθσ αποκθκευτικοφ χϊρου, ςτο οποίο θ δευτερεφουςα μνιμθ μπορεί να διευκυνςιοδοτθκεί ςαν να ιταν μζροσ τθσ κφριασ

Διαβάστε περισσότερα

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β Δυναμικι Κατάτμθςθ (1/8) Η δυναμικι κατάτμθςθ αναπτφχκθκε με ςτόχο να ξεπεραςτοφν οριςμζνεσ από τισ βαςικζσ δυςκολίεσ τθσ κατάτμθςθσ ςτακεροφ

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 5 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Α

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 5 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Α ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 5 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Α Διαχείριςθ Μνιμθσ (1/2) υςτιματα μονοπρογραμματιςμοφ: Η κφρια μνιμθ χωρίηεται ςε δφο τμιματα: Ζνα τμιμα για το λειτουργικό ςφςτθμα, όπου είναι

Διαβάστε περισσότερα

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων Εκπαιδεφτρια: Μαρία Πολίτθ Σύνδεςη με προηγούμενα Κάκε μονάδα ενόσ υπολογιςτι που χρθςιμεφει για τθ μόνιμθ ι προςωρινι αποκικευςθ δεδομζνων ανικει ςτθ μνήμη

Διαβάστε περισσότερα

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Δρ. Χρήζηος Ηλιούδης Μθ Προςθμαςμζνοι Ακζραιοι Εφαρμογζσ (ςε οποιαδιποτε περίπτωςθ δεν χρειάηονται αρνθτικοί αρικμοί) Καταμζτρθςθ. Διευκυνςιοδότθςθ.

Διαβάστε περισσότερα

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι Τλικό υπολογιςτι (Hardware), Προςωπικόσ Τπολογιςτισ (ΡC), υςκευι ειςόδου, υςκευι εξόδου, Οκόνθ (Screen), Εκτυπωτισ (Printer), αρωτισ

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι Λογιςμικό (Software), Πρόγραμμα (Programme ι Program), Προγραμματιςτισ (Programmer), Λειτουργικό Σφςτθμα (Operating

Διαβάστε περισσότερα

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι Παράςταςη κινητήσ υποδιαςτολήσ ςφμφωνα με το πρότυπο ΙΕΕΕ Δρ. Χρήστος Ηλιούδης το πρότυπο ΙΕΕΕ 754 ζχει χρθςιμοποιθκεί ευρζωσ ςε πραγματικοφσ υπολογιςτζσ. Το πρότυπο αυτό κακορίηει δφο βαςικζσ μορφζσ κινθτισ

Διαβάστε περισσότερα

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Ω ΕΝΙΑΙΟ ΤΣΗΜΑ. ΚΕΦΑΛΑΙΟ 2: Σο Εςωτερικό του Τπολογιςτι

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Ω ΕΝΙΑΙΟ ΤΣΗΜΑ. ΚΕΦΑΛΑΙΟ 2: Σο Εςωτερικό του Τπολογιςτι ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ ΚΕΦΑΛΑΙΟ 2: Σο Εςωτερικό του Τπολογιςτι 2.1 Ο Προςωπικόσ Υπολογιςτήσ εςωτερικά Σροφοδοτικό, Μθτρικι πλακζτα (Motherboard), Κεντρικι Μονάδα Επεξεργαςίασ (CPU), Κφρια Μνιμθ

Διαβάστε περισσότερα

Ειςαγωγή ςτην πληροφορική

Ειςαγωγή ςτην πληροφορική Ειςαγωγή ςτην πληροφορική Δρ. Θεοδώρου Παύλοσ theodorou@uoc.gr Δομή ηλεκτρονικού υπολογιςτή - Υλικό Μια γενικι διάκριςθ ςυςτατικϊν που ςυνκζτουν ζναν Η/Υ (πόροι *resources]) Μονάδα ειςόδου (Input unit)

Διαβάστε περισσότερα

Δομζσ Δεδομζνων Πίνακεσ

Δομζσ Δεδομζνων Πίνακεσ Δομζσ Δεδομζνων Πίνακεσ Διάλεξθ 2 Περιεχόμενα Πίνακεσ: Οριςμοί, Γενικζσ ζννοιεσ Αποκικευςθ πινάκων Ειδικζσ μορφζσ πινάκων Αλγόρικμοι Αναηιτθςθσ Σειριακι Αναηιτθςθ Δυαδικι Αναηιτθςθ Οριςμοί, Γενικζσ ζννοιεσ

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν Τπόβακρο (1/3) τουσ παλαιότερουσ υπολογιςτζσ θ Κεντρικι Μονάδα Επεξεργαςίασ (Κ.Μ.Ε.) μποροφςε κάκε ςτιγμι να εκτελεί μόνο ζνα πρόγραμμα τουσ ςφγχρονουσ

Διαβάστε περισσότερα

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό. Κωδικοποιητές Ο κωδικοποιθτισ (nor) είναι ζνα κφκλωμα το οποίο διακζτει n γραμμζσ εξόδου και το πολφ μζχρι m = 2 n γραμμζσ ειςόδου και (m 2 n ). Οι ζξοδοι παράγουν τθν κατάλλθλθ λζξθ ενόσ δυαδικοφ κϊδικα

Διαβάστε περισσότερα

Processor-Memory (DRAM) Διαφορά επίδοςθσ

Processor-Memory (DRAM) Διαφορά επίδοςθσ Performance Processor-Memory (DRAM) Διαφορά επίδοςθσ 98 98 982 983 984 985 986 987 988 989 99 99 992 993 994 995 996 997 998 999 2 2 22 23 24 25 µproc 6%/yr Processor-Memory Performance Gap: (grows 5%

Διαβάστε περισσότερα

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Διαχείριςθ Μνιμθσ Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Κάκε μεταβλθτι ςχετίηεται με μία κζςθ ςτθν κφρια μνιμθ του υπολογιςτι. Κάκε κζςθ ςτθ μνιμθ ζχει τθ δικι τθσ ξεχωριςτι διεφκυνςθ. Με άμεςθ

Διαβάστε περισσότερα

Αςφάλεια και Προςταςία Δεδομζνων

Αςφάλεια και Προςταςία Δεδομζνων Αςφάλεια και Προςταςία Δεδομζνων Μοντζλα Αςφάλειασ Σςιρόπουλοσ Γεϊργιοσ ΣΙΡΟΠΟΤΛΟ ΓΕΩΡΓΙΟ 1 Μοντζλα Αςφάλειασ Οι μθχανιςμοί που είναι απαραίτθτοι για τθν επιβολι μιασ πολιτικισ αςφάλειασ ςυμμορφϊνονται

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ Ειρινθ Φιλιοποφλου Ειςαγωγι Ο Παγκόςμιοσ Ιςτόσ (World Wide Web - WWW) ι πιο απλά Ιςτόσ (Web) είναι μία αρχιτεκτονικι για τθν προςπζλαςθ διαςυνδεδεμζνων εγγράφων

Διαβάστε περισσότερα

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν: Μζθοδος Simplex Η πλζον γνωςτι και περιςςότερο χρθςιμοποιουμζνθ μζκοδοσ για τθν επίλυςθ ενόσ γενικοφ προβλιματοσ γραμμικοφ προγραμματιςμοφ, είναι θ μζκοδοσ Simplex θ οποία αναπτφχκθκε από τον George Dantzig.

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Αρχείο (File) Φάκελοσ (Folder) Διαχειριςτισ Αρχείων (File Manager) Τφποι Αρχείων Σε τι εξυπθρετεί θ οργάνωςθ των εργαςιϊν μασ ςτουσ υπολογιςτζσ; Πϊσ κα οργανϊςουμε

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ Κεφάλαιο 8 Η γλϊςςα Pascal Παράγραφοσ 8.2 Βαςικοί τφποι δεδομζνων Σα δεδομζνα ενόσ προγράμματοσ μπορεί να: είναι αποκθκευμζνα εςωτερικά ςτθν μνιμθ είναι αποκθκευμζνα εξωτερικά

Διαβάστε περισσότερα

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Παράςταςη ςυμπλήρωμα ωσ προσ 1 Δρ. Χρήστος Ηλιούδης Θζματα διάλεξησ ΣΤ1 Προςθεςη αφαίρεςη ςτο ΣΤ1 2 ή ΣΤ1 Ονομάηουμε ςυμπλιρωμα ωσ προσ μειωμζνθ βάςθ R ενόσ μθ προςθμαςμζνου αρικμοφ Χ = ( Χ θ-1 Χ θ-2... Χ 0 ) R ζναν άλλον αρικμό Χ'

Διαβάστε περισσότερα

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο Αριθμητικά κυκλώματα Ημιαθροιστής (Half Adder) Ο ημιαθροιςτήσ είναι ζνα κφκλωμα το οποίο προςθζτει δφο δυαδικά ψηφία (bits) και δίνει ωσ αποτζλεςμα το άθροιςμά τουσ και το κρατοφμενο. Με βάςη αυτή την

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 12 θ Διάλεξθ Διαχείριςθ Αρχείων

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 12 θ Διάλεξθ Διαχείριςθ Αρχείων ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 12 θ Διάλεξθ Διαχείριςθ Αρχείων Αρχεία και υςτιματα Αρχείων (1/3) 2 Όςον αφορά ςτουσ χριςτεσ, ζνα από τα πιο ςθμαντικά τμιματα του Λ είναι το ςφςτθμα αρχείων, το οποίο τουσ επιτρζπει

Διαβάστε περισσότερα

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Virtualization Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Το virtualization πρόκειται για μια τεχνολογία, θ οποία επιτρζπει το διαχωριςμό

Διαβάστε περισσότερα

Ζρευνα ικανοποίθςθσ τουριςτϊν

Ζρευνα ικανοποίθςθσ τουριςτϊν Ζρευνα ικανοποίθςθσ τουριςτϊν Ammon Ovis_Ζρευνα ικανοποίθςθσ τουριςτϊν_ Ραδιοςτακμόσ Flash 96 1 ΣΤΟΙΧΕΙΑ ΔΕΙΓΜΑΤΟΣ Σο δείγμα περιλαμβάνει 332 τουρίςτεσ από 5 διαφορετικζσ θπείρουσ. Οι περιςςότεροι εξ αυτϊν

Διαβάστε περισσότερα

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΕΙΑΓΩΓΗ Ο νζοσ δικτυακόσ τόποσ τθσ Δ.Δ.Ε. Θεςπρωτίασ παρζχει πλζον τθ δυνατότθτα τθσ καταχϊρθςθσ νζων, ειδιςεων και

Διαβάστε περισσότερα

ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά"

ελ. 11/235, Περιεχόμενα Φακζλου Σεχνικι Προςφορά υντάκτθσ : Ευάγγελοσ Κρζτςιμοσ χόλιο: ΠΑΡΑΣΗΡΗΗ 1 ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά" Για τθν αποφυγι μεγάλου όγκου προςφοράσ και για τθ διευκόλυνςθ του ζργου τθσ επιτροπισ προτείνεται τα

Διαβάστε περισσότερα

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Το Πλθροφοριακό Σφςτθμα τθσ δράςθσ «e-κπαιδευτείτε» ζχει ςτόχο να αυτοματοποιιςει τισ ακόλουκεσ

Διαβάστε περισσότερα

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων Πίνακεσ Διζγερςησ των FF Όπωσ είδαμε κατά τθ μελζτθ των FF, οι χαρακτθριςτικοί πίνακεσ δίνουν τθν τιμι τθσ επόμενθσ κατάςταςθσ κάκε FF ωσ ςυνάρτθςθ τθσ παροφςασ

Διαβάστε περισσότερα

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ 3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ 1 2 3 4 5 6 7 Παραπάνω φαίνεται θ χαρακτθριςτικι καμπφλθ μετάβαςθσ δυναμικοφ (voltage transfer characteristic) για ζναν αντιςτροφζα,

Διαβάστε περισσότερα

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V Σ ΤΑΤ Ι Σ Τ Ι Κ Η i Statisticum collegium V Στατιςτική Συμπεραςματολογία Ι Σημειακζσ Εκτιμήςεισ Διαςτήματα Εμπιςτοςφνησ Στατιςτική Συμπεραςματολογία (Statistical Inference) Το πεδίο τθσ Στατιςτικισ Συμπεραςματολογία,

Διαβάστε περισσότερα

Πειραματικι Ψυχολογία (ΨΧ66)

Πειραματικι Ψυχολογία (ΨΧ66) Πειραματικι Ψυχολογία (ΨΧ66) Διάλεξη 7 Σεχνικζσ για τθν επίτευξθ ςτακερότθτασ Πζτροσ Ροφςςοσ Μζθοδοι για την επίτευξη του ελζγχου Μζςω του κατάλλθλου ςχεδιαςμοφ του πειράματοσ (ςτόχοσ είναι θ εξάλειψθ

Διαβάστε περισσότερα

ΕΓΚΑΤΑΣΤΑΣΕΙΣ ΚΛΙΜΑΤΙΣΜΟΥ ΙΙ

ΕΓΚΑΤΑΣΤΑΣΕΙΣ ΚΛΙΜΑΤΙΣΜΟΥ ΙΙ ΕΓΚΑΤΑΣΤΑΣΕΙΣ ΚΛΙΜΑΤΙΣΜΟΥ ΙΙ μέρος Α ΚΟΝΤΟΣ ΟΔΥΣΣΕΑΣ ΠΕ12.04 1 ΚΜ: Κλιματιςτικι μονάδα Ορολογία ΚΚΜ: Κεντρικι κλιματιςτικι μονάδα ΗΚΜ: Ημικεντρικι κλιματιςτικι μονάδα ΤΚΜ: Σοπικι κλιματιςτικι μονάδα Δίκτυο

Διαβάστε περισσότερα

Σο θλεκτρικό κφκλωμα

Σο θλεκτρικό κφκλωμα Σο θλεκτρικό κφκλωμα Για να είναι δυνατι θ ροι των ελεφκερων θλεκτρονίων, για να ζχουμε θλεκτρικό ρεφμα, απαραίτθτθ προχπόκεςθ είναι θ φπαρξθ ενόσ κλειςτοφ θλεκτρικοφ κυκλϊματοσ. Είδθ κυκλωμάτων Σα κυκλϊματα

Διαβάστε περισσότερα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Ιούνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1. Περιφζρεια... 3 1.1 Διαχειριςτήσ Αιτήςεων Περιφζρειασ... 3 1.1.1. Είςοδοσ... 3 1.1.2. Αρχική

Διαβάστε περισσότερα

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν Τι είναι θ Γραμμι Εντολϊν (1/6) Στουσ πρϊτουσ υπολογιςτζσ, και κυρίωσ από τθ δεκαετία του 60 και μετά, θ αλλθλεπίδραςθ του χριςτθ με τουσ

Διαβάστε περισσότερα

ςυςτιματα γραμμικϊν εξιςϊςεων

ςυςτιματα γραμμικϊν εξιςϊςεων κεφάλαιο 7 Α ςυςτιματα γραμμικϊν εξιςϊςεων αςικζσ ζννοιεσ Γραμμικά, λζγονται τα ςυςτιματα εξιςϊςεων ςτα οποία οι άγνωςτοι εμφανίηονται ςτθν πρϊτθ δφναμθ. Σα γραμμικά ςυςτιματα με δφο εξιςϊςεισ και δφο

Διαβάστε περισσότερα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Ιοφνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1.Εθνικό Τυπογραφείο... 3 1.1. Είςοδοσ... 3 1.2. Αρχική Οθόνη... 4 1.3. Διεκπεραίωςη αίτηςησ...

Διαβάστε περισσότερα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Πάτρα, 2013 Περιεχόμενα: Ειςαγωγή... 4 1. Επιμελητήριο... Error! Bookmark not defined. 1.1 Διαχειριςτήσ Αιτήςεων Επιμελητηρίου...

Διαβάστε περισσότερα

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7) Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων (v.1.0.7) 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δθμιουργικθκε για να βοθκιςει τθν κατανόθςθ τθσ διαδικαςίασ διαχείριςθσ ςτθλών βιβλίου Εςόδων - Εξόδων.

Διαβάστε περισσότερα

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Περιεχόμενα Ζννοια δομισ Οριςμόσ δομισ Διλωςθ μεταβλθτϊν Απόδοςθ Αρχικϊν τιμϊν Αναφορά ςτα μζλθ μιασ δομισ Ζνκεςθ Δομισ Πίνακεσ Δομϊν Η ζννοια τθσ δομισ Χρθςιμοποιιςαμε

Διαβάστε περισσότερα

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ Δεκζμβριοσ 2016 Άςκθςθ 1 Θεωρείςτε ότι κζλουμε να διαγράψουμε τθν τιμι 43 ςτο Β+ δζντρο τθσ Εικόνασ 1. Η διαγραφι αυτι προκαλεί

Διαβάστε περισσότερα

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1 Περιεχόμενα Περιεχόμενα... 1 1. Ειςαγωγή... 2 1.1 Σχετικά... 2 2. Γενικέσ Πληροφορίεσ για τα Cookies... 2 2.1 Οριςμόσ... 2 2.2 Χρήςη... 3 2.3 Τφποι... 3 2.4 Έλεγχοσ... 3 3. Cookies Σχολήσ... 4 3.1 Ειςαγωγή...

Διαβάστε περισσότερα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Αυτζσ οι οδθγίεσ ζχουν ςτόχο λοιπόν να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο του Άβακα. Παρουςίαςη

Διαβάστε περισσότερα

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

Η γλώςςα προγραμματιςμού C Η γλώςςα προγραμματιςμού C Οι εντολζσ επανάλθψθσ (while, do-while, for) Γενικά για τισ εντολζσ επανάλθψθσ Συχνά ςτο προγραμματιςμό είναι επικυμθτι θ πολλαπλι εκτζλεςθ μιασ ενότθτασ εντολϊν, είτε για ζνα

Διαβάστε περισσότερα

Σφντομεσ Οδθγίεσ Χριςθσ

Σφντομεσ Οδθγίεσ Χριςθσ Σφντομεσ Οδθγίεσ Χριςθσ Περιεχόμενα 1. Επαφζσ... 3 2. Ημερολόγιο Επιςκζψεων... 4 3. Εκκρεμότθτεσ... 5 4. Οικονομικά... 6 5. Το 4doctors ςτο κινθτό ςου... 8 6. Υποςτιριξθ... 8 2 1. Επαφζσ Στισ «Επαφζσ»

Διαβάστε περισσότερα

Ηλιακι Θζρμανςθ οικίασ

Ηλιακι Θζρμανςθ οικίασ Ηλιακι Θζρμανςθ οικίασ Δυνατότθτα κάλυψθσ κερμαντικϊν αναγκϊν ζωσ και 100% (εξαρτάται από τθν τοποκεςία, τθν ςυλλεκτικι επιφάνεια και τθν μάηα νεροφ αποκθκεφςεωσ) βελτιςτοποιθμζνο ςφςτθμα με εγγυθμζνθ

Διαβάστε περισσότερα

Θεςιακά ςυςτιματα αρίκμθςθσ

Θεςιακά ςυςτιματα αρίκμθςθσ Θεςιακά ςυςτιματα αρίκμθςθσ Δρ. Χρήστος Ηλιούδης αρικμθτικό ςφςτθμα αρίκμθςθσ (Number System) Αξία (value) παράςταςθ Οι αξίεσ (π.χ. το βάροσ μιασ ποςότθτασ μιλων) μποροφν να παραςτακοφν με πολλοφσ τρόπουσ

Διαβάστε περισσότερα

Αποτελζςματα Ζρευνασ για τθν Απαςχολθςιμότθτα ςτθν Ελλάδα

Αποτελζςματα Ζρευνασ για τθν Απαςχολθςιμότθτα ςτθν Ελλάδα Αποτελζςματα Ζρευνασ για τθν Απαςχολθςιμότθτα ςτθν Ελλάδα Ιοφνιοσ 2017 Ταυτότθτα τθσ Ζρευνασ Η παροφςα ζρευνα διεξιχκθ το διάςτθμα Μαΐου - Ιουνίου 2017. Δείγμα: 180 επιχειριςεισ που δραςτθριοποιοφνται

Διαβάστε περισσότερα

τατιςτικά ςτοιχεία ιςτότοπου Κ.Ε.Π.Α. Α.Ν.Ε.Μ, www.e-kepa.gr για τθν περίοδο 1/1/2011-31/12/2014

τατιςτικά ςτοιχεία ιςτότοπου Κ.Ε.Π.Α. Α.Ν.Ε.Μ, www.e-kepa.gr για τθν περίοδο 1/1/2011-31/12/2014 τατιςτικά ςτοιχεία ιςτότοπου Κ.Ε.Π.Α. Α.Ν.Ε.Μ, www.e-kepa.gr για τθν περίοδο 1/1/2011-31/12/2014 Ειςαγωγι Στο παρόν κείμενο παρουςιάηονται και αναλφονται τα ςτατιςτικά ςτοιχεία του ιςτοτόπου τθσ ΚΕΠΑ-ΑΝΕΜ,

Διαβάστε περισσότερα

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων Ιςοηυγιςμζνα δζντρα και Β- δζντρα Δομζσ Δεδομζνων Περιεχόμενα Ιςοηυγιςμζνα δζντρα Μζκοδοι ιςοηφγιςθσ δζντρων Μονι Περιςτροφι Διπλι Περιςτροφι Β - δζντρα Ιςοηυγιςμζνα δζντρα Η μορφι ενόσ δυαδικοφ δζντρου

Διαβάστε περισσότερα

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1 Τμήμα Μησανικών Πληποφοπικήρ, Τ.Ε.Ι. Ηπείπος Ακαδημαϊκό Έτορ 2016-2017, 6 ο Εξάμηνο Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1 Διδάςκων Τςιακμάκθσ Κυριάκοσ, Phd MSc in Electronic Physics (Radioelectrology)

Διαβάστε περισσότερα

Οδθγόσ για τθν αξιοποίθςθ τθσ διαςφνδεςθσ του myschool με το Εκνικό Δθμοτολόγιο

Οδθγόσ για τθν αξιοποίθςθ τθσ διαςφνδεςθσ του myschool με το Εκνικό Δθμοτολόγιο Οδθγόσ για τθν αξιοποίθςθ τθσ διαςφνδεςθσ του myschool με το Εκνικό Δθμοτολόγιο Αναπτφχκθκε ςτο πλαίςιο του ζργου «Ανάπτυξθ πλθροφοριακοφ ςυςτιματοσ ςυλλογισ και επεξεργαςίασ δεδομζνων που αφοροφν ςτθν

Διαβάστε περισσότερα

Ιδιότθτεσ πεδίων Γενικζσ.

Ιδιότθτεσ πεδίων Γενικζσ. Οι ιδιότθτεσ των πεδίων διαφζρουν ανάλογα με τον τφπο δεδομζνων που επιλζγουμε. Ορίηονται ςτο κάτω μζροσ του παρακφρου ςχεδίαςθσ του πίνακα, ςτθν καρτζλα Γενικζσ. Ιδιότθτα: Μζγεκοσ πεδίου (Field size)

Διαβάστε περισσότερα

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα: 2 ο Σετ Ασκήσεων Δομές Δεδομένων - Πίνακες Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα: 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8

Διαβάστε περισσότερα

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Εργονομία, ωςτι ςτάςθ εργαςίασ, Εικονοςτοιχείο (pixel), Ανάλυςθ οκόνθσ (resolution), Μζγεκοσ οκόνθσ Ποιεσ επιπτϊςεισ μπορεί να ζχει θ πολφωρθ χριςθ του υπολογιςτι ςτθν

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 11 θ Διάλεξθ Διαχείριςθ Ε/Ε

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 11 θ Διάλεξθ Διαχείριςθ Ε/Ε 1 ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 11 θ Διάλεξθ Διαχείριςθ Ε/Ε Γενικά 2 Η Είςοδοσ/Ζξοδοσ (Ε/Ε) αποτελεί ίςωσ το πιο δφςκολο ηιτθμα ςχεδίαςθσ των Λ Δφςκολο να αναπτυχκεί γενικι και ςυνεπισ λφςθ Τπάρχει πλθκϊρα ςυςκευϊν

Διαβάστε περισσότερα

Πωσ δθμιουργώ φακζλουσ;

Πωσ δθμιουργώ φακζλουσ; Πωσ δθμιουργώ φακζλουσ; Για να μπορζςετε να δθμιουργιςετε φακζλουσ ςτο χαρτοφυλάκιό ςασ ςτο Mahara κα πρζπει να μπείτε ςτο ςφςτθμα αφοφ πατιςετε πάνω ςτο ςφνδεςμο Mahara profiles από οποιοδιποτε ςελίδα

Διαβάστε περισσότερα

ΑΥΤΟΜΑΤΙΜΣΟΣ ΓΑΦΕΙΟΥ. 5 θ & 6 θ Διάλεξθ Μνιμθ

ΑΥΤΟΜΑΤΙΜΣΟΣ ΓΑΦΕΙΟΥ. 5 θ & 6 θ Διάλεξθ Μνιμθ 1 ΑΥΤΟΜΑΤΙΜΣΟΣ ΓΑΦΕΙΟΥ 5 θ & 6 θ Διάλεξθ Μνιμθ Μνιμθ Υπολογιςτϊν (1/2) 2 Η αποκικευςθ των πλθροφοριϊν ςε ζνα υπολογιςτι γίνεται ςτθν μνιμθ του Οι υπολογιςτζσ αποκθκεφουν τα δεδομζνα ςε διάφορεσ μορφζσ

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων Δρ. Θεοδώρου Παύλοσ theodorou@uoc.gr Περιεχόμενα Τι είναι οι Βάςεισ Δεδομζνων (DataBases) Τι είναι Σφςτθμα Διαχείριςθσ Βάςεων Δεδομζνων (DBMS) Οι Στόχοι

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε) ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε) Γραφικό Περιβάλλον Επικοινωνίασ Περιβάλλον Εντολϊν Γραμμισ (Graphical User Interface/GUI), (Command Line Interface),

Διαβάστε περισσότερα

Δζντρα. Δομζσ Δεδομζνων

Δζντρα. Δομζσ Δεδομζνων Δζντρα Δομζσ Δεδομζνων Περιεχόμενα Δζντρα Γενικζσ ζννοιεσ Κόμβοσ ενόσ δζντρου Δυαδικά δζντρα αναηιτθςθσ Αναηιτθςθ Κόμβου Ειςαγωγι ι δθμιουργία κόμβου Δζντρα Γενικζσ ζννοιεσ Οι προθγοφμενεσ δομζσ που εξετάςτθκαν

Διαβάστε περισσότερα

Εικονικι Μνιμθ (virtual memory)

Εικονικι Μνιμθ (virtual memory) Εικονικι Μνιμθ (virtual memory) Πολλά προγράμματα εκτελοφνται ταυτόχρονα ςε ζνα υπολογιςτι Η ςυνολικι μνιμθ που απαιτείται είναι μεγαλφτερθ από το μζγεκοσ τθσ RAM Αρχι τοπικότθτασ (θ μνιμθ χρθςιμοποιείται

Διαβάστε περισσότερα

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10 Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό Διάλεξθ 10 Γενικό Σχιμα Μετατροπζασ Αναλογικοφ ςε Ψθφιακό Ψθφιακό Τθλεπικοινωνιακό Κανάλι Μετατροπζασ Ψθφιακοφ ςε Αναλογικό Τα αναλογικά ςιματα μετατρζπονται ςε

Διαβάστε περισσότερα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Αυτζσ οι οδθγίεσ ζχουν ςτόχο να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο τθσ Αρικμογραμμισ.

Διαβάστε περισσότερα

Ειδικά Θζματα Βάςεων Δεδομζνων

Ειδικά Θζματα Βάςεων Δεδομζνων Ειδικά Θζματα Βάςεων Δεδομζνων Ενότθτα 12: Ευρετιρια Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Πλθροφορικισ ΤΕ Άδειεσ Χριςθσ Το παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για

Διαβάστε περισσότερα

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1 ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4. Να γίνει πρόγραμμα το οποίο να επιλφει το Διαγώνιο Σφςτθμα: A ι το ςφςτθμα : ι ςε μορφι εξιςώςεων το ςφςτθμα : Αλγόρικμοσ m(). Διαβάηουμε τθν τιμι του ( θ διάςταςθ του Πίνακα Α )..

Διαβάστε περισσότερα

ΔΕΛΣΙΟ ΣΤΠΟΤ ΣΟΧΑΙ ΑΕ: «ΚΛΑΔΙΚΕ ΣΟΧΕΤΕΙ» ΜΕΛΕΣΗ ΑΓΟΡΑ ΑΛΤΙΔΩΝ ΛΙΑΝΙΚΟΤ ΕΜΠΟΡΙΟΤ

ΔΕΛΣΙΟ ΣΤΠΟΤ ΣΟΧΑΙ ΑΕ: «ΚΛΑΔΙΚΕ ΣΟΧΕΤΕΙ» ΜΕΛΕΣΗ ΑΓΟΡΑ ΑΛΤΙΔΩΝ ΛΙΑΝΙΚΟΤ ΕΜΠΟΡΙΟΤ ΔΕΛΣΙΟ ΣΤΠΟΤ ΣΟΧΑΙ ΑΕ: «ΚΛΑΔΙΚΕ ΣΟΧΕΤΕΙ» ΜΕΛΕΣΗ ΑΓΟΡΑ ΑΛΤΙΔΩΝ ΛΙΑΝΙΚΟΤ ΕΜΠΟΡΙΟΤ Μείωςθ 1,9% ςε ςχζςθ με το 2009, παρουςίαςε θ αγορά των αλυςίδων λιανικοφ εμπορίου των οκτϊ εξεταηόμενων κατθγοριϊν το 2010

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ Φιλιοποφλου Ειρινθ Προςθήκη νζων πεδίων Ασ υποκζςουμε ότι μετά τθ δθμιουργία του πίνακα αντιλαμβανόμαςτε ότι ζχουμε ξεχάςει κάποια πεδία. Είναι ζνα πρόβλθμα το οποίο

Διαβάστε περισσότερα

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ ΧΟΛΗ ΘΕΣΙΚΩΝ ΕΠΙΣΗΜΩΝ ΣΜΗΜΑ ΕΠΙΣΗΜΗ ΤΠΟΛΟΓΙΣΩΝ ΜΑΘΗΜΑ ΕΠΙΛΟΓΗ ΗΤ-564 ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΣΑ ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΤ - ΜΗΧΑΝΗ Διδάςκων: Κωνςταντίνοσ τεφανίδθσ τόχοσ τθσ ςυγκεκριμζνθσ εργαςίασ

Διαβάστε περισσότερα

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων Ενότητα 3: υςτιματα ουρϊν αναμονισ Κακθγθτισ Γιάννθσ Γιαννίκοσ χολι Οργάνωςθσ και Διοίκθςθσ Επιχειριςεων Σμιμα Διοίκθςθσ Επιχειριςεων Σκοποί ενότητασ Μελζτθ ςυςτθμάτων

Διαβάστε περισσότερα

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δημιουργήθηκε για να βοηθήςει την κατανόηςη τησ διαδικαςίασ αυτόματησ δημιουργίασ ςτηλών και αντιςτοίχιςησ

Διαβάστε περισσότερα

Ακολουκιακά Λογικά Κυκλώματα

Ακολουκιακά Λογικά Κυκλώματα Ακολουκιακά Λογικά Κυκλώματα Τα ψθφιακά λογικά κυκλϊματα που μελετιςαμε μζχρι τϊρα ιταν ςυνδυαςτικά κυκλϊματα. Στα ςυνδυαςτικά κυκλϊματα οι ζξοδοι ςε κάκε χρονικι ςτιγμι εξαρτϊνται αποκλειςτικά και μόνο

Διαβάστε περισσότερα

ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ

ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ ΦΥΣΙΚΗ vs ΒΙΟΛΟΓΙΑ ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ «Προτείνω να αναπτφξουμε πρώτα αυτό που κα μποροφςε να ζχει τον τίτλο: «ιδζεσ ενόσ απλοϊκοφ φυςικοφ για τουσ οργανιςμοφσ». Κοντολογίσ, τισ ιδζεσ που κα μποροφςαν

Διαβάστε περισσότερα

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ Οδηγός Χρήσης Εφαρμογής Ελέγχου Προσφορών Αφοφ πιςτοποιθκεί ο λογαριαςμόσ που δθμιουργιςατε ςτο πρόγραμμα ωσ Πάροχοσ Προςφορϊν, κα λάβετε ζνα e-mail με

Διαβάστε περισσότερα

Συςκευζσ τθλεπικοινωνιϊν και δικτφωςθσ:

Συςκευζσ τθλεπικοινωνιϊν και δικτφωςθσ: Συςκευζσ τθλεπικοινωνιϊν και δικτφωςθσ: Σειριακι Θφρα (1/2): Σειριακι Θφρα Σειριακι (2/2): Σειριακι Θφρα Σειριακι Θφρα (1/2): Σειριακι Θφρα Ακροδζκτεσ Σειριακισ Θφρασ Σειριακι Θφρα Dial Up Mo.dem: Mo.dem:

Διαβάστε περισσότερα

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

Διαχείριςη Αριθμοδεικτών (v.1.0.7) Διαχείριςη Αριθμοδεικτών (v.1.0.7) Περιεχόμενα 1. Μενοφ... 5 1.1 Αρικμοδείκτεσ.... 5 1.1.1 Δθμιουργία Αρικμοδείκτθ... 6 1.1.2 Αντιγραφι Αρικμοδείκτθ... 11 2. Παράμετροι... 12 2.1.1 Κατθγορίεσ Αρικμοδεικτϊν...

Διαβάστε περισσότερα

Ραραπάνω παρουςιάηεται ο πυρινασ των εντολϊν του επεξεργαςτι MIPS, με τισ οποίεσ, και τθν υλοποίθςθ τουσ ςε υλικό κα αςχολθκοφμε.

Ραραπάνω παρουςιάηεται ο πυρινασ των εντολϊν του επεξεργαςτι MIPS, με τισ οποίεσ, και τθν υλοποίθςθ τουσ ςε υλικό κα αςχολθκοφμε. 1 2 3 Ραραπάνω παρουςιάηεται ο πυρινασ των εντολϊν του επεξεργαςτι MIPS, με τισ οποίεσ, και τθν υλοποίθςθ τουσ ςε υλικό κα αςχολθκοφμε. 4 5 Ραραπάνω φαίνονται τα απαιτοφμενα βιματα για τθν εκτζλεςθ κάθε

Διαβάστε περισσότερα

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του Αυτόνομοι Πράκτορες Αναφορά Εργασίας Εξαμήνου Το αστέρι του Aibo και τα κόκαλα του Jaohar Osman Η πρόταςθ εργαςίασ που ζκανα είναι το παρακάτω κείμενο : - ξ Aibo αγαπάει πάρα πξλύ ρα κόκαλα και πάμρα ρα

Διαβάστε περισσότερα

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: ΔΟΜΗ ΑΠΟΦΑΗ Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: Όταν το if που χρθςιμοποιοφμε παρζχει μόνο μία εναλλακτικι διαδρομι εκτζλεςθ, ο τφποσ δομισ

Διαβάστε περισσότερα

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7) (v.1.0.7) 1 Περίλθψθ Σο ςυγκεκριμζνο εγχειρίδιο δθμιουργικθκε για να βοθκιςει τθν κατανόθςθ τθσ Διαδικαςίασ Προγράμματοσ Ωρομζτρθςθσ. Παρακάτω προτείνεται μια αλλθλουχία ενεργειϊν τθν οποία ο χριςτθσ πρζπει

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Δίκτυα Επικοινωνιϊν ΙΙ Διδάςκων: Απόςτολοσ Γκάμασ (Διδάςκων ΠΔ 407/80) Βοθκόσ Εργαςτθρίου: Δθμιτριοσ Μακρισ Ενδεικτική Λύση 2

Διαβάστε περισσότερα

Μθχανολογικό Σχζδιο, από τθ κεωρία ςτο πρακτζο Χριςτοσ Καμποφρθσ, Κων/νοσ Βαταβάλθσ

Μθχανολογικό Σχζδιο, από τθ κεωρία ςτο πρακτζο Χριςτοσ Καμποφρθσ, Κων/νοσ Βαταβάλθσ Λεπτζσ Αξονικζσ γραμμζσ χρθςιμοποιοφνται για να δθλϊςουν τθν φπαρξθ ςυμμετρίασ του αντικειμζνου. Υπενκυμίηουμε ότι οι άξονεσ ςυμμετρίασ χρθςιμοποιοφνται μόνον όταν το ίδιο το εξάρτθμα είναι πραγματικά

Διαβάστε περισσότερα

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1 Πολυπλέκτες Ο πολυπλζκτθσ (multipleer - ) είναι ζνα ςυνδυαςτικό κφκλωμα που επιλζγει δυαδικι πλθροφορία μιασ από πολλζσ γραμμζσ ειςόδου και τθν κατευκφνει ςε μια και μοναδικι γραμμι εξόδου. Η επιλογι μιασ

Διαβάστε περισσότερα

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ ΚΑΜΠΤΛΕ ΕΛΕΤΘΕΡΗ ΜΟΡΦΗ Χριςιμεσ για τθν περιγραφι ομαλών και ελεφκερων ςχθμάτων Αμάξωμα αυτοκινιτου, πτερφγια αεροςκαφών, ςκελετόσ πλοίου χιματα χαρακτιρων κινουμζνων ςχεδίων Περιγραφι

Διαβάστε περισσότερα

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό Βαγγζλθσ Οικονόμου Περιεχόμενα Πλθροφορίεσ Μακιματοσ Δομθμζνοσ Προγραμματιςμόσ (Οριςμοί, Γενικζσ Ζννοιεσ) Αλγόρικμοι και Ψευδοκϊδικασ Γλϊςςα προγραμματιςμοφ C Πλθροφορίεσ

Διαβάστε περισσότερα

Αναφορά Εργαςίασ Nim Game

Αναφορά Εργαςίασ Nim Game Αναφορά Εργαςίασ Nim Game Αυτόνομοι Πράκτορεσ (ΠΛΗ 513) Βαγενάσ Σωτιριοσ 2010030034 Ειςαγωγή Για τθν εργαςία του μακιματοσ αςχολικθκα με το board game Nim. Ρρόκειται για ζνα παιχνίδι δφο παιχτϊν (2-player

Διαβάστε περισσότερα

Slide 1. Εισαγωγή στη ψυχρομετρία

Slide 1. Εισαγωγή στη ψυχρομετρία Slide 1 Εισαγωγή στη ψυχρομετρία 1 Slide 2 Σφντομη ειςαγωγή ςτη ψυχρομετρία. Διάγραμμα Mollier (πίεςησ-ενθαλπίασ P-H) Σο διάγραμμα Mollier είναι μία γραφικι παράςταςθ ςε ζναν άξονα ςυντεταγμζνων γραμμϊν

Διαβάστε περισσότερα

ΠΡΟΦΟΡΑ ΖΗΣΗΗ ΚΡΑΣΘΚΗ ΠΑΡΕΜΒΑΗ

ΠΡΟΦΟΡΑ ΖΗΣΗΗ ΚΡΑΣΘΚΗ ΠΑΡΕΜΒΑΗ ΠΡΟΦΟΡΑ ΖΗΣΗΗ ΚΡΑΣΘΚΗ ΠΑΡΕΜΒΑΗ 1 Ειςαγωγι: Οι αγοραίεσ δυνάµεισ τθσ προςφοράσ και ηιτθςθσ Προσφορά και Ζήτηση είναι οι πιο γνωςτοί οικονοµικοί όροι. Η λειτουργία των αγορϊν προςδιορίηεται από δφο βαςικζσ

Διαβάστε περισσότερα

ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ

ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ Μάθημα: ΔΙΚΣΤΑ Τάξη Γ Λυκείου, ΕΠΑΛ Καθηγητήσ : ιαφάκασ Γιϊργοσ Ημερομηνία : 21/02/2016 Διάρκεια: 3 ϊρεσ ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ 1. Σο πρωτόκολλο RARP μετατρζπει

Διαβάστε περισσότερα

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4 Τμήμα Μησανικών Πληποφοπικήρ, Τ.Ε.Ι. Ηπείπος Ακαδημαϊκό Έτορ 2016-2017, 6 ο Εξάμηνο Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4 Διδάςκων Τςιακμάκθσ Κυριάκοσ, Phd MSc in Electronic Physics (Radioelectrology)

Διαβάστε περισσότερα

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΘΕΜΑ Α ΑΕΠΠ Α1. Για κακεμία από τισ παρακάτω προτάςεισ να χαρακτθρίςετε με ΣΩΣΤΟ ι ΛΑΘΟΣ 1. Η ζκφραςθ

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον Γραπτι Εξζταςθ ςτο μάκθμα Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον Όνομα: Επϊνυμο: Τμιμα: Ημερομθνία: 20/02/11 Θζμα 1 ο Α. Να χαρακτθρίςετε κακεμιά από τισ παρακάτω προτάςεισ ωσ Σωςτι (Σ) ι Λάκοσ

Διαβάστε περισσότερα

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3) Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3) Το όνομα ενόσ πίνακα, όπωσ και κάκε άλλου αντικειμζνου, μπορεί να ζχει μζγεκοσ ζωσ 64 χαρακτιρεσ. Το όνομα ενόσ πεδίου μπορεί να ζχει μζγεκοσ ζωσ 64 χαρακτιρεσ. Κάκε

Διαβάστε περισσότερα

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 2 θ Διάλεξθ - Διεργαςίεσ

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 2 θ Διάλεξθ - Διεργαςίεσ ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 2 θ Διάλεξθ - Διεργαςίεσ Υπόβακρο (1/5) Η πλατφόρμα του υπολογιςτι αποτελείται από ςυλλογι πόρων υλικοφ, όπωσ ο επεξεργαςτισ, θ κφρια μνιμθ, οι μονάδεσ Ε/Ε, οι χρονομετρθτζσ, οι δίςκοι,

Διαβάστε περισσότερα

Είδθ των Cache Misses: 3C s

Είδθ των Cache Misses: 3C s Είδθ των Cache Misses: 3C s 1 Compulsory: Συμβαίνουν κατά τθν πρϊτθ πρόςβαςθ ςε ζνα block. Το block πρζπει να κλθκεί από χαμθλότερα επίπεδα μνιμθσ και να τοποκετθκεί ςτθν cache (αποκαλοφνται και cold start

Διαβάστε περισσότερα