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

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

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

Transcript

1 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt Univesrity. Computer Systems: a Programmers Perspective, R. Bryant, D. O' Hallaron, Carnegie-Mellon University. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Αρχιτεκτονική Υπολογιστών, Ν. Στεφανιδάκης, Ιόνιο Πανεπιστήμιο. Λειτουργικά Συστήματα, Κ. Διαμαντάρας, ΤΕΙΘ Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

2 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4 Ενδεικτικά Προγράμματα

3 Σύγχρονες Πολυεπίπεδες Μηχανές Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου Πρόγραμμα γλώσσας assembly Συστήματα Αρχιτεκτονική Σενάριο ή κλήση συστήματος (μικτή γλώσσα) Πρόγραμμα σε γλώσσα μηχανής Μικροπρόγραμμα ή γλώσσα περιγραφής υλικού Οργάνωση Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.

4 Μορφή προγράμματος σε κάθε επίπεδο temp = v[k]; Πρόγραμμα Γλώσσας Υψηλού Επιπέδου v[k] = v[k+1]; v[k+1] = temp; Μεταγλώττιση load $15, 0($2) load $16, 4($2) store $16, 0($2) store $15, 4($2) Πρόγραμμα Γλώσσας Assembly Assembly, Συμβολομετάφραση ISA Πρόγραμμα Γλώσσας Μηχανής Διερμηνεία, Υλοποίηση Control Signal Specification ALUOP[0:3] <= InstReg[9:11] & MASK Register Transfer Notation (RTN) 4

5 Αρχιτεκτονική Συνόλου Εντολών Instruction Set Architecture (ISA)... bytecode compiler interpreter Java program JVM ` bytecode hardware (μικροκώδικας ή ευθεία υλοποίηση) Το επίπεδο ISA είναι η διεπαφή μεταξύ των μεταγλωττιστών και του υλικού. Το χαμηλότερο επίπεδο συμβατικού προγραμματισμού. Εκεί όλες οι γλώσσες είναι ίδιες (dis-assembly). Η Java αποτελεί μια ειδική περίπτωση.

6 Παραδείγματα ISA ΙΑ-32 και Ιntel 64: ISA της Intel Εισαγωγικό εγχειρίδιο: Software Developers Manual: Basic Architecture Πολύ πληροφοριακό υλικό αλλά όχι πλήρεις προδιαγραφές. Kλειστή αρχιτεκτονική JVM: εικονικό ISA της Sun JAVA Υπερσύνολο της IJVM. Πλήρεις προδιαγραφές γιά τη κατασκευή μεταγλωττιστή ή διερμηνευτή ή επεξεργαστή. Aνοικτή αρχιτεκτονική Άλλες ανοικτές αρχιτεκτονικές: SPARC, MIPS..

7 Περιεχόμενα βασικού εγχειριδίου Intel 64, IA-32 Chapter 1 About This Manual. Chapter 2 Intel 64 and IA-32 Architectures. Chapter 3 Basic Execution Environment. Chapter 5 Instruction Set Summary. Chapter 6 Procedure Calls, Interrupts, and Exceptions. Chapter 7 Programming with General-Purpose Instructions. Chapter 8 Programming with the x87 FPU. Chapter 9 Programming with Intel MMXTM Technology. Chapter Programming with Streaming SIMD Extensions (SSE). Chapter 13 Input/Output. Chapter 14 Processor Identification and Feature Determination.

8 Περιεχόμενα εγχειριδίου JVM 1 Introduction 2 Java Programming Language Concepts 3 The Structure of the Java Virtual Machine 4 The class File Format 5 Loading, Linking, and Initializing 6 The Java Virtual Machine Instruction Set 7 Compiling for the Java Virtual Machine 8 Threads and Locks 9 Opcode Mnemonics by Opcode

9 Γιατί είναι σημαντικό το Σύνολο Εντολών * Πρέπει να είναι αρκετά απλό/λεπτομερές ώστε να υλοποιείται αποτελεσματικά από το υλικό και αρκετά αφαιρετικό/κανονικό ώστε να αποτελεί το 'στόχο' των μεταγλωττιστών. * Πρέπει να έχει χρονική διάρκεια/προοπτική, να μην μεταβάλλεται συχνά (επαύξηση μόνο). * Πρέπει να λαμβάνει υπ' όψη του θέματα υλοποίησης, δηλαδή να συμβάλλει στην αποδοτική υλοποίηση του * Δεν μπορεί να κάνει τα πάντα: ειδικές αρχιτεκτονικές και σύνολα εντολών για ειδικές εφαρμογές (λαμβάνεται υπ' όψη το κόστος / απόδοση / εύρος εφαρμογής). πχ ενσωματωμένα και κινητά συστήματα, μικροελεγκτές, επεξεργαστές γραφικών.

10 Αρχιτεκτονική Συνόλου Εντολών Γλώσσα Μηχανής: τι ορίζει; (1) * Πού βρίσκονται οι εντολές και τα δεδομένα; Ποιό είναι το μοντέλο μνήμης; Πώς βλέπει το Σύνολο Εντολών τη κύρια μνήμη; * Που κρατά ο επεξεργαστής τα εσωτερικά του δεδομένα; Ποιοί είναι ο καταχωρητές που βλέπει το Σύνολο Εντολών; Ποιές είναι οι λειτουργίες τους (ειδικοί - γενικοί). * Ποιούς βασικούς τύπους δεδομένων αναγνωρίζει το Σύνολο Εντολών; * Ποιές βασικές πράξεις και λειτουργίες υποστηρίζει - ποιό είναι το ρεπερτόριο του Συνόλου Εντολών; Ορισμός πράξεων μόνο σε λειτουργικό επίπεδο (τι κάνουν όχι πώς το κάνουν).

11 Αρχιτεκτονική Συνόλου Εντολών Γλώσσα Μηχανής: τι ορίζει; (2) * Πώς κωδικοποιείται μια εντολή; Πως ορίζονται τα opcodes; * Πώς ορίζονται οι τελεστέοι (operads); Πόσοι μπορεί να είναι οι τελεστέοι ανά τύπο εντολής; Πού βρίσκονται (μνήμη ή καταχωρητές) και πώς προσκομίζονται οι τελεστέοι (διευθυνσιοδότηση, addressing modes); * Πώς γίνεται η επικοινωνία με τις βασικές περιφερειακές συσκευές; * Πώς ελέγχεται η ροή του προγράμματος (διακλαδώσεις, υπορουτίνες κλπ); * Πώς ελέγχεται η επικοινωνία μεταξύ προγράμματος και υλικού ή άλλων προγραμμάτων; (διακοπές, παγίδες).

12 Μεταγλωττιστές και Σύνολο Εντολών (1) Ορθογωνιότητα Όσο το δυνατό λιγότεροι 'ειδικοί' καταχωρητές, περιορισμένη 'ειδική' σύνταξη εντολών, οι ίδια μορφή σύνταξης και διευθυνσιοδότησης για όλες σχεδόν τις εντολές. Πληρότητα Κάλυψη όλων των βασικών πράξεων, λειτουργιών, μεθόδων διευθυνσιοδότησης και τύπων δεδομένων. Κανονικότητα Κανονικοί, πλήρεις ορισμοί της σημασίας (semantics) των εντολών. Λειτουργικότητα Λιτή χρήση πόρων του συστήματος (μνήμη, καταχωρητές..)

13 Μεταγλωττιστές και Σύνολο Εντολών (2) Καταχωρητές Γενικού Σκοπού (Register Files) Οι σύγχρονες αρχιτεκτονικές προσφέρουν ένα μεγάλο αριθμό καταχωρητών γενικού σκοπού (πχ 64, 128, 256..), ανεξάρτητα από το αν οι καταχωρητές αυτοί είναι ορατοί στο Σύνολο Εντολών με ένα ή περισσότερα ονόματα. Ο μεταγλωττιστής γνωρίζει οτι η μικροαρχιτεκτονική κάνει χρήση τεχνικών όπως το Scoreboarding και αλγορίθμων όπως Graph Coloring ώστε να βελτιστοποιεί τη χρήση του Register File. Οι πολλοί γενικοί καταχωρητές προσφέρουν ταχύτητα, γενικότητα στη μεταγλώττιση, υποκαθιστούν το stack και το local variable frame. Όμως.. τα ανώτερα επίπεδα μπορούν να κάνουν οτι δεν ξέρουν..

14 Αρχές Σχεδιασμού Υπολογιστών Όλες οι βασικές εντολές εκτελούνται απ' ευθείας στο υλικό (οι σύνθετες εντολές ίσως υλοποιούνται με μικροκώδικα). Μεγιστοποίηση του ρυθμού υποβολής εντολών στη CPU (τεχνικές Παραλληλίας Επιπέδου Εντολής, ILP). Εύκολη αποκωδικοποίηση εντολών (μικρό σχετικά σύνολο από σχετικά απλές εντολές). Ελαχιστοποίηση προσπέλασης στη μνήμη, με ειδικές εντολές Load, Store μιας διεύθυνσης. Αφθονία όμοιων καταχωρητών (μεγάλο register file).

15 Τελικά ποιά εντολή εκτελείται; (1) Αυτό που τελικά συμβαίνει στη πραγματικότητα είναι μόνο το φυσικό επίπεδο (ψηφιακή λογική). Το επίπεδο Συνόλου Εντολών ή Γλώσσα Μηχανής είναι το τελευταίο καθαρά λογισμικό επίπεδο. Προσφέρει τη πλησιέστερη δυνατή προσέγγιση προς την πραγματική μηχανή, αλλά... Δεν είναι η πραγματική μηχανή: μεσολαβεί η Μικροαρχιτεκτονική που διερμηνεύει διαφανώς τις εντολές Γλώσσας Μηχανής στο υλικό. Έτσι το υλικό και η Μικροαρχιτεκτονική αλλάζουν, όμως το Σύνόλο Εντολών παραμένει ίδιο ή επαυξάνεται (backward compatiblity). Έτσι εντελώς διαφορετικά φυσικά επίπεδα εκτελούν τα ίδια προγράμματα Γλώσσας Μηχανής.

16 Τελικά ποιά εντολή εκτελείται; (2) Ο Pentium σε επίπεδο Συνόλου Εντολών παρέχει εντολές SISC ADD mem, reg // mem = mem + reg Η Mικροαρχιτεκτονική τις διερμηνεύει σε εντολές RISC LOAD tempreg1, mem ADD tempreg2, tempreg1, reg STORE mem, tempreg2 για να εκτελεστούν στο σύγχρονο υλικό τύπου RISC. Ο SPARC ή ο MIPS έχουν Σύνολο Εντολών RISC και το εκτελούν απ ευθείας σε υλικό τύπου RISC.

17 Τελικά ποιά εντολή εκτελείται; (3) Η JVM σε επίπεδο Συνόλου Εντολών παρέχει εντολές bytecode τύπου Stack LOAD mem1 LOAD mem2 ADD STORE mem2 O Java compiler ή το JRE αναλαμβάνει να μεταγλωττίσει ή να διερμηνεύσει το bytecode στο Σύνολο Εντολών του συστήματος που θα εκτελέση το bytecode. Αυτός στη συνέχεια μεταγλωττίζει σε CISC LOAD tempreg1, mem1 ADD mem2, tempreg1 και η μικροαρχιτεκτονική διερμηνεύει σε RISC κώδικα.

18 Τελικά ποιά εντολή εκτελείται; (4) Η Mικροαρχιτεκτονική PicoJava διερμηνεύει τον κώδικα bytecode απ' ευθείας σε εντολές RISC LOAD tempreg1, mem1 LOAD tempreg2, mem2 ADD tempreg2, tempreg1, tempreg2 STORE temreg2, mem2 και εφαρμόζει σύμπτυξη εντολών, αφού η στοίβα βρίσκεται σε register file. ADD tempreg2, tempreg1, tempreg2. 'Ισοδυναμία' hardware-firmware-software..

19 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

20 Μοντέλο Μνήμης (1) byte/word addressable Πόσα bytes μεταφέρονται; aligned ή non-aligned Όταν μεταφέρουμε λέξη (word = 4 bytes) ξεκινούμε από συγκεκριμένο offset (0, 4, 8, 12,...) στη διεύθυνση μνήμης ή όχι (στοίχιση ή όχι); little endian big endian Για τα δεδομένα που καταλαμβάνουν πολλά bytes ή αντιμετωπίζονται ως ομάδες, με ποιά σειρά είναι αποθηκευμένα τα δεδομένα στα bytes (μικρό ή μεγάλο άκρο);

21 Λογική Οργάνωση Bytes (a) Big endian (b) Little endian

22 Στοίχιση bytes Μια λέξη των 8 bytes αποθηκευμένη σε μνήμη little-endian. (a) Με στοίχιση. (b) Χωρίς στοίχιση.

23 Μοντέλο Μνήμης (2) Pentium: Aποθήκευση μικρού άκρου (little-endian) JVM: Αποθήκευση μεγάλου άκρου (big-endian) Pentium: Λέξεις των 8 bytes (64 bits), αλλά και επεξεργασία στα 32 ή και 8 bits λόγω backward compatibility (x86). Μηστοιχισμένη (non-aligned) προσπέλαση. Διαχωρισμός Instruction / Data στη L1 Cache. JVM: Byte/Word Addressable μνήμη (Πρόγραμμα 8 bits / Δεδομένα 32 bits). Στοιχισμένη (aligned) προσπέλαση. Pentium: Αντιμετώπιση Κινδύνων Δεδομένων σχετικών με την προσπέλαση Μνήμης λόγω πιθανής αλλαγής της σειράς εκτέλεσης από τη Retirement Unit.

24 0xffffffff 0xc x Kernel virtual memory User stack (created at runtime) Memory mapped region for shared libraries Run-time heap (created at runtime by malloc) Read/write data Read-only code and data 0x Unused Memory invisible to user code Χώρος μνήμης προγράμματος σε Pentium printf() function O stack κατεβαίνει Ο heap ανεβαίνει Loaded from the hello executable file

25 Καταστάσεις (Modes) Pentium Real mode: Ο Pentium φέρεται σαν 8086 (16 bit, απλές εντολές). Virtual 8086 mode: Tο λειτουργικό σύστημα ελέγχει ένα sandbox για εικονική λειτουργία 8086 (παράθυρο MS-DOS στα Windows) Protected mode: Η κανονική λειτουργία 32 bit (IA-32). Ιntel-64 mode: Επεκταμένη λειτουργία 64 bit. Kernel mode: Πλήρης πρόσβαση σε ειδικές εντολές (signal handling) χρήση από το πυρήνα (kernel) του λειτουργικού συστήματος. User mode: Τυπική λειτουργία χρήστη και διεργασιών.

26 Το μοντέλο μνήμης της JVM Σωρός Δυναμικών Δεδομένων Heap newarray int Δεξαμενή Σταθερών Πλαίσιο Τοπικών Μεταβλητών Περιοχή Μεθόδων Στοίβα Τρεχόντων Τελεστέων Τα διάφορα μέρη του μοντέλου μνήμης της JVM. Heap με garbage collection.

27 Ονομασίες Βασικών Καταχωρητών Μετρητής Προγράμματος (Program Counter, PC) Καταχωρητής Εντολών (Instruction Register, IR ή MBR) Καταχωρητής Διευθύνσεων Μνήμης (Memory Address Register, MAR) Καταχωρητής Δεδομένων Μνήμης (Memory Data Register, MDR) Γενικοί Καταχωρητές (R0, R1, R2,..., R7) Συσσωρευτής (Accumulator, AC) Δείκτης Στοίβας (Stack Pointer, SP) Index, Base, Offset Registers και άλλοι δείκτες (Πλαισίου LV, Σταθερών CPP..) Καταχωρητής Κατάστασης (Status Register, SR Process Status Word PSW)

28 Γνωστοί Καταχωρητές Προσοχή στη διαφορά Μικροαρχιτεκτονικής και Αρχιτεκτονικής Συνόλου Εντολών: Ξέρουμε την ύπαρξη των καταχωρητών λόγω της γνώσης μας της Μικροαρχιτεκτονικής (δηλαδή του ΠΩΣ εκτελούνται οι εντολές) αλλά ποιούς καταχωρητές βλέπει το Σύνολο Εντολών; Πχ είναι γνωστοί οι PC, IR, MAR, MDR; Το Σύνολο Εντολών γνωρίζει μόνον τους καταχωρητές που χρησιμοποιεί ρητά στις εντολές Γλώσσας Μηχανής ή έμμεσα, μέσω των semantics των εντολών Γλώσσας Μηχανής. Οι υπόλοιπες λεπτομέρειες αναγνωρίζονται μέσω της απόδοσης του συστήματος.

29 Καταχωρητές Pentium (1) Γενικοί καταχωρητές, αλλά με κατά περίπτωση ειδικές χρήσεις (mul, div, strings) Δείκτες Τοπικών Μεταβλητών, Στοίβας, κλπ Παλιοί Δείκτες Τμημάτων (Segments) Μετρητής Προγράμματος Καταχωρητής Κατάστασης

30 Καταχωρητές Pentium (2) EFLAGS ~ Processor Status Word N Negative Z Zero V Overflow C- Carry A Auxiliary Carry P Parity Interrupt Mask (βλ. Διακοπές) Mode of Opeation (βλ. Καταστάσεις Λειτουργίας) Trace bit (για debugging)

31 Καταχωρητές JVM Μόνον δείκτες σε περιοχές μνήμης (έμμεση χρήση) PC Μετρητής Προγράμματος SP Δείκτης Στοίβας LV Δείκτης Πλαισίου Τοπικών Μεταβλητών CPP Δείκτης Σταθερών και Μεθόδων Ο Σωρός επιστρέφει δείκτες για χρήση με Δυναμική Διαχείριση Μνήμης μέσω ειδικής εντολής (newarray). Διαχείριση μέσω ειδικών εντολών (aload, astore). Αυτόματη Συλλογή Απορριμάτων (Garbage Collection).

32 Καταχωρητές PicoJava Εκτός από τους καταχωρητές της JVM OPLIM FRAME PSW Μέγιστο μέγεθος στοίβας Μέγιστο μέγεθος Πλαισίου Τοπικών Μεταβλητών 64 Γενικοί καταχωρητές 4 Καταχωρητές για διαχείριση νημάτων 4 Καταχωρητές για εκσφαλμάτωση

33 Βασικοί Τύποι Δεδομένων (1) bit, byte (8 bits), word (4 bytes) char ASCII (7 ή 8 bits) Unicode (16 bits) συνήθως αντιμετωπίζονται σε ομάδες (πχ μια λέξη) int Unsigned ή Signed (συπλήρωμα του 2) 2 ή 4 bytes Short και Long float (4 bytes), double (8 bytes) IEEE Floating Point Standard 754 Υποστήριξη του Συνόλου Εντολών για διαφορετικούς τύπους δεδομένων (πχ integer add, integer long add, float add)

34 Βασικοί Τύποι Δεδομένων (2) Aπόσπασμα από μια περιοχή μνήμης (ή ένα αρχείο) σε hex. Τι μπορεί να είναι: εντολές γλώσσας μηχανής, ASCII χαρακτήρες προγράμματος, ακέραιοι, πραγματικοί, τιμές pixel από εικόνα; e5 ec83 c fce8 ffff ff 04c4 5d59 618d c3fc c6c c6f f 646c a e e 342e e e 342e 312d e e 6d e e e c65 742e e e e00 6f e00 6f63 6d6d e e2e 746f 2e65 4e47 2d Οτιδήποτε από αυτά! Το νόημα των bits εξαρτάται από τα συμφραζόμενά μας, δηλαδή από τη δική μας αντίληψη για τα δεδομένα.

35 Τύποι Δεδομένων Pentium

36 Τύποι Δεδομένων JVM

37 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

38 Βασικές Πράξεις και Λειτουργίες (1) Μετακινήσεις Δεδομένων Load (Καταχωρητής = Μνήμη) Store (Μνήμη = Καταχωρητής) Καταχωρητής Καταχωρητής Μνήμη Μνήμη Λειτουργίες Στοίβας (ως αδιαίρετη πράξη μετακίνησης) Λειτουργίες Εισόδου / Εξόδου (ως μετακίνηση σε ειδική θέση) Αριθμητικές Πράξεις Πρόσθεση, Αφαίρεση, Αντίθετο, Σύγκριση, Πολ/σμός, Διαίρεση Ακέραιοι και Πραγματικοί (Κινητή Υποδιαστολή) Ολίσθηση Αριθμητική / Λογική, Δεξιά / Αριστερά

39 Βασικές Πράξεις και Λειτουργίες (2) Λογικές Πράξεις AND, OR, XOR, NOT, Set, Clear Έλεγχος Ροής Προγράμματος Διακλάδωση χωρίς / με συνθήκη Κλήση / Επιστροφή υπορουτίνας Είσοδος / Έξοδος (ως ξεχωριστές λειτουργίες) Ανάγνωση, Εγγραφή Διακοπές και Παγίδες Έλεγχος, Εξυπηρέτηση, Επιστροφή Επιπλέον: Συγχρονισμός και Νήματα Strings, Γραφικά, Streaming..

40 Παράδειγμα Χρήσης Εντολών: Top 10 Intel X86 Instructions Κατηγορία Εντολή Μέσο ποσοστό συνολικής εκτέλεσης 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move register-register 4% 9 call 1% 10 return 1% Total 96% Παρατήρηση: Οι απλές εντολές έχουν τις μεγαλύτερες συχνότητες χρησιμοποίησης

41 Ορισμός Operands Μοντέλο Συσσωρευτή (1-address/-operand) Μόνο ένας καταχωρητής γενικού σκοπού. Απλό μοντέλο αλλά πολλές μεταφορές από-προς μνήμη και πολλές εντολές. Πρώτοι υπολογιστές (ο διερμηνέας που είδαμε). Μοντέλο Στοίβας (0-address/-operand) Οι καταχωρητές (ή η μνήμη) προσπελαύνονται μόνο μέσω εντολών διαχείρισης μιας στοίβας (Push, Pop). Απλή στη σύλληψη αλλά δύσκολη στη προσπέλαση, πολλές μετακινήσεις δεδομένων στη στοίβα. JVM. Μοντέλο Καταχωρητών (2,3-address/-opernad) Σύγχρονοι υπολογιστές. Πολλοί όμοιοι (όχι πάντα) καταχωρητές. Δύο υποκατηγορίες: Με προσπέλαση στη μνήμη (CISC) ή χωρίς (RISC). Στη κατηγορία RISC μπορεί να έχουμε μοντέλο με 2 ή 3 καταχωρητές.

42 Παράδειγμα Συσσωρευτή

43 Παράδειγμα Στοίβας

44 Παράδειγμα Καταχωρητών CISC καταχωρητές add R1, X R1 = R1 + Χ Οι περισσότερες εντολές περιλαμβάνουν και μια προσπέλαση στη μνήμη 2 CISC Γλώσσα assembly Pentium Διαφέρει από το μοντέλο Συσσωρευτή λόγω πολλών καταχωρητών. Σε παλαιότερα συστήματα υπήρχαν και πολλαπλές προσπελάσεις στη μνήμη.

45 Παράδειγμα Καταχωρητών RISC Μπορεί να οριστεί και με 2-address/- operands: add R1, R2 δηλαδή R1 = R1+R2

46 Ενδεικτικά αποσπάσματα κώδικα int x, y, z; Γλώσσα C/Java load 0xA2 add 0xA4 store 0xA0 // AC = mem(0xa2) // AC = AC + mem(0xa4) // mem(0xa0) = AC 3 3 load 0xA2 load 0xA4 add store 0xA0 // push mem(0xa2) // push mem(0xa4) // pop, pop, add, push // pop mem(0xa0) 4 9 load A, 0xA2 add A, 0xA4 store A, 0xA0 // A = mem(0xa2) // A = A + mem(0xa4) // mem(0xa0) = A 3 3 load A, 0xA2 load B, 0xA4 add C, A, B store C, 0xA0 // A = mem(0xa2) // B = mem(0xa4) // C = A + B // mem(0xa0) = C 4 3 load A, 0xA2 load B, 0xA4 add B, A, B store B, 0xA0 // A = mem(0xa2) // B = mem(0xa4) // B = A + B // mem(0xa0) = B 4 3 x = y + z; #cmd #mem refs

47 Μορφές Εντολών (1) Τέσσερις συνηθισμένεςς μορφές εντολών: (a) Zero-address/-operand (b) One-address/-operand (c) Two-address/-opernad (d) Three-address/-operand

48 Μορφές Εντολών (2) Σταθερού μήκους Μεταβλητού μήκους αριθμός words Υβριδικού μήκους αριθμός bytes Εφαρμογή σε byte/word -addressable memory (JVM)

49 Μορφές Εντολών (3) Μερικές πιθανές διευθετήσεις εντολών ανάλογα με το μήκος τους και τι μέγεθος λέξης. (a) Σταθερού μήκους, ίσου με μια λέξη. (b) Σταθερού μήκους, ίσου με μισή λέξη. (c) Μεταβλητού μήκους, ίσου με ακέραιο πολλαπλάσιο λέξης.

50 Κριτήρια Σχεδιασμού Εντολών (1) Σταθερό μήκος: ταχεία αποκωδικοποίηση, μικρή πυκνότητα. Μεταβλητό μήκος: μεγάλη πυκνότητα, σύνθετη αποκωδικοποίηση. * Αν η πυκνότητα του κώδικα είναι σημαντικό: μεταβλητό ή υβριδικό μήκος εντολής. * Αν η απόδοση είναι πιο σημαντική: σταθερό μήκος. * Ορισμένες αρχιτεκτονικές (ARM, MIPS) διαθέτουν ειδικό υποσύνολο εντολών σταθερού μήκους 16-bit για καλύτερη απόδοση. Η χρήση του κατάλληλου συνόλου αποφασίζεται από το μεταγλωττιστή σε επίπεδο ρουτίνας, ανάλογα με το αν απαιτείται απόδοση ή πυκνότητα. * Μερικές αρχιτεκτονικές εφαρμόζουν και αποσυμπίεσηon-the-fly για να συνδιάσουν πυκνότητα και απόδοση.

51 Κριτήρια Σχεδιασμού Εντολών (2) * Οι μικρές (σύντομες) εντολές είναι καλύτερες από τις μεγάλες (σύνθετες) εντολές. * Απαιτείται αρκετός χώρος για τη κωδικοποίηση όλων των πράξεων και λειτουργιών καθώς και πρόβλεψη για μελλοντικές επεκτάσεις (μήκος και κωδικοποίηση opcodes). * Απαιτείται αρκετός χώρος για τη τη κωδικοποίηση των operands και των συνδυασμών τους ανάλογα με τις μεθόδους διευθυνσιοδότησης που επιλέγονται 0, 1, 2 ή 3 operands ονόματα καταχωρητών διεθύνσεις μνήμης offset ή πλήρης διεύθυνση

52 Μορφή Εντολών Pentium 4

53 Μορφή Εντολών JVM

54 Επεκτεινόμενοι Κωδικοί Εντολών (1) Εντολή με 4-bit opcode και τρείς διευθύνσεις 4-bit. Σε συγκεκριμένο αριθμό bits πρέπει να οργανώσουμε εντολές με διαφορετικό αριθμό/τύπο operands.

55 Επεκτεινόμενοι Κωδικοί Εντολών (2) Σύνολο εντολών με 15 εντολές τριών διευθύνσεων, 14 εντολές δύο διευθύνσεων, 31 εντολές μιας διεύθυνσης και 16 εντολές μηδενικής διεύθνσης. Τα πεδία xxxx, yyyy, και zzzz aείναι πεδία διευθύνσεων των 4 bit.

56 Μορφή Εντολών: Σύνοψη Εντολές Pentium: Πολύ μεγάλες, πολύ σύνθετες, διάχυτες προσπελάσεις στη μνήμη (σε πολλές εντολές), μικρός κώδικας. Εντολές JVM: πολύ μικρές, πολύ απλές, πολλές προσπελάσεις στη μνήμη, μεγάλος κώδικας. Εντολές RISC (πχ SPARC, MIPS ή και Mic-4): κανονικές, ορθογώνιες, συγκεντρωμένες προσπελάσεις στη μνήμη (load, store), κώδικας μέσου μεγέθους.

57 Ασκήσεις Μελετήστε το Σύνολο Εντολών IJVM και κατατάξτε τις εντολές ανάλογα με το μήκος και τη μορφή τους, με βάση το σχήμα της JVM. Προτείνετε ένα δικό σας σχήμα κωδικοποίησης των εντολών για την 'έκδοση της IJVM για το Mic-4. Αυτό που αλλάζει είναι η χρήση 8 καταχωρητών (R0-R7) στη θέση του stack. Έστω οτι όλες οι εντολές της IJVM έχουν το μέγιστο μήκος. Εφαρμόστε τη λογική των Επεκτεινόμενων Κωδικών. Το ίδιο για το Σύνολο Εντολών IJVM Mic-4.

58 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

59 Διευθυνσιοδότηση: παράδειγμα bits 2 2 XX ΧΧ opernad1 operand1 Λειτουργία πχ ADD Opcode Addressing Modes ΧΧ Προορισμός Πηγή 00 Καταχωρητής Καταχωρητής Data Type 01 Καταχωρητής Αριθμός XX 10 Καταχωρητής Διεύθυνση που βρίσκεται σε Καταχωρητή 11 Διεύθυνση που βρίσκεται σε Καταχωρητή Καταχωρητής char int flotat double

60 Μέθοδοι Διευθυνσιοδότησης Όνομα Παράδειγμα Σημασία Καταχωρητή ADD R1, R2 R1=R1+R2 Άμεση (Immediate) ADD R1, #3 R1=R1+3 Έμμεση Καταχωρητή (Register Indirect) ADD R1, (R2) R1=R1+mem(R2) Μετατόπιση (Offset) ή Δεικτοδότηση (Indexed) ADD R1, 4(R2) R1=R1+mem(R2+4) Βάση-Δείκτης (Base-Index) ADD R1, (R2,R3) R1=R1+mem(R2+R3) Απόλυτη (Absolute) ADD R1, 1000 R1=R1+mem(1000) Έμμεση Μνήμης (Memory Indirect) ADD R1, R1=R1+mem(mem(R2)) Post-increment ADD R1, R2+ R1=R1+mem(R2);R2++ Pre-decrement ADD R1, R2- Κλιμακούμενη (Scaled) ADD R1, 4(R2)(R3) ` R2--; R1=R1+mem(R2) R1=R1+mem(4+R2+R3*d)

61 Άμεση και Έμμεση Διευθυνσιοδότηση Άμεση διευθυνσιοδότηση: φόρτωσε το 4 στο καταχωρητή 1. Έμμεση Καταχωρητή (Register Indirect): άθροιση στοιχείων ενός πίανακα.

62 Δεικτοδότηση - Indexed Addressing (1) Ενδιεκτικό πρόγραμμα assembly για τον υπολογισμό του OR των Ai AND Bi για δύο πίνακες 1024 στοιχείων.

63 Δεικτοδότηση - Indexed Addressing (2) Πιθανή διευθέτηση της εντολής MOV R4,A(R2).

64 Ορθογωνιότητα Opcodes και Addressing Modes (1) Απλή σχεδίαση μορφών εντολής σε μια μηχανή τριών διευθύνσεων.

65 Ορθογωνιότητα Opcodes και Addressing Modes (2) Απλή σχεδίαση μορφών εντολής σε μια μηχανή δύο διευθύνσεων.

66 Μέθοδοι Διευθυνσιοδότησης Pentium (1) Οι μέθοδοι διευθυνσιοδότησης σε κατάσταση ΙΑ-32. M[x] σημαίνει λέξη μνήμης στη διεύθυνση x.

67 Μέθοδοι Διευθυνσιοδότησης Pentium (2) Παράδειγμα προσπέλασης του στοιχείου a[i] με τη μέθοδο διευθυνσιοδότησης Scaled Index Base.

68 Σύγκριση Μεθόδων Διευθυνσιοδότησης (1)

69 Σύγκριση Μεθόδων Διευθυνσιοδότησης (2)

70 Ασκήσεις Μελετήστε τις μεθόδους διεθυνσιοδότησης της IJVΜ στις εκδόσεις για Mic-1/3 και για Mic-4 και κατατάξτε τις με βάση τον πίνακα των μεθόδων διευθυνσιοδότησης.

71 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

72 Εντολές Pentium 4 (1)

73 Εντολές Pentium 4 (2)

74 Εντολές Pentium 4 (3)

75 Εντολές Pentium 4 (4)

76 Εντολές JVM (1)

77 Εντολές JVM (2)

78 $gedit test.c & Ανάθεση Pentium main () { int x; x=10; } Χρήση ebp ως Local Variable Frame Pointer (LV) $gcc S test.c > test.s $cat test.c Κράτηση πρώτων 8 bytes θέσεων του User Stack Διεθυνσιοδότηση: Απόλυτη και Μετατόπιση Ανάπτυξη User Stack από High Address προς Low Address. movl $10, 8(%ebp)......

79 $gedit j1.java Ανάθεση JVM class j1 { public static void main () { int x; x=10; }... }... 0: bipush 10 $javac j1.java 2: istore_0 $javap c j1 > j1.s 3: return $cat j1.s Η istore_0 συντόμευση της istore 0. Διεθυνσιοδότηση: Απόλυτη και Μετατόπιση.

80 main () { int i, j, n; i=3; j=4; n=i+j; } Πράξη Pentium... movl movl movl addl movl... $3, 8(%ebp) $4, 12(%ebp) 12(%ebp), %eax 8(%ebp), %eax %eax, 16(%ebp) 2-address/-opernad code, η μια διεύθυνση προπέλαση στη μνήμη. Διευθυνσιοδοτήσεις : Απόλυτη, Άμεση, Μετατόπιση (Βάση-Δείκτης). 4 bytes ανα ακέραιο, ο eax καταχωρητής γενικής χρήσης.

81 Πράξη JVM class j2 { public static void main () { int i, j, n;... i=3; 0: iconst_3 j=4; 1: istore_0 n=i+j; 2: iconst_4 } 3: istore_1 } 4: iload_0 5: iload_1 6: iadd 7: istore_2 8: return... iconst_x = σύντομο bipush X, iload_x, istore_x = σύντομα iload X, istore X Διευθυνσιοδοτήσεις: Απόλυτη, Μετατόπιση, Stack.

82 main () { int i, k; i=3; if (i!= 3) k=0; } If then Pentium... movl $3, 8(%ebp) cmpl $3, 8(%ebp) je.l5 movl $0, 12(%ebp).L5:... Αντιστροφή Συνθήκης: αντί!= θέτουμε == για αποφυγή goto.

83 If then JVM class j3 { public static void main () { int i, k;... i=3; 0: iconst_3 if (i!= 3) 1: istore_0 k=0; 2: iload_0 } 3: iconst_3 } 4: if_icmpeq 7: iconst_0 8: istore_1 9: return... 9 Αντιστροφή Συνθήκης: αντί!= θέτουμε == για αποφυγή goto.

84 main () { int i, k; i=3; if (i == 3) k=0; else k=1; } If then else Pentium... movl cmpl jne movl jmp.l2: movl.l6:... $3, 8(%ebp) $3, 8(%ebp).L2 $0, 12(%ebp).L6 $1, 12(%ebp)

85 class j4 { public static void main () { int i, k;... i=3; 0: if (i == 3) 1: k=0; 2: else 3: k=1; 4: } 7: } 8: 9: 12: 13: 14:... If then else JVM iconst_3 istore_0 iload_0 iconst_3 if_icmpne iconst_0 istore_1 goto 14 iconst_1 istore_1 return 12

86 main () { int x, n; n=10; x=0; while (x < n) x=x+1; } while Pentium... movl $10, 12(%ebp) movl $0, 8(%ebp) jmp.l2.l3: addl $1, 8(%ebp).L2: movl 8(%ebp), %eax cmpl 12(%ebp), %eax jl.l3... Σύγκριση < στο τέλος του κώδικα επανάληψης.

87 { public static void main () {... int x, n; 0: 2: n=10; 3: x=0; 4: while (x < n) 5: x=x+1; 6: } 7: } 10: 11: 12: 13: Σύγκριση >= στη αρχή του 14: κώδικα επανάληψης. 17:... while JVM bipush 10 istore_1 iconst_0 istore_0 iload_0 iload_1 if_icmpge 17 iload_0 iconst_1 iadd istore_0 goto 5 return

88 Έλεγχος Βρόχων (a) Σύγκριση στο Τέλος (Test-at-the-end loop). (b) Σύγκριση στην Αρχή (Test-at-the-beginning loop).

89 main () { int x[5], i; for (i=0; i<5; i++) x[i]=i+3;... } movl jmp.l3: movl movl addl movl addl.l2: cmpl jle... Πίνακας, for Pentium $0, 8(%ebp).L2 8(%ebp), %edx 8(%ebp), %eax $3, %eax %eax, 28(%ebp,%edx,4) $1, 8(%ebp) $4, 8(%ebp).L3. Χρήση ebp 28 ως βάση και edx * 4 σαν index (οffset). Scaled Base Index (SIB). Μείωση ορίου τερματισμού κατά ένα.

90 class j6 { public static void main () {... 0: int[] x=new int[5]; 1: int i; 3: for (i=0; i<5; i++) 4: 5: x[i]=i+3; 6: } 7: } 8: Πίνακας, for JVM iconst_5 newarray int astore_0 iconst_0 istore_1 iload_1 iconst_5 if_icmpge 23 aload_0 iload_1 iload_1 iconst_3 iadd iastore iinc 1, 1 goto 6 return 11: 12: Χρήση newarray για λήψη δείκτη από 13: heap και αποθήκευση, φόρτωση με 14: astore, aload. 15: 16: Χρήση iastore + iload για 17: δεικτοδοτημένη προσπέλαση. 20: 23: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson... Education, Inc. All rights reserved

91 function Pentium f:... pushl %ebp movl %esp, %ebp subl $16, %esp int f(int x) { movl 8(%ebp), %eax addl $3, %eax int temp; movl %eax, 4(%ebp) movl 4(%ebp), %eax temp = x+3; leave ret return temp;... } main: leal 4(%esp), %ecx andl $ 16, %esp main () { pushl 4(%ecx) int y; pushl %ebp movl %esp, %ebp pushl %ecx y = 7; subl $20, %esp y = f(y) 4; movl $7, 8(%ebp) movl 8(%ebp), %eax } movl %eax, (%esp) call f subl $4, %eax Κλήση συνάρτησης και επιστροφή από movl %eax, 8(%ebp) συνάρτηση. addl $20, %esp popl %ecx Χρήση leave πριν απο ret. popl %ebp Το main είναι συνάρτηση. leal 4(%ecx), %esp ret

92 Static method JVM class j7 { public static int f(int x) { int temp; temp = x; return temp; } public static void main () { int y; y = 7; y = f(y) 4; } } j7(); Code: 0: aload_0 1: invokespecial 4: return #1; public static int f(int); Code: 0: iload_0 1: istore_1 2: iload_1 3: ireturn public static void main(); Code: 0: bipush 7 2: istore_0 3: iload_0 4: invokestatic #2; 7: iconst_4 8: isub 9: istore_0 10: return }

93 Pointers Pentium #include <stdlib.h> main () { int* x; int* y; x = malloc(sizeof(int)); y = malloc(sizeof(int)); *x = 1; *y = 2; x = y; } Register Indirect: o eax περιέχει τη πλήρη διεύθυνση των x, y.... movl call movl movl call movl movl movl movl movl movl movl... $4, (%esp) malloc %eax, 8(%ebp) $4, (%esp) malloc %eax, 12(%ebp) 8(%ebp), %eax $1, (%eax) 12(%ebp), %eax $2, (%eax) 12(%ebp), %eax %eax, 8(%ebp)

94 Pointers JVM class IntObj { public int value; } class j7 { public static void main () { IntObj x; IntObj y; x = new IntObj(); y = new IntObj(); x.value = 1; y.value = 2; } x = y; } Χρήση aload και putfield.... 0: new #2; 3: dup 4: invokespecial#3; 7: astore_0 8: new #2; 11: dup 12: invokespecial#3; 15: astore_1 16: aload_0 17: iconst_1 18: putfield #4; 21: aload_1 22: iconst_2 23: putfield #4; 26: aload_1 27: astore_0 28: return...

95 Pointer arguments Pentium (1) void swap (int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } main () { int x; int y; x = 5; y = 6; swap (&x, &y); }

96 Pointer arguments Pentium (2) swap: pushl movl subl movl movl movl movl movl movl movl movl movl movl leave ret %ebp %esp, %ebp $16, %esp 8(%ebp), %eax (%eax), %eax %eax, 4(%ebp) 12(%ebp), %eax (%eax), %edx 8(%ebp), %eax %edx, (%eax) 12(%ebp), %edx 4(%ebp), %eax %eax, (%edx) main: leal andl pushl pushl movl pushl subl movl movl leal movl leal movl call addl popl popl leal ret 4(%esp), %ecx $ 16, %esp 4(%ecx) %ebp %esp, %ebp %ecx $24, %esp $5, 8(%ebp) $6, 12(%ebp) 12(%ebp), %eax %eax, 4(%esp) 8(%ebp), %eax %eax, (%esp) swap $24, %esp %ecx %ebp 4(%ecx), %esp

97 Ασκήσεις Συγκρίνετε τους παραπάνω κώδικες με τους αντίστοιχους της IJVM (JAS) του Mic-1 καθώς και της IJVM του Mic-4. Ποιές είναι οι σημαντικές είναι οι διαφορές του bytecode της JVM από τη JAS της IJVM; Μελετήστε τη διαχείριση της στοίβας και του πλαισίου τοπικών μεταβλητών από τo Pentium και τη JVM.

98 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

99 Ακολουθιακή Ροή Ελέγχου και Διακλαδώσεις Ο Μετρητής Προγράμματος ως συνάρτηση του χρόνου. (a) Χωρίς διακλαδώσεις. (b) Με διακλαδώσεις.

100 Ρουτίνες Όταν καλείται μια ρουτίνα η εκτέλεσή της ξεικνά από την πρώτη της εντολή. Η επιστροφή γίνεται στην εντολή που ακολουθεί τη κλήση.

101 Συ-Ρουτίνες Όταν μια συ-ρουτίνα συνεχίζεται (resume) τότε η εκτέλεση συνεχίζει από εκεί που είχε σταματήσει, όχι από την αρχή.

102 Είσοδος/Έξοδος (1) Ενταμιευτές (Buffers) ελέχου απλών συσκευών. Συνήθωςmemory-mapped (χαρτογραφημένοι στη μνήμη).

103 Εόσοδος/Έξοδος (2) Παράδειγμα προγραμματιζόμενης Ε/Ε.

104 Είσοδος/Έξοδος (3) Σύστημα με ελεγκτή DMA (Direct Memory Access).

105 Είσοδος/Έξοδος (4) Οι λειτουργίες I/O και οι λειτουργίες της CPU μπορούν να εκτελούνται ταυτόχρονα (σύγχρονη αρχιτεκτονική). Κάθε ελεγκτής συσκευής (device controller) επιφορτίζεται με τον έλεγχο ενός τύπου συσκευής. Κάθε ελεγκτής συσκευής διαθέτει ένα τοπικό buffer (ενταμιευτή μνήμης) συνήθως memory mapped. Η CPU μετακινεί δεδομένα από / προς την κύρια μνήμη προς /από τα τοπικά buffers. Οι λειτουργίες I/O γίνονται από τη συσκευή προς το τοπικό buffer του ελεγκτή. Ο ελεγκτής συσκευής πληροφορεί την CPU ότι έχει ολοκληρώσει τη λειτουργία του προκαλώντας μια διακοπή (interrupt). 105

106 Διακοπές (Interrupts) - 1 CPU Δίαυλος Μνήμη Ενώ ένα πρόγραμμα εκτελείται, μια άλλη ρουτίνα θέλει να εκτελεστεί (π.χ. Είσοδος / Έξοδος, Clock, πρόβλημα υλικού, επικοινωνία με το Λειτουργικό Σύστημα, κλπ). Προσθέτουμε ένα έλεγχο διακοπών στον κύκλο ΑνάκλησηςΕκτέλεσης (fetch-execute). 106

107 Διακοπές (Interrupts) - 2 CPU Δίαυλος Μνήμη Fetch 107

108 Διακοπές (Interrupts) - 3 CPU Δίαυλος Μνήμη Execute 108

109 Διακοπές (Interrupts) - 4 CPU Δίαυλος Μνήμη Έλεγξε για Διακοπές Ο επεξεργαστής έχει ειδικές γραμμές υποδοχής για συγκεκριμένες διακοπές π.χ. RESET. Επίσης έχει γραμμές υποδοχής γενικών διακοπών. Αυτές ελέγχονται είτε με polling ή από ειδικό υλικό, τον Ελεγκτή Διακοπών που ενημερώνει τόσο οτι υπάρχει αίτηση διακοπή όσο και για το τύπο της (βλέπε Άνυσμα Διακοπής). 109

110 Διακοπές (Interrupts) - 5 CPU Δίαυλος Μνήμη Processor Context Αν υπάρχει έγκυρη αίτηση διακοπής (1): Προσωρινή ακύρωση όλων των διακοπών, όσο διαρκεί το Context Switching. Σώσε το processor context (program counter + ολοι οι καταχωρητές) στη μνήμη (stack). Context Switching ~ αυτόματη κλήση ρουτίνας και αντίστοιχη 110 επιστροφή, ελεγχόμενη από το σύστημα.

111 Διακοπές (Interrupts) - 6 CPU PC Δίαυλος Μνήμη Διεύθυνση του ISR Αν υπάρχει έγκυρη αίτηση διακοπής (2): Φόρτωσε τον Program Counter με τη διεύθυνση της Ρουτίνας Εξυπηρέτησης Διακοπής (Interrupt Service routine ISR). Αυτή δίνεται από το Άνυσμα Διακοπής (Interrupt Vector). Κάθε ομάδα διακοπών έχει δικό της, προκαθορισμένο Άνυσμα Διακοπής (δείκτη στη πρώτη εντολή της Ρουτίνας Εξυπηρέτησης). Δεν απαιτείται να σταλεί με τη κλήση της ISR. 111 Επανενεργοποίηση διακοπών.

112 Διακοπές (Interrupts) - 7 CPU Δίαυλος Μνήμη Η ISR εκτελείται όπως μια κανονική ρουτίνα Ανάκληση (Fetch) Εκτέλεση (Execute) Έλεγχος για ΝΕΕΣ διακοπές: η ISR πριν ξεκινήσει καθορίζει τη Μάσκα Διακοπών (Interrupt Mask), δηλαδή από ποιές διακοπές δέχεται να διακοπεί. Επίσης καθορίζονται η προτεραιότητες μεταξύ των διακοπών που μπορεί να 112 εκτελεστούν.

113 Διακοπές (Interrupts) - 8 CPU Διασύνδεση Μνήμη Processor Context Μόλις η ISR τελειώσει την εκτέλεση εκτελεί ειδικού τύπου return: Return from Interrupt Αποκατάσταση τού παλιού processor context. Συνέχιση της εκτέλεσης του αρχικού προγράμματος ή άλλης 113 διακοπής που έχει προκύψει.

114 Ανάκληση - Εκτέλεση 114

115 Ανάκληση - Εκτέλεση με Διακοπές 115

116 Προτεραιότητα Διακοπών (1) Προτεραιότητες Διακοπών. Maskable NonMaskable Interrupts.

117 Προτεραιότητα Διακοπών (2) Ένα σύστημα με προτεραιότητα διακοπών εγκαθιστά προτεραιότητες μεταξύ των διαφόρων πηγών διακοπών για να αποφασίζει ποια θα εξυπηρετεί πρώτη όταν δύο ή περισσότερες απαιτήσεις φθάσουν ταυτόχρονα. Το σύστημα πρέπει επίσης να αποφασίσει ποιες καταστάσεις θα μπορούν να διακόπτουν τον υπολογιστή καθώς αυτός θα εξυπηρετεί μια άλλη διακοπή. Στο υψηλότερο επίπεδο προτεραιοτήτων βρίσκονται εκείνες οι απαιτήσεις για τις οποίες οποιαδήποτε καθυστέρηση ή διακοπή μπορεί να επιφέρει σημαντικές συνέπειες. Οι συσκευές με υψηλές ταχύτητες μεταφοράς, όπως οι δίσκοι έχουν υψηλή προτεραιότητα, ενώ αργές συσκευές, όπως το πληκτρολόγιο λαμβάνουν χαμηλή προτεραιότητα. 117

118 Περιόδευση (Polling) Η επιβολή προτεραιοτήτων για τις ταυτόχρονες διακοπές μπορεί να γίνει μέσω λογισμικού (σε μικρά συστήματα). Η διαδικασία της περιόδευσης είναι μια τεχνική που διαπιστώνει την κατάσταση του υλικού μέσω, επαναλαμβανόμενου σε τακτά διαστήματα, ελέγχου κάθε συσκευής. Χρησιμοποιείται για να προσδιορίσει την πηγή της διακοπής με την υψηλότερη προτεραιότητα. Η περιόδευση χρησιμοποιεί μια κοινή διεύθυνση εκκίνησης για όλες τις διακοπές. Το πρόγραμμα που διαχειρίζεται τις διακοπές περιοδεύει με τη σειρά κάθε προέλευση διακοπής. Η σειρά με την οποία αυτές ελέγχονται καθορίζει την προτεραιότητα κάθε διακοπής. Η προέλευση της διακοπής με την υψηλότερη προτεραιότητα ελέγχεται πρώτη και αν υπάρχει σήμα διακοπής ο έλεγχος διακλαδίζεται αντίστοιχη ρουτίνα εξυπηρέτησης. Διαφορετικά ελέγχεται η επόμενη κ.ο.κ. Το ίδιο συμβαίνει και κατά την εκτέλεση της ISR. Αργή μέθοδος, ειδικά αν έχουμε πολλές ταυτόχρονες διακοπές. 118

119 Ελεγκτής Διακοπών - Hardware Priority Δέχεται αιτήσεις διακοπών από διάφορες πηγές, αποφασίζει ποια έχει τη μεγαλύτερη προτεραιότητα και τελικά παρέχει μια απαίτηση διακοπής στο σύστημα. Για την επιτάχυνση της διαδικασίας, κάθε πηγή διακοπής διαθέτει το δικό της διάνυσμα διακοπής για την απευθείας πρόσβαση στη δική της ρουτίνα εξυπηρέτησης. Έτσι δεν απαιτείται περιόδευση μια και όλες οι αποφάσεις λαμβάνονται από τη μονάδα. 119

120 Διακοπές: Σύνοψη (1)

121 Διακοπές: Σύνοψη (2)

122 Κατηγορίες Διακοπών Σήματα (Signals): H τυπική μέθοδος επικοινωνίας του Λειτουργικού Συστήματος με τις διεργασίες, καθώς και των διεργασιών μεταξύ τους. Προγράμματος (Traps): παράγονται από κάποια συνθήκη η οποία προκύπτει ως αποτέλεσμα της εκτέλεσης μιας εντολής, όπως η αριθμητική υπερχείλιση, η διαίρεση με το μηδέν, η απόπειρα εκτέλεσης εσφαλμένης εντολής ή η αναφορά σε τμήμα της μνήμης που βρίσκεται εκτός των ορίων του χρήστη. Χρονισμού (Clock): παράγονται από ένα χρονιστή εσωτερικά στον επεξεργαστή. Αυτό επιτρέπει στο Λ.Σ. να εκτελεί συγκεκριμένες λειτουργίες σε τακτική βάση. Εισόδου Εξόδου (Ι/Ο): παράγονται από έναν ελεγκτή Ι/Ο, για να σηματοδοτήσουν την κανονική ολοκλήρωση μιας πράξης ή μια ποικιλία καταστάσεων σφάλματος Βλάβης υλικού (Η/W Faults): παράγονται από βλάβη, όπως η διακοπή τροφοδοσίας ή το σφάλμα ισοτιμίας (parity) της μνήμης. 122

123 Intel Pentium Processor Event-Vector Table 123

124 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4 Ενδεικτικά Προγράμματα

125 Intel-64: Μείωση Αναφορών στη Μνήμη Επιπλέον καταχωρητές στο Itanium 2.

126 Ομαδοποίηση Εντολών Μια δέσμη εντολών Intel-64 bundle περιέχει τρείς εντολές.

127 Μείωση Διακλαδώσεων Υπό Συνθήκη (1) (a) Δήλωση if. (b) Assembly template του if. (c) Εντολή Υπό Συνθήκη.

128 Μείωση Διακλαδώσεων Υπό Συνθήκη (2) (a) Δήλωση if-else. (b) Αssembly template του if-else. (c) Εντολές υπο συνθήκη.

129 Μείωση Διακλαδώσεων Υπό Συνθήκη (3) (a) Δήλωση if-else. (b) Αssembly template του if-else. (c) Εντολές με κατηγόρημα.

130 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4 Ενδεικτικά Προγράμματα

131 Reverse Polish Notation (1) * Μέθοδος υπολογισμού αριθμητικών εκφράσεων με χρήση στοίβας και χωρίς τη χρήση παρενθέσεων για καθορισμό προτεραιότητας των πράξεων. * Προτάθηκε από τον Jan Lucasiewicz, Πολωνό φιλόσοφο και μαθηματικό σε μορφή Preorder Notation (πρώτα οι τελεστές). Το αντίστροφο (Reverse) λέγεται και Postorder Nοtation, ενώ το συνηθισμένο λέγεται Inorder Notation, (3 + 5) (7 + 2) Inorder Preorder ή Polish Postorder ή Reverse Polish * Πληροφορίες

132 Reverse Polish Notation (2) Πιθανές κινήσεις 1. Είσοδος - Έξοδος 2. Είσοδος - Στοίβα 3. Στοίβα - Έξοδος 4. Διαγραφή Στοίβα, Είσοδος

133 Reverse Polish Notation (3) o1 o2 Πίνακας καταστάσεων για τη μετατροπή inorder σε posorder.

134 Reverse Polish Notation (4) Shunting Yard Algorithm (Dijkstra): Μετατροπή Inorder σε Postorder (RPN) * While there are tokens to be read: * Read a token. * If the token is a number, then add it to the output queue. * If the token is an operator, o1, then: * while there is an operator, o2, at the top of the stack, and o1 has lower precedence or equal to that of o2, pop o2 off the stack, onto the output queue (2); * push o1 onto the stack (1). * If the token is a left parenthesis, then push it onto the stack (1). * If the token is a right parenthesis: * Until the token at the top of the stack is a left parenthesis, pop operators off the stack onto the output queue (2). * Pop the left parenthesis from the stack, but not onto the output queue (3). * If the stack runs out without a left parenthesis, then there are mismatched parentheses (5). * When there are no more tokens to read: * While there are still operator tokens in the stack: * If the operator token on the top of the stack is a parenthesis, then there are mismatched parenthesis (5). * Pop the operator onto the output queue (2). * Exit (4).

135 Reverse Polish Notation (5) Παραδείγματα εκφράσεων infix και οι ισοδύναμες εκφράσεις σε Reverse Polish Notation (postfix)

136 Reverse Polish Notation (6) Χρήση στοίβας για την εκτίμηση μιάς έκφρασης σε μορφή Reverse Polish Notation (postorder).

137 Reverse Polish Notation (7) // (read from left to right) // (read from left to right) Push 3 onto stack Push 5 onto the stack The stack now contains (3, 5) Use + operator Pop two numbers from stack and push result (8) Push 7 onto the stack Push 2 onto the stack The stack now contains (8, 7, 2) Use + operator Pop two numbers from stack and push result (9) Use - operator Pop two numbers from stack and push result (-1) BIPUSH 3 BIPUSH 5 The stack now contains (3, 5) IADD Pop two numbers from stack and push result (8) BIPUSH 7 BIPUSH 2 The stack now contains (8, 7, 2) IADD Pop two numbers from stack and push result (9) ISUB Pop two numbers from stack and push result (-1)

138 Reverse Polish Notation (8) main () { int x, a, b, c, d; } a = 1; b = 2; c = 3; d = 4; x = (a + b) * (c - d);... movl movl movl movl movl movl addl movl movl subl imull movl... $1, -12(%ebp) $2, -16(%ebp) $3, -20(%ebp) $4, -24(%ebp) -16(%ebp), %eax -12(%ebp), %ecx %eax, %ecx -24(%ebp), %edx -20(%ebp), %eax %edx, %eax %ecx, %eax %eax, -8(%ebp) Παράδειγμα υπολογισμού έκφρασης σε πρόγραμμα C και το αντίστοιχο απόσπασμα μεταγλώττισης σε Pentium assembly με GCC compiler.

139 Reverse Polish Notation (9) class rev { public static void main () { int x, a, b, c, d; } } a = 1; b = 2; c = 3; d = 4; x = (a + b) * (c - d); 0: 1: 2: 3: 4: 5: 6: 7: 9: 10: 11: 12: 13: 15: 16: 17: 18: iconst_1 istore_1 iconst_2 istore_2 iconst_3 istore_3 iconst_4 istore 4 iload_1 iload_2 iadd iload_3 iload 4 isub imul istore_0 return Παράδειγμα υπολογισμού έκφρασης σε πρόγραμμα Javs και το αντίστοιχο απόσπασμα μεταγλώττισης σε JVM bytecode με Sun Java compiler.

140 Αναδρομικές Διαδικασίες (1) Πύργοι του Ανόι με 3 δίσκους: towers (3, 1, 3) = towers (2, 1, 2); towers (1, 1, 3); towers (2, 2, 3)

141 Αναδρομικές Διαδικασίες (2) Πύργοι του Ανόι με 3 δίσκους: towers (3, 1, 3) = towers (2, 1, 2); towers (1, 1, 3); towers (2, 2, 3)

142 Αναδρομικές Διαδικασίες (3) Πύργοι του Ανόι με 3 δίσκους: towers (3, 1, 3) = towers (2, 1, 2) = towers (1, 1, 3) towers (1, 1, 2) towers (1, 3, 2) towers (1, 1, 3) towers (2, 2, 3) = towers (1, 2, 1) towers (1, 2, 3) towers (1, 1, 3) 3 δίσκοι από το 1 στο 3 2 δίσκοι από το 1 στο 2 1 δίσκος από το 1 στο 3 1 δίσκος από το 1 στο 2 1 δίσκος από το 3 στο 2 1 δίσκος από το 1 στο 3 2 δίσκοι από το 2 στο 3 1 δίσκος από το 2 στο 1 1 δίσκος από το 2 στο 3 1 δίσκος από το 1 στο 3

143 Αναδρομικές Διαδικασίες (4) Πύργοι του Ανόι με 5 δίσκους : towers (5, 1, 3)

144 Αναδρομικές Διαδικασίες (5) Αναδρομική επίλυσης του προβλήματος των Πύργων του Ανόι.

145 Αναδρομικές Διαδικασίες (6) Η στοίβα σε διάφορα στιγμιότυπα εκτέλεσης.

146 Αναδρομικές Διαδικασίες (7) Άλλες γνωστές αναδρομικές διαδικασίες: Παραγοντικό fact(n) = Αριθμοί Fibbonacci f(n) = if (n == 1) return 1; else return n * fact(n-1); if (n == 0) return 0; else if (n == 1) return 1; else return f(n-1) + f(n-2); Δυαδική Αναζήτηση (Binary Search) Quick Sort, Bitonic Merge / Sort Διάσχιση Δυαδικού Δένδρου (Prefix, Infix, Postfix Traversal)

147 Πύργοι του Ανόι σε Γλώσσα Assembly Pentium 4 (1)...

148 Πύργοι του Ανόι σε Γλώσσα Assembly Pentium 4 (2)......

149 Πύργοι του Ανόι σε Γλώσσα Assembly Pentium 4 (3)...

150 Πύργοι του Ανόι σε Γλώσσα Assembly JVM (1)

151 Πύργοι του Ανόι σε Γλώσσα Assembly JVM (2)

152 Παραγοντικό σε Γλώσσα Assembly Pentium 4 (1) int fact(int n) { } if (n == 1) return 1; else return n * fact(n-1); fact:.l2: main () { int x; } x=fact(6);.l4: pushl %ebp movl %esp, %ebp subl $8, %esp cmpl $1, 8(%ebp) jne.l2 movl $1, -4(%ebp) jmp.l4 movl subl movl call movl imull movl 8(%ebp), %eax $1, %eax %eax, (%esp) fact %eax, %edx 8(%ebp), %edx %edx, -4(%ebp) movl -4(%ebp), %eax leave ret.size fact,.-fact.globl main.type main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ecx subl $20, %esp movl $6, (%esp) call fact movl %eax, -8(%ebp) addl $20, %esp popl %ecx popl %ebp leal -4(%ecx), %esp ret

153 Παραγοντικό σε Γλώσσα JVM (1) class fact { public static int myfact (int n) { if (n == 1) return 1; else return n * myfact(n-1); } public static void main () { int x; } } x = myfact(6); public static int myfact(int); Code: 0: iload_0 1: iconst_1 2: if_icmpne 7 5: iconst_1 6: ireturn 7: iload_0 8: iload_0 9: iconst_1 10: isub 11: invokestatic #2 14: imul 15: ireturn public static void main(); Code: 0: bipush 6 2: invokestatic #2 5: istore_0 6: return

154 Ασκήσεις Προσπαθήστε να προγραμματίσετε τον υπολογισμό εκφράσεων RPN στο προσομοιωτή Mic-1. Προσπαθήστε να προγραμματίσετε απλές αναδρομικές διαδικασίες στο προσομοιωτή Mic-1. Παράδειγμα Σi = i + Σ(i-1), i=1,2,..n. Μελετήστε τις αναδρομικές κλήσεις και τη στοίβα.

Αρχιτεκτονική Υπολογιστών. Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture)

Αρχιτεκτονική Υπολογιστών. Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture) Αρχιτεκτονική Συνόλου Εντολών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije

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

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

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

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

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

Εντολές γλώσσας μηχανής

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Εισαγωγή Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52,

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

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Εισαγωγή Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52,

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

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

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

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

Writing kernels for fun and profit

Writing kernels for fun and profit Writing kernels for fun and profit Γιάννης Τσιομπίκας nuclear@memberfsforg 23 Μαρτίου 2011 Γιατί; It s FUN! Εξοικείωση με το hardware Εμβάθυνση στον θαυμαστό κόσμο των λειτουργικών συστημάτων Μια καλή

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: Λειτουργίες Αρχείων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

Αναπαράσταση Μη Αριθμητικών Δεδομένων

Αναπαράσταση Μη Αριθμητικών Δεδομένων Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

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

ΑΣΚΗΣΗ. Ορίζονται μόνο καθολικές ακέραιες μεταβλητές με τη σύνταξη: int varname;

ΑΣΚΗΣΗ. Ορίζονται μόνο καθολικές ακέραιες μεταβλητές με τη σύνταξη: int varname; ΑΣΚΗΣΗ Εισαγωγή Η γλώσσα Aegean-C είναι ένα υποσύνολο της γλώσσας C. Δε διαθέτει πολλούς τύπους, δομές, δείκτες, αρκετούς τελεστές, τις περισσότερες συναρτήσεις της βιβλιοθήκης και ορισμένες εντολές. Παρόλα

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Ο Επεξεργαστής TRN Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου ΚMΕ Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR (20 bits) X (20 bits) I

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράμματος 2.4 Αριθμητικές και λογικές εντολές 2.5 Επικοινωνία με άλλες συσκευές 2.6 Άλλες αρχιτεκτονικές

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

2. Τεχνολογία επεξεργαστών

2. Τεχνολογία επεξεργαστών Κεφάλαιο 2: Τεχνολογία επεξεργαστών 21 2. Τεχνολογία επεξεργαστών 2.1 Επιλογές στη σχεδίαση επεξεργαστών Η κεντρική μονάδα επεξεργασίας (Central Processing Unit CPU) ή επεξεργαστής αποτελεί την καρδιά

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

3. Γλώσσα μηχανής IJVM 4. Σχεδιαστικές επιλογές 5. Κρυφή μνήμη

3. Γλώσσα μηχανής IJVM 4. Σχεδιαστικές επιλογές 5. Κρυφή μνήμη ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΙΚΡΟΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Γ. Τσιατούχας 4 ο Κεφάλαιο. Στοίβες ιάρθρωση 2. Μοντέλο μνήμης IJVM. Γλώσσα μηχανής IJVM 4. Σχεδιαστικές επιλογές

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

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2014-15 Διασύνδεση Εισόδου-Εξόδου (συσκευές και ) http://www.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Διασυνδετικοί : Αναλαμβάνουν την

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να Κεεφάάλλααι ιοο:: 3Β ο Τίττλλοοςς Κεεφααλλααί ίοουυ: : Αρχιτεκτονική Ηλ/κου Τµήµατος των Υπολ. Συστηµάτων (Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να αναφέρετε τις τιµές των

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Δρ. Νικόλαος Σκλάβος, Διδάσκων Π.Δ. 407/80. E mail : nsklavos@ceid.upatras.gr

Δρ. Νικόλαος Σκλάβος, Διδάσκων Π.Δ. 407/80. E mail : nsklavos@ceid.upatras.gr Δρ. Νικόλαος Σκλάβος, Διδάσκων Π.Δ. 407/80 E mail : nsklavos@ceid.upatras.gr 1 Ενότητα 1 3 Πλατφόρμα ΑΤ91 Εμπορικά Διαθέσιμη Αναπτυξιακή Πλακέτα: ΑΤ91SΑΜ9261ΕΚ της εταιρείας ATMEL. Υποστηρίζει την ανάπτυξη

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών 1 Οργάνωση υπολογιστών ΚΜΕ Κύρια Μνήμη Υποσύστημα εισόδου/εξόδου 2 Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) R1 R2 ΑΛΜ

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αρχιτεκτονική υπολογιστών Ενότητα 12 : Δομή και Λειτουργία της CPU 2/2 Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 21: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 2009 2010 Γραπτή Εργασία #3 Παράδοση: 28 Μαρτίου 2010 Άσκηση 1 (15 µονάδες) Ένας επεξεργαστής υποστηρίζει τόσο

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

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Εισαγωγή στην Τεχνολογία της Πληροφορικής ΓΙΩΡΓΟΣ Ν. ΓΙΑΝΝΟΠΟΥΛΟΣ Λέκτορας στο Πανεπιστήμιο Αθηνών gyannop@law.uoa.gr Το «κλειστό» σύστημα ΕΙΣΟΔΟΣ ΕΠΕΞΕΡΓΑΣΙΑ

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

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

Το mic1 διανέμεται με τους όρους της GNU General Public License. Ο πηγαίος κώδικας περιέχεται στην έκδοση.

Το mic1 διανέμεται με τους όρους της GNU General Public License. Ο πηγαίος κώδικας περιέχεται στην έκδοση. MIC-1 Simulator Ο εξομοιωτής, βασισμένος στην JAVA, ονομάζεται mic1 και υλοποιεί την αρχιτεκτονική Mic-1 που περιγράφεται στο κεφάλαιο 4 του βιβλίου του A. S. Tanenbaum, Structured Computer Organization,

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχιτεκτονική Eckert-von Neumann εισόδου μεταφορά δεδομένων από έξω προς τον Η/Υ εξόδου μεταφορά δεδομένων από τον Η/Υ προς τα έξω ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Κύκλος Μηχανής κεντρικός έλεγχος/πράξεις

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

... TYPORAMA / 1997-2001 ISBN:960-538-196-6 : (0610) 314094, 314206 / : (0610) 317244

... TYPORAMA / 1997-2001 ISBN:960-538-196-6 : (0610) 314094, 314206 / : (0610) 317244 µ µµ µ µ µ 2008 µ µµ µ µ µ µ / & µ µ µ / & µ µ µ µ µ µ µ µ µ µ µ µ µ... µ TYPORAMA µ µ / 1997-2001 ISBN:960-538-196-6 : 21/2 Copyright 2000 µ &, 26222 : (0610) 314094, 314206 / : (0610) 317244 µ µ. 2121/1993,

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3 Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3 Κεφάλαιο 3 Οργάνωση και Λειτουργία Επεξεργαστών Σκοπός του κεφαλαίου αυτού είναι να περιγράψει την εσωτερική οργάνωση των υπολογιστών,

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 11 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

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

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 2: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 24 25 Ηµεροµηνία Εξέτασης 29.6.25 Χρόνος Εξέτασης

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

Αρχιτεκτονική-ΙI Ενότητα 1 : ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Αρχιτεκτονική-ΙI Ενότητα 1 : Υλικό του 8086 Ιωάννης Έλληνας Τμήμα Η/ΥΣ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Πρόγνωση διακλαδώσεων. Εξαρτήσεις και εκτέλεση εκτός σειράς. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

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

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006 ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΒΑΣΙΚΕΣ ΜΟΝΑΔΕΣ ΤΩΝ ΕΠΕΞΕΡΓΑΣΤΕΣ Μονάδες εκτέλεσης Αρχεία εγγραφών Έλεγχο λογικής ΜΝΗΜΗ ROM RAM ΣΥΣΤΗΜΑ ΕΙΣΟΔΟΥ-ΕΞΟΔΟΥ(I/O) ΕΠΙΤΡΕΠΕΙ ΣΤΟΝ ΕΠΕΞΕΡΓΑΣΤΗ ΚΑΙ

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις:

Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις: Ερωτήσεις αυτοαξιολόγησης 1 ου μαθήματος Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις: 1. Ποια η σχέση της

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΧΕΙΜΩΝΑΣ 2009 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1 Γενική οργάνωση του υπολογιστή Ο καταχωρητής δεδομένων της μνήμης (memory data register

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

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

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΙΑΚΟΠΕΣ (INTERRUPTS) ΟΙ ΙΑΚΟΠΕΣ ΕΙΝΑΙ «ΣΥΜΒΑΝΤΑ», ΕΣΩΤΕΡΙΚΑ

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 12 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήµη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή Θα δούµε την οργάνωση ενός υπολογιστή Στον επόµενο µάθηµα θα δούµε πως συνδέονται πολλοί Η/Υ για να σχηµατίσουν

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

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Η πολυνηματική γλώσσα προγραμματισμού Cilk Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009

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

ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ

ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ Ο όρος είναι συντομογραφία του όρου «Αυτόματος, Ηλεκτρονικός Ψηφιακός Υπολογιστής Γενικού Σκοπού» [1]. Αυτόματος Μετά την έναρξη της λειτουργίας του εργάζεται μόνος του εκτελώντας

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 3 ο ΛΕΙΤΟΥΡΓΙΚΗ ΔΟΜΗ ΥΠΟΛΟΓΙΣΤΗ ΒΑΣΙΚΗ ΜΟΝΑΔΑ ΜΝΗΜΗ & CPU Λειτουργική Δομή Αρχιτεκτονική Von Neumann Όλοι οι υπολογιστές ακολουθούν την αρχιτεκτονική κατά Von-Neumann

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

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

ΑΝΑLOG TO DIGITAL CONVERTER (ADC) ΑΝΑLOG TO DIGITAL CONVERTER (ADC) O ADC αναλαμβάνει να μετατρέψει αναλογικές τάσεις σε ψηφιακές ώστε να είναι διαθέσιμες εσωτερικά στο μικροελεγκτή για επεξεργασία. Η αναλογική τάση που θέλουμε να ψηφιοποιηθεί

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

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 07 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Γλώσσες Προγραμματισμού - Μεταγλώττιση και Διερμηνεία -Η πλατφόρμα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 24-5 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης ; Ποιες κατηγορίες

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 3 Αριθµητική για υπολογιστές Ασκήσεις Η αρίθµηση των ασκήσεων είναι από την 4 η έκδοση του «Οργάνωση και Σχεδίαση

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

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

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

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

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

Δημήτρης Πρίτσος. ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής INTEL - IA32 για LINUX & WINDOWS Αθήνα 2003 1 Περιεχόμενα 2 Περιήγηση στην αρχιτεκτονική ΙΑ32 και των λειτουργικών συστημάτων Linux και Ms-Windows 1 Γενικά

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Ιανουάριος 2013 Τι είναι ένα πρόγραμμα; Πρόγραμμα είναι μία σειρά από οδηγίες που δίνουμε στον υπολογιστή προκειμένου αυτός να κάνει κάποια συγκεκριμένη εργασία Πώς

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Το υλικό του οδηγού έχει αντικατασταθεί από το βιβλίο

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

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

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

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

Μαθαίνοντας το hardware του αναπτυξιακού

Μαθαίνοντας το hardware του αναπτυξιακού 1. ΑΣΚΗΣΗ 1 Μαθαίνοντας το hardware του αναπτυξιακού Προϋποθέσεις Το εργαστήριο αυτό προϋποθέτει το διάβασμα και χρήση των εξής: Αρχείο mcbstr9.chm HTML, που δίδεται με τα υπόλοιπα αρχεία του εργαστηρίου.

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

Μεταφραστής (Compiler)

Μεταφραστής (Compiler) Windows Καθαρισµος οθονης cls Unix clear Τελεστες ανακατευθυνσης > > >> >> < < Εντολες σε αρχεια * * (wild card) del Α rm Α ιαγραφη type Α cat Α Εµφανιση copy Α Β cp Α Β Αντιγραφη ren Α Β mv Α Β Αλλαγη

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