Κατανεμημένα Συστήματα

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

Download "Κατανεμημένα Συστήματα"

Transcript

1 Κατανεμημένα Συστήματα Java Sockets, Threads, Ασκήσεις Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

2 SOCKETS 2

3 Διαδιεργασιακή επικοινωνία με Sockets application layer Client Process Socket transport layer (TCP/UDP) network layer (IP) link layer (e.g. ethernet) physical layer ίκτυο ίκτυο application layer Server Process Socket transport layer (TCP/UDP) network layer (IP) link layer (e.g. ethernet) physical layer Διεπαφή (προγραμματιστική αφαίρεση) που παρέχει το ΛΣγια την πρόσβαση στο υποσύστημα επικοινωνίας (π.χ. UDP/TCP) Υλοποιούμε Ι/Ο στο δίκτυο μέσω τωνsockets περίπου όπως υλοποιούμε Ι/Ο στο δίσκο μέσω των περιγραφέων αρχείων.

4 Επικοινωνιακή σύνδεση Η επικοινωνιακή σύνδεση μεταξύ δύο διεργασιών περιγράφεται με μια πεντάδα της μορφής: (πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία). Το πρωτόκολλοαναφέρεται στο σύνολο των κανόνων που διέπουν την επικοινωνία (π.χ. UDP, TCP). Η τοπική-διεύθυνση και απομακρυσμένη-διεύθυνση, προσδιορίζουν τις IP διευθύνσεις των Η/Υ, στους οποίους εκτελούνται οι διεργασίες. Η τοπική-διεργασία και απομακρυσμένη-διεργασία, προσδιορίζουν την ταυτότητα των διεργασιών που θα επικοινωνούν (έναν 16-bit ακέραιο αριθμό, ο οποίος αναπαριστά την θύρα (port number) της διεργασίας) Το socket περιγράφει το ένα άκρο (endpoint)μιας επικοινωνιακής σύνδεσης. Περιλαμβάνει την τριάδα (πρωτόκολλο, διεύθυνση, αριθμό θύρας) για το ένα άκρο της επικοινωνιακής σύνδεσης. H διαδιεργασιακή επικοινωνία με sockets απαιτεί την μετάδοση μηνυμάτων μεταξύ ενός socket στη μια διεργασία και ενός socket στην άλλη διεργασία. 4

5 ΤCP/IP επικοινωνιακή σύνδεση Προσδιορισμός της διεύθυνσης της μηχανής στο δίκτυο IP address Ταυτότητα διεργασίας Port number To ζευγάρι (IP address, Port number) ορίζει ένα socketaddress Client socket address :23405 Server socket address :80 Client Connection socket pair ( :23405, :80) Server (port 80) Client host address H θύρα είναι µια εφήµερη θύρα που έχει δοθεί από το ΛΣ Server host address Η θύρα 80 είναι µια καλά καθορισµένη θύρα για πρόσβαση σε Web servers

6 Sockets στην Java Συλλογή από κλάσεις και interfaces στο πακέτο java.net Βασικές κλάσεις για TCP επικοινωνία: Socket: client-side& server-side ServerSocket: server-side Βασικές κλάσεις για UDP επικοινωνία : DatagramSocket DatagramPacket

7 Κλάση Socket (βασικές μέθοδοι) Socket(InetAddress address, int port) Δημιουργεί ένα TCP stream socket και το συνδέει στο port και την ΙΡ διεύθυνση που καθορίζονται ως παράμετροι. Socket(String host, int port) Δημιουργεί ένα TCP stream socket και το συνδέει στο port του host, του οποίου το όνομα καθορίζεται στις παραμέτρους. InputStream getinputstream() Επιστρέφει ένα stream εισόδου για αυτό το socket. OutputStream getoutputstream() Επιστρέφει ένα stream εξόδου αυτού του socket InetAddress getlocaladdress() Επιστρέφει την τοπική διεύθυνση με την οποία το socket αρχικοποιήθηκε. int getlocalport() Επιστρέφει τον τοπικό αριθμό θύρας με τον οποίο το socket αρχικοποιήθηκε. InetAddress getinetaddress() Επιστρέφει την διεύθυνση του απομακρυσμένου Η/Υ στην οποία το τοπικό socket είναι συνδεδεμένο. int getport() Επιστρέφει τον αριθμό θύρας της απομακρυσμένης διεργασίας στο socket της οποίας το τοπικό socket έχει συνδεθεί. void close() Κλείνει αυτό το socket (απελευθερώνει το socket description). 7

8 Κλάση ServerSocket(βασικές μέθοδοι) ServerSocket(intport) Δημιουργεί ένα serversocketστη θύρα της οποίας ο αριθμός καθορίζεται απ την παράμετρο. Αν ο αριθμός είναι το 0, τότε αφήνεται στο σύστημα η επιλογή μιας ελεύθερης (μη χρησιμοποιούμενης) θύρας. ServerSocket(intport, intbacklog) Δημιουργεί ένα serversocketστην θύρα της οποίας ο αριθμός καθορίζεται απ την πρώτη παράμετρο, ενώ επιτρέπει τόσες συνδέσεις να περιμένουν στην ουρά, μέχρι να γίνουν αποδεκτές, όσες η δεύτερη παράμετρος. Socketaccept() Ακούει για πιθανή αίτηση σύνδεσης ενός πελάτη με τον server και την αποδέχεται. Ένα νέο socket αντικείμενο δημιουργείται και χρησιμοποιείται για την ανταλλαγή μηνυμάτων με τον πελάτη. void close() Κλείνει αυτό το server socket. InetAddressgetInetAddress() Επιστρέφει την τοπική διεύθυνση αυτού του server socket. intgetlocalport() Επιστρέφει τον αριθμό της θύρας που αυτό το server socket«ακούει». 8

9 I/O μέσω του Stream μηχανισμού Stream = γενερικός μηχανισμός για Ι/Ο δεδομένων Input Stream = αντικείμενο που μια εφαρμογή μπορεί να χρησιμοποιήσει για να διαβάσει μια ακολουθία δεδομένων Output Stream: αντικείμενο που μια εφαρμογή μπορεί να χρησιμοποιήσει για να γράψει μια ακολουθία δεδομένων 9

10 Java Streams Συλλογή από stream κλάσεις και interfaces στο πακέτο java.io Στην κορυφή της ιεραρχίας ορίζονται δυο abstract κλάσεις: InputStream OutputStream 10

11 Διάφορες κλάσεις τύπου Stream Byte Array Streams ByteArrayInputStream & ByteArrayOutputStream File Access Streams FileInputStream & FileOutputStream Filter Streams (wrappers σε κλάσεις Streams): FilterInputStream & FilterOutputStream BufferedInputStream: BufferedOutputStream DataInputStream Μετατρέπει τα δεδομένα στον γηγενή τύπο τους καθώς τα λαμβάνει DataOutputStream Γράφει πρωτογενείς τύπους δεδομένων σε ένα output stream 11

12 Συνήθη βήματα ενός ΤCP client 12

13 Συνήθη βήματα ενός ΤCP server 13

14 Περίγραμμα εφαρμογής client-side server-side 14

15 Μετάδοση αντικειμένων (Serialization) Για την αποστολή/λήψη δεδομένων βασικών τύπων (integer, long, char, boolean, byte, float, double) μπορούν να χρησιμοποιηθούν οι αντίστοιχες μέθοδοι των κλάσεων DataInputStream/DataOutputStream(π.χ. writeint()/readint()) Για strings μπορούν να χρησιμοποιηθούν οι μέθοδοι writeutf()/readutf(). Για αντικείμενα κλάσεων, οι κλάσεις θα πρέπει να υλοποιούν το Serializable interfaceκαι θα πρέπει να χρησιμοποιηθούν μέθοδοι των κλάσεων ObjectInputStream/ObjectOutputStream writeobject() readobject() 15

16 Σχεδιασμός client/server εφαρμογών με Sockets Θα πρέπει να αποφασίσουμε την γλώσσα προγραμματισμού και το ΛΣ που θα χρησιμοποιήσουμε (πλατφόρμα ανάπτυξης) C, Java κ.ο.κ. UNIX, Linux, MS κ.ο.κ. Θα πρέπει να αποφασίσουμε εάν: θα υλοποιήσουμε την εφαρμογή πάνω από TCPή UDP Θα πρέπει να σχεδιάσουμε το πρωτόκολλο επικοινωνίας (request/reply protocol) Ορισμός της δομής των μηνυμάτων που ανταλλάσσονται To πρωτόκολλο μπορεί να είναι statefull ή stateless Θα πρέπει να υλοποιήσουμε την επιχειρησιακή λογική της εφαρμογής, την διεπαφή χρήστη,καθώς και την επικοινωνιακή σύνδεση χρησιμοποιώντας το API που μας παρέχει η πλατφόρμα ανάπτυξης που έχουμε επιλέξει Η ανταλλαγή μηνυμάτων θα πρέπει να λάβει υπόψη πιθανή ετερογένεια μεταξύ των συστημάτων που επικοινωνούν (π.χ., διαφορετική αναπαράσταση των βασικών τύπων δεδομένων) 16

17 THREADS 17

18 Διεργασίες Μια διεργασία(process) είναι ένα αυτοδύναμο περιβάλλον εκτέλεσης προγράμματος. Διαθέτει τους δικούς της αποκλειστικούς πόρους κατά το χρόνο εκτέλεσής της (με πιο σημαντικό αυτό της μνήμης). Μια εφαρμογή είναι δυνατό να αποτελείται από πολλές συνεργαζόμενες διεργασίες.

19 Νήματα Ένα νήμα(thread) είναι μια ακολουθιακή ροή ελέγχου (δηλαδή, κώδικας που έχει αρχή, περιέχει μια ακολουθία εντολών και έχει τέλος) σε ένα πρόγραμμα. Σκοπός είναι η απομόνωση (ή αυτονόμηση) κάποιων εργασιών (tasks), ώστε να μπορούν να εκτελούνται ταυτόχρονα(δυνητικά παράλληλα). Ένα νήμα δεν είναι από μόνο του ένα πρόγραμμα, αλλά ούτε διεργασία. Ένα νήμα εκτελείται στο εσωτερικό ενός προγράμματος. Ένα μόνο νήμα δεν προσφέρει ευκαιρίες πολυεπεξεργασίας. Δύο ή περισσότερα νήματα μπορούν να εκτελούνται ταυτόχρονα πραγματοποιώντας διαφορετικές εργασίες. 19

20 Πολυνηματικές εφαρμογές

21 Διεργασίες έναντι Νημάτων Οι διεργασίες : είναι ανεξάρτητες κουβαλούν σημαντική πληροφορία κατάστασης (process control block) διαθέτουν ξεχωριστό χώρο διευθύνσεων (address space) και αλληλεπιδρούν μόνον μέσω μηχανισμών διαδιεργασιακής επικοινωνίας που παρέχονται από το ΛΣ Τα νήματα: Μοιράζονται πληροφορίες κατάστασης μιας διεργασίας Μοιράζονται μνήμη και άλλους πόρους απ ευθείας Το context-switching μεταξύ νημάτων της ίδιας διεργασίας είναι τυπικά ταχύτερο από το context-switching μεταξύ διεργασιών τα νήματα είναι πιο αποδοτικά

22 Δημιουργία νημάτων στην Java Δύο τρόποι δημιουργίας νημάτων: Ως στιγμιότυπα υποκλάσεων της κλάσης java.lang.thread: + Πιο απλή προσέγγιση, κατάλληλη για απλές εφαρμογές. Τα νήματα περιορίζονται στο να είναι υποκλάσεις της συγκεκριμένης κλάσης. Ως στιγμιότυπα υλοποιήσεων της διεπαφής java.lang.runnable: +Η κλάση που υλοποιεί τη διεπαφή μπορεί να είναι υποκλάση οποιασδήποτε άλλης κλάσης. Και στις δύο περιπτώσεις πρέπει να οριστεί το σώμα της μεθόδου run, που είναι κενό και προσδιορίζει τι κάνει το νήμα. Η μέθοδος runείναι αφαίρεση μεθόδου της Runnable, αλλά και της Thread(καθώς η Thread υλοποιεί την Runnable). 22

23 Επεκτείνοντας την κλάσηthread Δημιουργία υποκλάσης της Thread public class ExampleThread extends Thread { } public void run() { } // perform whatever thread needs to do Για να ξεκινήσει ένα νέο thread ExampleThread et = new ExampleThread(); et.start(); Η start() ορίζεται στην Thread κλάση

24 Υλοποιώντας την διεπαφή Runnable Δημιουργία μιας κλάσης που υλοποιεί το Runnable interface public class ExampleRunnable implements Runnable { } public void run() { // perform whatever thread needs to do } Για να ξεκινήσει ένα νέο thread ExampleRunnable er = new ExampleRunnable(); new Thread(er).start();

25 Καταστάσεις νημάτων start() Ready to Run leaving non-runnable scheduling timeslice ends Running terminates Dead entering non-runnable Non-runnable states Waiting Sleeping Blocked

26 Μεταβάσεις από κλήση μεθόδων 26

27 Συγχρονισμός νημάτων Τα νήματα μοιράζονται τον ίδιο χώρο μνήμης κάθε νήμα διαθέτει το δικό του stack space, αλλά μοιράζονται το ίδιο heap (για διαχείριση δυναμικής μνήμης) Ο συγχρονισμός είναι απαραίτητος για : ακεραιότητα δεδομένων προσπέλαση κοινών πόρων 27

28 Monitor: μηχανισμός συγχρονισμού Μια περιοχή του κώδικα που αναπαριστά έναν κοινό πόρο (κρίσιμη περιοχή) μπορεί να συσχετισθεί με έναmonitor(αλλιώς semaphore). Τα νήματα κάνουν προσπέλαση του κοινού πόρου κλειδώνοντας πρώτα το monitor Μόνον ένανήμα μπορεί να κατέχει το monitor σε μια δεδομένη χρονική στιγμή Τα monitors υλοποιούν έναν μηχανισμό αμοιβαίου αποκλεισμού (αλλιώς mutex)

29 Συνθήκες ανταγωνισμού (race conditions) Συνθήκη ανταγωνισμού(race condition)έχουμε όταν δύο νήματα προσπαθούν να προσπελάσουν το ίδιο αντικείμενο ταυτόχρονα και η συμπεριφορά του προγράμματος δεν εξαρτάται πλέον μόνο από τις εντολές του, αλλά και από το ποιο νήμα προηγείται στη σειρά προσπέλασης (δεν είναι προβλέψιμο αφού αυτό εξαρτάται από το λειτουργικό σύστημα). Αν όλα τα νήματα εκτελούν αποκλειστικά λειτουργίες ανάγνωσης, τότε δεν υπάρχει κίνδυνος συνθήκης ανταγωνισμού. Στην περίπτωση συνθήκης ανταγωνισμού τα αποτελέσματα των υπολογισμών δεν είναι συνεπή σε διαδοχικές επαναλήψεις εκτέλεσης του προγράμματος με την ίδια είσοδο.

30 Συνθήκες ανταγωνισμού (race conditions) Πρέπει να εξασφαλιστεί ότι το ένα νήμα δεν θα αλλάξει τα δεδομένα αυτά, ενώ τα διαχειρίζεται κάποιο άλλο νήμα αναγκαίος ο συγχρονισμός νημάτων. Για το λόγο αυτό, η Java επιτρέπει το κλείδωμα αντικειμένων και μεθόδων με τη χρήση της δεσμευμένης λέξης synchronized.

31 Συγχρονισμός νημάτων Συγχρονισμός νημάτων επιτρέποντας την προσπέλαση μιας μεθόδου (ή ενός αντικειμένου) σε ένα μόνο νήμα κάθε φορά: 31 public synchronized void xmethod { } Για να προσπελάσει ένα νήμα τη μέθοδο xmethodπρέπει να περιμένει να τελειώσει το τρέχον νήμα (blocked). Μπορεί να δηλωθεί ως συγχρονισμένο ένα τμήμα κώδικα στο σώμα μιας μεθόδου (και όχι όλη η μέθοδος): public int ymethod { }... synchronized (this) {... }

32 ΑΣΚΗΣΕΙΣ 32

33 Άσκηση : Echo serviceμε Java Sockets Θέλουμε να αναπτύξουμε μια κατανεμημένη εφαρμογή τύπου client/server που υλοποιεί μια echo υπηρεσία πάνω από Java TCP streams. Χρειαζόμαστε δύο προγράμματα: TCPClientκαι TCPServer. Mπορείτε με την javac εντολή σε ένα command line παράθυρο να μεταγλωττίσετε τον κώδικα του client (TCPClient.java) και τον κώδικα του server (TCPServer.java). Στην συνέχεια σε δύο ξεχωριστά παράθυρα τρέξτε πρώτα τον server και έπειτα τον client.ενδεικτικά οι εντολές που θα πρέπει να δώσετε είναι: java TCPServer java TCPClient Hello MPES Dept localhost Στη συνέχεια τροποποιείστε τον κώδικα του server ώστε να τυπώνει την IP διεύθυνση και το port number του Η/Υ από τον οποίο έλαβε το αίτημα. 33

34 TCPClient TCP client makes connection to server, sends request and receives reply import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[]) { // arguments supply message and hostname of destination Socket s = null; try{ int serverport = 7896; s = new Socket(args[1], serverport); DataInputStream in = new DataInputStream( s.getinputstream()); DataOutputStream out = new DataOutputStream( s.getoutputstream()); out.writeutf(args[0]); // UTF is a string encoding String data = in.readutf(); System.out.println("Received: "+ data) ; }catch (UnknownHostException e){ System.out.println("Sock:"+e.getMessage()); }catch (EOFException e){system.out.println("eof:"+e.getmessage()); }catch (IOException e){system.out.println("io:"+e.getmessage());} }finally {if(s!=null) try {s.close();}catch (IOException e) {System.out.println("close:"+e.getMessage());}} } }

35 TCPServer TCP server makes a connection for each client and then echoes the client s request import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { try{ int serverport = 7896; ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); Connection c = new Connection(clientSocket); } } catch(ioexception e) {System.out.println("Listen :"+e.getmessage());} } } // this code continues on the next slide

36 TCPServer(συνέχεια) class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientsocket; public Connection (Socket aclientsocket) { try { clientsocket = aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); this.start(); } catch(ioexception e) {System.out.println("Connection:"+e.getMessage());} } } public void run(){ try { } // an echo server String data = in.readutf(); out.writeutf(data); } catch(eofexception e) {System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) {System.out.println("IO:"+e.getMessage());} } finally{ try {clientsocket.close();}catch (IOException e){/*close failed*/}}

37 Επέκταση της κλάσης TCPServer public class TCPServer { public static void main (String args[]) { try{ int serverport = 7896; // the server port ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); } } } Connection c = new Connection(clientSocket); } catch(ioexception e) {System.out.println("Listen socket:"+e.getmessage());} 37

38 Επέκταση της κλάσης TCPServer public class TCPServer { } public static void main (String args[]) { } try{ int serverport = 7896; // the server port ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); System.out.println("Connection request form client: " + clientsocket.getinetaddress() + " : " + clientsocket.getport()); } Connection c = new Connection(clientSocket); } catch(ioexception e) {System.out.println("Listen socket:"+e.getmessage());} 38

39 Άσκηση σε συγχρονισμό Για το σενάριο που θα περιγράψουμε θα θεωρήσουμε ότι ο ίδιος τραπεζικός λογαριασμός μπορεί να προσπελασθεί από πολλούς πελάτες (κοινός λογαριασμός). Για κάθε αίτημα που φθάνει στον εξυπηρετητή δημιουργείται ένα διαφορετικό νήμα που τρέχει τον κώδικα εξυπηρέτησης. Ας υποθέσουμε ότι για την διαχείριση της ανάληψης ενός ποσού (amount) από έναν λογαριασμό (που αναγνωρίζεται με το PIN mypin) χρησιμοποιείται ο παρακάτω κώδικας που τρέχει εντός του κάθε νήματος (thread)που εξυπηρετεί έναν πελάτη. Υποθέτουμε μονοεπεξεργαστικό σύστημα στην πλευρά του εξυπηρετητή. 1. case CMD_WITHDRAW: 2. Account sessionacc = getsessionaccount(mypin); // τοπικό αντίγραφο Account 3. String result = sessionacc.withdraw(amount); // ανάληψη του ποσού 4. savesessionaccount(sessionacc); // αποθήκευση τοπικού αντιγράφου 5. break; 39

40 Άσκηση σε συγχρονισμό Toσενάριο έχει ως εξής: δυο πελάτες (Π1 και Π2) διαθέτουν έναν κοινό λογαριασμό (Λ) και αφού έχουν ελέγξει το υπόλοιπο του λογαριασμού, το οποίο είναι 5000, στην συνέχεια προσπαθούν ταυτόχρονα να κάνουν ανάληψη ποσού 3000 ο πρώτος και 4000 ο δεύτερος. Περιγράψτε ένα σενάριο που οδηγεί σε συνθήκες ανταγωνισμού. Συνθήκη ανταγωνισμού (race condition) έχουμε όταν δύο νήματα προσπαθούν να προσπελάσουν το ίδιο αντικείμενο ταυτόχρονα και η συμπεριφορά του προγράμματος δεν εξαρτάται πλέον μόνο από τις εντολές του, αλλά και από το ποιο νήμα προηγείται στη σειρά προσπέλασης. Toπεδίο εφαρμογής της άσκησης ευνοεί την εμφάνιση καταστάσεων ανταγωνισμού και δημιουργεί αντίστοιχες απαιτήσεις για την αντιμετώπισή τους. 40

41 Knock Kncok Who s there? Θέλουμε να υλοποιήσουμε το παιδικό παιχνίδι αστείου λόγου Knock Kncok Who s there ως μια κατανεμημένη εφαρμογή τύπου πελάτης-εξυπηρετητής με Java sockets. To παιχνίδι περιλαμβάνει τον αστειολόγο (ο εξυπηρετητής) και τον παραλήπτη του λογοπαιγνίου (πελάτης). Η αλληλεπίδρασή τους περιλαμβάνει τα ακόλουθα βήματα: Αστειολόγος : λέει Knock, knock! Παραλήπτης: πρέπει να πει Who's there? Αστειολόγος : λέει ένα όνομα (π.χ. Atch) Παραλήπτης: πρέπει να επαναλάβει το όνομα με το ερώτημα ποιος; (π.χ. Atch who?) Αστειολόγος: λέει το λογοπαίγνιο (π.χ. Bless you!) 41

42 Προδιαγραφές KKClient Για την εφαρμογή μας η τελευταία απάντηση (λογοπαίγνιο) του εξυπηρετητή συνοδεύεται από το ερώτημα προς τον παραλήπτη αν θέλει να συνεχίσει το παιχνίδι. Αν η απάντηση είναι «ναι» συνεχίζει ένας νέος κύκλος, ενώ αν η απάντηση είναι «όχι», ο εξυπηρετητής στέλνει μήνυμα Bye. και το πρόγραμμα του πελάτη τερματίζει. Ο εξυπηρετητής εξακολουθεί να εκτελείται. Το πρόγραμμα του πελάτη υλοποιείται από μια κλάση, έστω ΚΚClient. Η κλάση ΚΚClient πραγματοποιεί την σύνδεση με τον εξυπηρετητή (για την σύνδεση χρησιμοποιείστε το ζευγάρι {localhost, 5050})και υλοποιεί τον ψευδοκώδικα που σας δίνεται παρακάτω. 42

43 Προδιαγραφές KKClient 43

44 Προδιαγραφές KKServer 44

45 Προδιαγραφές KKProtocol 45

46 Concurrent Server 46

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Interprocess Communication

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

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Νήματα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΝΗΜΑΤΑ

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

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

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία } 11.2 Sockets 11.2.1 Το μοντέλο Client - Server και μερικοί ορισμοί Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ( client - server ). Ο εξυπηρετητής

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

Αρχεία και Ρεύματα. Αρχεία

Αρχεία και Ρεύματα. Αρχεία Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα

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

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1 ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε

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

HY335 4ο Φροντιστήριο

HY335 4ο Φροντιστήριο HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία

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

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

Διάλεξη Εισαγωγή στη Java, Μέρος Γ

Διάλεξη Εισαγωγή στη Java, Μέρος Γ Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος Γ Νήματα (Threads) στην Java Συγχρονισμός Producer-Consumer

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

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

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης Φροντιστήριο Α' Κατανεμημένα Συστήματα 2011-2012 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή

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

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός

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

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

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

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest: Εισαγωγή στη γλώσσα προγραμματισμού Java 41 6. Threads Πολλές γλώσσες προγαμματισμού όπως και η Java διαθέτουν εργαλεία για την υλοποίηση threads στα προγράμματά τους. Αυτές οι γλώσσες καλούνται multithreading

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

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Κεφάλαιο 1. Νήματα (Threads). Time Sharing

Κεφάλαιο 1. Νήματα (Threads). Time Sharing Κεφάλαιο 1. Νήματα (Threads). Time Sharing Η επεξεργαστική ισχύς είναι ένας πόρος περιορισμένος (ιδιαίτερα στις προηγούμενες δεκαετίες) ο οποίος θέλουμε να εξυπηρετεί ταυτόχρονα πολλές εργασίες. Στους

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

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

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

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών. Αρχιτεκτονικές. Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

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

Εισαγωγή στον Κατανεμημένο Προγραμματισμό

Εισαγωγή στον Κατανεμημένο Προγραμματισμό Εισαγωγή στον Κατανεμημένο Προγραμματισμό Περιεχόμενα Βασικές γνώσεις υποδοχών δικτύων Ιστορία του κατανεμημένου προγραμματισμού Εξέλιξη των πλαισίων ανάπτυξης επιχειρηματικών εφαρμογών Βασικές γνώσεις

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

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών Αρχιτεκτονικές Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

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

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

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

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

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης Φροντιστήριο Α' Κατανεμημένα Συστήματα 2013-2014 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Όροι IP διεύθυνση (IP address) Ένας 32 bit αριθμός που χρησιμοποιείται

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

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

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

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

50 Ketseo,Theoni Sarif,Omar 104

50 Ketseo,Theoni Sarif,Omar 104 Κ24: Προγραμματισμός Συστήματος 3η Εργασία Εαρινό Εξάμηνο 2016 Προθεσμία Υποβολής: Κυριακή 5 Ιουνίου 2016 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την χρήση

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

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

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

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

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Κατηγορίες Διαχείριση αρχείων Η κλάση File για τη διαχείριση αρχείων Δυαδικά ρεύματα Εγγραφή και ανάγνωση δυαδικών αρχείων

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

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021 ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021 18 Οκτωβρίου 2006 Η εργασία είχε σαν στόχο να δημιουργηθεί ένα κατανεμημένο σύστημα ελέγχου συσκευών μιας κουζίνας.συγκεκριμένα

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

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

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

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

Πολυνηµατικές εφαρµογές σε Java

Πολυνηµατικές εφαρµογές σε Java Πολυνηµατικές εφαρµογές σε Java Σταύρος Πολυβίου Τί είναι ένα νήµα (thread); Ας ορίσουµε πρώτα το τί είναι µία διεργασία (process): Ένα αυτοδύναµο περιβάλλον εκτέλεσης (selfcontained execution environment).

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

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

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

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

6. Εξαιρέσεις στη γλώσσα Java

6. Εξαιρέσεις στη γλώσσα Java 6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις

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

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Δικτυακά πρωτόκολλα και εφαρμογές, Δρομολόγηση Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Μοντέλο πελάτη-εξυπηρετητή Προκειμένου να χρησιμοποιήσουμε μια υπηρεσία του Internet

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 12: Είσοδος από & Έξοδος σε Ρεύματα & Αρχεία Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Επικοινωνία Client/Server

Επικοινωνία Client/Server Επικοινωνία Client/Server Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία - Client/Server 1 Μοντέλο Πελάτη-Εξυπηρετητή Βασική ιδέα: να δομηθεί το λειτουργικό σύστημα ως συνεργαζόμενες

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

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

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

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

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

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons. Για εκπαιδευτικό

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

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

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

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

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο

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

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Μ.Στεφανιδάκης Κατανεμημένα συστήματα ελέγχου Α Β διασυνδετικό δίκτυο Γ Δ Ε π.χ. οι επιμέρους

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βιβλιοθήκες ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΒΙΒΛΙΟΘΗΚΗ JAVA ΒΑΣΙΚΗ ΒΙΒΛΙΟΘΗΚΗ

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Είσοδος - Έξοδος ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής

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

7.2.2 Σχέση OSI και TCP/IP

7.2.2 Σχέση OSI και TCP/IP Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

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

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1 Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)

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

ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ

ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 145 ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ Βραχνός Ευριπίδης Καθηγητής

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

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 1 / 32 Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

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

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N

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

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας Πανεπιστήμιο Πειραιά To Μοντέλο OSI pdemest@unipi.gr ιάρθρωση Το μοντέλο αναφοράς OSI Επίπεδα Πρωτόκολλα, κατανομή πρωτοκόλλων σε στοιχεία δικτύου Αντιστοιχία τστοχα μοντέλων OSI και Internet Ανάλυση Επιπέδων

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

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

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

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

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

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