Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης
|
|
- Σωφρονία Λύκος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης
2 Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα
3 Εισαγωγή Sockets Δικτυακή επικοινωνία χαμηλού επιπέδου Σε client-server εφαρμογές: Ο server παρέχει κάποια υπηρεσία Ο client χρησιμοποιεί αυτή την υπηρεσία (πχ. Εμφανιση δεδομένων ενός query σε ΒΔ) Ανάγκη για αξιόπιστη επικοινωνία: TCP TCP: παρέχει ένα αξιόπιστο, point-to-point επικοινωνιακό κανάλι το οποίο χρησιμοποιούν οι εφαρμογές client-server στο Internet για να επικοινωνήσουν.
4 Client-Server socket Ο Server δεσμεύει ένα socket με συγκεκριμένο IP / port. Περιμένει και ακούει σε αυτή τη θύρα για αιτήσεις σύνδεσης. Client-side: Ο client ξέρει την IP / port στην οποία ακούει ο server και προσπαθεί να συνδεθεί αυτόν. Ο Client πρέπει να ορίσει τον εαυτό του: δεσμεύει ένα local port το οποίο χρησιμοποιεί στη διάρκεια της σύνδεσης (συνήθως δίνετε από το σύστημα). Μόλις γίνει το accept, o server δεσμεύει ένα νέο socket στην ίδια local port. Χρειαζόμαστε νέο socket για να μπορεί να συνεχίσει να ακούει στο αρχικό socket για αιτήσεις σύνδεσης. Ο client και ο server μπορούν τώρα να επικοινωνήσουν γράφοντας και διαβάζοντας από τα sockets τους.
5 Επικοινωνία μέσω Sockets Unicast 1 to 1 Multicast Πχ. αποστολή αρχείου από ένα κόμβο σε έναν άλλο Σε well-known port για όλους τους κόμβους Χρησιμοποιούμε UDP socket Πχ. Για να βρούμε ένα bootstrap κόμβο
6 Sockets Χρήση του πακέτου java.net Βασική τάξη Socket Throws: public Socket(InetAddress address, int port) public Socket(String host, int port) UnknownHostException, IOException
7 ServerSocket (TCP) Tάξη ServerSocket Throws: public ServerSocket(int port) public ServerSocket(int port, int queue_length) public Socket accept() IOException
8 InetAddress Η τάξη των διευθύνσεων IP public static InetAddress getbyaddress(byte[] addr) throws UnknownHostException public static InetAddress getbyname(string host) throws UnknownHostException, SecurityException public InetAddress getlocalhost() throws UnknownHostException public String getlocaladdress() public String gethostname()
9 Client/Server Example (TCP) ServerSocket s = new ServerSocket(5008); Ο server παρακολουθεί το port 5008 Socket insock = s.accept(); Ο server μπλοκάρει Ακούει για συνδέσεις σε αυτό το port Περιμένει να φτάσει μια σύνδεση από τον client
10 Client/Server Example (TCP) Πώς επικοινωνούν οι απομακρυσμένες διεργασίες? Μέσω streams InputStream instr = insock.getinputstream(); Για να διαβάζουμε ότι στέλνεται από την άλλη πλευρά της σύνδεσης OutputStream outstr = insock.getoutputstream(); Για να στείλουμε στην άλλη πλευρά της σύνδεσης
11 Streams Bytes: public InputStream getinputstream() public OutputStream getoutputstream() Primary data types: Object: DataInputStream / DataOutputStream ObjectInputStream / ObjectOutputStream Send Serializable objects
12 void openserver() { ServerSocket providersocket = null; Socket connection = null; String message = null; providersocket = new ServerSocket(4321); while (true) { // Wait for connection connection = providersocket.accept(); Server // get Input and Output streams ObjectOutputStream out = new ObjectOutputStream(connection.getOutputStream()); ObjectInputStream in = new ObjectInputStream(connection.getInputStream()); out.writeobject("connection successful!"); out.flush(); // The two parts communicate via the input and output streams do { message = (String) in.readobject(); System.out.println(connection.getInetAddress().getHostAddress() + ">" + message); catch (ClassNotFoundException classnot) { System.err.println("Data received in unknown format"); while (!message.equals("bye")); in.close(); out.close(); connection.close(); catch (IOException ioexception) { ioexception.printstacktrace(); finally { // Closing connection providersocket.close(); catch (IOException ioexception) { ioexception.printstacktrace();
13 Client void startclient() { Socket requestsocket = null; ObjectOutputStream out = null; ObjectInputStream in = null; String message; // 1. creating a socket to connect to the server requestsocket = new Socket(InetAddress.getByName(" "), 4321); // 2. get Input and Output streams out = new ObjectOutputStream(requestSocket.getOutputStream()); in = new ObjectInputStream(requestSocket.getInputStream()); // 3: Communicating with the server message = (String) in.readobject(); System.out.println("Server>" + message); out.writeobject("hi!"); out.flush(); out.writeobject("just Testing.."); out.flush(); out.writeobject("bye"); out.flush(); catch (ClassNotFoundException classnot) { System.err.println("data received in unknown format"); catch (UnknownHostException unknownhost) { System.err.println("You are trying to connect to an unknown host!"); catch (IOException ioexception) { ioexception.printstacktrace(); finally { // 4: Closing connection in.close(); out.close(); requestsocket.close(); catch (IOException ioexception) { ioexception.printstacktrace();
14 Μόνο ένας client? Το πρόβλημα με το προηγούμενο παράδειγμα: Εξυπηρετεί ένα client κάθε φορά βάζοντας στην ουρά τους υπόλοιπους (μέχρι 50) Χρειαζόμαστε παράλληλη επεξεργασία των clients Τι κάνουμε τότε? Θέτουμε maximum μέγεθος στην ουρά ServerSocket(8500, 100) Και εξυπηρετούμε κάθε αίτηση με ένα νέο Thread (αργότερα...)
15 DatagramSocket(UDP) Αποστολή πακέτων χωρίς σύνδεση Καμία εγγύηση στην παραλαβή ή στη σειρά Throws: public DatagramPacket(byte[] buf, int length) DatagramPacket(byte[] buf, int length, InetAddress address, int port) public DatagramSocket(int port) SocketException
16 Server public void openserver() { DatagramSocket socket = null; socket = new DatagramSocket(4445); while (true) { byte[] buf = new byte[256]; // receive request DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet); // figure out response String dstring = new Date().toString(); buf = dstring.getbytes(); // send the response to the client at "address" and "port" InetAddress address = packet.getaddress(); int port = packet.getport(); packet = new DatagramPacket(buf, buf.length, address, port); socket.send(packet); catch (IOException e) { e.printstacktrace(); catch (SocketException e) { socket.close(); e.printstacktrace();
17 Client public void startclient() { String hostname = "localhost"; // get a datagram socket DatagramSocket socket = null; socket = new DatagramSocket(); // send request byte[] buf = new byte[256]; InetAddress address = InetAddress.getByName(hostname); DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 4445); socket.send(packet); // get response packet = new DatagramPacket(buf, buf.length); socket.receive(packet); // display response String received = new String(packet.getData(), 0, packet.getlength()); System.out.println("Date/Time: " + received); catch (SocketException e) { e.printstacktrace(); catch (UnknownHostException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); finally { socket.close();
18 Διανομή Δεδομένων στο δίκτυο Unicast: Multicast Broadcast Ένας στέλνει, ένας συγκεκριμένος λαμβάνει Ένας στέλνει, Πολλοί λαμβάνουν (ομάδα από παραλήπτες) Ένας στέλνει, όλοι λαμβάνουν Επίσης anycast, geocast κτλ.
19 MulticastSocket MulticastSocket(int port) public void joingroup(inetaddress mcastaddr) public void leavegroup(inetaddress mcastaddr) Throws: IOException
20 Multicast Sniffer MulticastSocket ms = null; InetAddress ia = null; byte[] buffer = new byte[65535]; DatagramPacket dp = new DatagramPacket(buffer, buffer.length); // to String address = " "; int port = 5000; ia = InetAddress.getByName(address); catch (UnknownHostException e) { System.err.println(e); ms = new MulticastSocket(port); ms.joingroup(ia); while (true) { ms.receive(dp); String s = new String(dp.getData(), 0, dp.getlength()); System.out.println(s); catch (SocketException se) { System.err.println(se); catch (IOException ie) { System.err.println(ie); finally { ms.close();
21 Multicast Sender InetAddress ia = null; // to String address = " "; int port = 5000; ia = InetAddress.getByName(address); catch (UnknownHostException e) { System.err.println(e); MulticastSocket ms = new MulticastSocket(); String temp = "Hi There"; byte[] data = temp.getbytes(); DatagramPacket datagrampacket = new DatagramPacket(data, data.length, ia, port); ms.send(datagrampacket); System.out.println("Sent!"); catch (SocketException se) { System.err.println(se); catch (IOException ie) { System.err.println(ie);
22 Java Threads Γνωστά και ως: lightweight process (LWP) Αποτελούνται από: stack, register program counter, thread id Μοιράζεται με άλλα threads στην διεργασία: code section, data open files, signals Three thread states: running, ready, blocked set, section, ίδια
23 Γιατί χρειαζόμαστε threads? Παράλληλη επεξεργασία πχ. web server: Threads για παράλληλη αποστολή αρχείων σε κάθε client Threads στη μεριά του server για να εξυπηρετεί πολλούς clients Γρήγορη επικοινωνία μέσω shared memory Χρήση όλως των διαθέσιμων επεξεργαστών Επίδοση λιγότερος χρόνος για create / destroy για thread σε σχέση με process
24 Challenges Συγχρονισμός μεταξύ των threads που μοιράζονται τους ίδιους πόρους Η ταυτόχρονη εκτέλεση μπορεί να δημιουργήσει δυσκολίες
25 Race condition And Concurrent access Ταυτόχρονη προσπέλαση κρίσιμων περιοχών από πλέον του ενός thread. Δε θέλουμε δυο ή και περισσότερα νήματα να ανανεώνουν μια κοινή δομή δεδομένων ή μεταβλητή ή αντικείμενο κ.τ.λ. Οι synchronized methods μπορούν να καλεστούν ταυτόχρονα από πολλά threads Μόνο ένα thread θα προσπελάσει τη μέθοδο κάθε φορά public synchronized void mymethod(){ someintvar++;
26 Java Threads Κάθε εφαρμογή ξεκινά με ένα νήμα Εκτελεί τη μέθοδο main της εφαρμογής Το νήμα αυτό μπορεί να δημιουργήσει άλλα Διάφοροι τρόποι διακοπής εκτέλεσης Αναμονή εισόδου / εξόδου (interrupt) Αναμονή χρονομέτρου (sleep) Αναμονή γεγονότος (wait) Προτεραιότητες νημάτων Κάθε νήμα έχει προτεραιότητα 1 (χαμηλή) έως 10 (υψηλή) Η προτεραιότητα κληρονομείται από τον γονέα Χρονοπρογραμματισμός ανάλογα με την προτεραιότητα Διακοπτόμενος ή μη διακοπτόμενος χρονοπρογραμματισμός
27 Java Threads Νήματα: υποστηρίζονται μέσω της τάξης Thread Thread (String όνομα_νήματος) Thread () void start() void run () Κατασκευάζει ένα νήμα με συγκεκριμένο όνομα Κατασκευάζει ένα νήμα με όνομα "Thread-#" Ξεκινά την εκτέλεση ενός νέου νήματος (μέθοδος run()) Τα δύο νήματα εκτελούνται παράλληλα Η μέθοδος που περιέχει τον κώδικα του νήματος Κάθε thread ορίζει τη δική της run() void setname (String όνομα) / String getname () Θέτει/επιστρέφει το όνομα του νήματος
28 Java Threads static Thread currentthread () Επιστρέφει μία αναφορά προς το εκτελούμενο νήμα void sleep (int διάστημα) void yield () Αποκοιμίζει το νήμα για διάστημα msec Παραχωρεί τον επεξεργαστή σε άλλα νήματα void interrupt () Στέλνει στο νήμα ένα σήμα διακοπής Αν το νήμα είναι σε κοιμισμένο ή σε αναμονή ξυπνάει Αλλιώς το νήμα πρέπει να ελέγχει ρητά αν έχει λάβει διακοπές boolean isinterrupted () Επιστρέφει true αν το νήμα έχει διακοπεί
29 Java Threads boolean isalive () Επιστρέφει true αν το νήμα εκτελείται void setpriority (int προτεραιότητα) / int getpriority () Θέτει/επιστρέφει την προτεραιότητα του νήματος void join (long διάστημα) Περιμένει τον τερματισμό του νήματος για διάστημα msec Αν το διάστημα είναι 0, αναμονή για πάντα void join (): Ισοδύναμη με join(0) void checkaccess () Εξετάζει αν έχουμε πρόσβαση στο νήμα Εξαίρεση αν δεν έχουμε, επιστροφή αν έχουμε Χρήσιμη για εκσφαλμάτωση εφαρμογών
30 Java Threads ThreadGroup getthreadgroup () Επιστρέφει την ομάδα του νήματος int activecount () Επιστρέφει το πλήθος ενεργών νημάτων της ομάδας int enumerate (Thread[] πίνακας) Αντιγράφει κάθε ενεργό νήμα της ομάδας στον πίνακα Αν ο πίνακας είναι μικρός, δεν αποθηκεύονται όλα String tostring () Επιστρέφει όνομα, προτεραιότητα και ομάδα του νήματος void dumpstack () Εμφανίζει τη στοίβα κλήσεων των μεθόδων του νήματος Χρήσιμη για εκσφαλμάτωση εφαρμογών
31 Thread Example public class mythread extends Thread { String input; public mythread(string input) { this.input = input; public void run() { for (int i = 0; i < 10; i++) { System.err.println(i + ":\t" + input); sleep((int) (Math.random() * 500)); catch (InterruptedException e) { public static void main(string[] args) { Thread t = new mythread("distributed"); t.start(); Thread t2 = new mythread("systems"); t2.start(); /* PROSOXH OXI: t = new mythread("distributed"); t.run(); t2 = new mythread("systems"); t2.run();*/
32 Runnable public class mythreadrunnable implements Runnable { String input; public mythreadrunnable(string input) { this.input = input; public void run() { for (int i = 0; i < 10; i++) { System.err.println(i + ":\t" + input); Thread.sleep((int) (Math.random() * 500)); catch (InterruptedException e) { public static void main(string[] args) { mythreadrunnable t = new mythreadrunnable("distributed"); new Thread(t).start(); mythreadrunnable t2 = new mythreadrunnable("systems"); new Thread(t2).start(); OUTPUT: 0: Distributed 0: Systems 1: Distributed 1: Systems 2: Distributed 3: Distributed 2: Systems 4: Distributed 3: Systems 4: Systems...
33 Server with Threads public class Provider { ServerSocket providersocket; Socket connection = null; ObjectOutputStream out; ObjectInputStream in; String message; Provider() { void openserver() { // creating a server socket providersocket = new ServerSocket(4321, 10); while (true) { // Wait for connection connection = providersocket.accept(); Thread t = new actionsforclients(connection); t.start(); catch (IOException ioexception) { ioexception.printstacktrace(); finally { // Closing connection providersocket.close(); catch (IOException ioexception) { ioexception.printstacktrace(); public class actionsforclients extends Thread { ObjectInputStream in; ObjectOutputStream out; public actionsforclients(socket connection) { out = new ObjectOutputStream(connection.getOutputStream()); in = new ObjectInputStream(connection.getInputStream()); catch (IOException e) { e.printstacktrace(); public void run() { int a = in.readint(); int b = in.readint(); out.writeint(a + b); out.flush(); catch (IOException e) { e.printstacktrace(); finally { in.close(); out.close(); catch (IOException ioexception) { ioexception.printstacktrace();
34 Client using thread public class Client extends Thread { int a, b; Client(int a, int b) { this.a = a; this.b = b; public void run() { Socket requestsocket = null; ObjectOutputStream out = null; ObjectInputStream in = null; requestsocket = new Socket(" ", 4321); out = new ObjectOutputStream(requestSocket.getOutputStream()); in = new ObjectInputStream(requestSocket.getInputStream()); out.writeint(a); out.flush(); out.writeint(b); out.flush(); System.out.println("Server>" + in.readint()); catch (UnknownHostException unknownhost) { System.err.println("You are trying to connect to an unknown host!"); catch (IOException ioexception) { ioexception.printstacktrace(); finally { in.close(); out.close(); requestsocket.close(); catch (IOException ioexception) { ioexception.printstacktrace(); public static void main(string args[]) { new Client(10, 5).start(); new Client(20, 5).start(); new Client(30, 5).start(); new Client(40, 5).start(); new Client(50, 5).start(); new Client(60, 5).start(); new Client(70, 5).start(); new Client(80, 5).start(); new Client(90, 5).start(); new Client(100, 5).start(); Server>85 Server>95 Server>65 Server>105 Server>15 Server>55 Server>35 Server>45 Server>25 Server>75
35 Ερωτήσεις???
Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης
Φροντιστήριο Α' Κατανεμημένα Συστήματα 2011-2012 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή
Διαβάστε περισσότεραΝήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1
Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή
Διαβάστε περισσότερα14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης
14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται
Διαβάστε περισσότεραιαδικτυακές Εφαρµογές
ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής
Διαβάστε περισσότεραΟρισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα
ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων
Διαβάστε περισσότεραHY335 4ο Φροντιστήριο
HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία
Διαβάστε περισσότερα{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }
11.2 Sockets 11.2.1 Το μοντέλο Client - Server και μερικοί ορισμοί Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ( client - server ). Ο εξυπηρετητής
Διαβάστε περισσότεραΚατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα
Διαβάστε περισσότεραΚινητά και Διάχυτα Συστήματα. Ενότητα # 3: Νήματα και ταυτοχρονισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κινητά και Διάχυτα Συστήματα Ενότητα # 3: Νήματα και ταυτοχρονισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΚατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Java Sockets, Threads, Ασκήσεις Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων SOCKETS 2 Διαδιεργασιακή επικοινωνία με Sockets
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Νήματα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΝΗΜΑΤΑ
Διαβάστε περισσότεραικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1
ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε
Διαβάστε περισσότεραΤ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων
Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται
Διαβάστε περισσότεραΕργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net
Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets
Διαβάστε περισσότερα(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.
Διαβάστε περισσότεραΗ Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα
Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002
Διαβάστε περισσότεραΔιάλεξη Εισαγωγή στη Java, Μέρος Γ
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος Γ Νήματα (Threads) στην Java Συγχρονισμός Producer-Consumer
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Όροι IP διεύθυνση (IP address) Ένας 32 bit αριθμός που χρησιμοποιείται
Διαβάστε περισσότεραDistributed Systems. Βάνα Καλογεράκη Τµήµα Πληροφορικής Οικονοµικό Πανεπιστήµιο Αθηνών. Lecture 3: Threads (Νήµατα) Distributed Systems
Βάνα Καλογεράκη Τµήµα Πληροφορικής Οικονοµικό Πανεπιστήµιο Αθηνών 1 Lecture 3: Threads (Νήµατα) The Case for Cooperating Processes Independent process: cannot affect or be affected by the execution of
Διαβάστε περισσότεραΚαρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά
Διαβάστε περισσότεραΚατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου
Διαβάστε περισσότεραΝτίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,
Διαβάστε περισσότεραΤο παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:
Εισαγωγή στη γλώσσα προγραμματισμού Java 41 6. Threads Πολλές γλώσσες προγαμματισμού όπως και η Java διαθέτουν εργαλεία για την υλοποίηση threads στα προγράμματά τους. Αυτές οι γλώσσες καλούνται multithreading
Διαβάστε περισσότερα4 η ιάλεξη: Signals UDP Sockets
Εργαστήριο ικτύων Υπολογιστών 4 η ιάλεξη: ικτυακός Προγραμματισμός Signals UDP Sockets TCP sockets και signals Όταν σε ένα TCP server κάνουμε fork (γεννάμε διεργασίες-παιδιά servers για να εξυπηρετήσουμε
Διαβάστε περισσότεραΕισαγωγή στον Κατανεμημένο Προγραμματισμό
Εισαγωγή στον Κατανεμημένο Προγραμματισμό Περιεχόμενα Βασικές γνώσεις υποδοχών δικτύων Ιστορία του κατανεμημένου προγραμματισμού Εξέλιξη των πλαισίων ανάπτυξης επιχειρηματικών εφαρμογών Βασικές γνώσεις
Διαβάστε περισσότεραΠολυνηµατικές εφαρµογές σε Java
Πολυνηµατικές εφαρµογές σε Java Σταύρος Πολυβίου Τί είναι ένα νήµα (thread); Ας ορίσουµε πρώτα το τί είναι µία διεργασία (process): Ένα αυτοδύναµο περιβάλλον εκτέλεσης (selfcontained execution environment).
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο
Διαβάστε περισσότεραΕργαστήριο Κατανεμημένων Συστημάτων
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων Εργαστήριο Κατανεμημένων Συστημάτων Σημειώσεις Φεβρουάριος 2012 Περιεχόμενα 1. Εισαγωγή...
Διαβάστε περισσότεραΕισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Διαβάστε περισσότεραΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ
ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream
Διαβάστε περισσότεραΑρχεία και Ρεύματα. Αρχεία
Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021
ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021 18 Οκτωβρίου 2006 Η εργασία είχε σαν στόχο να δημιουργηθεί ένα κατανεμημένο σύστημα ελέγχου συσκευών μιας κουζίνας.συγκεκριμένα
Διαβάστε περισσότερα13. Νήματα. 13.1 Νήματα και χρήση νημάτων στη Java. 13.1.1. Τι είναι τα νήματα; 13.1.2. Τρία μέρη ενός νήματος
13. Νήματα Ολοκληρώνοντας αυτό το κεφάλαιο θα μπορείτε Να κατανοείτε την έννοια του νήματος (thread) Να δημιουργείτε διακριτά νήματα στη Java, που θα ελέγχουν τον κώδικα και τα δεδομένα που χρησιμοποιούνται
Διαβάστε περισσότεραΕπίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής
Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός
Διαβάστε περισσότεραΑντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java
ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα
Διαβάστε περισσότεραΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013
Διαβάστε περισσότεραΔίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 15η: 31/08/2006 1 Εισαγωγή
Διαβάστε περισσότεραΚατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,
Διαβάστε περισσότεραΕγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)
Socket *sopen(const int type, const int protocol, const char *host, const char *service) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Συγχρονισμός (Concurrency) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διεργασίες (processes) και Νήματα (threads) - Συγχρονισμός Νημάτων, Προβλήματα, Λύσεις - Οι τροποποιητές
Διαβάστε περισσότεραJava Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7
Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραInterprocess Communication
ιαδιεργασική Επικοινωνία Interprocess Communication Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο
Διαβάστε περισσότεραΚατανεμημένα Συστήματα. Javascript LCR example
Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07
Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραRemote Method Invocation (RMI)
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Remote Method Invocation (RMI) Εισαγωγή Η αποµακρυσµένη επίκληση µεθόδων (RMI), επιτρέπει σε
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Εισαγωγή στα Java Νήµατα. Τι είναι ένα thread (1/9)
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 15η: 31/08/2006 1 Εισαγωγή
Διαβάστε περισσότεραΑνάπτυξη δικτυακού παιχνιδιού με δυνατότητα συμμετοχής ακροατηρίου.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΜΣ ΔΙΔΑΚΤΙΚΗΣ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κατεύθυνση: Δικτυοκεντρικά Συστήματα Μάθημα: Δικτυακός Προγραμματισμός Ακαδημαϊκό έτος: 2011-2012 Διδάσκων:
Διαβάστε περισσότερα08 Πολυνηματικός προγραμματισμός στο JVM
08 Πολυνηματικός προγραμματισμός στο JVM Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Πολυνηματικός multi threaded προγραμματισμός
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 12: Είσοδος από & Έξοδος σε Ρεύματα & Αρχεία Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΤ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων
Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε
Διαβάστε περισσότεραΚεφάλαιο 1. Νήματα (Threads). Time Sharing
Κεφάλαιο 1. Νήματα (Threads). Time Sharing Η επεξεργαστική ισχύς είναι ένας πόρος περιορισμένος (ιδιαίτερα στις προηγούμενες δεκαετίες) ο οποίος θέλουμε να εξυπηρετεί ταυτόχρονα πολλές εργασίες. Στους
Διαβάστε περισσότεραΠρογραμματισμός με BSD Sockets σε περιβάλλον Linux
Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά
Διαβάστε περισσότερα6. Εξαιρέσεις στη γλώσσα Java
6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις
Διαβάστε περισσότεραΤο πρόγραμμα 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 υποστηρίζει
Διαβάστε περισσότεραΖητήματα Σχεδίασης Λογισμικού Εξυπηρετητή
Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Ταυτόχρονοι και Επαναληπτικοί Εξυπηρετητές Επαναληπτικός εξυπηρετητής: επεξεργάζεται μόνο μία αίτηση τη φορά. Ταυτόχρονος
Διαβάστε περισσότεραΕισαγωγή στην Java. Module 9: Threads. Prepared by Chris Panayiotou for EPL /03/2004
Εισαγωγή στην Java Module 9: Threads 15/03/2004 Prepared by Chris Panayiotou for EPL 602 1 Εισαγωγή στα Threads Συχνά χρειάζεται, να υπάρχουν ανεξάρτητες διεργασίες σε ένα πρόγραµµα separate, independently-running
Διαβάστε περισσότεραΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 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 υπηρεσία επιτρέπει σε έναν
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ
ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream
Διαβάστε περισσότεραΤύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον
Διαβάστε περισσότεραΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA
Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Τεκμηρίωση κώδικα
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Τεκμηρίωση κώδικα Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται
Διαβάστε περισσότεραΥποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ
3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 145 ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ Βραχνός Ευριπίδης Καθηγητής
Διαβάστε περισσότεραάσκηση Hide UI Elements 7.2 Try and Catch
7.1 Hide UI Elements Στο Android Studio όταν θέλουμε να κρύψουμε οτιδήποτε (κάποιο Button, ένα TextView, ένα ImageView κλπ) μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή: setvisibility(view.invisible)
Διαβάστε περισσότεραΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP
ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή
Διαβάστε περισσότεραΤεχνολογίες ιαδικτύου
Τεχνολογίες ιαδικτύου Εισαγωγή Αρχιτεκτονική, Πρωτόκολλα και Πρότυπα Βασικών Υπηρεσιών Ιστορικά Στοιχεία ARPANET Ο «παππούς» των δικτύων Αναπτύχθηκε από την DARPA στα τέλη του 60 Το 83 διασπάται σε MILNET
Διαβάστε περισσότεραΔιαδικτυακές Εφαρμογές Ενότητα 4: Streams
Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Διαβάστε περισσότεραΒασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1
Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραWeb and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol
HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Λογικά λάθη public class ShowLogicErrors
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 10. Δικτυακός προγραμματισμός Εισαγωγή
ΚΕΦΑΛΑΙΟ 10 Δικτυακός προγραμματισμός Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε το δικτυακό προγραμματισμό μέσω της αφαίρεσης των sockets. Προαπαιτούμενη γνώση Η κατανόηση των εννοιών και παραδειγμάτων
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων
Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου
Διαβάστε περισσότεραΓενικά (για τις γραπτές εξετάσεις)
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε
Διαβάστε περισσότερα50 Ketseo,Theoni Sarif,Omar 104
Κ24: Προγραμματισμός Συστήματος 3η Εργασία Εαρινό Εξάμηνο 2016 Προθεσμία Υποβολής: Κυριακή 5 Ιουνίου 2016 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την χρήση
Διαβάστε περισσότεραΠρογραμματισμός Ταυτόχρονος Προγραμματισμός
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΣύνοψη 5 ης ιάλεξης. Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων.
Σύνοψη 5 ης ιάλεξης Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τετάρτη, 16 Απριλίου, 2008 Αίθουσα ΑΠ7 Κατανεµηµένα Συστήµατα
Διαβάστε περισσότερα! Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση. ! Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες
Δέσμευση Μνήμης! Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Διαχείριση Μνήµης! Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες δέσμευσης μνήμης:! Για την αποδοτική δέσμευση
Διαβάστε περισσότεραΕργαστήριο Δικτύων Υπολογιστών
Εργαστήριο Δικτύων Υπολογιστών 2 η Διάλεξη: TCP/UDP Δικτυακά πρωτόκολλα / εφαρμογές Ports Unix δικτυακές εντολές Transmission Control Protocol - TCP Πρωτόκολλο Mεταφοράς RFC 793 [Postel 1981] Xρησιμοποιεί
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Γαβαλάς Δαμιανός dgavalas@aegean.gr Λογικά
Διαβάστε περισσότερα