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 α ά και η εκνευριστική επιµονή του, είναι ο όγο ύπαρξη αυτού του εγγράφου. Για τα κρασιά που κεράσανε, και για τι ιδέε που αναπτύξαµε και οι τρει από κοινού κάτω από αρκετέ ώρε αµπε οφι οσοφία (το αγαπηµένο µου σπορ).

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

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

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

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

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

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ" (ΕΜ102), ΕΡΓΑΣΙΑ 1η

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ (ΕΜ102), ΕΡΓΑΣΙΑ 1η "ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ" (ΕΜ102), ΕΡΓΑΣΙΑ 1η Σε αυτήν την εργασία καλείστε να κατασκευάσετε τον πηγαίο κώδικα γλώσσας C για το εκτελέσιµο αρχείο µε ό- νοµα ATM, που όταν εκτελείται σε κονσόλα προσοµοιώνει

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

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

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

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

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

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

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

Οδηγίες 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 Εγκατάσταση ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Τι είναι ο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα Προγραµµατισµού 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 Θα

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

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

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

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

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

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

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

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

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

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

11 OktwbrÐou 2012. S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc

11 OktwbrÐou 2012. S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc Mˆjhma 7 0 11 OktwbrÐou 2012 Orismìc sunart sewn mèsw orismènwn oloklhrwmˆtwn To orismèno olokl rwma prosfèrei ènan nèo trìpo orismoô sunˆrthshc afoô to orismèno olokl rwma mia suneqoôc sunˆrthshc f (t),

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

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

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

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

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

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

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

Σύστηµα Αρχείων και Καταλόγων

Σύστηµα Αρχείων και Καταλόγων ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

TeleCost Hotel για Panasonic TDA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: Λ. Κυρούσης, Χ. Μπούρας, Π. Σπυράκης. Διακριτά Μαθηματικά: Τα Μαθηματικά

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

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

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

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

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

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Τα τμήματα ενός ηλεκτρονικού υπολογιστή είναι: 1. Επεξεργαστής 2. Μνήμη RAM και ROM 3. Κάρτα γραφικών 4. Μητρική Πλακέτα 5. Σκληρός Δίσκος 6. DVD / Blue Ray 7. Τροφοδοτικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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 θέτει καινούργια δεδοµένα για την επικοινωνία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τύποι αρχείων Ρεύματα Άνοιγμα ρευμάτων Εγγραφή και ανάγνωση δεδομένων προς/από ένα ρεύμα Διαχείριση και κλείσιμο ρευμάτων Παραδείγματα

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

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

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

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

Μάθημα 4.7 Θύρες περιφερειακών

Μάθημα 4.7 Θύρες περιφερειακών Μάθημα 4.7 Θύρες περιφερειακών - Εισαγωγή - Η σειριακή θύρα - Η παράλληλη θύρα - Οι θύρες πληκτρολογίου και ποντικιού τύπου PS/2 - Ο διάδρομος USB Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE...2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ...3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ...4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)...5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ...6 Κεντρικό μενού

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

Τεχνικές αλλαγές στις εκδόσεις

Τεχνικές αλλαγές στις εκδόσεις Τεχνικές αλλαγές στις εκδόσεις SingularLogic Control 4 rel 3.05 SingularLogic Control 1, 2, 3 rel 3.05 SingularLogic Accountant rel 3.05 SingularLogic Λογιστικά rel 3.05 ή µεταγενέστερες εκδόσεις SingularLogic

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

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

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

Κεφάλαιο 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 (); Πρότυπο ( ήλωση) Συνάρτησης (

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

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

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

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

B) Ετοιμάζοντας μια Παρουσίαση

B) Ετοιμάζοντας μια Παρουσίαση B) Ετοιμάζοντας μια Παρουσίαση Τι είναι μια παρουσίαση με τη βοήθεια ηλεκτρονικού υπολογιστή Ο υπολογιστής με την κατάλληλη εφαρμογή, μπορεί να μας βοηθήσει στη δημιουργία εντυπωσιακών εγγράφων, διαφανειών

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

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

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

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

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

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

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

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

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

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

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

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

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

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

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

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

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

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System) Υλικό Hardware Λογισμικό Software... κώδικας ΥΛΙΚΟ Κάθε ηλεκτρονικό, ηλεκτρικό και μηχανικό μέρος του Η/Υ. ΛΟΓΙΣΜΙΚΟ Προγράμματα,δηλαδή οδηγίες γιατοτιπρέπεινακάνειοη/υ. Λειτουργικό Σύστημα Είναι ένα βασικό

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

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

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

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

MicromediaFiscalServer v.1.1.

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

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

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

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

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

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

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

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

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

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

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

Το υλικό του υπολογιστή

Το υλικό του υπολογιστή Το υλικό του υπολογιστή Ερωτήσεις 1. Τι αντιλαμβάνεστε με τον όρο υλικό; Το υλικό(hardware) αποτελείται από το σύνολο των ηλεκτρονικών τμημάτων που συνθέτουν το υπολογιστικό σύστημα, δηλαδή από τα ηλεκτρονικά

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

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

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

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

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

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