Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Καπετανάκης Γιάννης 19/11/2007 ΗΥ0 - Ενότητα 4 Αρχές Προγραμματισμού (ΙΙ) Αρχιτεκτονική σύγχρονων επεξεργαστών Εισαγωγή στον προγραμματισμό.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Καπετανάκης Γιάννης 19/11/2007 ΗΥ0 - Ενότητα 4 Αρχές Προγραμματισμού (ΙΙ) Αρχιτεκτονική σύγχρονων επεξεργαστών Εισαγωγή στον προγραμματισμό."— Μεταγράφημα παρουσίασης:

1 Καπετανάκης Γιάννης 19/11/2007 bilias@physics.uoc.gr ΗΥ0 - Ενότητα 4 Αρχές Προγραμματισμού (ΙΙ) Αρχιτεκτονική σύγχρονων επεξεργαστών Εισαγωγή στον προγραμματισμό Συναρτήσεις Compiler, linker, βιβλιοθήκες Ροή ελέγχου

2 Αρχιτεκτονική σύγχρονων επεξεργαστών 32 bit οι περισσότεροι μέγεθος καταχωρητών (registers)  προσωρινή αποθήκευση δεδομένων  αριθμοί, κείμενο είτε άλλα στοιχεία  το μέγεθος μας περιορίζει !!!

3 Αναπαράσταση αριθμών στον επεξεργαστή Ακέραιοι (int) μέγεθος 32 bit μεγαλύτερος ο 2 32 -1=4.294.967.295 Προσημασμένοι ακέραιοι (signed int) μεγαλύτερος ο 2 31 -1 = 2.147.483.647 μικρότερος –(2 31 ) = -2.147.483.648

4 Αναπαράσταση αριθμών στον επεξεργαστή Μεγαλύτεροι ακέραιοι οι long μέγεθος 64 bit μεγαλύτερος ο 2 64 -1=18.446.744.073.709.551.615 2 καταχωρητές Μικρότεροι ακέραιοι οι short int μέγεθος 16 bit μεγαλύτερος ο 2 16 -1 = 65.535

5 Αναπαράσταση αριθμών στον επεξεργαστή Για μεγαλύτερους από 64 bit ή κλασματικούς αριθμούς, float scientific notation 1.874E-9 (δεκαδικούς) scientific notation 1.100110Ε1001 (δυαδικούς)

6 Single Precision 2 -1 + 2 -2 0.11 2 1.1 2 -01 Δυνάμεις του 2 Δυαδικός αριθμός Scientific Notation

7 Single Precision Ο επεξεργαστής τα 32 bit του float τα χωρίζει: 1) 1 bit για το πρόσημο του αριθμού 2) 8 bit για τον εκθέτη (του 2) 3) 23 bit για το κλασματικό κομμάτι

8 Κλασματικό κομμάτι Μέγεθος 23 bit Κανονικοποίηση. Άσσο πριν την υποδιαστολή Μικρότερη δύναμη η 2 -23 = 0.00000011920928955078 Αυτή είναι και η μέγιστη ακρίβεια Σφάλμα μετά το 6 ο δεκαδικό ψηφίο

9 Εκθετικό κομμάτι Μέγεθος 8 bit Καθορίζει τον μικρότερο και τον μεγαλύτερο αριθμό που μπορεί να αναπαρασταθεί Μεγαλύτερος: Μικρότερος:

10 Double Precision Χρησιμοποιούμε τους double που έχουν μέγεθος 64 bit 1) 1 bit για το πρόσημο του αριθμού 2) 11 bit για τον εκθέτη 10 ±308 μέγιστος και ελάχιστος 3) 52 bit για το κλασματικό κομμάτι σφάλμα μετά το 15 ο δεκαδικό ψηφίο

11 Μεγαλύτερη ακρίβεια Γίνεται με software. Με έξυπνους αλγόριθμους, σπάμε κατάλληλα τους αριθμούς έτσι ώστε να μην ξεπερνάνε το μέγεθος των καταχωρητών

12 64 bit Επεξεργαστές Όλα διπλασιάζονται εκτός από τους float και τους double Registers 64 bit Integers 64 bit Όχι απαραίτητα γρηγορότερα προγράμματα

13 CPUFrequencyRegister Size GP RegistersInteger Size (Long)Float Size (double - extended)Theor. Max Memory SizeSpecInt Pentium III 533 - 113032832 (64)32 (64 - 80)64GB464 Pentium 4 1500 - 340032832 (64)32 (64 - 80)64GB1705 Athlon XP 32832 (64)32 (64 - 80)4GB1080 Athlon 64 1800 - 2800641664 (128)32 (64 - 80)1PB1717 PA-RISC 2 64 (128)32 (64 - 80 -128) Itanium 2 900 - 1000 Ultra Sparc IV 1050 - 120064 8TB G4 350 - 142532 32 (64) 16GB G5 1800 - 2500643264 (128)32 (64)4TB Σύγκριση επεξεργαστών

14 Εισαγωγή στον προγραμματισμό Οι υπολογιστές χρησιμοποιούνται για να κάνουν γρήγορα πράξεις ή καλύτερα να εκτελούν εντολές Πρόσθεση, αφαίρεση κτλ. Όχι απαραίτητα μαθηματικής φύσης Δισεκατομμύρια εντολές σε έναν κύκλο

15 Machine Instructions  Οι εντολές ονομάζονται machine instructions  Δυαδικής φύσεως  Το σύνολο των εντολών Γλώσσα Μηχανής  Λίγες και διαφορετικές για κάθε αρχιτεκτονική

16 Assembly Κάθε εντολή έχει το δυαδικό της όνομα Η δυαδική, αριθμητική απεικόνιση εντολών, δυσκολεύει τον άνθρωπο Assembly: Κάθε εντολή έχει και ένα όνομα όπως add, push, store

17 Assembly Ενδιάμεσο στάδιο ανάμεσα στον άνθρωπο και την γλώσσα μηχανής Πιο κοντά στον υπολογιστή Ταχύτατη γλώσσα προγραμματισμού Πολλοί προγραμματίζουν σε assembly

18 main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp movl $1, -4(%ebp) movl $2, -8(%ebp) subl $8, %esp movl -8(%ebp), %eax addl -4(%ebp), %eax pushl %eax pushl $.LC0 call printf addl $16, %esp leave ret 1 + 2 = 3 Ο assembler θα το μεταφράσει σε γλώσσα μηχανής Δυσανάγνωστα και μεγάλα προγράμματα

19 Υψηλού επιπέδου γλώσσες προγραμματισμού Πιο κοντά στον άνθρωπο Κατανοητά προγράμματα Μικρότερα προγράμματα Μερικές από αυτές: Fortran, BASIC, C, C++, Java

20 Διαδικασία παραγωγής εκτελέσιμων αρχείων Γλώσσα CΓλώσσα Assembly Γλώσσα Μηχανής c = a + badd $c, $a, $b10001110 01101010 00000000 00001100 1)Δημιουργία προγράμματος (κώδικας) 2)Μεταγλωττισμός (compile με τον compiler) 3)Linker 4)Assembler 5)Εκτελέσιμο - binary Σημαντικότερα βήματα

21 Παράδειγμα σε C /* code.c */ main() { int a = 1; int b = 2; int c; c = a+b; printf(“a+b= %d”, c); } Συνάρτηση Ορισμός Εκτύπωση μέσω της συνάρτησης printf

22 Παράδειγμα σε Fortran Συνάρτηση Ορισμός Εκτύπωση μέσω της συνάρτησης write C code.f PROGRAM main INTEGER a INTEGER b a = 1 b = 2 c = a+b WRITE(*,*) "a+b=", c END

23 Μεταγλωττισμός - Compilation Για κάθε γλώσσα υπάρχει και ο αντίστοιχος Compiler Compilation in C gcc code.c -o binary-name Compilation in Fortran g77 code.f -o binary-name GNU Compilers

24 Εκτέλεση Σε περιβάλλον Unix:./binary-name a+b = 3 Προσοχή στο PATH! Βάζουμε./ μπροστά από το αρχείο εάν το. δεν είναι στο $PATH μας

25 Συναρτήσεις στα Μαθηματικά Μαθηματικός αλγόριθμος Συγκεκριμένες αλγεβρικές πράξεις f(x)=2x  f είναι το όνομα της συνάρτησης  x είναι το όρισμα  επιστρέφει το διπλάσιο του x f(x,y)=2x+y  2 ορίσματα, το x και το y

26 Συναρτήσεις στον Προγραμματισμό function(x, y) { apotelesma = 2*x + y; print(“Το αποτέλεσμα είναι “, apotelesma); } “function” είναι το όνομα της συνάρτησης τα x και y είναι τα ορίσματά της εκτυπώνει στην οθόνη το αποτέλεσμα που είναι ίσο με την μεταβλητή apotelesma πχ function(1,3) θα εκτυπώσει την φράση: «Το αποτέλεσμα είναι 5"

27 Γιατί συναρτήσεις; Εκτέλεση εντολών που επαναλαμβάνονται Μικρότερο μέγεθος προγραμμάτων Κατανοητός κώδικας Δομημένος και οργανωμένος προγραμματισμός

28 Εξωτερικές Βιβλιοθήκες Κάποιες συναρτήσεις χρειάζονται συνέχεια πχ: sin(), cos(), exp(), log() κτλ. Οι βιβλιοθήκες παρέχουν έτοιμες συναρτήσεις Διαφορετικές βιβλιοθήκες περιέχουν διαφορετικές ομάδες συναρτήσεων Συνήθως είναι οι βέλτιστες συναρτήσεις Δυνατότητα διασύνδεσης με το πρόγραμμα

29 Linking Η διασύνδεση ενός προγράμματος με μια ή περισσότερες βιβλιοθήκες ονομάζεται linking 1)Στατικά: Κατά τη μεταγλώττιση ο κώδικας της συνάρτησης «ενσωματώνεται» στο πρόγραμμα 2)Δυναμικά: Μόνο το όνομα της συνάρτησης και το όνομα της βιβλιοθήκης γίνονται γνωστά στο πρόγραμμα. Κατά τη διάρκεια της εκτέλεσης αναζητείται η απαραίτητη βιβλιοθήκη και χρησιμοποιείται Συνήθως ο linker καλείται από τον compiler

30 Ροή Ελέγχου Οι εντολές για τη ροή ελέγχου καθορίζουν τη σειρά με την οποία εκτελούνται οι υπολογισμοί  Γνωριμία με τις βασικές εντολές  Διαφορετικό συντακτικό σε κάθε γλώσσα αλλά παραπλήσια λειτουργία C  Συντακτικό της C για ευκολότερη κατανόηση

31

32 α = 1 if (a=1) { εντολή 1 εντολή 2 } α = 1 if (a=2) { εντολή 1 εντολή 2 } α = 1 if (a=1) εντολή 1 εντολή 2 α = 1 if (a=2) εντολή 1 εντολή 2 Παράδειγμα 1 Παράδειγμα 3 Παράδειγμα 2 Παράδειγμα 4

33 if – else Η εντολή “if – else ” χρησιμοποιείται σαν εναλλακτική λύση στην επιλογή αποφάσεων if (παράσταση) εντολή 1 else εντολή 2 Αν η παράσταση είναι αληθής θα εκτελεστεί η εντολή 1 Σε κάθε άλλη περίπτωση θα εκτελεστεί η εντολή 2

34

35 else – if Με την εντολή “else – if ” ελέγχουμε μια ακολουθία από συνθήκες if (παράσταση 1) εντολή 1 else if ( παράσταση 2) εντολή 2 else if (παράσταση 3) εντολή 3 else εντολή 4

36 a = 2 if (a=1) Συνθήκη 1 print(“To α είναι 1”) else if (a=2) Συνθήκη 2 print(“Το α είναι 2”) else if (a=2) Συνθήκη 3 print(“Το α είναι πάλι 2”) else if (a=3) Συνθήκη 4 print(“Το α είναι 3”) else Συνθήκη 5 print(“Το α δεν είναι κάποιο από τα 1, 2, 3”) Παράδειγμα else - if

37 while Ο βρόχος “while” καθορίζει ποιες εντολές θα εκτελεστούν για όσο ισχύει μια παράσταση while (παράσταση ) { εντολή 1 εντολή 2... }

38 Παράδειγμα while α = 1 while (a < 4) { print(“Το α είναι “, α) a = a + 1 print(“Το α είναι “, α) }


Κατέβασμα ppt "Καπετανάκης Γιάννης 19/11/2007 ΗΥ0 - Ενότητα 4 Αρχές Προγραμματισμού (ΙΙ) Αρχιτεκτονική σύγχρονων επεξεργαστών Εισαγωγή στον προγραμματισμό."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google