Επιστήμη των Υπολογιστών Ο επιστημονικός και τεχνολογικός κλάδος που: μελετάει την αναπαράσταση, αποθήκευση, επεξεργασία και μετάδοση πληροφοριών μέσω υπολογιστών και δικτύων αναζητά και εξετάζει τρόπους (αλγόριθμους, δομές δεδομένων, γλώσσες προγραμματισμού, αρχιτεκτονικές) για την αποδοτική υλοποίηση των παραπάνω εργασιών 2
Άλλα ονόματα Informatics (Πληροφορική) Computing Science (Επιστήμη Υπολογισμών) Dijkstra: «Η επιστήμη των υπολογιστών έχει ως αντικείμενο τους υπολογιστές όσο και η αστρονομία τα τηλεσκόπια» 3
Κεντρικό ερώτημα της επιστήμης υπολογιστών Τι μπορεί να μηχανοποιηθεί και μάλιστα αποδοτικά; Ποια προβλήματα μπορούμε να λύσουμε με υπολογιστή και πόσο καλά; 4
Όψεις επιστήμης υπολογιστών Θεωρητικές θεμελιώσεις: υπολογισιμότητα, λογική, αυτόματα, γράφοι Αλγόριθμοι και πολυπλοκότητα Γλώσσες και μοντέλα προγραμματισμού: προστακτικές, αντικειμενοστρεφείς, συναρτησιακές, λογικού προγραμματισμού, γλώσσες σεναρίων Μεταγλωττιστές Αρχιτεκτονική υπολογιστή, assembly Ψηφιακή σχεδίαση, VLSI 5
Άλλες όψεις της επιστήμης των υπολογιστών Δίκτυα και διαδίκτυο Εμπορικές εφαρμογές (online συναλλαγές, e- commerce, e-banking, e-anything...). Σύγχρονη τεχνολογία (AI, multimedia, ubiquitous computing) Ασφάλεια και παρακολούθηση (encryption, security, e-voting, digital warfare, big brother) Αλλαγές σε κάθε τομέα της ζωής (αγορές, διασκέδαση, κοινωνικά δίκτυα, bitcoin) 6
Κλάδοι επιστήμης υπολογιστών (i) Υπολογισιμότητα και πολυπλοκότητα Αλγόριθμοι και δομές δεδομένων Γλώσσες προγραμματισμού και μεταγλωττιστές Τεχνολογία λογισμικού Βάσεις δεδομένων και διαχείριση πληροφοριών Αρχιτεκτονική και οργάνωση υπολογιστών Λειτουργικά - παράλληλα - κατανεμημένα συστήματα 7
Κλάδοι επιστήμης υπολογιστών (ii) Δίκτυα υπολογιστών και τεχνολογίες διαδικτύου Ενσωματωμένα συστήματα Τεχνητή νοημοσύνη Επικοινωνία ανθρώπου μηχανής, πολυμέσα Κρυπτογραφία Υπολογιστική βιολογία, βιολογικοί υπολογισμοί Κβαντικοί υπολογισμοί 8
Είπαν... Dijkstra: «Το ερώτημα εάν ο υπολογιστής σκέφτεται δεν είναι πιο ενδιαφέρον από το ερώτημα εάν το υποβρύχιο κολυμπάει» Tom Watson, IBM, 1945: «Ο κόσμος δεν χρειάζεται περισσότερους από πέντε υπολογιστές» 9
Θεωρητικές θεμελιώσεις Υπολογισιμότητα: ποιά προβλήματα μπορούμε να λύσουμε; Υπολογιστική πολυπλοκότητα: πόσο καλά μπορούμε να τα λύσουμε;... ως προς το χρόνο ως προς το χώρο/μνήμη ως προς την κατανάλωση ενέργειας ως προς bandwidth 10
Παραδείγματα υπολογισμών Αριθμοί Fibonacci Κύκλος Euler κύκλος Hamilton Κρυπτογραφία δημοσίου κλειδιού 11
Αριθμοί Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,... F 0 = 0, F 1 = 1 F n = F n-1 + F n-2, n >=2 Πρόβλημα: Δίνεται n, να υπολογιστεί το F n Πόσο γρήγορο μπορεί να είναι το πρόγραμμά μας; 12
Το πρόβλημα του Euler Δίνεται γράφος. Υπάρχει τρόπος να περάσουμε από κάθε ακμή μια ακριβώς φορά; Seven Bridges of Königsberg Source: http://physics.weber.edu/carroll/honors_images/barbasibridges.jpg 13
Το πρόβλημα του Hamilton Δίνεται γράφος. Υπάρχει τρόπος να περάσουμε από κάθε κορυφή μια ακριβώς φορά; Source: http://jwilson.coe.uga.edu/emat6680/yamaguchi/ emat6690/essay1/gt.html 14
Το πρόβλημα του Hamilton Δίνεται γράφος. Υπάρχει τρόπος να περάσουμε από κάθε κορυφή μια ακριβώς φορά; Source: http://jwilson.coe.uga.edu/emat6680/yamaguchi/ emat6690/essay1/gt.html 15
P =? NP Μπορεί να λυθεί το πρόβλημα του Hamilton τόσο γρήγορα όσο και το πρόβλημα του Euler; Αυτό είναι ουσιαστικά το P =? NP πρόβλημα, που αποτελεί το πιο σημαντικό ανοικτό πρόβλημα της Θεωρητικής Πληροφορικής σήμερα. Στο http://www.claymath.org προσφέρονται 1εκ. δολάρια για τη λύση του! 16
Κρυπτογραφία ιδ. κλειδιού Κρυπτογράφηση Αποκρυπτογράφηση m Alice E c c Bob D m
Κρυπτογραφία ιδ. κλειδιού Κρυπτογράφηση Αποκρυπτογράφηση m Alice E c c Bob D m Eve c D??
Κρυπτογραφία ιδ. κλειδιού Κρυπτογράφηση Αποκρυπτογράφηση m Alice E c c Bob D m Eve c D?? με χρήση κοινού ιδιωτικού κλειδιού (συμμετρική κρυπτογραφία)
Κρυπτογραφία ιδ. κλειδιού Κρυπτογράφηση Αποκρυπτογράφηση m Alice E c = E(m,k) c Bob D m = D(c,k) k Eve c D?? k με χρήση κοινού ιδιωτικού κλειδιού (συμμετρική κρυπτογραφία)
Κρυπτογραφία δημ. κλειδιού Κρυπτογράφηση Alice m c = E(m, p b ) E Αποκρυπτογράφηση Bob c m = D(c, s b ) D p b δημόσιο κλειδί του Bob Eve c D?? s b Ιδιωτικό κλειδί του Bob με χρήση δημοσίου κλειδιού (κρυπτογραφία μονής κατεύθυνσης), μαζί με απόλυτα ιδιωτικό, γνωστό στον παραλήπτη μόνο
Κρυπτογραφία δημοσίου κλειδιού Κρυπτογραφία δημοσίου κλειδιού: κατάργησε την ανάγκη ανταλλαγής κλειδιών! Στηρίζεται στην ύπαρξη συναρτήσεων μονής κατεύθυνσης. Συναρτήσεις μονής κατεύθυνσης (one-way functions): εύκολο να υπολογιστούν, δύσκολο να αντιστραφούν Κρυπτοσύστημα RSA [Rivest-Shamir-Adleman, 1977] κρυπτογράφηση: c = m e mod n αποκρυπτογράφηση: m = c d mod n δημόσιο κλειδί: e, n ιδιωτικό κλειδί: d 22
Παράδειγμα RSA [http://nmichaels.org/rsa.py] κρυπ/ση: c = m e mod n αποκ/ση: m = c d mod n δημόσιο κλειδί n = d543be11021217e30589b41f796fac8f54a8905a4ddcd2007e2d004 7d7b751a1aa60db5a080545a4ee2b33a2a119cc7aa3ff5b022d895 4eeb5b72d1eec7cf40dfdc7947da9f49009c62be9d89fda3c71137bb d009d3631bfa83bcde81a7bbc261890d2edd2fb20a4f0cb904b40bd 5662c3c006634a7fcd7eae87a6d494e5fb5 (hex) δημόσιο κλειδί e = 10001 (hex) ιδιωτικό κλειδί: d = 47b5fb04312ecb57d78a082c8151ff65547b49d108743678b663f37 46feeee18d81523463327c84b786ba78515601c69081437c3e23ef 4b6b2b0ad99d47e7c0228333da1594f774c8a73d4093f476635557 209945423cbd1e9b6a358f8254ed831c30d61f85cf57a49b8c7b1a2 1282d2fad548c12aa10f2ed0e5ccd5c7e32841 (hex) 23
Πυλώνες του RSA Υπολογιστική ευκολία ύψωσης σε δύναμη αριθμού 1000δων ψηφίων, με εκθέτη 1000δων ψηφίων Υπολογιστική ευκολία εύρεσης πρώτων αριθμών με 1000δες ψηφία Υπολογιστική ευκολία υπολογισμού αντιστρόφου modulo n (n με 1000δες ψηφία) μέσω Ευκλείδη! Υπολογιστική δυσκολία παραγοντοποίησης αριθμών με 1000δες ψηφία 24
Παραγοντοποίηση Δίνεται σύνθετος αριθμός n, βρείτε τους πρώτους παράγοντές του: 123018668453011775513049495838496272077285356959533479219732 245215172640050726365751874520219978646938995647494277406384 592519255732630345373154826850791702612214291346167042921431 1602221240479274737794080665351419597459856902143413 = 334780716989568987860441698482126908177047949837137685 689124313889828837938780022876147116525317430877378144 67999489 x 367460436667995904282446337996279526322791581643430876 426760322838157396665112792333734171433968102700927987 36308917 25
Άλλες εφαρμογές Ψηφιακές υπογραφές Ασφάλεια επικοινωνιών Ασφάλεια συναλλαγών Ηλεκτρονικές ψηφοφορίες και άλλοι υπολογισμοί χωρίς αποκάλυψη δεδομένων! Bitcoin: νομίσματα και συναλλαγές χωρίς μεσάζοντες! 26
Πρώτες παρατηρήσεις Πολλές επαναστατικές ιδέες και εφαρμογές του καιρού μας στηρίζονται στον υπολογισμό ιδιαίτερα στο πόσο εύκολα (γρήγορα) μπορούμε να υπολογίσουμε κάποια πράγματα και στο πόσο δύσκολο είναι να υπολογίσουμε κάποια άλλα περισσότερα στη συνέχεια... 27
Από τη θεωρία στην πράξη Γλώσσες προγραμματισμού Λογισμικό συστήματος Αρχιτεκτονική και υλοποίηση 28
Πρόγραμμα Ακριβής περιγραφή ενός αλγορίθμου σε μία τυπική γλώσσα που ονομάζεται γλώσσα προγραμματισμού Οι ενέργειες εφαρμόζονται σε αντικείμενα που λέγονται δεδομένα (data) 29
Διατύπωση αλγορίθμου σε γλώσσα Φυσικές γλώσσες Χωρίς αυστηρούς συντακτικούς κανόνες Μεγάλη πυκνότητα και σημασιολογική ικανότητα Τυπικές γλώσσες Αυστηρό συντακτικό και σημασιολογία Γλώσσες προγραμματισμού Τυπικές γλώσσες περιγραφής υπολογισμών Εντολές εκτελέσιμες από ηλεκτρονικό υπολογιστή 30
Οργάνωση υπολογιστών (i) 31 Αναπαράσταση και πράξεις δυαδικών αριθμών Κατηγορίες αρχιτεκτονικών Αρχές σχεδιασμού και υλοποίησης εφαρμογών σε αρχιτεκτονικές/υλικό Εισαγωγή στην κατασκευή ολοκληρωμένων κυκλωμάτων 31
Οργάνωση υπολογιστών (ii) 32 Υλικό (hardware), οργάνωση και λειτουργία μικροεπεξεργαστών (τμήματα και λειτουργία υπολογιστή, μορφή εντολής-γλώσσα μηχανής, συμβολική γλώσσα (assembly), σχεδίαση μνήμης-περιφερειακές μονάδες-μονάδες αποθήκευσης) Εισαγωγή στο λογισμικό συστήματος λειτουργικό σύστημα μεταγλωττιστής 32
Επίλυση προβλημάτων μέσω Η/Υ Πρόβλημα Αλγόριθμοι Γλώσσα Αρχιτεκτονική Συνόλου Εντολών Μικροαρχιτεκτονική Κυκλώματα Στοιχεία 33
Επίλυση προβλημάτων μέσω Η/Υ Μια συστηματική ακολουθία μετασχηματισμών μεταξύ των επιπέδων αφαίρεσης (layers of abstraction) Πρόβλημα Αλγόριθμος Πρόγραμμα Αρχιτεκτονική Συνόλου Εντολών Σχεδιασμός Λογισμικού: Επιλογή αλγορίθμων και δομών δεδομένων Προγραμματισμός: Χρήση γλώσσας για την περιγραφή του αλγορίθμου Μετάφραση/Διερμηνεία: Μετατροπή γλώσσας σε εντολές μηχανής 34
συνέχεια Αρχιτεκτονική Συνόλου Εντολών Σχεδιασμός Επεξεργαστή Μικροαρχιτεκτονική Σχεδιασμός Λογικής/Κυκλώματος Κυκλώματα Circuits Διαδικασία Κατασκευής Στοιχεία Devices 35
Ubiquitous computing in a connected world Υπολογισμός παντού σε διασυνδεμένο κόσμο Infrastructure Core (cloud) Sensory swarm, actuators and real world data Smart house cities, Mobile access Courtesy Jan M. Rabaey, UC Berkeley, updated for this HiPEAC vision 36
Ολοκληρωμένο κύκλωμα (Integrated Circuit) In 1959 both parties applied for patents. Jack Kilby and Texas Instruments received U.S. patent #3,138,743 for miniaturized electronic circuits. Robert Noyce and the Fairchild Semiconductor Corporation received U.S. patent #2,981,877 for a silicon based integrated circuit. The two companies wisely decided to cross license their technologies after several years of legal battles, creating a global market now worth about $1 trillion a year. "What we didn't realize then was that the integrated circuit would reduce the cost of electronic functions by a factor of a million to one, nothing had ever done that for anything before" - Jack Kilby
η ανατολή της επανάστασης της πληροφορικής
Οδικοί Χάρτες (roadmaps): HiPEAC HiPEAC: High Performance and Embedded Architecture and Compilation http://www.hipeac.org Στόχοι, προτεραιότητες, ανάγκες, δράσεις... 39
40
Exabytes Κατακλυσμός δεδομένων(data Deluge) [Paolo Faraboschi, HP] 41
Κυρίαρχες Τάσεις στις Υπολογιστικές Πλατφόρμεςς Πολλαπλοί πυρήνες επεξεργαστών Το μέγεθος μνήμης εντός του ολοκληρωμένου γίνεται πολύ σημαντικό σε σχέση με το συνολικό εμβαδόν
Κυρίαρχες Τάσεις στις Υπολογιστικές Πλατφόρμεςς Πολλαπλοί πυρήνες επεξεργαστών Το μέγεθος μνήμης εντός του ολοκληρωμένου γίνεται πολύ σημαντικό σε σχέση με το συνολικό εμβαδόν Επεξεργαστής Cell για Playstation3
Κυρίαρχες Τάσεις στις Υπολογιστικές Πλατφόρμεςς Πολλαπλοί πυρήνες επεξεργαστών Η επεξεργασία πληροφορίας κοστίζει ενεργειακά πολύ Το μέγεθος λιγότερο μνήμης από την εντός μεταφορά του ολοκληρωμένου της πληροφορίας γίνεται πολύ σημαντικό σε σχέση με το συνολικό εμβαδόν Επεξεργαστής Cell για Playstation3 Ιδανική Στρατηγική: Move Logic NOT Data
Ποιά συσκευή ή μηχάνημα που χρησιμοποιείται ΚΑΘΗΜΕΡΙΝΑ από δις εκατ. ανθρώπους περιέχει και χρησιμοποιεί τους πιο πολλούς υπολογιστές????? 45
46
Επίπεδα Σχεδιασμού Ιεραρχία Σχεδιασμού ΣΥΣΤΗΜΑ + ΜΟΝΑΔΑ ΠΥΛΗ ΚΥΚΛΩΜΑ S n+ ΣΤΟΙΧΕΙΟ G D n+
μερικά μαθήματα Αρχιτεκτονική Υπολογιστών Βάσεις Δεδομένων Μεταγλωττιστές Τεχνολογία Λογισμικού Εισαγωγή στη Σχεδίαση Συστημάτων VLSI Μικροηλεκτρονική: Κατασκευή Ολοκληρωμένων Κυκλωμάτων Σχεδίαση Αναλογικών Ηλεκτρονικών Συστημάτων Συστήματα Μικροϋπολογιστών Ψηφιακά Συστήματα VLSI Σχεδιασμός Ενσωματωμένων Συστημάτων.
More Info Αναπλ. Καθηγητής Δημήτριος Σούντρης dsoudris@microlab.ntua.gr http://www.microlab.ntua.gr/~dsoudris Thinking is easy, acting is difficult, and to put one's thoughts into action is the most difficult thing in the world. Johann Wolfgang von Goethe 51
Συμπεράσματα Είναι σημαντικό να γνωρίζουμε τί μπορούμε και τί δεν μπορούμε να κάνουμε με τους υπολογιστές, και πόσο καλά Αυτό μελετάει η Επιστήμη των Υπολογιστών Η εξοικείωση με τις μεθοδολογίες σχεδιασμού αλγορίθμων, προγραμμάτων, και συστημάτων είναι απαραίτητη για να κατανοήσουμε τη σύγχρονη τεχνολογία Και για να συμμετέχουμε στην ανάπτυξή της Τα μαθηματικά είναι πάντα επίκαιρα! 52