630 likes | 719 Vues
ASYCHRONOUS DISTANCE LEARNING. MIA NEA ΔΙΑΣΤΑΣΗ ΣΤΟ ΧΩΡΟ ΔΙΔΑΣΚΑΛΙΑΣ. ΑΘΑΝΑΣΗΣ ΝΙΚΟΛΑΟΣ-ΜΠΕΡΤΕΣ ΝΙΚΟΛΑΟΣ-ΝΑΟΥΜ ΝΙΚΟΛΑΟΣ. Περίληψη. Ανάπτυξη ενός προγράμματος που εξομοιώνει τη λειτουργία του pipelining σε έναν RISC επεξεργαστή.
E N D
ASYCHRONOUS DISTANCE LEARNING MIA NEA ΔΙΑΣΤΑΣΗ ΣΤΟ ΧΩΡΟ ΔΙΔΑΣΚΑΛΙΑΣ ΑΘΑΝΑΣΗΣ ΝΙΚΟΛΑΟΣ-ΜΠΕΡΤΕΣ ΝΙΚΟΛΑΟΣ-ΝΑΟΥΜ ΝΙΚΟΛΑΟΣ
Περίληψη • Ανάπτυξη ενός προγράμματος που εξομοιώνει τη λειτουργία του pipelining σε έναν RISC επεξεργαστή. • Οι δυσκολίες που εμφανίστηκαν, η δομή του προγράμματος και οι δυνατότητες που αυτό προσφέρει. • Εκτέλεση του προγράμματος.
Το διαδίκτυο και οι αλλαγές που επιφέρει • Παρατηρείται ραγδαία ανάπτυξη και ευρεία αποδοχή του World Wide Web (WWW) ως παγκόσμιο μέσο διάδοσης και επεξεργασίας πληροφοριών. • Νέες προοπτικές ανοίγονται σε πολλούς τομείς των ανθρωπίνων δραστηριοτήτων, τόσο σε ατομικό , όσο και σε κοινωνικό επίπεδο.
Οι νέες τεχνολογίες και ο χώρος της εκπαίδευσης • Ένας από τους τομείς εκείνους που επηρεάζονται ολοένα και περισσότερο από την ανάπτυξη του WWW είναι αυτός της εκπαίδευσης. • Για τη διδασκαλία των μαθηματικών, της φυσικής, της χημείας και πάνω από όλα της πληροφορικής, έχουν αναπτυχθεί προγράμματα που κάνουν χρήση της τεχνολογίας του Internet.
Η παρούσα εργασία • Στην παρούσα εργασία υλοποιήθηκε ένας προσομοιωτής της λειτουργίας Pipelining (Pipeline Simulator) ενός επεξεργαστή. • Η υλοποίηση του προγράμματος έγινε ως JAVA Applet. • To πρόγραμμα εκτελείται μέσα από το διαδίκτυο. • Ο επεξεργαστής που προσομοιώνεται είναι ο MIPS R2000.
Η έννοια του pipelining και οι δυσκολίες που περιέχει • Η έννοια του pipelining είναι γενικά μια από τις σημαντικότερες έννοιες της Αρχιτεκτονικής Υπολογιστών (computer architecture). • Οι φοιτητές αντιμετωπίζουν πολλές δυσκολίες στην κατανόησή της.
Το Web λύνει τα προβλήματα • Με την ανάπτυξη προγραμμάτων των οποίων η εκτέλεση γίνεται μέσω του World Wide Web, όπως ο παρακάτω Pipeline Simulator, πολλές από αυτές τις δυσκολίες μπορούν να αντιμετωπιστούν.
Asychronous distance learning • Η διδασκαλία πλέον παύει να γίνεται με τον παραδοσιακό τρόπο εκμάθησης και μελέτης ενός κειμένου. • Εισάγεται ένας νέος όρος, αυτός της ασύγχρονης διδασκαλίας εξ αποστάσεως (asychronous distance learning).
Asychronous learning • Η διδασκαλία καλείται asychronous (ασύγχρονη) όταν δεν εξαναγκάζει το φοιτητή να παρευρίσκεται στη διδασκαλία σε καθορισμένη χρονική στιγμή (για παράδειγμα την ώρα των διαλέξεων).
Distance learning • Η διδασκαλία καλείται εξ αποστάσεως όταν ο φοιτητής δεν είναι αναγκασμένος να παρευρίσκεται ο ίδιος σε έναν προκαθορισμένο χώρο (για παράδειγμα στη σχολική αίθουσα).
Ανά πάσα στιγμή και οπουδήποτε • Χρησιμοποιώντας το World Wide Web, δάσκαλοι και φοιτητές έχουν πρόσβαση σε προγράμματα όπως ο Pipeline Simulator ανά πάσα στιγμή και οπουδήποτε. • Δεν υπάρχουν πλέον χωρικές και χρονικές δεσμεύσεις.
Εξοικονόμηση χρόνου • Στο παραδοσιακό εκπαιδευτικό σύστημα, οι ώρες διδασκαλίας πολλές φορές δεν επαρκούν για τους φοιτητές. • Τώρα με τη διευκόλυνση που προσφέρει το Internet, η μελέτη μπορεί να γίνει από το ίδιο το σπίτι του φοιτητή.
Όταν ο καθηγητής δεν επαρκεί Πληροφορίες όπως: • Πληροφορίες σχετικές με πολυμέσα (multimedia information):Για παράδειγμα η μελέτη για graphics animation. • Interactive Information: Πληροφορίες και δεδομένα που αλλάζουν ανά πάσα στιγμή ανάλογα με τις απαιτήσεις του χρήστη.
Ζωντάνια και ρεαλιστικότητα • Τέτοιες πληροφορίες συνήθως δεν μπορούν να αναπαρασταθούν και να κατανεμηθούν σε μορφή έγγραφου κειμένου ή με προβολή διαφανειών σε έναν projector. • H πληροφορία πρέπει να αναπαρασταθεί σε μια πιο «ζωντανή» μορφή, με περισσότερη ρεαλισμό.
Δημιουργική μάθηση • Η ανάπτυξη του Pipeline Simulator δεν αποσκοπεί στην ριζική αλλάγή του τρόπου διδασκαλίας. • Αυτό που επιθυμεί είναι να αποτελέσει συμπληρωματικό στοιχείο του τρόπου διδασκαλίας της έννοιας του Pipelining. • Μέσα σε ένα interactive περιβάλλον, ο μαθητής «διδάσκεται δημιουργώντας».
Εξοικονόμηση χρημάτων • Τα βιβλία που απαιτούνται είναι τόσο ακριβά και πολλά, που αρκετοί φοιτητές αδυνατούν να τα αγοράσουν. • Με τον Pipeline Simulator, το πρόβλημα αυτό παύει να υφίσταται. Δεν χρειάζονται πλέον χρήματα σε βιβλία και σε επιστημονικά διατριβές. • Αρκεί ένας Web Browser, ο οποίος διατίθεται δωρεάν από το Internet, για να μελετηθεί το φαινόμενο.
Σε τι αποσκοπεί η ανάπτυξη του Pipeline Simulator: • Στην καλύτερη κατανόηση της έννοιας και σε βάθος. • Στην αύξηση του ενδιαφέροντος του μαθητή, κάτι που θα τον οδηγήσει σε νέες γνώσεις και ενδιαφέροντα.
Προβλήματα • Το πρόγραμμα αναπτύχθηκε ως JAVA Αpplet, ώστε να γίνεται εκμετάλλευση της τεχνολογίας του Internet. • To γεγονός αυτό, πέρα από τη δεδομένη δυσκολία που έχει η ανάπτυξη ενός JAVA Applet, οδήγησε και σε μια σειρά άλλων προβλημάτων, που εμφανίστηκαν κατά τις διάφορες φάσεις της υλοποίησης.
Διαβάζοντας τα δύο σημαντικά αρχεία • Για την εκτέλεση του προγράμματος είναι απαραίτητη η ανάγνωση (parsing) δύο files, τα οποία περιγράφουν: • To πρόγραμμα που εκτελείται (το assembly- programm). • Τη δομή του datapath. • Όταν το πρόγραμμα προσπαθεί να διαβάσει τα δύο αυτά files, η εκτέλεσή του σταματάει και εμφανίζει αντίστοιχα μηνύματα λάθους.
Η γραφική εφαρμογή FileChooser • Η JAVA χρησιμοποιεί την γραφική εφαρμογή FileChooser, για να διαβάσει και να επεξεργαστεί ένα αρχείο, που βρίσκεται τοπικά καταχωρημένο στον υπολογιστή.
JAVA Security • H JAVA έχει αναπτύξει ολόκληρο μηχανισμό, για να ελέγχει εάν η εκτέλεση (μεταφορά) ενός προγράμματος είναι ασφαλής ή όχι. • Αυτός ο μηχανισμός, γνώστός και ως JAVA Security, διαθέτει μια σειρά από εργαλεία που ελέγχουν κατά πόσο είναι ασφαλής η εκτέλεση ενός JAVA προγράμματος.
Security και JAVA Applets • Έτσι, για JAVA προγράμματα που εκτελούνται μέσς του διαδικτύου, η JAVA Securityθέτει τους εξής περιορισμούς (μεταξύ άλλων): • Διάβασμα αρχείων. • Γράψιμο αρχείων. • Σβήσιμο αρχείων.
Η διαφορά μεταξύ JAVA Applets και JAVA Applications
Security Exception στο Pipeline Simulator • O μηχανισμός της JAVA Security ανακαλύπτει ότι το πρόγραμμα προσπαθεί να διαβάσει τα 2 αρχεία. • Μια Security Exceptionεμφανίζεται και το πρόγραμμα σταματάει.
Προϋποθέσεις • Προϋποθέσεις που πρέπει να τηρηθούν για την επιτυχημένη εκτέλεση του προγράμματος. • Προϋποθέσεις που πρέπει να τηρηθούν για την επιτυχημένη υλοποίηση του προγράμματος.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ • Το πρόγραμμα του Pipeline Simulator εκτελείται πάνω από κάθε λειτουργικό σύστημα, διότι έχει υλοποιηθεί ως JAVA Applet. • Το πρόγραμμα έχει εκτελεστεί πάνω από Windows 9x, Windows NT και Sun Solaris.
WEB BROWSERS • Για την εκτέλεση του Pipeline Simulator απαιτείται η χρήση ενός Web Browser. • Oι κυριότεροι Web Browsers είναι: • O Netscape Navigator. • O Internet Explorer
JVM • Πριν την εκτέλεση του προγράμματος, θα πρέπει να επιτραπεί στον Web Browser να εκτελέσει Java Applets. • Αυτό γίνεται με την ενεργοποίηση της JVM (Java Virtual Machine)
PLUG-IN • Για την εκτέλεση του πρόγραμμα του Pipeline-Simulator, έπρεπε πρώτα να γίνει εγκατάσταση ενός ειδικού προγράμματος (Plug-in). • Χωρίς αυτό, η εκτέλεσή του είναι αδύνατη. • To Plug-in διατίθεται δωρεάν στο Internet.
JDK • Για την υλοποίηση και ανάπτυξη ενός JAVA προγράμματος όπως ο Pipeline Simulator απαιτείται η χρήση ενός JDK (Java Development Kit). • To πρόγραμμα υλοποιήθηκε με το JDK 1.2, το οποίο διατίθεται δωρεάν από το δικτυακό χώρο της εταιρίας Sun Microsystems.
Συμβατότητα με MIPS R2000 • Για την εκτέλεση του προγράμματος απαιτείται το διάβασμα (parsing) ενός text-αρχείου, που κρατάει το assembly-πρόγραμμα, το οποίο θα προσομοιωθεί. • Σε αντίθετη περίπτωση εμφανίζονται μηνύματα λάθους.
Παρόμοια προγράμματα • SPIM S20: Προσομοίωση σε MIPS R2000 και MIPS R3000. Mόνο για Macintosh. Δεν μπορεί να εκτελεστεί πάνω από το Web. • Processor-/Simulation RSC-34000:Για όλες τις πλατφόρμες. Μόνο τοπική εκτέλεση.
ΓΙΑΤΙ JAVA; H JAVA είναι ανεξάρτητη από το λειτουργικό σύστημα και την αρχιτεκτονική του εκάστοτε συστήματος.
Γιατί JAVA – APPLET; • Tα JAVA Applets εκτελούνται μέσω Web Browsers. • O Web Browser διαβάζει την HTML σελίδα και εκτελεί το JAVA- Αpplet.
JAVA Applets και ΗΤΜL • Ένα JAVA Appletμπορεί να εκτελεστεί, όταν εισαχθεί η κατάλληλη ετικέτα (tag), στο ΗΤΜL έγγραφο. • <HTML> • <HEAD> • <TITLE> Τhe Pipeline Simulator</TITLE> • </HEAD> • <BODY> • <APPLET CODE="Sim.class" • WIDTH=150 HEIGHT=25> • </APPLET> • </BODY> • </HTML>
JAVA Applets: Βήμα προς βήμα (I): • Το JAVA Applet γράφεται (αναπτύσσεται). • Το αρχείο έχει κατάλληξη: .java. • Για παράδειγμα: Simulation.java.
JAVA Applets: Βήμα προς βήμα (II): • Σε ένα HTML έγγραφο (Web page) δηλώνεται ότι επιθυμείται η εκτέλεση του JAVA Applet. • Αυτό δηλώνεται μέσω του class file του Αpplet. <APPLET CODE="Sim.class" WIDTH=150 HEIGHT=25> </APPLET>
JAVA Applets: Βήμα προς βήμα (III): • O Web Browser αναζητά το class αρχείο. Το directory του class file καθορίζεται από τις ετικέτες (tags) <CODE>και <CODEBASE>. • To class file περιέχει JAVA Bytecodes, ένα format που επιτρέπει την εκτέλεση του πργράμματος πάνω από διάφορες πλατφόρμες.
JAVA Applets: Βήμα προς βήμα (IV): • O Web Browser μεταφέρει το JAVA Bytecodes πάνω από το δίκτυο. • Ο Web Browser δημιουργεί μια instance (αρχικοποιεί) το Αpplet. • O Web Browser (μέσω της JVM που διαθέτει) καλεί την init() συνάρτηση του Αpplet και ξεκινά την εκτέλεσή του.
Τί είναι Swing και σε τί χρησιμοποιήθηκε; • Όλα τα γραφικά στοιχεία του Pipeline Simulator αναπτύχθηκαν με τις Swing βιβλιοθήκες της JAVA. • Buttons, windows, menus, πίνακες και πολλά άλλα, σχεδιάστηκαν μέσω των Swing συναρτήσεων.
Η αντιμετώπιση των Security Exceptions • Μια networkconnection μεταφέρει το JavaCodeαπό τον server στον client. Δεν χρειάζεται πλέον η αποθήκευση των αρχείων στο μηχάνημα του χρήστη. • Η networkconnection υλοποιείται με ειδικές συναρτήσεις της JAVA. • Με αυτό τον τρόπο, το πρόγραμμα εκτελείται κανονικά. • Μόνο η networkconnection με τον server, στον οποίο το Applet έχει καταχωρηθεί είναι εφικτή.
servers και networkconnections • Στον server www.csd.uch.grγράφεται (εκτελείται) το JAVA Applet. • Στον κώδικά του (το java file του) δηλώνεται (μέσω ειδικών συναρτήσεων της JAVA για networkconnection), δηλώνεται ότι θα διαβαστεί το file: http://www.csd.uch.gr/test. • O Web Server επιτρέπει το loading (εκτέλεση)του Αpplet, διότι βρίσκεται στον ίδιο server με τον server που βρίσκεται το test.txtαρχείο.
Δομή του Pipeline Simulator(I) • H κύρια κλάση (main function) του προγράμματος είναι η Sim class. • Το πρόγραμμα χωρίστηκε σε 4 υποπακέτα (subpackages), του πακέτου mips. • mips.dialog • mips.util • mips.pipeline • mips.element • Δύο κλάσεις ανήκουν στο ίδιο subpacket, αν έχουν το ίδιο functionality.
Graphical user interface Eκτέλεση του pipeling Class Sim: Kύρια κλάση του προγράμματος Δομή του Pipeline Simulator(II) • Kάθε κλάση αναλαμβάνει μια υπηρεσία (για παράδειγμα γραφική αναπαράσταση της προσομοίωσης).
Compilation του προγράμματος • Ο JAVA compiler μεταφράζει το JAVA πρόγραμμα σε εντολές, τις οποίες εκτελεί η Java Virtual Machine (ByteCodes). • Μέσω του command prompt, ο java compiler (javac) ψάχνει τα λάθη και αν δεν υπάρχουν, δημιουργεί το class file. • Παράδειγμα: javac mips/Pipeline.java
Πώς υλοποιείται η networkconnection; • Ακολουθεί το κομμάτι του προγράμματος που υλοποιεί την networkconnection με τον server www.irb.uni-hannover.de. URL csd = new URL("http://www.csd.uch.gr/test.txt"); URLConnection csdConnection = csd.openConnection(); in = new BufferedReader(new InputStreamReader( csdConnection.getInputStream())); String text; StringBuffer buf=new StringBuffer(); /*read each line of the file*/ while ((text=in.readLine())!=null) { /*parsing of the file*/ /*********/ }
Η προσομοίωση είναι έτοιμη να αρχίσει
Εξερεύνηση της εφαρμογής(Ι) • Επιλογή προγράμματος από το εικονίδιο , ή από την επιλογή Datei > Programm Laden. • Η στήλη Adrπεριέχει τη διεύθυνση αποθήκευσης της αντίστοιχης εντολής. H εντολή φαίνεται στην στήλη Befehl. • Κάθε εντολή παίρνει ένα χρώμα που την ακολουθεί κατά τη διάρκεια της προσομοίωσης (στήλη Col).
Εξερεύνηση της εφαρμογής(ΙΙ) • Επιλογή datapath από το εικονίδιο , ή από την επιλογή Datei >Pipeline Laden. • H προσομοίωση εκτελείται σε περιόδους 2 υποδιαστημάτων. Επόμενο υποδιάστημα προσομοίωσης από την επιλογή:Pipeline > Taktimpuls, ή από το εικονίδιο . • Με το εικονίδιο η προσομοίωση επανέρχεται σε προηγούμενες φάσεις.