Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Ποιος είναι ο σκοπός του εργαστηρίου

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

Download "Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Ποιος είναι ο σκοπός του εργαστηρίου"

Transcript

1 Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Γιώργος Μυλωνάς Παρασκευή, 7 Νοεµβρίου 2008 Αίθουσα Β3 Προηγούµενο ϕροντιστήριο Tasks: get the job done Ελεγχος παραλληλίας Ειδικά ϑέµατα Active Messages Το περιβάλλον του TinyOS Εισαγωγή στον TOSSIM Command line interface Το γραφικό περιβάλλον TinyViz Στο προηγούµενο ϕροντιστήριο... Ποιος είναι ο σκοπός του εργαστηρίου Είπαµε ότι στο εργαστήριο του µαθήµατος ϑα χρησιµοποιήσουµε το TinyOS Είδαµε κάποιες ϐασικές έννοιες της nesc, της γλώσσας προγραµµατισµού στο TinyOS Βασικές έννοιες: components, modules, configurations, interfaces,... Σύντοµη επανάληψη και πρακτικά ϑέµατα Στο εργαστήριο ϑα υλοποιήσουµε κάποιους απλούς κατανεµηµένους αλγόριθµους Επίσης, ϑέλουµε να µελετήσουµε κάποιες πλευρές της λειτουργίας των κατανεµηµένων συστηµάτων, όπως: 1. Αξιόπιστη και αναξιόπιστη ανταλλαγή µηνυµάτων 2. Κόµβοι που παθαίνουν ϐλάβες κατά τη λειτουργία του συστήµατος 3. Γενικά, συνθήκες που µεταβάλλονται Το TinyOS και η nesc µας προσφέρουν µία ϐάση για να προγραµµατίσουµε

2 TinyOS nesc Πολύ µικρό σε µέγεθος (και απαιτήσεις) Σχεδιασµένο ειδικά για συστήµατα µε λιγοστούς πόρους και προσανατολισµένο στην εξοικονόµηση ενέργειας (ασύρµατα δίκτυα αισθητήρων) Μπορεί να χρησιµοποιηθεί για τη δηµιουργία κατανεµηµένων συστηµάτων (ειδικού) σκοπού Παρέχει ένα σύνολο από υπηρεσίες στο χρήστη (ασύρµατη και σειριακή επικοινωνία, κτλ), οι οποίες ϑα µας ϕανούν χρήσιµες για την υλοποίηση κατανεµηµένων αλγορίθµων Το προγραµµατιστικό µοντέλο του TinyOS ονοµάζεται nesc nesc = network embedded system C Βασίζεται στη C Το TinyOS και οι ϐιβλιοθήκες του είναι γραµµένες σε nesc Εννοιες: component, interface, module, configuration, command, event (µια πρώτη επαφή στο πρώτο ϕροντιστήριο), task (ϑα τα δούµε σήµερα) Components Interfaces Κάθε εφαρµογή στο TinyOS στην ουσία είναι ένα γράφηµα από components Τα components µοιάζουν µε τα αντικείµενα της c++ Υπάρχει όµως ακόµα πιο αυστηρός διαχωρισµός υλοποίησης και διασύνδεσης απ ότι στα αντικείµενα της C++ Μια ϐασική διαφορά είναι ότι στη nesc έχουµε µόνο τοπικό και όχι καθολικό χώρο ονοµάτων Μπορούµε να τα δούµε ως µαύρο κουτί µε καθορισµένες εισόδους/εξόδους Υπάρχει ένας scheduler ο οποίος ϱυθµίζει τη ϱοή ελέγχου σε αυτό το γράφηµα των components Τα components επικοινωνούν µεταξύ τους µόνο µε τη χρήση κάποιων interface (ακµές του γραφήµατος) Είναι διπλής κατεύθυνσης: 1. µε τα command απαιτούµε να εκτελεστεί κάποια λειτουργία από το component, καλούµε από ένα component να εκτελεστεί µια συνάρτηση ενός άλλου component 2. µε τα event το component µας γνωστοποιεί κάποιο συµβάν, µας έρχεται ειδοποίηση ότι τελέστηκε κάποια λειτουργία Ενα interface περιέχει µόνο τη δήλωση command και event (δηλαδή τη δήλωση κάποιων συναρτήσεων) Ενα interface µπορεί, ενδεχοµένως, να περιλαµβάνει µόνο commands

3 Components Υπάρχουν δύο είδη components, τα modules και τα configurations Ενα component µπορεί να παρέχει κάποιο interface. Σε αυτή την περίπτωση πρέπει να υλοποιεί τις εντολές (command) που ορίζει το αντίστοιχο interface Ενα component µπορεί να χρησιµοποιεί κάποιο interface. Σε αυτή την περίπτωση πρέπει να ορίσουµε τί γίνεται όταν έρθει κάποιο event µετά τη χρήση κάποιας εντολής του interface Modules Παρέχουν και χρησιµοποιούν interface για να επικοινωνήσουν µε άλλα component Περιέχουν κώδικα σε C για την υλοποίηση λειτουργίας Μοιάζουν µε hardware component Configurations Ορίζουν ένα πλήθος από components ως οµάδα Ορίζουν τον τρόπο που επικοινωνούν µεταξύ τους αντιστοιχίζοντας εισόδους και εξόδους ανάµεσά τους Μοιάζουν µε τη διασύνδεση των chip σε µια πλακέτα Modules Modules (2) ηλώνουµε ποια interface χρησιµοποιούµε και ποια παρέχουµε µε δυο λίστες uses{... και provides{... ηλώνουµε µεταβλητές που είναι ορατές στο component (frame) Ορίζουµε τις λειτουργίες του component σε κώδικα C Ορίζουµε τις λειτουργίες που αναφέρονται στα interface που παρέχουµε Ορίζουµε τι γίνεται αν µας έρθει µήνυµα (event) µετά από command που χρησιµοποιήσαµε Μπορούµε να χρησιµοποιούµε και να παρέχουµε πολλά interface Κάθε interface µπορεί να προσφέρει διαφορετικό πλήθος λειτουργιών

4 Παράδειγµα interface Παράδειγµα module StdControl interface StdControl { command result_t init(); command result_t start(); command result_t stop(); SendSomething interface SendSomething { command result_t send(tos_msg* m); event result_t senddone();... Configurations Παράδειγµα configuration Περιγράφουν τον τρόπο που διασύνδεονται µεταξύ τους άλλα components (modules ή άλλα configuration) Αν ένα component χρησιµοποιεί το interface A, το οποίο παρέχεται από το component B αυτό πρέπει να δηλωθεί Τρεις δηλώσεις διασύνδεσης: 1. endpoint1 = endpoint2 2. endpoint1 endpoint2 3. endpoint1 endpoint2 (που είναι ίδιο µε το endpoint2 endpoint1 ) configuration D { provides interface X; implementation { components C1, C2; X = C1.X; X = C2.X;

5 Γενική άποψη µιας εφαρµογής σε nesc Παράδειγµα εφαρµογής: Blink Blink.nc Κάθε εφαρµογή σε nesc έχει ένα top-level configuration που: 1. καθορίζει τα components που απαρτίζουν την εφαρµογή 2. πώς διασυνδέονται configuration Blink { implementation { components Main, BlinkM, ClockC, LedsC; Main.StdControl->BlinkM.StdControl; BlinkM.Clock->ClockC; BlinkM.Leds->LedsC; Χρήση µνήµης στο TinyOS Προηγούµενο ϕροντιστήριο Η χρήση των interface για την επικοινωνία των component έχει ως αποτέλεσµα να είναι εντελώς στατική η διασύνδεσή τους Ο µεταγλωττιστής ξέρει ακριβώς ποια component χρειάζονται και τελικά χρησιµοποιεί µόνον αυτά Οι µεταβλητές επίσης καταλαµβάνουν στατικά χώρο στη µνήµη εν υπάρχει malloc ή new κ.ο.κ. Tasks: get the job done Ελεγχος παραλληλίας Ειδικά ϑέµατα Active Messages Το περιβάλλον του TinyOS Εισαγωγή στον TOSSIM Command line interface Το γραφικό περιβάλλον TinyViz

6 Tasks Λογική χρήσης των task Τα task είναι ουσιαστικά µια light µορφή thread Τα χρησιµοποιούµε για να εκτελέσουµε τον κύριο όγκο δουλειάς στο πρόγραµµά µας Τα task έχουν πρόσβαση στις µεταβλητές του component τους Η χρήση task επιβάλλεται σε περιπτώσεις που χρησιµοποιούµε event, γιατί δεν µπορούµε να στείλουµε event από τον κώδικα που υλοποιεί κάποιο command. Πρέπει να ϕτιάξουµε ένα task για να στείλουµε το event. 1. Το component A ϑέλει να εκτελέσει κάποιο command του component B 2. Αρχίζει να εκτελείται το command στο Β, κάνει κάποια σύντοµη εργασία και µετά καλεί ένα task για να εκτελέσει το υπόλοιπο της εργασίας 3. Αυτό το task µπαίνει σε µια ουρά από task 4. Ο scheduler του συστήµατος σε κάποια ϕάση ϑα το εκτελέσει 5. Το task µπορεί να στείλει ένα event πίσω στο component A 6. Το Α ϑα ειδοποιηθεί για το event και ϑα εκτελέσει τον αντίστοιχο κώδικα Μια άλλη οπτική γωνία Παραλληλία και preemption στο TinyOS Μπορούµε να σκεφτούµε µια εφαρµογή TinyOS σαν ένα αυτόµατο Οι µεταβάσεις από τη µια κατάσταση στην άλλη γίνονται µε τη χρήση των command και των event Οι υπολογισµοί σε κάθε κατάσταση (ιδανικά) γίνονται µε τη χρήση των task Αφού τα command και τα event εξυπηρετούν στην µετάβαση από τη µια κατάσταση στην άλλη ϑέλουµε να είναι σύντοµα Τα task ϕροντίζουν για την εκτέλεση των περισσότερων υπολογισµών Ενας scheduler επιβλέπει την εκτέλεση των command, event, task, hardware interrupts Υπάρχουν απλοί κανόνες και προτεραιότητες Τα task είναι ίσα µεταξύ τους: όταν αρχίσει να εκτελείται ένα, δε µπορεί να διακοπεί από άλλο Τα task εκτελούνται µε FIFO τρόπο από µια ουρά Τα event, αντίθετα, έχουν µεγαλύτερη προτεραιότητα από τα task: µπορούν να διακόψουν την εκτέλεσή ενός task Ενα event µπορεί να διακόψει επίσης την εκτέλεση ενός άλλου event

7 Σύνταξη κλήσης command, event, task Παράδειγµα χρήσης task call commandx(...) : καλείται η εντολή commmandx signal eventy(...) : στέλνεται το eventy post taskxy(...) : το taskxy µπαίνει στην ουρά προς εκτέλεση Τα command και τα event εκτελούνται άµεσα Περιµένουµε να πάρουµε κάποιο µήνυµα στείλε τους γείτονές σου και κατάσταση Οταν συµβεί αυτό, στέλνουµε αντίστοιχο µήνυµα event result_t ReceiveMessage.Received(...) {... post sendreply(); return SUCCESS; task sendreply() {... set up a message and then send it... Scheduler Atomic Οταν µεταγλωττίζουµε την εφαρµογή µας, ο compiler ϐάζει το scheduler στον κώδικά µας. Είναι ένας απλός ϐρόχος Αφού η εκτέλεση των task µπορεί να διακοπεί και να παρεµβληθεί άλλος κώδικας, ενδεχοµένως έχουµε συνθήκες ανταγωνισµού Αυτό σηµαίνει ότι προσπαθούµε να έχουµε πρόσβαση π.χ. σε κάποια µεταβλητή ταυτόχρονα από δύο µέρη του κώδικά µας Για να αποφύγουµε αυτές τις καταστάσεις, χρησιµοποιούµε το keyword atomic Ο κώδικας που χαρακτηρίζεται atomic δεν µπορεί να σταµατήσει να εκτελείται αφού έχει ξεκινήσει η εκτέλεσή του από άλλο µέρος του κώδικα Καλό είναι να µην χρησιµοποιούµε συνέχεια το atomic, γιατί καθυστερεί η εκτέλεση του υπόλοιπου κώδικα της εφαρµογής

8 Ανίχνευση συνθηκών ανταγωνισµού Προηγούµενο ϕροντιστήριο Είπαµε ότι η διασύνδεση των component κατά τη διάρκεια της µεταγλώττισης του κώδικα γίνεται στατικά Αυτό επιτρέπει να ανακαλύψει ο µεταγλωττιστής συνθήκες ανταγωνισµού, οπότε µας προειδοποιεί σχετικά Μερικές ϕορές οι προειδοποιήσεις αυτές δεν είναι απόλυτα σωστές Μπορούµε να καθορίσουµε ότι δεν υπάρχει τέτοιο ϑέµα χρησιµοποιώντας το keyword norace Tasks: get the job done Ελεγχος παραλληλίας Ειδικά ϑέµατα Active Messages Το περιβάλλον του TinyOS Εισαγωγή στον TOSSIM Command line interface Το γραφικό περιβάλλον TinyViz Παραµετροποιηµένα interfaces και µετονοµασία Παράδειγµα µετονοµασίας interfaces Χρησιµοποιούνται όταν ένα component επιθυµεί να χρησιµοποιήσει ή να προσφέρει πολλές ϕορές το ίδιο interface Ενα παραµετροποιηµένο interface επιτρέπει την χρήση του από πολλά components, όπου ο χρήστης δίνει µια παράµετρο, π.χ. ένα integer Παραδείγµατα είναι η χρήση timer και η ανάθεση AM handlers Ενα component µπορεί επίσης να προσφέρει ή να χρησιµοποιεί πολλές ϕορές το ίδιο interface δίνοντας του διαφορετικό όνοµα (µετονοµασία) Εστω ότι χρησιµοποιούµε το StdControl για να ελέγξουµε ένα αισθητήρα για ένταση ϕωτός και έναν για ϑερµοκρασία uses { interface StdControl as PhotoControl; interface StdControl as TempControl; Οι δύο παρακάτω δηλώσεις σηµαίνουν ακριβώς το ίδιο: interface ADC; interface ADC as ADC;

9 Παράδειγµα παραµετροποιηµένων interfaces Συµβάσεις ονοµασίας αρχείων Το interface timer έχει ως παράµετρο ένα unsigned 8-bit integer Προσφέρει 256 διαφορετικά στιγµιότυπα του timer για κάθε component που ϑέλει να χρησιµοποιήσει έναν timer configuration ADemo { implementation{ components Main, TimerC, ADemoM.QueryTimer1 -> TimerC.Timer[unique("Timer")];... Αρχεία που περιέχουν κώδικα σε nesc έχουν κατάληξη.nc Το αρχείο που περιέχει τον ορισµό ενός interface, π.χ. του MouseInterface, ϑα έχει όνοµα MouseInterface.nc Το αρχείο που περιέχει το Configuration για το module Mouse ϑα έχει το όνοµα MouseC.nc Το αρχείο που ορίζουµε την υλοποίηση του Mouse ϑα έχει το όνοµα MouseM.nc Για το top-level configuration της εφαρµογής µας δεν προσθέτουµε το C στο όνοµά του Active Messages Active Message Handlers Τα Active Messages είναι ένας µηχανισµός για επικοινωνία παράλληλων και κατανεµηµένων συστηµάτων, ο οποίος ϐασίζεται στην ανταλλαγή µηνυµάτων Τα Active Messages επελέγησαν ως τρόπος επικοινωνίας µεταξύ κόµβων που τρέχουν TinyOS Μέσω του µηχανισµού αυτού µπορούµε να υλοποιήσουµε διάφορους αλγόριθµους για κατανεµηµένα συστήµατα που ϑα δούµε στο µάθηµα Κάθε µήνυµα στον header του περιέχει το όνοµα ενός handler, ο οποίος καλείται από το σύστηµα για να διαχειριστεί το µήνυµα Μοιάζει µε τον αριθµό στα TCP port, π.χ. 80 για το http Ο προγραµµατιστής καθορίζει τον αριθµό του AM handler, υποθέτουµε ότι όλοι οι κόµβοι ξέρουν πώς να χειριστούν τον αριθµό αυτό Στο πρόγραµµά µας καθορίζουµε ποιο κοµµάτι του κώδικα αναλαµβάνει να επεξεργαστεί το µήνυµα µε ΑΜ αριθµό Χ Οταν ϕτάσει ένα µήνυµα µε αριθµό ΑΜ 25, ο scheduler καλεί προς εκτέλεση τον αντίστοιχο κώδικα ιαβάζουµε το payload του µηνύµατος, κάνουµε επεξεργασία και αν χρειάζεται στέλνουµε µήνυµα (προφανώς ανάλογα µε τον αλγόριθµο) Πάνω σε αυτή τη λογική µπορούµε να χτίσουµε τον κατανεµηµένο αλγόριθµό µας

10 ID και ειδικές διευθύνσεις Λογική αποστολής και λήψης µηνυµάτων Κάθε κόµβος του συστήµατος έχει ένα ID αριθµό (τον αναθέτουµε εµείς) Η επικοινωνία µε τους άλλους κόµβους γίνεται µε τη χρήση του αριθµού αυτού Υπάρχουν και µερικές ειδικές διευθύνσεις που µπορούµε να χρησιµοποιήσουµε, όπως η Broadcast διεύθυνση, δηλ. µετάδοση προς όλους τους κόµβους που µας ακούνε Πρέπει να υπάρχει κάποιο πρωτόκολλο δροµολόγησης για multihop επικοινωνία, αλλιώς µιλάµε για 1-hop επικοινωνία Αποστολέας: 1. Εχουµε δεσµεύσει ένα buffer, τον οποίο χρησιµοποιούµε για να αποθηκεύσουµε τα δεδοµένα που ϑα στείλουµε 2. Αποφασίζουµε ποιον AM handler χρησιµοποιούµε (το port του άλλου κόµβου στο οποίο ϑα πάει το µήνυµα) 3. Στέλνουµε το µήνυµα Παραλήπτης: 1. Λαµβάνει το µήνυµα και διαβάζει τον AM handler 2. Καλεί το αντίστοιχο κοµµάτι του κώδικα για να χειριστεί το µήνυµα Παράδειγµα κώδικα για αποστολή µηνύµατος Παράδειγµα κώδικα για λήψη µηνύµατος Εστω ότι ϑέλουµε να στείλουµε ένα Hello µήνυµα στους γείτονές µας. Ορίζουµε στο configuration µας τον ΑΜ handler για το interface SendHelloMsg που ϑέλουµε να χρησιµοποιήσουµε ADemo.SendHelloMsg -> WirelessComm.Send[AM_HELLOMSG]; Ορίζουµε ποιος ϑα είναι ο handler όταν έρθει µήνυµα µε ΑΜ αριθµό Χ AeolusDemoM.AcknowledgeMsg -> WirelessComm.Receive[AM_ACKMSG]; Ορίζουµε τον κώδικα για την αποστολή του µηνύµατος Ορίζουµε τι γίνεται σε αυτή την περίπτωση event TOS_MsgPtr AcknowledgeMsg.receive(TOS_MsgPtr m) { task sendhello() { AckMsg *message = (AckMsg *)m->data; HelloMsg *message = (HelloMsg *)data.data; return m; if (call SendHelloMsg.send(TOS_BCAST_ADDR, sizeof(hellomsg), &data)) return SUCCESS;...

11 Το περιβάλλον που ϑα χρησιµοποιήσουµε Προηγούµενο ϕροντιστήριο Tasks: get the job done Ελεγχος παραλληλίας Ειδικά ϑέµατα Active Messages Το περιβάλλον του TinyOS Εισαγωγή στον TOSSIM Command line interface Το γραφικό περιβάλλον TinyViz Το TinyOS είναι διαθέσιµο για Windows και Linux Το περιβάλλον που ϑα χρησιµοποιήσουµε περιλαµβάνει: τις ϐιβλιοθήκες του TinyOS ενα µεταγλωττιστή (ncc) για κώδικα nesc, ο οποίος ϐγάζει εκτελέσιµο κώδικα για διάφορες πλατφόρµες διάφορα εργαλεία για την ανάπτυξη εφαρµογών TinyOS και άλλα πολλά... :) Μεταγλώττιση κώδικα nesc Εστω ότι έχουµε µια εφαρµογή γραµµένη σε nesc και ϑέλουµε να τη µεταγλωττίσουµε Το σύστηµα προσφέρει µια σειρά από makefile που κάνουν αυτόµατη τη διασύνδεση µε ϐιβλιοθήκες, κτλ. Γενικά, εµείς απλά δηµιουργούµε ένα τοπικό Makefile για να δηλώσουµε ποιο είναι το top component της εφαρµογής µας Μπορούµε να κάνουµε compile για διάφορες πλατφόρµες make <platform> ιαθέσιµες είναι οι πλατφόρµες pc, mica, mica2, micaz. Μας ενδιαφέρει η πρώτη

12 TOSSIM Πλεονεκτήµατα Ο TOSSIM µας προσφέρει ένα ελεγχόµενο εικονικό περιβάλλον για να τρέξουµε τον κώδικά µας Χρησιµεύει στην εξοµοίωση εφαρµογών TinyOS, οι οποίες στην πράξη εκτελούνται σε network embedded συσκευές Ο ίδιος κώδικας χρησιµοποιείται στην εξοµοίωση και στην πραγµατική εφαρµογή Είναι µέρος της διανοµής του TinyOS Είναι ένας discrete-event εξοµοιωτής Μας παρέχει ένα περιβάλλον στο οποίο µπορούµε να ελέγξουµε κάποιες παραµέτρους δυναµικά Μπορούµε να επαναλάβουµε πειράµατα Μπορούµε να τρέξουµε ένα πείραµα µε πολλούς κόµβους Μας δίνεται η δυνατότητα να επικοινωνήσουµε µε αυτό το σύστηµα, στέλνοντας µηνύµατα από κάποια άλλη εφαρµογή Γραφικό περιβάλλον (επόµενη ενότητα) Στην πράξη... Μοντέλο δικτύου (1) Οταν κάνουµε compile δίνοντας make pc, δηµιουργείται ένα εκτελέσιµο αρχείο σε κάποιο υποκατάλογο (/build/pc) Αυτό το αρχείο περιέχει την εφαρµογή µας (ειδικά µεταγλωττισµένη) µαζί µε τον TOSSIM Η εξοµοίωση γίνεται ανάλογα µε τα ορίσµατα που δίνουµε από τη γραµµή εντολών σε αυτό το εκτελέσιµο Με απλά λόγια, ο εξοµοιωτής δηµιουργεί πολλαπλά αντίγραφα της εφαρµογής µας και επιβλέπει την εκτελέση και την επικοινωνία µεταξύ τους ηλαδή, µόνο µία εφαρµογή τρέχει στον εξοµοιωτή Θεωρούµε ότι έχουµε ένα δίκτυο από συσκευές που τρέχουν τον ίδιο κώδικα και επικοινωνούν ανταλλάσοντας µηνύµατα ασύρµατα Αυτές οι συσκευές είναι µέρος ενός κατευθυνόµενου γραφήµατος, όπου οι κόµβοι είναι οι συσκευές Οι ακµές είναι της µορφής (u, v, p), δηλαδή µεταξύ δύο κόµβων u και v έχουµε πιθανότητα p να στείλει ο u ένα bit στον v και να χαθεί Ο εξοµοιωτής παραδίδει τα µηνύµατα στους κόµβους που είναι µέσα στην εµβέλεια µετάδοσης του µεταδότη Τα λάθη στις µεταδόσεις είναι ανεξάρτητα µεταξύ τους Μπορούµε να έχουµε ασυµµετρικές συνδέσεις (p (u,v) p (v,u) )

13 Μοντέλο δικτύου (2) ιαθέσιµες επιλογές Υπάρχουν κάποιες επιλογές όσον αφορά τις πιθανότητες αυτές: 1. Ολα τα bit ϕθάνουν σωστά (κανένα λάθος µετάδοσης) 2. Μπορούµε εµείς να καθορίσουµε τις πιθανότητες αυτές ξεχωριστά την καθεµιά 3. Με ϐάση ένα εµπειρικό µοντέλο ο εξοµοιωτής υπολογίζει τις πιθανότητες αυτές Εστω ότι είµαστε στα Windows και έχουµε το εκτελέσιµο main.exe ίνουµε main.exe [επιλογές] #κόµβων Το πλήθος κόµβων µπορεί να είναι αρκετά µεγάλο Οι κόµβοι πάιρνουν ID από 0 έως n 1 (n=#κόµβων) Μπορούµε να επιλέξουµε µοντέλο δικτύου Μπορούµε να επιλέξουµε ϱυθµό εκτέλεσης της εξοµοίωσης ιαθέσιµες επιλογές (2) Debugging interface Ο συνολικός χρόνος που ϑέλουµε να τρέξουµε την εφαρµογή µπορεί επίσης να καθοριστεί (πιο αργά / γρήγορα) Μπορούµε να ορίσουµε αρχείο που προσδιορίζει τις συνδέσεις µεταξύ των κόµβων του συστήµατος Μπορούµε να ορίσουµε ένα χρονικό διάστηµα, κατά τη διάρκεια του οποίου οι κόµβοι του συστήµατος ξεκινούν τη λειτουργία τους επιλέγοντας οµοιόµορφα κάποια χρονική στιγµή σε αυτό το διάστηµα Κάποιες από αυτές τις παραµέτρους µπορούν να άλλάξουν δυναµικά χρησιµοποιώντας το γραφικό περιβάλλον Υπάρχει κάτι ανάλογο της printf Χρησιµοποιώντας ένα σύνολο από debug flags µπορούµε να εµφανίσουµε τα µηνύµατα κατάστασης που µας ενδιαφέρουν κάθε ϕορά Π.χ. υπάρχουν τα flag usr1, usr2, usr3. Εστω ότι κάπου στον κώδικά µας έχουµε: dbg(dbg_usr1, Greetings from CEID. Fatal error ) Αν έχουµε ενεργοποιηµένο το αντίστοιχο flag (usr1) ϑα εµφανίστει σε κάποια ϕάση το µήνυµα αυτό στη γραµµή εντόλών όταν τρέξουµε το εκτελέσιµο αρχείο

14 Debugging interface (2) Debugging interface (3) Αν είµαστε σε bash shell και ϑέλουµε να ενεργοποιήσουµε το flag usr1 δίνουµε στη γραµµη εντολών export DBG=usr1 Μπορούµε να έχουµε πολλά flag ενεργοποιηµένα ταυτόχρονα Οι ϐιβλιοθήκες του συστήµατος έχουν σε πολλά σηµεία τέτοιες δηλώσεις By default είναι όλα τα flag ενεργοποιηµένα Είναι αρκετά χρήσιµο να µπορούµε να ορίσουµε ποια debug µηνύµατα ϑέλουµε να ϐλέπουµε Παραδείγµατα διαθέσιµων debugging καναλιών: all: όλα τα διαθέσιµα debugging µηνύµατα boot: αρχικοποίηση εξόµοιωσης και StdControl led: τα led της συσκευής am: µετάδοση/λήψη ΑΜ µηνυµάτων crc: CRC έλεγχος µηνυµάτων packet: µετάδοση/λήψη µηνυµάτων uart: serial ϑύρα time: Timers usr1, usr2, usr3: User output mode 1, 2, 3 Καθορισµός επικοινωνίας µεταξύ κόµβων του συστήµατος TinyViz ηµιουργούµε ένα αρχείο κείµενου που περιέχει εγγραφές της µορφής: <mote ID>:<mote ID>:bit error rate ίνουµε π.χ. 0:1: :0: :2: :1: :2: :0: Το TinyViz είναι µια εφαρµογή σε Java που χρησιµοποιείται και ως γραφικό interface για τον TOSSIM Μας παρέχει ένα πλήθος από δυνατότητες ελέγχου των παραµέτρων και της ϱοής της εξοµοίωσης Μας δίνει µια οπτική εικόνα του τί συµβαίνει στη διάρκεια της εξοµοίωσης Οταν χρησιµοποιούµε τον TOSSIM µπορούµε να ορίσουµε ότι ϑα χρησιµοποιήσουµε το TinyViz (-gui) Είναι και αυτό µέρος της διανοµής του TinyOS

15 Παράδειγµα Μια πολύ χρήσιµη δυνατότητα που προσφέρει ο TOSSIM είναι ότι µπορούµε να ενεργοποιήσουµε ή απενεργοποίησουµε τους κόµβους του συστήµατος όπως ϑέλουµε Θεωρούµε αρχικά ότι το σύστηµα µας τοποθετείται σε ένα χώρο Μπορούµε να αλλάξουµε τη ϑέση των κόµβων επηρεάζοντας την τοπολογία του συστήµατος Μπορούµε επίσης να ορίσουµε ένα αρχείο που να περιγράφει την τοπολόγια του συστήµατος, κτλ. TinyViz plugins Παράδειγµα Η λειτουργικότητα του TinyViz υλοποιείται µε τη µορφή plugin, τα οποία µπορούµε δυναµικά να ενεργοποιήσουµε ή απενεργοποίησουµε κατά τη διάρκεια της εξοµοίωσης Τα plugin αυτά π.χ µας επιτρέπουν να ϐλέπουµε αν κάποιος κόµβος (ή από συγκεκριµένους κόµβους) µεταδίδει κάποιο µήνυµα και τα περιεχόµενά του Μπορούµε να ϐλέπουµε τα debug µηνύµατα της εφαρµογής µας (από κάθε κόµβο ή από συγκεκριµένους) Μπορούµε επίσης να καθορίσουµε το µοντέλο δικτύου που χρησιµοποιούµε

16 Εχουµε τις εξής επιλογές όσον αφορά το µοντέλο δικτύου (µέσω του διαθέσιµου TinyViz plugin) 1. fixed radius 10, 100 ή 1000 (και υποδιαιρέσεις ή πολλαπλάσια) 2. εµπειρικό µοντέλο Μπορούµε να χρησιµοποιήσουµε ένα δικό µας αρχείο, όπως είπαµε προηγουµένως για να ορίσουµε την τοπολογία του δικτύου Μπορούµε να δούµε τις πιθανότητες σωστής µετάδοσης µεταξύ κόµβων (αν έχουµε επιλέξει το radio model plugin) π.χ.ιστην εικόνα δίπλα έχουµε επιλέξει το εµπειρικό µοντέλο

Φροντιστήρια. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Εργαστήρια

Φροντιστήρια. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Εργαστήρια Φροντιστήρια Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Γιώργος Μυλωνάς Παρασκευή, 31 Οκτωβρίου, 2008 Αίθουσα Β3 2 ώρες την εβδοµάδα Παρασκευή

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

Χειµερινό Εξάµηνο

Χειµερινό Εξάµηνο Κατανεµηµένα Συστήµατα Ι Χειµερινό Εξάµηνο 2007-2008 Περίληψη Ο στόχος του εργαστηρίου είναι η υλοποίηση κατανεµηµένων αλγόριθµων κατασκευής επικαλυπτικών δένδρων µε την γλώσσα προγραµµατισµού nesc και

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

Έρευνα στα Ασύρματα Δίκτυα Αισθητήρων WSN

Έρευνα στα Ασύρματα Δίκτυα Αισθητήρων WSN Έρευνα στα Ασύρματα Δίκτυα Αισθητήρων WSN Σημεία παρουσίασης 1. Ασύρματα Δίκτυα 2. TinyOS 3. nesc 4. Εφαρμογή (Παρατήρηση υγρασίας) 1. Ασύρματα δίκτυα αισθητήρων 1. Ασύρματα δίκτυα αισθητήρων Ορισμός «Ένα

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

Χειµερινό Εξάµηνο

Χειµερινό Εξάµηνο Κατανεµηµένα Συστήµατα Ι Χειµερινό Εξάµηνο 2008-2009 Περίληψη Ο στόχος του εργαστηρίου είναι η υλοποίηση κατανεµηµένων αλγόριθµων εκλογής αρχηγού µε την γλώσσα προγραµµατισµού nesc και την χρήση Active

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

Χειµερινό Εξάµηνο

Χειµερινό Εξάµηνο Κατανεµηµένα Συστήµατα Ι Χειµερινό Εξάµηνο 2007-2008 Περίληψη Ο στόχος του εργαστηρίου είναι η υλοποίηση κατανεµηµένων αλγόριθµων συναίνεσης µε την γλώσσα προγραµµατισµού nesc και την χρήση Active Messages

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

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Simulation Commands

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Simulation Commands Επισκόπηση Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Χρήστος Κονίνης Ορέστης Ακριβόπουλος Τρίτη, 2 Νοεµβρίου 2010 Υπολογιστικό Examples Πώς

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

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

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

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Λεπτοµέρειες υλοποίησης αλγορίθµων

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Λεπτοµέρειες υλοποίησης αλγορίθµων Επισκόπηση Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Χρήστος Κονίνης Ορέστης Ακριβόπουλος Example Τρίτη, 9 Νοεµβρίου 2010 Υπολογιστικό 1. Αποφασίζουµε

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

Επισκόπιση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Collecting Messages Statistics

Επισκόπιση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Collecting Messages Statistics Επισκόπιση Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Χρήστος Κονίνης Τρίτη, 10 Νοεµβρίου, 2009 Υπολογιστικό Examples transmission model Μέχρι

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

Επισκόπιση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σφάλµατα επικοινωνίας στο Shawn

Επισκόπιση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σφάλµατα επικοινωνίας στο Shawn Επισκόπιση Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Χρήστος Κονίνης Rerun exactly the same Simulation Τρίτη, 1 εκεµβρίου, 2009 Υπολογιστικό

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

Προγραµµατισµός 2 The shell

Προγραµµατισµός 2 The shell Προγραµµατισµός 2 The shell 1 CLI vs GUI! CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες. find. -mtime -2 -name '*.txt' -exec sed -i.bak 's/hi/bye/g'

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης ευτέρα, 12 Ιανουαρίου, 2009 Αίθουσα Β3 Κατανεµηµένα Συστήµατα Ι ΤΜΗΥΠ/ΠΠ, Τρίτη

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

Ο έλεγχος στο επίπεδο συστήµατος επικοινωνιών εξασφαλίζει ότι έχουµε µεταφορά στο δίκτυο χωρίς λάθη.

Ο έλεγχος στο επίπεδο συστήµατος επικοινωνιών εξασφαλίζει ότι έχουµε µεταφορά στο δίκτυο χωρίς λάθη. Overview Το end-to-end argument υποστηρίζει ότι κάποιες από τις λειτουργίες που επιτελούνται κατά την διάρκεια µιας επικοινωνίας µεταξύ συστηµάτων θα πρέπει να µην υλοποιούνται σε χαµηλό επίπεδο (επίπεδο

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 - CE121 Προγραµµατισµός 2 Εισαγωγή σε Makefiles 1 Η διαδικασία µεταγλώττισης myprog.c gcc myprog 2 Η διαδικασία µεταγλώττισης myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 - Καλή δουλειά 1242 1243 1244 1245 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η Υλοποίηση στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Πρωτοτυποποίηση Προγραµµατισµός υλοποίησης Ανάπτυξη συστήµατος Μοναδιαίος έλεγχος Ολοκλήρωση 2 3 Η υλοποίηση

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 8 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 2 2.1 ΜΕΤΑΒΛΗΤΕΣ (ΜΕΡΟΣ Β) Στην προηγούµενη διάλεξη µάθαµε ότι µπορούµε να χρησιµοποιούµε τη ρητή ή την αυτονόητη δήλωση µεταβλητών

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

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

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

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

Μάθημα 5 ο : Μετάδοση Μηνυμάτων Μάθημα 5 ο : Μετάδοση Μηνυμάτων Υπάρχουν περιπτώσεις στις οποίες επιθυµούµε τα αντικείµενα που χρησιµοποιούµε να επικοινωνούν µεταξύ τους άµεσα έτσι ώστε ο συγχρονισµός της συµπεριφοράς τους να γίνεται

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΣΕΝΑΡΙΟ ΠΑΙΧΝΙ ΙΟΥ Το παιχνίδι θα αποτελείται από δυο παίκτες, οι οποίοι θα βρίσκονται αντικριστά στις άκρες ενός γηπέδου δεξιά και αριστερά, και µια µπάλα.

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

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

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Επισκόπηση. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Επισκόπηση Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Χρήστος Κονίνης Ορέστης Ακριβόπουλος Τρίτη, 9 εκεµβρίου, 2010 Υπολογιστικό Τα µηνύµατα

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Αναδροµή Σύντοµη Αναδροµή Η γλώσσα προγραµµατισµού C είναι µία γλώσσα

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

Απαντήσεις. Απάντηση. Απάντηση

Απαντήσεις. Απάντηση. Απάντηση 6 η σειρά ασκήσεων Άλκης Γεωργόπουλος Α.Μ. 39 Αναστάσιος Κοντογιώργης Α.Μ. 43 Άσκηση 1. Απαντήσεις Η αλλαγή ενός ρολογιού προς τα πίσω µπορεί να προκαλέσει ανεπιθύµητη συµπεριφορά σε κάποια προγράµµατα.

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

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

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

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2006-2007 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

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

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοινωνία. Σειριακή Επικοινωνία USB Σύνδεση / Πρωτόκολλο Σκοπός Εντολή επιλογής (if) Εντολή Επανάληψης (while) Πίνακες 1 Μέρος Α : Σκοπός

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1 ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό

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

make Προγραμματισμός II 1

make Προγραμματισμός II 1 make Προγραμματισμός II 1 lalis@inf.uth.gr myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o /tmp/cczxt.s linker (ld) myprog Προγραμματισμός II 2 lalis@inf.uth.gr Δοκιμάστε

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

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

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

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

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

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

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

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

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

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

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

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

MESSAGE EDITOR FOR WINDOWS Ο ΗΓΙΕΣ ΧΡΗΣΕΩΣ

MESSAGE EDITOR FOR WINDOWS Ο ΗΓΙΕΣ ΧΡΗΣΕΩΣ MESSAGE EDITOR FOR WINDOWS Ο ΗΓΙΕΣ ΧΡΗΣΕΩΣ Εγκατάσταση και λειτουργία message editor: Αρχικά τοποθετούµε το cd στον υπολογιστή και εµφανίζεται η οθόνη εγκατάστασης Στην περίπτωση που δεν εµφανιστεί αυτόµατα

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

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΡΟΜΠΟΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΜΠΑΝΤΗΣ ΑΝΤΩΝΙΟΣ 533 ΤΣΙΚΤΣΙΡΗΣ ΔΗΜΗΤΡΙΟΣ 551 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΡΟΜΠΟΤ LEGO NXT Το ρομπότ

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

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

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

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

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

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

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 11-1 Μη- οµηµένος Προγραµµατισµός Το πρόγραµµα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δοµή). Όλη η λειτουργικότητα

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

ροµολόγηση πακέτων σε δίκτυα υπολογιστών ροµολόγηση πακέτων σε δίκτυα υπολογιστών Συµπληρωµατικές σηµειώσεις για το µάθηµα Αλγόριθµοι Επικοινωνιών Ακαδηµαϊκό έτος 2011-2012 1 Εισαγωγή Οι παρακάτω σηµειώσεις παρουσιάζουν την ανάλυση του άπληστου

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

(1) 98! 25! = 4 100! 23! = 4

(1) 98! 25! = 4 100! 23! = 4 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών HY-17: Πιθανότητες - Χειµερινό Εξάµηνο 015 ιδάσκων : Π. Τσακαλίδης Φροντιστήριο 5 Συνδυαστική Ανάλυση και Εισαγωγή στις ιακριτές Τυχαίες Μεταβλητές Επιµέλεια

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 - CE121 Προγραµµατισµός 2 Εισαγωγή σε Makefiles 1 Η διαδικασία µεταγλώττισης myprog.c gcc myprog 2 Η διαδικασία µεταγλώττισης myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας, Κέρκυρα Παρασκευή 10 NOE 2006 ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Α Ίδιο τοπικό

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

Προγραµµατισµός Ι (ΗΥ120)

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή ΑΝΑΚΟΙΝΩΣΗ 2 Το αυριανό µάθηµα θα πραγµατοποιηθεί στο αµφιθέατρο Σαράτση Ποιος είµαι εγώ! 3 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA,

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

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

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 7: Πίνακες ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Πίνακες 1. Μονοδιάστατοι Πίνακες 1. ήλωση Πίνακα 2. Παράδειγµα Χρήσης Πίνακα 3. Αρχικοποίηση πίνακα κατά τη δήλωση 4. Στατική έσµευση

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

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

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

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

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

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

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο Project Phase 1 ΗΥ - 335α Χειμερινό εξάμηνο 2012-2013 Διδάσκουσα: Παπαδοπούλη Μαρία Υπεύθυνος βοηθός: Σουρλίγκας Μανώλης, surligas@csd.uoc.gr

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

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες] Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου!

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου! AEM 0001 0002 0003 COMMENTS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου! -Τυπώνεις 1,2,3 αντί για AVAILABLE, RESERVED,

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

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

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

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

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

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

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) Περιγραφή της Άσκησης Στόχος της άσκησης είναι η δημιουργία ενός συστήματος διαχείρισης φωτισμού. Μία φωτομεταβαλλόμενη αντίσταση (LDR) θα διαπιστώνει την ποσότητα του φωτός

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2006-2007 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

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