To PM kai h filosofða tou

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

Download "To PM kai h filosofða tou"

Transcript

1 To PM kai h filosofða tou Nikìlaoc Qristìpouloc Ekdosh 0.3 Ajăna, 28 AprilÐou 2004 Perieqìmena 1 To peribĺllon tou logismikoô Η νέα συ ογική ανάπτυξη To prìblhma tou ădh grammènou kÿdika Ι/Ο Η είσοδο τη εξόδου Νεκρή φύση Συµπεράσµατα Ena eniaðo interface 4 4 En arqă ătan h SB Το ιεραρχικό σύστηµα των αρχείων Πω έγινε όµω αυτό H idèa Τα modulec ανεξάρτητα από το PM Teqnikèc anĺptuxhc tou PM Σύνδεση αρχείου και κώδικα Εξέ ιξη σε module VFS Εκτό του VFS PMFS Ενα έτοιµο εικονικό σύστηµα αρχείων Arqèc tou PM ογική σχεδίαση Ενιαίο interface Οµαδοποίηση στο PM Ενιαίο τρόπο µεταφορά δεδοµένων ιαχείριση modulec Αυτόµατη συµπ ήρωση συναρτήσεων των modulec Etoima paradeðgmata vfstest Συνοδευτικά παραδείγµατα εφαρµογέ Συνοδευτικά παραδείγµατα modulec

2 1 TO PERIB ALLON TOU LOGISMIKO U 2 9 JewrhtikĹ paradeðgmata Ενα client που ειτουργεί σαν σύστηµα αρχείων Ενα παντοδύναµο εργα είο µε ίγο κώδικα PerÐlhyh To PM eðnai èna sôsthma pou sqedðasa gia na lôsei sugkekrimèna problămata, ìpwc ton eniaðo trìpo epikoinwnðac ìlwn twn suskeuÿn allĺ kai diĺforwn bibliojhkÿn me to desktop peribĺllon tou arm0nia project. Eqei ìmwc polô megalôterec proektĺseic. To jewrÿ idiaðtera aplì, allĺ dustuqÿc o perissìteroc kìsmoc adunateð na to katalĺbei, kai edÿ èrqetai autì to èggrafo pou skopì èqei na exhgăsei autì to perðergo sôsthma pwc leitourgeð kai poiec eðnai oi dunatìthtèc tou. To PM ektìc apì èna uposôsthma, mporeð na qrhsimopoihjeð wc jewrhtikì prìtupo gia eniaðo interface, kajÿc epðshc kai gia uposôsthma tôpou OLE/CORBA k.a. 1 To peribĺllon tou logismikoô Εµεί οι προγραµµατιστέ γνωρίζουµε πο ύ κα ά την πο υπ οκότητα των πραγµάτων. Εχουµε να κάνουµε µε ένα χαοτικό περιβά ον στο οποίο εκατοµµύρια γραµµέ κώδικα, εκατοµµύρια εντο έ, ταξινοµηµένε συνήθω σε βιβ ιοθήκε, που α η επιδρούν και συνδυάζονται για να παράγουν το τε ικό έργο, είτε αυτό είναι µια εφαρµογή, είτε ένα ο όκ ηρο.σ. µε ό α τα συνοδευτικά αυτού. Υπάρχουν αστρονοµικά µεγέθη κώδικα, γραµµένα από διάφορου προγραµµατιστέ ανά τον κόσµο, για ένα επίση µεγά ο εύρο θεµάτων 1. Μια επίσκεψη στο sourceforge ή στο codeguru ή στο simtel και α ού, θα σα πείσει παρά το ότι είναι ένα µικρό µέρο του κώδικα που κυκ οφορεί στο internet! Μέσα σ αυτό το codespace 2 βρίσκουµε συχνά ύσει τι οποίε χρειαζόµαστε ή θα ήταν χρήσιµο ή θα ήταν όµορφο ή θα ήταν έξυπνο ή θα ήταν βο ικό για το µέ ον να τι προσθέσουµε. ύσει έτοιµε και δοκιµασµένε, ύσει που τι συντηρούν και αναπτύσσουν ά οι, ύσει που εκτοξεύουν την ίδια την ανάπτυξη του ογισµικού στα ύψη µέσω τη συ ογική πια εργασία. 1.1 H nèa sullogikă anĺptuxh Στο O Kajedrikìc kai to PazĹri ο Raymond προσπάθησε να εξηγήσει την δύναµη τη συ ογική εργασία από µια πα αβή[bazaar, 10 π.19], τυπική αµερικάνικη ( 1950) οπτική γωνία, δη αδή, ανύπαρκτη ή προπαγανδισµένη κοινικοπο ιτική φι οσοφία. Οπω και να έχει αυτό το έργο είναι σηµαντικό από πο έ π ευρέ και έχει ενδιαφέρουσε απόψει το σηµαντικότερο ό ων είναι ότι είναι ο οκ ηρωµένο και ο αναγνώστη που δεν έχει επαφή µε το open/free source µπορεί να αντι ηφθεί την επανάσταση στην ανάπτυξη του ογισµικού που συντε έστηκε τι τε ευταίε δεκαετίε 3 καθώ επίση και την δύναµη τη συ ογική εργασία που είναι γνωστή στο ευρύ κοινό σήµερα, µε το όνοµα Linux. Βάση αυτών, οιπόν, β έποµαι ότι υπάρχει ήδη υποδοµή, προσπάθειε α ά και µεγά ο έργο φτιαγµένο για να ειτουργεί για το σύνο ο, δη αδή για εµά. Οι περισσότεροι τη free source κοινότητα είναι ιδεο όγοι και βασίζουν τι κινήσει αυτέ στην ηθική, έτσι αποκα ούν του εκάστοτε προγραµµατιστέ που συνεισφέρουν ω εθε οντέ. Εδώ όµω θα διαφωνήσω διότι β έπω τον κώδικα διαφορετικά, τον β έπω σαν αντα αγή απόψεων 4 ή/και εργασία. Η αντα αγή των απόψεων είναι και η ρίζα τη ανάπτυξη τη επιστήµη και τη 1 Na jumðsw to prìgramma pou èggrafe poiămata :) 2 Enac prìqeiroc dikìc mou orismìc, antðstoiqoc tou dataspace, gia na dhlÿsw to sônolo tou kÿdika, public domain, open/free source allĺ kai kleidwmènou me kĺpoio nomikì trìpo, pou upĺrqei sto internet. 3 To open source arqðzei epðshma me to TEX apì ìso xèrw... 4 O kÿdikac eðnai èkfrash ìpwc ta majhmatikĺ kai o lìgoc kai ìsoi diafwnoôn s autì eðnai giatð den eðnai programmatistèc parĺ mìno kat ìnoma.

3 2 TO PR OBLHMA TOU HDH GRAMM ENOU K WDIKA 3 φι οσοφία 5. Η αντα αγή δεν προ ποθέτει την θέ ηση χωρί αντά αγµα που απαιτεί ο εθε οντισµό για αυτό και περιµένω να µεγα ώσει ακόµα περισσότερο ο π ηθυσµό τη κοινότητα. Το free/open source είναι περισσότερο µια επιστηµονική κο εκτίβα παρά ένα φι ανθρωπικό ίδρυ- µα. Βοηθώντα ένα έργο που χρησιµοποιούµε, βοηθάµε τον εαυτό µα διότι το έργο αυτό, θα το χρησιµοποιήσουµε και στο µέ ον. Η ανάπτυξη ενό τέτοιου έργου είναι και δικό µα θέµα αφού βασίζουµε µέρο τη εργασία µα επάνω του. Περισσότερα για την σκ ηροπυρηνική ιδεο ογία του eleôjerou logismikoô θα βρείτε στι σε ίδε τη GNU, ενώ για την µετριοπαθή ιδεο ογία του logismikoô anoiktoô kÿdika, στι σε ίδε του OSI. Μια περιγραφή και για τα δύο από το Ε ΕΤ[Ε ΕΤ-Γ4], όχι και τόσο επτοµερεί, α ά χρήσιµη για του άσχετου. 2 To prìblhma tou ădh grammènou kÿdika Συµβαίνει η κάθε οµάδα ανάπτυξη ενό έργου να διαµορφώνει την επικοινωνία µε ά ο κώδικα ανά- ογα µε τι ανάγκε τη και συµβαίνει αυτή η επικοινωνία να είναι κάθε φορά διαφορετική από έργο σε έργο, ακόµα και όταν αναφέρεται στο ίδιο θέµα. Αυτό είναι φυσικό να συµβαίνει διότι η συ ογική εργασία παραµένει σε επίπεδο έργου και όχι συνό ου πράγµα έτσι και α ιώ πο ύ δύσκο ο. Αυτό όµω έχει σαν αποτέ εσµα, να αναγκάζει του προγραµµατιστέ να αποφεύγουν συχνά την χρήση τέτοιων έργων διότι: 1. Απαιτεί από αυτού να δώσουν χρόνο για την εκµάθηση του διαφορετικού interface. 2. Συχνά δεν ταιριάζει το interface µε την δοµή του ήδη υπάρχων κώδικα. 3. Είναι αναγκασµένοι να γράψουν ειδικό κώδικα για την υποστήριξη του καθενό µε αποτέ εσµα, εκτό από κουραστικό και χρονοβόρο, να είναι και ανασφα έ διότι ο κώδικα όσο πιο περίπ οκο είναι τόσο πιο πιθανό είναι να κάνει σφά µατα. 2.1 I/O Το κάθε πρόγραµµα χαρακτηρίζεται από την είσοδο και την έξοδο. Ω είσοδο ονοµάζουµε το σύστηµα εισαγωγή στοιχείων, όπου αυτό µπορεί να είναι µια συσκευή όπω το ποντίκι ή τα αποτε έσµατα κάποια επεξεργασία όπω ένα αρχείο, ή και ά α. Αντίστοιχα και η έξοδο είναι τα αποτε έσµατα του προγράµµατο τα οποία µπορεί να είναι ένα αρχείο, κάποια ή κάποιε γραφικέ παραστάσει στην οθόνη και πάει έγοντα. Στην σηµερινή κατάσταση τα συστήµατα εισόδου/εξόδου κατά κανόνα απαιτούν από υτα διαφορετικό τρόπο χειρισµού από το πρόγραµµα. Οταν για παράδειγµα σχεδιάζουµε ένα διάγραµµα στην οθόνη, χρειάζεται να γράψουµε και νέο διαφορετικό κώδικα για να το εκτυπώσουµε ή να το πάρουµε σε µορφή αρχείου. 2.2 H eðsodoc thc exìdou Τα πράγµατα γίνονται ιδιαίτερα πο ύπ οκα όταν θέ ουµε να επεξεργαστούµε τα αποτε έσµατα µια εφαρµογή, καθώ επίση και τα αποτε έσµατα τη δική µα εργασία να είναι δυνατό να επεξεργαστούν από ά ε εφαρµογέ. 5 Dhladă na perimènoume na pollaplasiasteð se ekplhktikì bajmì to ădh terĺstio codespace.

4 3 ENA ENIA IO INTERFACE 4 Κατά κανόνα, η επικοινωνία των προγραµµάτων γίνετε µέσω αρχείων, ενώ χρειάζεται ειδικό χειρισµό για την επικοινωνία τη κάθε εφαρµογή. Για παράδειγµα για ένα διανυσµατικό σχέδιο, είµαστε αναγκασµένοι να χρησιµοποιήσουµε διάφορε µορφέ αρχείων που χρησιµοποιούνται από τα προγράµµατα CAD, και αν θέ ουµε να κάνουµε κα ή δου ειά θα πρέπει να υποστηρίζουµε 2-3 του άχιστον τέτοιε µορφέ. 2.3 Nekră fôsh Τα αρχεία, εκτό των ά ων, είναι νεκρή φύση. εν κάνουν υπο ογισµού, δεν συµπεριφέρονται ανά ογα µε τι ανάγκε µα, α ά είναι στατικά, νεκρά κατά κάποιο τρόπο. Αυτό περιορίζει κατά πο ύ τι δυνατότητε εισόδου/εξόδου. Για παράδειγµα δεν µπορεί από ένα αρχείο διανυσµατικών γραφικών να του ζητήσει να µετατραπεί σε ά η ανά υση (χρήσιµο για επεξεργασία σε bitmap) ή σε ά ο σύστηµα αξόνων (+ψ επάνω ή κάτω), πρέπει να το κάνει στο πρόγραµµά σου. Αυτό είναι µια τυπική διεργασία - ρουτίνα που φαντάζοµαι πο οί από εµά την κάνουν βό τα από πρόγραµµα σε πρόγραµµα, αν και ογικό είναι να γίνετε σε ένα µέρο, επειδή η δοµή των στοιχείων διαφέρει αναγκαζόµαστε να αντιγράφουµε και να διορθώνουµε αυτή την ρουτίνα. εν θα γινόταν όµω αυτό αν µπορούσαµε από την είσοδο να ζητήσουµε το πω θέ ουµε τα στοιχεία. 2.4 SumperĹsmata Αυτά ακριβώ περιορίζουν στο ε άχιστο την δοκιµή (και χρήση) ενδιαφέρον έργων µε αποτέ εσµα τον περιορισµό τη τοπική και συνο ική ανάπτυξη του ογισµικού σε παγκόσµιο επίπεδο. η αδή µα δυσκο εύει να δοκιµάσουµε και να χρησιµοποιήσουµε έτοιµε ύσει, και αν αυτά τα προβ ήµατα διορθωθούν είµαι σίγουρο θα έχουµε εκτίναξη τη ανάπτυξη ογισµικού, εµπορικού και µη, σε παγκόσµιο επίπεδο. Θα δούµε ό α αυτά πω ύνονται και πω προωθούνται σε µια τε είω διαφορετική ογική χρήση και ανάπτυξη. Θα ασχο ηθούµε όµω σχεδόν αποκ ειστικά µε το εγόµενο VFS, δη αδή το εικονικό σύστηµα αρχείων, διότι είναι το πιο σηµαντικό α ά και το πιο απ ό τµήµα του PM. 3 Ena eniaðo interface Τα προβ ήµατα αυτά τα έχω νιώσει στο πετσί µου από την εποχή προ του DOS. Οσο όµω πέρναγε ο καιρό, και όσο µεγά ωνε η αθ ίοτητα του Windows API[CrqAPI] µε ανάγκασε πο έ φορέ να φτιάχνω C modules που ουσιαστικά δεν έκαναν τίποτα ά ο από το να προσφέρουν ένα ενιαίο interface ανάµεσα ίδιου θέµατο βιβ ιοθήκε ή τµήµατα του API! Στο arm0nia project βρέθηκα να είµαι σε θέση που έπρεπε να συνδέσω εκατοντάδε βιβ ιοθήκε γνωστέ και µη, τµήµατα κώδικα γνωστά και µη καθώ και την διασύνδεση ό ων αυτών µεταξύ του. Αυτό πίστευα, και επιµένω ότι πρέπει να γίνει και σε πο ύ µεγά ο βαθµό το PM τα κατάφερε. εν µε ενδιέφερε και τόσο το arm0nia αυτό διότι είχα και έχω περιορισµένο χρόνο κυρίω όγο τη εργασία µου και τη SB. Α ά το είδο του προβ ήµατο ήταν που µου κέντρισε το ενδιαφέρον.

5 4 EN ARQ H HTAN H SB 5 Output A Input Application Output B Input B Output C Input C Η ό η κατάσταση έµοιαζε µε το παραπάνω σχήµα. Τα προγράµµατα ήταν φτιαγµένα όπω το application τη εικόνα, δη αδή είχαν φτιαχτεί για µια συγκεκριµένη µορφή είσοδο ή για συγκεκριµένων µορφών σύνδεση µε βιβ ιοθήκε 6. Αυτό οιπόν που χρειαζόταν ήταν τα πάντα να οµι ούν την ίδια γ ώσσα, να έχουν δη αδή την ίδια υποδοχή σύµφωνα µε το σχεδιάγραµµα. i Το ενιαίο interface για τα πάντα είναι η βασική αρχή του PM. Είναι η αρχή όπου ξεδιπ ώνεται γύρω τη το υπό οιπο σύστηµα. Ω δια µαγεία, οιπόν, ό α τα προβ ήµατα θα υνόντουσαν αν υπήρχε κοινή υποδοχή καθώ επίση και η έξοδο ήταν όπω η είσοδο. Και αν για κάποιο όγο δεν µπορούσαµε να είχαµε κοινή είσοδο ένα τέτοιο πρόγραµµα που θα ανα άµβανε να έχει µια γνωστή έξοδο θα κά υπτε αυτό το κενό ώστε να έχουµε το ενιαίο τρόπο επικοινωνία. Ω δια µαγεία, οιπόν, ό α όσα δεν υνόντουσαν µε αυτό θα µπορούσαν να υθούν µε επιπ έον κώδικα. Στο PM η είσοδο και η έξοδο είναι σχεδόν πάντα κώδικα, δη αδή ζωντανό, ευµετάβ ητο πράγµα. Και αν κατά περίπτωση δεν τύχει, µπορεί να γίνει. 4 En arqă ătan h SB Ανάµεσα στα ά α, έχω φτιάξει και µια BASIC, την SmallBASIC (για συντοµία SB). Η SB έχει µεγά η σηµασία για το PM, διότι είναι ο σχεδιαστικά πρόγονό του. Η SB είναι ένα ιδιόµορφο έργο πρέπει να παρέχει την µέγιστη ευκο ία στον χρήστη µια και απευθύνεται εκτό των ά ων σε παιδιά, πρέπει επίση να ειτουργεί κάτω από διαφορετικά ειτουργικά συστήµατα όπω PalmOS, Linux, Windows κ. π. Ο α αυτά σηµαίνουν ότι έπρεπε η SB να προσφέρει ένα ενιαίο περιβά ον για µεγά ο αριθµό διαφορετικών πραγµάτων α ά και ταχύτατη ειτουργία διότι ειδικά στα Palms η ταχύτητα καθώ και οι δυνατότητέ του είναι ενοχ ητικά περιορισµένε. 6 Sto sqediĺgramma deðqnoume mìno thn eðsodo kai èxodo allĺ to Ðdio sumbaðnei kai me tic diĺforec bibliojăkec.

6 4 EN ARQ H HTAN H SB 6 Για να καταφέρω αυτά, πήγα πίσω στι πρώτε εκδόσει του Unix α ά και στο DOS (και CP/M) και αναρωτήθηκα γιατί δεν επιβ ήθηκε µια όµορφη σχεδιαστική δυνατότητα. Και στα δύο αυτά.σ. η σειριακή πόρτα ειτουργεί όµοια µε την κονσό α και τα δύο ειτουργούν µε εντο έ file I/O. Ναι, έχουν ένα ενιαίο interface, έστω και πρόχειρα φτιαγµένο. 1 fp_console = fopen("con:", "wt"); // Anoigma device consolas 2 fp_serial = fopen("com1:", "wt"); // Anoigma serial port fprintf(fp_console, "Hello, world!"); // typwma sto monitor 5 fprintf(fp_serial, "Hello, world!"); // apostolh mesw serial Πιστεύοντα ότι σχεδόν ό α τα δεδοµένα µπορούν να οργανωθούν έτσι ώστε να διαχειρίζονται µε file I/O εντο έ, α ά και επειδή είχα ήδη αποκτήσει αναγκαστικά εµπειρία σε τέτοια θέµατα, αντί να προσθέτω εντο έ στην SB για κάθε driver, ά αξα τον κάθε driver να συµπεριφέρεται σαν filesystem. Ετσι σήµερα στην SB, µε τι τέσσερι εντο έ OPEN, INPUT#, PRINT# και CLOSE που χρησι- µοποιούνται για το κ ασσικό file I/O, µπορούν οι χρήστε να κάνουν τα εξή 1. Να χειρίζονται τα αρχεία του δίσκου του. 2. Να στέ νουν και να παίρνουν δεδοµένα µέσω σειριακή. 3. Να γράφουν και να διαβάζουν PDOC αρχεία (PalmOS database compressed documents). 4. Να γράφουν και να διαβάζουν memos από το memo database. 5. Να γράφουν και να διαβάζουν µέσω telnet protocol, δη αδή να επικοινωνούν µε τι περισσότερε υπηρεσίε του internet (POP3, SMTP, HTTP κ.α.) Η SB συνέβα ε βέβαια παραπάνω στο PM, διότι ο κώδικα για τα πρώτα δυναµικά modules καθώ και ά α, είναι αντιγραφή του αντίστοιχου κώδικα τη SB. 4.1 To ierarqikì sôsthma twn arqeðwn Το ιεραρχικό σύστηµα των αρχείων είναι µια κ ασσική και πάµπο α διαδεδοµένη δοµή που µπορεί να εκφράσει σύνθετε δοµέ δεδοµένων. εν νοµίζω ότι υπάρχει κάποιο που δεν µπορεί να περιγράψει την δοµή των δεδοµένων όπω ακριβώ σε ένα RDBMS. Οι σχέσει των στοιχείων καθώ και τα ευρετήρια, µπορούν να εκφραστούν µε πιο σύνθετου τρόπου α ά πάντα στα π αίσια του συστήµατο αρχείων καθώ επίση και οι ειτουργίε µέσω κώδικα. Για παράδειγµα τα συνδεδεµένα προγράµµατα (το #! στο Unix και η επέκταση στα Windows) και οι συνδέσει (links στο Unix). Πέρα από αυτά, οι διαδικασίε που χρειάζονται για να γίνει η ανάγνωση ή εγγραφή των στοιχείων, είτε έχουµε αρχείο, είτε socket, είτε database, είτε δυναµική ίστα, κ. π. είναι πάντα η ίδια. Α άζουν µόνο οι εντο έ ανάγνωση και εγγραφή. Τυπικό ψευδοκώδικα που εκφράζει µια τυπική διεργασία µε ανάγνωση και εγγραφή. 1 Păgaine sthn arqă twn stoiqeðwn 2 Efìson den teleðwsan ta stoiqeða 3 anĺgnwsh stoiqeðwn 4 epexergasða 5 eggrafă stoiqeðwn sthn èxodo 6 păgaine sto epìmeno stoiqeðo

7 4 EN ARQ H HTAN H SB 7 Είτε είναι δυναµική ίστα, είτε database, είτε αρχείο κειµένου, πο έ φορέ και socket κ. π. αυτό ο ψευδοκώδικα εκφράζει κάτι που έχουµε βαρεθεί να το επανα αµβάνουµε. Η SB (και το PM κατ επέκταση) δεν υπόσχεται ότι δεν θα το γράψουµε, υπόσχεται όµω ότι έτσι θα γίνετε και µε τι ίδιε εντο έ για οποιοδήποτε θέµα. INPUT# για την ανάγνωση, PRINT# για την εγγραφή. Οι χρήστε τη SB είναι ευχαριστηµένοι µε την χρήση αυτών αντί να µαθαίνουν τι idiìthtec και τι mejìdouc του εκάστοτε class. 4.2 Pwc ègine ìmwc autì? Εχω το ε άττωµα να ατρεύω τα function-pointers, στην SB όµω τέτοια υ οποίηση ήταν δύσκο ο όγω των πο απ ών code segments που απαιτούσε το PalmOS. Ετσι αυτό υ οποιήθηκε µε τον π έον απ ό τρόπο, τον οποίο και θα δούµε αν θέ ουµε να κατα άβουµε αργότερα το ιδιαίτερα σύνθετο PM. Η εντο ή OPEN παίρνει παράµετρο το όνοµα του αρχείου για άνοιγµα. Στην BASIC, αντίθετα από την C, αυτή η εντο ή παίρνει ω παράµετρο και το file-handle. Οταν ο χρήστη, πέραν του συνηθισµένου sustămatoc arqeðwn, θέ ει να χρησιµοποιήσει κάποιον από του προκαθορισµένου οδηγού που προσφέρονται µε την SB, χρειάζεται αυτό να το δη ώσει στο ìnoma arqeðou. Ετσι χρησιµοποιώντα το σύµβο ο : διαχωρίζει το όνοµα του οδηγού και τι παραµέτρου του. Για παράδειγµα το onoma arqe iou myfile.txt σηµαίνει ένα απ ό αρχείο, το ìnoma arqeðou COM1:9600 σηµαίνει ότι η SB να χρησιµοποιήσει τον οδηγό τη σειριακή πόρτα 1 (COM1) αντί για το κ ασσικό sôsthma arqeðwn, στην ταχύτητα των 9600 BAUDs. 1 handle = 1 2 OPEN "COM1:9600" AS #handle SB source Ετσι το παραπάνω παράδειγµα µεταφράζεται από την SB στο παρακάτω κώδικα. 1 filename = "COM1:9600"; AntikatĹstash thc OPEN 2 drivername = filename.leftof ( : ); // drivername <- "COM1" 3 driverparams = filename.rightof( : ); // driverparams <- "9600" 4 if ( drivername == "COM1" ) { 5 filetable[handle].driverid = SERIAL; // use serial I/O library 6 filetable[handle].serialhandle = serial_open(driverparams); 7 } 8 else { 9 filetable[handle].driverid = DISK; // use file I/O library 10 filetable[handle].fp = fopen(drivername + driverparams); 11 } Το filetable φυ άσσει τα στοιχεία του κάθε file-handle, και ένα από τα στοιχεία αυτά είναι ποια βιβ ιοθήκη θα χρησιµοποιήσει (στο παράδειγµά µα, για serial port ή τυπικό file-system). Αυτή η π ηροφορία καταχωρείτε στο πεδίο driverid όπω είδαµε. Η συνάρτηση serial open µαζί µε την serial write string που θα δούµε παρακάτω, είναι µέρο του driver τη SB, για την διαχείριση τη σειριακή πόρτα. η αδή αυτό ο driver δεν είναι τίποτα ά ο από µια τυπική βιβ ιοθήκη (ή απ ό C module) που περιέχει του άχιστον αυτέ τι δυο συναρτήσει.

8 5 H ID EA 8 1 PRINT #handle; "Hello, world!" SB source Αντίστοιχα και η αποστο ή στοιχείων (PRINT) γίνετε µε το ίδιο τρόπο. AntikatĹstash thc PRINT 1 params = "Hello, world!"; 2 if ( filetable[handle].driverid == SERIAL ) 3 serial_write_string(filetable[handle].serialhandle, params); 4 else 5 fprintf(filetable[handle].fp, "%s", params); Οπω αντι αµβανόµαστε η διαδικασία είναι πο ύ απ ή. Ενα switch ή διαδοχικά if υ οποιούν αυτό το υποσύστηµα. 5 H idèa Οπω είδαµε ο χρήστη τη SB έχει ένα ενιαίο interface για µια π ηθώρα δυνατοτήτων. Τι θα γινόταν άραγε αν προσαρµόζονταν τα πάντα γύρω από δύο - τρία τέτοια interfaces και τι αν η εφαρµογή έπαιρνε παραµετρικά το αντίστοιχο driver αφού ο κώδικα τη θα ήταν ο ίδιο ενώ µόνο η παράµετρο τη εντο ή open() θα ά αζε και τι αν ο ένα driver φόρτωνε τον ά ο Και τι αν ο χρήστη (ή πρόγραµµα - γονιό ) επέ εγε ποιο είναι ο default driver για κάθε ειτουργία Απάντηση... τρε ά πράγµατα, χωρί να α άξει ούτε µια γραµµή κώδικα, τόσο τρε ά που ούτε η φαντασία µα δεν µπορούσε να συ άβει. Αυτό που ονειρευτήκαµε την ενοποίηση τεράστιου όγκου κώδικα. ii Στο PM δεν υπάρχει πια η έννοια του αρχείου, τη εικόνα, database, TCP/IP κ. π. υπάρχει µόνο αυτόνοµο κώδικα που συµπεριφέρεται µε προκαθορισµένο τρόπο. Η εφαρµογή ανοίγει ένα αρχείο όπω κάνει πάντα, µε τι ίδιε εντο έ πάντα, και φυσικά τον ίδιο τρόπο χειρισµού. Το τι κάνει όµω αυτό το αρχείο δεν το ξέρει διότι δεν έχουµε να κάνουµε µε αρχείο α ά κώδικα που συµπεριφέρεται σαν αρχείο. iii Αντίστοιχα µε τα εικονικά αρχεία η εφαρµογή χειρίζεται και ά α πραγµατικά ή εικονικά συστήµατα εισόδου / εξόδου ή επεξεργασία τα οποία παραµένουν άγνωστα στην εφαρµογή α ά µε γνωστό τρόπο διαχείριση αυτών. Μερικά τρε ά παραδείγµατα Ενα filemanager που να στέ νει χωρί να έχει κώδικα για αυτό, δεν τον χρειάζεται, δεν χρειάζεται καν να ξέρει τι είναι socket! Ενα filesystem που να προσθέτει unix attributes σε FAT! Μια εικόνα που να αποθηκεύεται σαν ήχο και το αντίστροφο! Εχετε ποτέ τραβήξει γραµµέ σε ήχο Ενα γραφικό περιβά ον που να ειτουργεί το ίδιο κα ά σε graphics terminals όσο και σε ASCII terminals.

9 6 TEQNIK ES AN APTUXHS TOU PM 9 Μια εφαρµογή που να εµφανίζεται κατά επι ογή σε PDF αρχείο αντί για οθόνη, είτε επειδή ορίστηκε έτσι στην εφαρµογή, είτε επειδή ο χρήστη διά εξε για driver οθόνη το PDF driver! Ο ηµήτρη, είχε πει ότι το PM είναι η αποθέωση του εικονικού, το virtual του virtual. Και είχε δίκιο, διότι το σύστηµα αυτό προσφέρει ένα εικονικό περιβά ον, µε εικονικά ή µη δεδοµένα, από εικονικέ ή µη συσκευέ όπου το ένα µπορεί να βασίζεται στο ά ο. Για παράδειγµα, είναι δυνατό να φτιαχτεί ένα ο όκ ηρο GUI περιβά ον του οποίου η είσοδο και έξοδο καθορίζεται δυναµικά από τον χρήστη, δη αδή να εκτε είται στην µνήµη, και αν και όταν συνδέσουµε ένα module εξόδου όπω η κάρτα γραφικών, ο εκτυπωτή, τερµατικό, βιβ ιοθήκη avi ή pdf να παίρνουµε τα αποτε έσµατα στην οθόνη, εκτυπωτή, σε οθόνη ά ου τερµατικού ή αρχείο. Αντίστοιχα ω είσοδο αυτού του συστήµατο θα µπορούσαµε να έχουµε ένα ά ο πρόγραµµα ή το π ηκτρο όγιο ή το ποντίκι, ή συνδυασµό αυτών. iv εν πρόκειται για κάτι πο ύπ οκο, επανα αµβάνω ότι έχουµε να κάνουµε µε πο ύ απ ό σύστηµα, µε απ έ τεχνικέ, που είναι έτσι σχεδιασµένο ώστε να ενοποιεί µε ικανοποιητικό τρόπο άσχετα µεταξύ του κοµµάτια ογισµικού α ά και να αποτρέπει του περιορισµού τη ίδια τη φύση του κάθε κώδικα. Το αποτέ εσµα αυτού είναι ό ε αυτέ οι δυνατότητε. Εφόσον το ποντίκι (pointing device interface) µπορεί να αντικατασταθεί από κώδικα, η οθόνη (graphics device interface) από κώδικα και το ταχυδροµείο από κώδικα που συµπεριφέρεται σαν σύστηµα αρχείων (virtual file system interface). Εφόσον ό α αυτά µπορούν να γίνουν χωρί να α άξει ούτε µια γραµµή κώδικα, τότε δεν θα έπρεπε να σα παραξενεύουν τα αποτε έσµατα α ά αντίθετα να µα κριτικάρετε για έ ειψη φαντασία. 5.1 Ta modules anexĺrthta apì to PM Το arm0nia project όµω είναι, του άχιστον προ το παρών, ευά ωτο. Σήµερα υπάρχει, αύριο µπορεί και όχι. Το έργο όµω πάνω στι αρχέ του PM έπρεπε και πρέπει να επιζήσει. Ο όγο είναι απ ό. Εµεί θα κάναµε και κάνουµε ήδη µια εργασία. Αυτή η εργασία προσφέρει ένα τυποποιηµένο µοντέ ο ειτουργία για διάφορα πράγµατα η οποία µπορεί να χρησιµοποιηθεί και από τρίτου, και θα πρέπει να γίνει αυτό ή έστω να απαιτηθεί να γίνει αυτό. Το PM οιπόν προσφέρει εκτό του συνο ικού συστήµατο και ένα τρόπο ètsi ÿste anexĺrthtec efarmogèc me to PM na eðnai ikanèc na prosjèsoun ta modules tou PM ston kÿdikĺ touc qwrðc na qreiĺzontai to Ðdio to PM ă thn bibliojăkh autoô. Η ανεξαρτητοποίηση των modules αυτών είναι για µένα σηµαντικό θέµα. Το πω γίνετε πράγµα απ ό και εύχρηστο αυτό δεν θα το ανα ύσουµε εδώ, α ά το βρίσκω από υτα απαραίτητο να ειπωθεί. 6 Teqnikèc anĺptuxhc tou PM Θα εξηγήσουµε παρακάτω µε τον π έον τυπικό τρόπο τι τεχνικέ που χρησιµοποιήθηκαν για να επιτευχθεί η ανάπτυξη του PM. Ο α αυτά είναι ενσωµατωµένα στο υποσύστηµα και είναι αόρατα στον τε ικό χρήστη - προγραµµατιστή.

10 6 TEQNIK ES AN APTUXHS TOU PM SÔndesh arqeðou kai kÿdika Οπω είδαµε στην SB, η επι ογή των ρουτινών για το άνοιγµα ή την ανάγνωση ή την αποστο ή στοιχείων γινόταν µε διαδοχικά if. Αυτή η διαδικασία στο PM έπρεπε να γίνετε αυτόµατα και το πω αυτό είναι δυνατό θα το ανα ύσουµε τώρα. Αν αντί για µια σειρά από if, συνδέσαµε το εικονικό αρχείο µε την βιβ ιοθήκη που είναι ικανή να το διαχειρίζεται... 1 filename = "COM1:9600"; AntikatĹstash thc OPEN 2 drivername = filename.leftof ( : ); // drivername <- "COM1" 3 driverparams = filename.rightof( : ); // driverparams <- "9600" 4 if ( drivername == "COM1" ) { 5 filetable[handle].openfuncptr = serial_io_open; 6 filetable[handle].writefuncptr = serial_io_write; 7 } 8 else { 9 filetable[handle].openfuncptr = file_io_open; 10 filetable[handle].writefuncptr = file_io_write; 11 driverparams = drivername + driverparams; 12 } // open file 15 filetable[handle].systemhandle = 16 filetable[handle].openfuncptr(driverparams); η αδή ο πίνακα filetable, στο νέο αυτό σχήµα, φυ άσσει τι διευθύνσει των ρουτινών αντί για το ποια βιβ ιοθήκη να χρησιµοποιήσει, ενώ οι συναρτήσει για το serial I/O και για το file I/O έχουν προσαρµοστεί έτσι ώστε να έχουν την ίδια σύνταξη. Αυτό έχει φι οσοφικέ προεκτάσει διότι προσθέτει µια τε είω διαφορετική ογική και δυνατότητε στην αντιµετώπιση του θέµατο. Ενώ πριν είχαµε ένα πίνακα από στοιχεία για κάθε αρχείο, τώρα στο αρχείο αυτό το συνδέουµε µε τον αντίστοιχο κώδικα για τον χειρισµό του (function pointers). Αυτό ο αντίστοιχο κώδικα µπορεί πράγµατι να αναφέρεται στην χρήση ενό αρχείου α ά µπορεί και σε οτιδήποτε ά ο (π.χ. σειριακή πόρτα, sockets, ή κάποια επεξεργασία κ. π.). v Με αυτή την τεχνική ο υπό οιπο κώδικα δεν χρειάζεται να ξέρει τι είναι το αρχείο για να το χρησιµοποιήσει. Απ ά κα εί τι προκαθορισµένε συναρτήσει, µε προκαθορισµένη σύνταξη, συναρτήσει που είναι ορισµένε µέσα στο filetable[handle]. Στην ακό ουθη αντικατάσταση τη PRINT β έπουµε καθαρά ότι το πρόγραµµα δεν χρειάζεται πια να ξέρει ότι το υποτιθέµενο αρχείο είναι σειριακή πόρτα ή κανονικό αρχείο. 1 params = "Hello, world!"; AntikatĹstash thc PRINT 2 filetable[handle].writefuncptr(filetable[handle].systemhandle, params); 6.2 Exèlixh se module Στην προηγούµενη διαδικασία η open γέµιζε το filetable µε τι διευθύνσει των ρουτινών για τι µεθόδου open, close και read, write. Είδαµε επίση ότι για να γίνει αυτό χρειαζόταν κάθε βι-

11 6 TEQNIK ES AN APTUXHS TOU PM 11 β ιοθήκη να συµπεριφέρεται µε τον ίδιο τρόπο, δη αδή να έχει µια προκαθορισµένη σύνταξη για τι προαναφερθέντε εντο έ. Οµω µέχρι τώρα ό α αυτά γινόντουσαν στο ίδιο το πρόγραµµα - εφαρµογή. Αυτό που µα ενδιαφέρει είναι οι βιβ ιοθήκε αυτέ να φορτώνονται κατά επι ογή από την εφαρµογή. Αυτό είναι δυνατό να γίνει αν χρησιµοποιήσουµε τον µηχανισµό δυναµική διασύνδεση βιβ ιοθηκών που παρέχεται στα σηµερινά.σ. Για να γίνει αυτό, αντί να έχουµε µια µεταβ ητή τύπου filetable, φτιάχνουµε εµεί ένα structure στο οποίο αποθηκεύουµε τι διευθύνσει των ρουτινών. 1 struct module { AntikatĹstash tou filetable 2 void *dlhandle; // handle of dynamic linked library 3 int (*open) (const char *filename, const char *mode); 4 void (*close)(int handle); 5 int (*write)(int handle, char *buffer, int size); 6 int (*read) (int handle, char *buffer, int size); 7 }; Ετσι, οιπόν, καθορίζουµε το ενιαίο interface ό ων των βιβ ιοθηκών, που από τώρα ονοµάζονται modules, όπου συµπεριφέρονται σαν αρχεία. η αδή, χειρίζονται µε τι κ ασσικέ εντο έ του file I/O 7. 1 module serial_io_lib; 2 module file_io_lib; Dunamikì fìrtwma module 3 4 serial_io_lib.dlhandle = dlopen("my_serial_io_lib.so", RTLD_LAZY); 5 serial_io_lib.open = dlsym(serial_io_lib.dlhandle, "open"); file_io_lib.dlhandle = dlopen("my_file_io_lib.so", RTLD_LAZY); 8 file_io_lib.open = dlsym(file_io_lib.dlhandle, "open"); Περισσότερα για τι δυναµική σύνδεση βιβ ιοθήκε στο [LPLib]. Με αυτό τον τρόπο είναι δυνατό να φορτώνουµε πο ά τέτοια modules και κρατώντα τον ίδιο κώδικα - εφαρµογή να ενα άσσουµε την έξοδο/είσοδο απ ά α άζοντα τον deðkth του module όπω ακριβώ β έπουµε στο παρακάτω παράδειγµα. 1 module *current_module; 2 ParĹdeigma me dôo modules 3 //current_module = &serial_io_lib; 4 current_module = &file_io_lib; 5 int handle = current_module->open("myfile", "w"); 6 current_module->read(handle, buffer, 1024); 7 current_module->close(handle); Οπω β έπουµε, αν απενεργοποιήσουµε την γραµµή 4 και ενεργοποιήσουµε την 3, τότε ο κώδικα αυτό αντί να διαβάζει από ένα αρχείο θα παίρνει στοιχεία από την σειριακή πόρτα. 7 open(), read(), write(), close(), eof(), seek(), fgets(), etc

12 6 TEQNIK ES AN APTUXHS TOU PM 12 Σ αυτό το σηµείο θα πρέπει να αντι αµβάνεστε πόσο εύκο ο θα ήταν, α άζοντα µια µόνο γραµµή κώδικα στην εφαρµογή, αυτή να χρησιµοποιεί συµπιεσµένα ή όχι αρχεία µε την χρήση τη zlib. 6.3 VFS Το VFS σηµαίνει Virtual File System δη αδή εικονικό σύστηµα αρχείων. Το ονοµάσαµε έτσι διότι η εφαρµογή νοµίζει ότι διαχειρίζεται ένα σύστηµα αρχείων, α ά αυτό το σύστηµα µπορεί να εκφράζει τε είω διαφορετικά πράγµατα. Κ ασσικά δείγµατα, είναι τα zip αρχεία όπου περιέχουν κατα όγου και αρχεία σε συµπιεσµένη µορφή, το registry των Windows, κ.α. Το VFS υποσύστηµα του PM, εκφράζει δύο καταστάσει. 1. Επίπεδο αρχείου. η αδή όταν έχουµε να κάνουµε µε εικονικά αρχεία όπω η σειριακή πόρτα. 2. Επίπεδο κατα όγων. η αδή όταν έχουµε να κάνουµε µε ο οκ ηρωµένο περιβά ον, µε κατα- όγου, αρχεία και file-attributes. Υποθέτω ότι η έξη file ακόµα σα περιορίζει την φαντασία στα κ ασσικά αρχεία. Αυτό είναι σηµαντικό άθο, δεν πρόκειται για αρχεία α ά για κώδικα! Η έξη file εκφράζει τον τρόπο επικοινωνία µε το module και όχι τι κάνει το module. Το αρχείο στο VFS θα µπορούσε κά ιστα να είναι µια ρουτίνα που στέ νει πίσω στην εφαρµογή τα αποτε έσµατα µια επεξεργασία ή οποία έγινε την ώρα ακριβώ που η εφαρµογή ζήτησε να ανοίξει το αρχείο. Α δούµε ένα απ ό παράδειγµα. Υποθέτουµε ότι έχουµε ένα µετρητή θερµοκρασία στο PC µα ο οποίο επιστρέφει την θερµοκρασία σε βαθµού Kelvin. Αυτή την συσκευή την διαχειριζόµαστε από την βιβ ιοθήκη που µα παρέχει ο κατασκευαστή, η οποία βιβ ιοθήκη έχει µια και µόνη συνάρτηση, την curtherm(). Ενα τυπικό πρόγραµµα θα έκανε τα παρακάτω για να µα εµφανίσει την θερµοκρασία σε βαθµού Kelvin και Celsius. 1 main() 2 { 3 double t = curtherm(); 4 5 printf("%f Kelvin\n", t); 6 printf("%f Celsius\n", t - 273); 7 } thermometer Επειδή όµω εµεί θέ ουµε να β έπουµε αυτέ τι µετρήσει σε ένα file-manager έτσι ώστε όταν κάνουµε κ ικ σε ένα αρχείο που ονοµάζεται /thermometer/kelvin και ένα που ονοµάζεται /thermometer/celsius να β έπουµε την τρέχουσα µέτρηση στην αντίστοιχη κ ίµακα φτιάχνουµε ένα αντίστοιχο VFS module. 1 char strkelvin[32]; 2 char strcelsius[32]; thermometer vfs module 3 4 int therm_open(const char *filename) 5 { 6 if ( strcmp(filename, "Celsius") == 0 ) {

13 6 TEQNIK ES AN APTUXHS TOU PM 13 7 sprintf(strcelsius, "%f", curtherm() - 273); 8 return 1; 9 } 10 else if ( strcmp(filename, "Kelvin") == 0 ) { 11 sprintf(strkelvin, "%f", curtherm()); 12 return 2; 13 } 14 return -1; // error 15 } int therm_read(int handle, char *buf, int size) 18 { 19 int len = 0; switch ( handle ) { 22 case 1: // Celsius-file data 23 len = strlen(strcelsius); 24 strncpy(buf, strcelsius, len); 25 break; 26 case 2: // Kelvin-file data 27 len = strlen(strkelvin); 28 strncpy(buf, strkelvin, len); 29 } 30 return len; 31 } void module_init(module *mod) 34 { 35 mod->open = therm_open; 36 mod->read = therm_read; 37 } Αυτό το module είναι ένα εικονικό σύστηµα αρχείων. Βέβαια το έχουµε απ οποιήσει εδώ α ά δεν έχει και µεγά η διαφορά από την πραγµατικότητα. Στο module init όπω β έπουµε καθορίζουµε ποια συνάρτηση ανα αµβάνει να κάνει το open και ποια το read. Α δούµε τι και πω ακριβώ θα συµβεί 1. Η εφαρµογή file-manager ζητά από τον PM να φορτώσει το module. 2. Το PM εκτε εί την module init ώστε να ξέρει ποιε συναρτήσει είναι υ οποιηµένε στο module και ποια ανα αµβάνει να κάνει τι. 3. Η εφαρµογή ζητά από το PM να ανοίξει το εικονικό αρχείο Celsius. 4. Το PM εκτε εί την therm open("celsious") και επιστρέφει τον εικονικό handle (επιστρέφεται από την therm open() ) πίσω στην εφαρµογή. 5. Η εφαρµογή ζητά από το PM να πάρει τα περιεχόµενα του αρχείου µε µια τυπική κ ήση στην fgets() ( module->fgets(...) ). 6. Το PM, µέσω τη δική του fgets() κα εί την therm read() για να πάρει τα στοιχεία και τα επιστρέφει στην εφαρµογή.

14 6 TEQNIK ES AN APTUXHS TOU PM Ektìc tou VFS......κ ειδιά PMFS Ωραία ό α αυτά α ά θα έπρεπε η εφαρµογή να µπορεί να ξέρει τι modules υπάρχουν στο σύστηµα για ποιο interface. Ετσι το deamon του PM, ανέ αβε να παρέχει αυτέ τι π ηροφορίε µέσω ενό εικονικού συστήµατο αρχείων, το ονοµαζόµενο pmfs. 1 main() 2 { 3 pm_vfs_module_t *pmfs; 4 strlist_t *list; 5 int i; 6 7 pm_init(); // initialize PM 8 LÐsta ìlwn twn vfs modules 9 // load PM virtual-file-system module 10 if ( (pmfs = pm_vfs_load("vfs/pmfs")) == NULL ) 11 panic("pm_vfs_load(): failed"); printf("the following VFS modules found:\n\n"); 14 list = pmfs->list(pmfs->mid, "/vfs/*"); 15 for ( i = 0; i < list->count; i ++ ) 16 printf("%d: %s\n", i+1, list->str[i]); strlist_destroy(list); 19 pm_vfs_release(pmfs); 20 } Η µέθοδο list είναι µια πιο προχωρηµένη έκδοση των opendir()/closedir(), και επιστρέφει µια ίστα µε τα ονόµατα των αρχείων. η αδή το αντίστοιχο των εντο ών ls ή/και dir που γνωρίζουµε από την κονσό α. 6.6 Ena ètoimo eikonikì sôsthma arqeðwn Α υποθέσουµε ότι έχουµε ένα file-manager ο οποίο ειτουργεί µε modules αντίστοιχα µε αυτά που περιγράψαµε παραπάνω, α ά προσθέστε και οιπέ κοινότυπε εργασίε όπω opendir()/closedir() και chdir()/rmdir()/mkdir(). Εχουµε ήδη φτιάξει τέτοιο πρόγραµµα - εφαρµογή που ειτουργεί άψογα, το vfssh, το οποίο είναι ένα shell σαν τα bash και tcsh µόνο που αντί να ειτουργεί µε το σύστηµα αρχείων του.σ., αυτό ειτουργεί αποκ ειστικά µε modules του PM. Σκεφτείτε όµω τώρα, πω θα φτιάξουµε ένα vfs module για την παρουσίαση των στοιχείων του κάθε χρήστη έτσι όπω αυτά αναφέρονται στο /etc/passwd.

15 7 ARQ ES TOU PM 15 Το συγκεκριµένο module, αν και όχι ακριβώ το ίδιο, υπάρχει στα παραδείγµατα και µπορείτε να το δείτε να ειτουργεί µέσω του vfssh. Εχουµε τα παρακάτω στοιχεία από τα κ ασσικά αρχεία του Unix (todo: passwd structure, groups) Τώρα πρέπει να φανταστούµε πω θα θέ αµε να υπάρχουν σε µορφή αρχείων. ογικά θα θέ αµε ένα κατά ογο για του χρήστε και ένα για τι οµάδε. Κάθε το κάθε αρχείο στον κατά ογο του χρηστών, θα πρέπει να περιέχει τα στοιχεία του χρήστη και φυσικά το όνοµά του να είναι το αντίστοιχο username. /users/ --- root --- nikos --- dimitris +--- yannis /groups/ --- root +--- users IerarqÐa eikonikoô sustămatoc Και να πω θα έπρεπε να εµφανίζεται ένα τυπικό εικονικό αρχείο. Nicholas Christopoulos Perieqìmena arqeðou /users/nikos User-ID : 501 Group-ID : 100 Home directory: /home/nikos Shell : /bin/tcsh Μπορείτε να τα δείτε αυτά µέσω του vfssh εκτε ώντα τι εντο έ ls και cat όπω ακριβώ θα κάνατε αν ήταν πραγµατικά αρχεία. Προσθέσαµε οιπόν στο PM µια βιβ ιοθήκη η οποία χτίζει ένα εικονικό σύστηµα αρχείων στην µνήµη. Το µόνο που χρειάζεται, οιπόν, να κάνει το module µα είναι να επεξεργαστεί τα στοιχεία των /etc/passwd και /etc/groups, και να τα γράψει στο εικονικό σύστηµα αρχείων, πράγµα που επιτυγχάνετε µε τι τυπικέ, file I/O, εντο έ, όπω θα κάναµε αν τα γράφαµε στο δίσκο. Από εκεί και πέρα το vfslib, η βιβ ιοθήκη αναφέραµε, ανα αµβάνει την διαχείριση του module κατά επι ογή βέβαια του προγραµµατιστή. 7 Arqèc tou PM 7.1 Logikă sqedðash Η ογική στο PM έχει µεγα ύτερη σηµασία από την δυνατότητα, διότι ο προγραµµατιστή και ο κάθε άνθρωπο βο εύεται µε τυποποιηµένε ογικέ ύσει και όχι µε ακροβατικέ δυνατότητε - προχειρότητε. Οταν ένα πράγµα είναι φτιαγµένο για να κάνει µια συγκεκριµένη ειτουργία, έτσι πρέπει να παραµείνει και όχι να προσφέρεται µέσω αυτή τη ειτουργία άσχετε δυνατότητε. Κατά την γνώµη µου, ο σωστό σχεδιασµό έχει να κάνει µε αυτό, δη αδή ο προγραµµατιστή να µην χρειάζεται να ανοίξει το βιβ ίο για να βρει πω θα κάνει τι, α ά αυτό να είναι αυτονόητο. Αν

16 7 ARQ ES TOU PM 16 χρειαστούν ποτέ εξτρά δυνατότητε αυτέ µπορούν να γίνουν µε µια παραπάνω συνάρτηση κατά κανόνα, αυτά τα εξτρά δεν χρειάζονται παρά µόνο σε εξαιρέσει. Το ακριβώ αντίθετο του σωστού σχεδιασµού µπορείτε να το µε ετήσετε στο Windows API, ή απ ά να διαβάσετε τον πο ύ κα ό σχο ιασµό του Σπινέ η[crqapi]. 7.2 EniaÐo interface Οταν γράφουµε κώδικα για µια εικόνα τύπου bmp, είναι αυτονόητο να απαιτούµε ο ίδιο κώδικα να ειτουργεί και για εικόνε τύπου jpeg. Οταν έχουµε µια βιβ ιοθήκη γραφικών που γράφει/διαβάζει την Video RAM, είναι αυτονόητο να απαιτούµε να διαχειρίζεται και memory bitmaps. Οταν γράφουµε και διαβάζουµε στο default file-system είναι αυτονόητο να απαιτούµε µε τον ίδιο τρόπο να διαχειριζόµαστε και memory sticks. Αυτά είναι από τα π έον τυπικά παραδείγµατα που ανα αµβάνει το PM να ύσει. Οµω δεν σταµατά εδώ, α ά επεκτείνετε στο ότι εφόσον κάτι µπορεί να δοµηθεί µε την κ ασσική ιεραρχική δοµή των συστηµάτων αρχείων τότε είναι αυτονόητο ότι πρέπει να ειτουργεί και έτσι µε τι ίδιε εντο έ όπω το κ ασσικό σύστηµα. Οταν έχουµε µια εικόνα είναι αυτονόητο ότι η εικόνα αυτή µπορεί να επεξεργαστεί µε την βιβ ιοθήκη γραφικών που προσφέρει το ίδιο το PM, και δεν χωρά αντιθέσει σ αυτό, εφόσον είναι εικόνα θα πρέπει να αποθηκεύεται / διαβάζεται σε / από ό ε τι µορφέ µε τον ίδιο τρόπο, εφόσον εµφανίζεται στην οθόνη µπορεί και να εκτυπωθεί και να καταγραφεί σε αρχείο OmadopoÐhsh sto PM Ποια όµω τµήµατα του ογισµικού ταιριάζουν σε τι είδου interface Το file I/O β έπετε, µπορεί να ενσωµατώσει σχεδόν τα πάντα, α ά δεν µπορεί να ικανοποιήσει ό ε τι απαιτήσει ούτε να κάνει το σύστηµα τόσο ευέ ικτο. Για παράδειγµα πω θα σχεδιάζουµε γραµµέ µε εντο έ read/write Σίγουρα µπορούµε, και µπορούµε να έχουµε ένα παραπάνω επίπεδο, που έτσι και α ιώ ήδη υπάρχει στο pml, για να χρησιµοποιούµε line αντί για write α ά δεν θα µπορούσαµε να εκµετα ευτούµε τον επιταχυντή τη κάρτα γραφικών. 1. VFS (virtual file system interface). Το αντίστοιχο module θα έπρεπε να υποστηρίζει τι file I/O εντο έ. Το interface αυτό έχει δύο επίπεδα, α) σαν αρχείο, β) σαν file system. 2. GFX (bitmap and vector graphics interface). Το αντίστοιχο module θα έπρεπε να υποστηρίζει εγγραφή και ανάγνωση pixels. 3. SND (sound interface). Το αντίστοιχο module θα έπρεπε να υποστηρίζει εγγραφή και ανάγνωση wave. 4. PTD (pointing devices interface). Το αντίστοιχο module θα έπρεπε να υποστηρίζει θέση και κατάσταση π ήκτρων. 5. KBD (keyboard interface). Το αντίστοιχο module θα έπρεπε να υποστηρίζει π ήκτρα-χαρακτήρε και συνδυασµού αυτών. 7.3 EniaÐo trìpoc metaforĺc dedomènwn Το ενιαίο interface δεν ύνει όµω ό α τα προβ ήµατα. Αν υποθέσουµε ότι έχουµε µια εικόνα σε µορφή png και θέ ουµε να την µετατρέψουµε σε µορφή jpeg, θα πρέπει αυτά τα δύο να συνεργάζονται, πράγµα που σηµαίνει ότι χρειαζόµαστε και ενιαία µορφή δεδοµένων. Για παράδειγµα ό ε οι εικόνε που επιστρέφονται ή στέ νονται στα modules είναι απαραίτητο να έχουν συγκεκριµένη µορφή, και αυτή καθορίστηκε να είναι όπω στην Video RAM α ά µε προκαθορισµένο

17 8 ETOIMA PARADE IGMATA 17 header που αναφέρει την ανά υση και το βάθο χρώµατο. Ετσι ό α τα σχετικά µε γραφικά modules ή βιβ ιοθήκε ξέρουν επακριβώ µε τι και πω να εργαστούν. Αντίστοιχα και για τα διανυσµατικά γραφικά (ξέρουµε πο ύ κα ά ότι κάθε βιβ ιοθήκη έχει δικό τη ορισµό για το διάνυσµα). Αντίστοιχα και για τον ήχο. 7.4 DiaqeÐrish modules Κατ αρχήν έπρεπε να φτιαχτεί ένα σύστηµα που να φορτώνει και να ξεφορτώνει του drivers µε όσο τον δυνατό ταχύτερο τρόπο και αυτό έγινε µε την χρήση ενό daemon ( pmd ) και µια βιβ ιοθήκη ( pml ) που συνδέεται µε την εφαρµογή. Οι drivers από την ά η µετατράπηκαν σε shared libraries (dynamic linked libraries) γι αυτό και αποκα ούνται modules. Για ό α τα modules θα έπρεπε να ισχύουν και συγκεκριµένοι κανόνε, όπω 1. Οι drivers να φορτώνονται και να ξεφορτώνονται δυναµικά ανά ογα µε τα κέφια τη εφαρµογή. 2. Οι drivers να µπορούν να ορίζονται και εξωτερικά, από τον χρήστη. η αδή αν ο χρήστη θα ήθε ε η έξοδο µια εφαρµογή αντί για την οθόνη να είναι το jpeg driver αυτό να είναι δυνατό να γίνει. 3. Ο ε οι εικόνε που στέ νονται ή επιστρέφουν από ένα driver να είναι πάντα µε συγκεκριµένη µορφή και µά ιστα µε την π έον απ ή. Αυτό επιτρέπει την µετακίνηση και επεξεργασία των δεδοµένων από κοινό κώδικα. 4. Ο α τα δεδοµένα ήχου που στέ νονται ή επιστρέφουν από ένα driver να είναι πάντα µε συγκεκριµένη µορφή και µά ιστα µε την π έον απ ή. Το PM έχει και ά α πράγµατα καθώ και υποστηρίζει ειτουργία ανά έκδοση του κάθε interface (όπου το module αναφέρει ποια έκδοση και τι interface υποστηρίζει) καθώ και δικτυακή επικοινωνία κ.α. εν θα επεκταθούµε όµω σε αυτά, θέ ουµε εδώ να δώσουµε την φι οσοφία του έργου και όχι τον ανα υτικό σχεδιασµό του. 7.5 Autìmath sumplărwsh sunartăsewn twn modules Πο ά πράγµατα που πρέπει να απαιτούνται από το interface µπορούν να αντικατασταθούν από κοινότυπο κώδικα. Για παράδειγµα η γραµµή στα γραφικά. εν χρειάζεται κάθε GFX module να περιέχει τον α γόριθµο αυτό, παρά µόνο αν υποστηρίζει κάποιον επιταχυντή. Ά ο ένα παράδειγµα είναι το fgets() στο VFS, το οποίο υ οποιήται µε κ ήσει στην αντίστοιχη read(), είναι όµω απαραίτητο να υποστηρίζεται από το VFS interface. Σ αυτέ τι περιπτώσει το PM ανα αµβάνει να συµπ ηρώσει αυτέ τι συναρτήσει αν αυτέ δεν έχουν οριστεί µέσα στο module. ογικό είναι να περιµένουµε ειδικά από τα γραφικά σε κάποιε περιπτώσει το module να περιέχει µόνο τι getpixel / putpixel ενώ σε ά ε να θέ ει να αντικαταστήσει το µεγα ύτερο µέρο τη βιβ ιοθήκη γραφικών. 8 Etoima paradeðgmata 8.1 vfstest Το ακό ουθο πρόγραµµα είναι µια τυπική εφαρµογή που χειρίζεται VFS modules. εν κάνει τίποτα παραπάνω από το να φορτώνει το αντίστοιχο module που παίρνει σαν παράµετρο και να τυπώνει τα

18 8 ETOIMA PARADE IGMATA 18 περιεχόµενα ενό από τα εικονικά αρχεία. Το module-key και το όνοµα του αρχείου δίδονται από τον χρήστη σαν παράµετρο από την κονσό α. 1 // vfstest.c 2 #include <pm_app.h> 3 4 int main(int argc, char *argv[]) 5 { 6 int handle; 7 pm_vfs_module *m; 8 9 pm_init(); // initialize PM if ( argc!= 3 ) // arguments 12 panic("usage: vfstest module-key open-file"); // load the module 15 if ( (m = pm_vfs_load(argv[1])) == NULL ) 16 panic("can t load the %s module", argv[1]); // open the "file" 19 if ( (handle = m->open(m->mid, argv[2], 0)) == -1 ) 20 panic("can t open the %s file", argv[2]); // display theirs contents 23 while ( m->gets(m->mid, handle, buf, 256) ) 24 printf("%s", buf); m->close(m->mid, handle); // close "file" 27 pm_vfs_release(m); // unload the module 28 return 0; 29 } Μπορούµε τώρα να δούµε εύκο α µερικέ από τι δυνατότητε του PM. Θα προτιµούσαµε να είσαστε συνδεδεµένο σαν διαχειριστή (root) διότι ορισµένα modules-παραδείγµατα έχουν φτιαχτεί για να ειτουργούν µε π ήρη δικαιώµατα στο σύστηµα. ParĹdeigma 1 Χρησιµοποιήστε το vfstest για να δείτε την ώρα από ένα τοπικό ή εξωτερικό (internet) διακο- µιστή. # vfstest vfs/telnet localhost:13 Αν η σύνδεση αποτύχει, αυτό σηµαίνει ότι δεν έχετε ενεργοποιήσει το timegen service στο σύστηµά σα. Φορτώστε µε ένα editor το αρχείο /etc/inetd.conf και βγά τε το # από την γραµµή του timegen. αναφορτώστε το inetd και προσπαθήστε ξανά. ParĹdeigma 2 Χρησιµοποιήστε το vfstest για να συνδεθήτε µέσω σειριακή πόρτα µε ένα ά ο µηχάνηµα. # vfstest vfs/serial /dev/ttys1:57600 Στο Palm µου, το δοκίµασα τρέχοντα το πρόγραµµα sertest.bas που είναι παράδειγµα τη SB και... έστει α χαρακτήρε στο PC. Αν το δοκιµάσετε θυµηθήτε ότι το vfstest µόνο διαβάζει δεδοµένα άρα το πρόγραµµα που θα συνδεθεί (π.χ. Minicom, Telix, Procomm, Hyperterminal) θα πρέπει να αποστέ ει δεδοµένα (π ήκτρα που πατάτε).

19 9 JEWRHTIK A PARADE IGMATA 19 ParĹdeigma 3 Χρησιµοποιήστε το vfstest για να πάρετε τα στοιχεία ενό χρήστη. # vfstest vfs/users users/root Π ηροφορίε, όπω το home directory και το επι εγµένο shell του χρήστη root θα πρέπει να εµφανιστούν στην κονσό α σα. 8.2 SunodeutikĹ paradeðgmata ` efarmogèc Από το CVS µπορείτε να κατεβάσετε περισσότερα παραδείγµατα. Τα παραδείγµατα αυτά βρίσκονται στον κατά ογο apps....( ίστα και µια περιγραφή) SunodeutikĹ paradeðgmata ` modules...( ίστα και µια περιγραφή)... 9 JewrhtikĹ paradeðgmata Προσωρινά τα ονοµάζουµε θεωρητικά διότι απ ούστατα δεν έχουµε κάτσει ακόµα να τα φτιάξουµε. η αδή δεν έχουµε αµφιβο ία ότι µπορούµε, απ ά δεν το έχουµε κάνει ακόµα. 9.1 Enac client pou leitourgeð san sôsthma arqeðwn Ena pantodônamo ergaleðo me lðgo kÿdika... Anaforèc [Bazaar] The Cathedral and the Bazaar, Eric S. Raymond, 1998/08/11 20:27:29 [CrqAPI] A Critique of the Windows Application Programming Interface, Diomidis Spinellis, University of the Aegean, Dec [Ε ΕΤ-Γ4] EleÔjero Logismikì / Logismikì AnoiktoÔ Kÿdika (EL/LAK) sthn EkpaÐdeush, th Dhmìsia DioÐkhsh kai stic Epiqeirăseic MikroÔ / MesaÐou Megèjouc., Οµάδα Εργασία ΟΕ Γ4, Εθνικό ίκτυο Ερευνα & Τεχνο ογία, Αθήνα, Ιαν [LPLib] Program Library HOWTO, David A. Wheeler, LDP, ver 1.07, 30 December 2002

20 ANAFOR ES 20 EuqaristÐec Dhmătrio KoukorĹba kai GiĹnnh BlaqogiĹnnh Το πείσµα του ηµήτρη πάνω στο PM είχα και έχω σκοπό να µην ασχο ούµαι µε το arm0nia project α ά και η εκνευριστική επιµονή του, είναι ο όγο ύπαρξη αυτού του εγγράφου. Για τα κρασιά που κεράσανε, και για τι ιδέε που αναπτύξαµε και οι τρει από κοινού κάτω από αρκετέ ώρε αµπε οφι οσοφία (το αγαπηµένο µου σπορ).

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

SÔgqronh nèa ellhnikă: problhmatikèc perioqèc tou graptoô lìgou B mèroc: perð sôntaxhc kai lexilogðou

SÔgqronh nèa ellhnikă: problhmatikèc perioqèc tou graptoô lìgou B mèroc: perð sôntaxhc kai lexilogðou EÖtupon TeÜqoc No. 10 >AprÐlioc 2003 59 SÔgqronh nèa ellhnikă: problhmatikèc perioqèc tou graptoô lìgou B mèroc: perð sôntaxhc kai lexilogðou Anna IordanÐdou Panepistămio Patrÿn Paidagwgikì Tmăma Dhmotikăc

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

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

Μετάδοση εδοµένων και ίκτυα υπολογιστών ΙΙ Εργαστηριακή Άσκηση 3. Σύνδεση υπολογιστών στα Windows

Μετάδοση εδοµένων και ίκτυα υπολογιστών ΙΙ Εργαστηριακή Άσκηση 3. Σύνδεση υπολογιστών στα Windows Μετάδοση εδοµένων και ίκτυα υπολογιστών ΙΙ Εργαστηριακή Άσκηση 3 Σύνδεση υπολογιστών στα Windows Όπως γνωρίζουµε από προηγούµενες τάξεις, κάθε υπολογιστής PC διαθέτει τουλάχιστον µία παράλληλη θύρα και

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

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

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

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

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Απόδοση των οδηγών αποθηκευτικών µέσων Μέσος χρόνος πρόσβασης (Average Access Time) Ταχύτητα µεταφοράς δεδοµένων (Data-Transfer

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

TTRM: paragwgă pinĺkwn kai mhqană anazăthshc katĺ th dwdekafjoggikă anĺlush mousikÿn èrgwn

TTRM: paragwgă pinĺkwn kai mhqană anazăthshc katĺ th dwdekafjoggikă anĺlush mousikÿn èrgwn EÖtupon TeÜqoc No. 0 >AprÐlioc 00 TTRM: paragwgă pinĺkwn kai mhqană anazăthshc katĺ th dwdekafjoggikă anĺlush mousikÿn èrgwn Alèxandroc Drosèlthc Lüderitzstrasse D- Berlin Deutschland / ermanða Prìlogoc

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

ISTORIKH KATASKEUH PRAGMATIKWN ARIJMWN BIBLIOGRAFIA

ISTORIKH KATASKEUH PRAGMATIKWN ARIJMWN BIBLIOGRAFIA ΛΟΓΙΣΜΟΣ CALCULUS Διαφορικός Λογισμός, Απειροστικός Λογισμός 1670 1740 Ουράνια Μηχανική Isaac Newton 1648-1727 Gottfried Wilhelm Leibniz 1646-1716 απειροστάπολύ μικρά μεγέθη, άπειροπάρα πολύ μεγάλο, όριο

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

L A TEX gia bĺrbarouc

L A TEX gia bĺrbarouc L A TEX gia bĺrbarouc Nikìlac Qristìpouloc nereus@freemailgr Ekdosh 11 Ajăna, IanouĹrioc 2004 PerÐlhyh Ellhnikì eisagwgikì keðmeno gia arqĺriouc, gia qrăstec twn Windows me lðgec allĺ aparaðthtec gnÿseic

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

Σύντοµες οδηγίες χρήσης atube Catcher

Σύντοµες οδηγίες χρήσης atube Catcher Σύντοµες οδηγίες χρήσης atube Catcher ελλατόλας Στέλιος 2 ο Ε.Κ.Φ.Ε. Ηρακλείου Κρήτης Περιεχόµενα Εγκατάσταση του προγράµµατος...4 Λειτουργία του προγράµµατος...6 Βασική λειτουργία (κατέβασµα ένα - ένα

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο 2006-07

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο 2006-07 Πληροφορίες Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Μόνο για την επόµενη Τετάρτη 25/10, το µάθηµα (12-13) δεν θα πραγµατοποιηθεί. Τα εργαστήρια θα ξεκινήσουν

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

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

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗς ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Εισαγωγή στο Unix Περιεχόμενα Εισαγωγή 2 Εισαγωγή

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

Ενσωματωμένα Συστήματα

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

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

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

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

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

Jerinì SqoleÐo Fusik c sthn EkpaÐdeush 28 IounÐou - 1 IoulÐou 2010 EstÐa Episthm n Pˆtrac

Jerinì SqoleÐo Fusik c sthn EkpaÐdeush 28 IounÐou - 1 IoulÐou 2010 EstÐa Episthm n Pˆtrac Kbantik Perigraf tou Kìsmou mac KwnstantÐnoc Sfètsoc Kajhght c Fusik c Genikì Tm ma, Panepist mio Patr n Jerinì SqoleÐo Fusik c sthn EkpaÐdeush 28 IounÐou - 1 IoulÐou 2010 EstÐa Episthm n Pˆtrac Ti ennooôme

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

Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης.

Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης. Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης. 1. SMART BOARD SERIAL NUMBER: Ο σειριακός αριθμός του Διαδραστικού πίνακα βρίσκεται στην δεξιά πλαϊνή μεριά

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

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε! Θέλετε να μάθετε πως μπορείτε να έχετε πρόσβαση στις 5250 οθόνες μέσω browser, χωρίς αλλαγή στις υπάρχουσες εφαρμογές και χωρίς εγκατάσταση στον client? Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

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

2 Ο Ε.Κ.Φ.Ε. ΗΡΑΚΛΕΙΟΥ. Οδηγίες χρήσης PDFCreator

2 Ο Ε.Κ.Φ.Ε. ΗΡΑΚΛΕΙΟΥ. Οδηγίες χρήσης PDFCreator 2 Ο Ε.Κ.Φ.Ε. ΗΡΑΚΛΕΙΟΥ Οδηγίες χρήσης PDFCreator Ηράκλειο 2008 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Σηµείωµα του συντάκτη... 2 Στοιχεία δηµιουργού του υλικού... 3 Εισαγωγή... 3 Τι είναι... 4 Που θα το βρείτε... 4 Τρόπος

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

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

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων Το File Transfer Protocol (FTP), (Πρωτόκολλο Μεταφοράς Αρχείων) είναι ένα ευρέως χρησιμοποιούμενο πρωτόκολλο σε δίκτυα τα οποία υποστηρίζουν

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

TeleCost Hotel για Panasonic TDA

TeleCost Hotel για Panasonic TDA TeleCost Hotel για Panasonic TDA 1. Οδηγίες Εγκατάστασης του Λογισμικού του Συστήματος Telecost Hotel Γενικά Για την εγκατάσταση του Λογισμικού του Συστήματος TeleCost HL θα πρέπει να ακολουθηθούν συνοπτικά

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 3) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

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

2.2.3 Η εντολή Εκτύπωσε

2.2.3 Η εντολή Εκτύπωσε 2.2.3 Η εντολή Εκτύπωσε Η εντολή Εκτύπωσε χρησιµοποιείται προκειµένου να εµφανίσουµε κάτι στην οθόνη του υπολογιστή. Για τον λόγο αυτό ονοµάζεται και εντολή εξόδου. Ισοδύναµα µπορεί να χρησιµοποιηθεί και

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

Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ «ΠΟΛΥΧΡΗΣΤΙΚΗΣ» ΕΚ ΟΣΗΣ ASP

Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ «ΠΟΛΥΧΡΗΣΤΙΚΗΣ» ΕΚ ΟΣΗΣ ASP Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ «ΠΟΛΥΧΡΗΣΤΙΚΗΣ» ΕΚ ΟΣΗΣ ASP Το πρόγραµµα σε αυτή την έκδοση υλοποιεί κάποιες πολιτικές για την ταυτόχρονη χρήση των αρχείων του από πολλούς χρήστες. Κάποιοι καταχωρούν στοιχεία, κάποιοι

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

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

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

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

Diakritˆ Majhmatikˆ I. Leutèrhc KuroÔshc (EÔh Papaðwˆnnou)

Diakritˆ Majhmatikˆ I. Leutèrhc KuroÔshc (EÔh Papaðwˆnnou) Diakritˆ Majhmatikˆ I Leutèrhc KuroÔshc (EÔh Papaðwˆnnou) PlhroforÐec... Tetˆrth, 09.00-11.00, Paraskeu, 18.00-20.00 SÔggramma 1: Λ. Κυρούσης, Χ. Μπούρας, Π. Σπυράκης. Διακριτά Μαθηματικά: Τα Μαθηματικά

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

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

Οδηγίες EQL Desktop (rev.1.0.23) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

Οδηγίες EQL Desktop (rev.1.0.23) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ Οδηγίες EQL Desktop (rev.1.0.23) Πρόγραμμα για τον Προγραμματισμό των Μηχανών D.P.S. S-800, Open Cash και S-710 μέσω Ηλεκτρονικού Υπολογιστή ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB Εγκατάσταση ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

ζωγραφίζοντας µε τον υπολογιστή

ζωγραφίζοντας µε τον υπολογιστή ζωγραφίζοντας µε τον υπολογιστή Μια από τις εργασίες που µπορούµε να κάνουµε µε τον υπολογιστή είναι και η ζωγραφική. Για να γίνει όµως αυτό πρέπει ο υπολογιστής να είναι εφοδιασµένος µε το κατάλληλο πρόγραµµα.

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

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

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

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Email: liliadis@fmenr.duth.gr 1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Τα προγράµµατα αποτελούνται από εντολές οι οποίες γράφονται σε έναν απλό επεξεργαστή που προσφέρει και το Περιβάλλον της Visual C++. Οι εντολές

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή Ειδικό Τεύχος : Linux και Ηχος Η Υποδοµή ηµήτρης Γλυνός glynos@storm.cs.unipi.gr Μάιος 2004 Linux και Ηχος, µια πονεµένη ιστορία Οδηγοί (drivers) για τις κάρτες ήχου παρέχονται παραδοσιακά από τους κατασκευαστές

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

Λειτουργικά Συστήματα

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

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4) Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.11 Πρωτόκολλα Εφαρµογής 104. Αναφέρετε ονοµαστικά τις πιο χαρακτηριστικές εφαρµογές που υποστηρίζει η τεχνολογία TCP/IP οι οποίες είναι διαθέσιµες στο ιαδίκτυο 1. Ηλεκτρονικό

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

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6.

SC : Αλλαγή είδους (Sales Change)- Αριθµός Πεδίων 6. D.P.S. 710 DRIVER Με την εγκατάσταση του οδηγού D.P.S 710 εγκαθίστανται και οι usb drivers στο φάκελο C:\DPS710_FISCAL\DRIVERS Συνδέστε την ταµειακή και στο παράθυρο που θα εµφανίσουν τα windows για την

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

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

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

Ενδεικτική περιγραφή μαθήματος

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

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

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

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

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

Λίγα λόγια από το συγγραφέα... 7. 91 Εισαγωγή στους υπολογιστές... 9. 92 Μονάδες µέτρησης χωρητικότητας... 31. 94 Συσκευές εισόδου...

Λίγα λόγια από το συγγραφέα... 7. 91 Εισαγωγή στους υπολογιστές... 9. 92 Μονάδες µέτρησης χωρητικότητας... 31. 94 Συσκευές εισόδου... Περιεχόµενα Λίγα λόγια από το συγγραφέα... 7 91 Εισαγωγή στους υπολογιστές... 9 92 Μονάδες µέτρησης χωρητικότητας... 31 93 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή... 37 94 Συσκευές εισόδου...

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

ΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Μαγνητικοί ίσκοι Τα δεδοµένα αποθηκεύονται στο µαγνητικό φιλµ του δίσκου Ο δίσκος περιστρέφεται µε

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

Users / Groups / Permissions. Πώς ξεκίνησε η ανάγκη για πολλαπλούς χρήστες σε ένα σύστημα;

Users / Groups / Permissions. Πώς ξεκίνησε η ανάγκη για πολλαπλούς χρήστες σε ένα σύστημα; Πώς ξεκίνησε η ανάγκη για πολλαπλούς χρήστες σε ένα σύστημα; Ένα λειτουργικό σύστημα διαθέτει πληθώρα λειτουργιών που άλλες το ξεχωρίζουν και άλλες υπάρχουν απλά για να το ολοκληρώσουν. Μια εκ των βασικών

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

ΣΥΝ ΕΣΗ Η/Υ ΣΤΟ LAN TOY ΙΟΝΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINXP(ΕΛΛΗΝΙΚΑ)

ΣΥΝ ΕΣΗ Η/Υ ΣΤΟ LAN TOY ΙΟΝΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINXP(ΕΛΛΗΝΙΚΑ) ΣΥΝ ΕΣΗ Η/Υ ΣΤΟ LAN TOY ΙΟΝΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINXP(ΕΛΛΗΝΙΚΑ) 1.Εισαγωγή Για να µπορέσει ένας υπολογιστής να συνδεθεί στο τοπικό δίκτυο του Ιονίου θα πρέπει κατ' αρχήν να βρίσκεται σε

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

Ενσωματωμένα Συστήματα

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

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux 1 Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux Το Linux είναι ένα λειτουργικό σύστημα όμοιο με το Unix που αναπτύχθηκε από έναν πυρήνα (kernel, Εικ.1) τον οποίο δημιούργησε το 1991 ο Linus Torvalds όντας

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.1-2.4: Εισαγωγή στην C ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγή στην C: Σύνταξη και Σηµασιολογία σχόλια µεταβλητές και σταθερές τύποι δεδοµένων Μετά αυτές τις δυο διαλέξεις

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

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

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

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

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

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

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 34: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πίνακες εικτών (Pointers Arrays) Θέματα ιάλεξης Στην ενότητα

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

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

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

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

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

Σηµαντικές παρατηρήσεις σχετικά µε το backround: ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑΣ SOFTWARE SAE10 Το software της αναγγελίας ορόφων είναι απαραίτητο για τη δηµιουργία των USB flash που θα χρησιµοποιηθούν στην πλακέτα SAE10. Προσφέρει ταχύτητα, ευελιξία και πολλές

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

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

Εισαγωγή στις Βάσεις εδοµένων και την Access

Εισαγωγή στις Βάσεις εδοµένων και την Access Μάθηµα 1 Εισαγωγή στις Βάσεις εδοµένων και την Access Τι είναι οι βάσεις δεδοµένων Μία βάση δεδοµένων (Β..) είναι µία οργανωµένη συλλογή πληροφοριών, οι οποίες είναι αποθηκευµένες σε κάποιο αποθηκευτικό

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

Εισαγωγή και επεξεργασία δεδοµένων

Εισαγωγή και επεξεργασία δεδοµένων Μάθηµα 4 Εισαγωγή και επεξεργασία δεδοµένων Εισαγωγή δεδοµένων σε πίνακα 1. Ανοίγουµε το παράθυρο του πίνακα Υπάλληλοι σε προβολή φύλλου δεδοµένων. 2. Η κενή γραµµή, η οποία υπάρχει πάντα στον πίνακα,

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

To λεξικό του Internet

To λεξικό του Internet To λεξικό του Internet A Address: Ο τόπος που βρίσκεται μια πηγή του Internet. Μια e-mail address μπορεί να έχει την εξής μορφή : georgepapado@hotmail.com. Μια web address είναι κάπως έτσι: http://www.in.gr.

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

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE INTERNET PHONE A.S. DRIGAS Applied Technologies Department NCSR DEMOKRITOS Ag. Paraskevi GREECE dr@imm.demokritos.gr http://imm.demokritos.gr Το Internet Phone θέτει καινούργια δεδοµένα για την επικοινωνία

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

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885 CubisLITE Client Οδηγίες Χρήσεως Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885 1 ΠΕΡΙΕΧΟΜΕΝΑ Γενικά 1. Τι είναι ο CubisLITE Server 2. Τι είναι ο

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

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1 Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP Περιεχόµενα Τι είναι η υπηρεσία FTP;...2 FTP από τη γραµµή εντολών των Windows...2 Το πρόγραµµα WS-FTP...4 Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στον επιστημονικό προγραμματισμό 1 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo 1 Εισαγωγή στo MatLab

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

Εγκατάσταση. Εγκατάσταση του Wamp

Εγκατάσταση. Εγκατάσταση του Wamp Εγκατάσταση Εγκατάσταση του Wamp Η εγκατάσταση χωρίζεται σε δύο µέρη. Πρώτα θα εγκαταστήσουµε το Wamp, ώστε να µετατρέψουµε τον υπολογιστή µας σε Web Server και µετά θα εγκαταστήσουµε το Joomla. Η εγκατάσταση

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

Τι είναι Κεντρική Μονάδα Επεξεργασίας(CPU: Central Processing Unit);

Τι είναι Κεντρική Μονάδα Επεξεργασίας(CPU: Central Processing Unit); ΚΕΦΑΛΑΙΟ 3 Τι είναι η μονάδα συστήματος (System Unit); Είναι το κουτί που φιλοξενεί και τροφοδοτεί µε ρεύµα τα διάφορα εξαρτήματα που απαρτίζουν τον υπολογιστή. Συναντάται σε δύο µορφές: πύργου (tower)

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

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά

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

2. ΣΥΝ ΕΣΗ ΤΟΥ NETMOD ΜΕ ΤΟΝ Η/Υ

2. ΣΥΝ ΕΣΗ ΤΟΥ NETMOD ΜΕ ΤΟΝ Η/Υ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Εισαγωγή... 2 Σύνδεση του netmod me ton Η/Υ... 3 Εγκατάσταση του netmod σε win 9x/me... 5 Εγκατάσταση µε υποστήριξη pnp... 5 Χειροκίνητη εγκατάσταση netmod...10 Οδηγίες σύνδεσης στο

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

L mma thc 'Antlhshc. A. K. Kapìrhc

L mma thc 'Antlhshc. A. K. Kapìrhc L mma thc 'Antlhshc A. K. Kapìrhc 12 MartÐou 2009 2 Perieqìmena 1 Το Λήμμα της Άντλησης για μη κανονικές γλώσσες 5 1.1 Μη κανονικές γλώσσες..................................... 5 1.2 Λήμμα άντλησης για

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Python & NLTK: Εισαγωγή Εισαγωγή Γιατί Python? Παρουσίαση NLTK Πηγές και χρήσιμα εργαλεία Φροντιστήριο σε Python Στο φροντιστήριο: Εισαγωγή στην Python Ζητήματα προγραμματισμού για

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

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΛΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Εξετάσεις Ιουνίου 2002

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΛΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Εξετάσεις Ιουνίου 2002 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΛΙΚΩΝ Εξετάσεις Ιουνίου (α) Αναπτύξτε την µέθοδο του τραπεζίου για τον αριθµητικό υπολογισµό του ολοκληρώµατος: b I( f ) = f ( x) a όπου f (x) συνεχής και ολοκληρώσιµη

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

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

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

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

Κύρια & Περιφερειακή Μνήµη

Κύρια & Περιφερειακή Μνήµη Κύρια & Περιφερειακή Μνήµη Κύρια Μνήµη RAM ROM Cache Περιεχόµενα Μονάδες Μαζικής Αποθήκευσης Μαγνητικοί ίσκοι Μαγνητικές Ταινίες Οπτικά Μέσα Ηκύρια µνήµη (Main Memory) Η κύρια µνήµη: Αποθηκεύει τα δεδοµένα

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

α. 1024 Megabyte. β. 1024 Gigabyte. γ. 1048576 Gigabyte. δ. 1048576 byte.

α. 1024 Megabyte. β. 1024 Gigabyte. γ. 1048576 Gigabyte. δ. 1048576 byte. ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΓΙΑ ΠΛΗΡΩΣΗ ΜΙΑΣ ΚΕΝΗΣ ΘΕΣΗΣ ΛΕΙΤΟΥΡΓΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΟ ΗΜΟ ΑΓΛΑΝΤΖΙΑΣ Μάθηµα: ΕI ΙΚΟ (Η.Υ.)

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

MicromediaFiscalServer v.1.1.

MicromediaFiscalServer v.1.1. MicromediaFiscalServer v.1.1. Ο MicromediaFiscalServer(MFS) επιτρέπει σε εµπορικές εφαρµογές να χρησιµοποιήσουν ταµειακή µηχανή σαν φορολογικό εκτυπωτή χωρίς να υλοποιήσουν άµεση επικοινωνία µε την ταµειακή.

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

Αντί προλόγου. 1. Τι είναι το Twitter;

Αντί προλόγου. 1. Τι είναι το Twitter; Περιεχόµενα Αντί προλόγου...7 Πώς να χρησιµοποιήσετε το βιβλίο...13 Κεφάλαιο 1: Πώς δηµιουργώ τον λογαριασµό µου στο Twitter;...15 Κεφάλαιο 2: Πώς µπορώ να συνδεθώ και να αποσυνδεθώ από το Twitter;...37

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

Διάλεξη 17: Έλεγχος Λογισμικού

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

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

Ενεργοποίηση του πρωτοκόλλου IPv6

Ενεργοποίηση του πρωτοκόλλου IPv6 Ενεργοποίηση του πρωτοκόλλου IPv6 Στις επόµενες παραγράφους περιγράφουµε τα βασικά βήµατα που πρέπει να ακολουθήσει ο τελικός χρήσης για µια αντιπροσωπευτική οµάδα λειτουργικών συστηµάτων ώστε να συνδεθεί

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