Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης
|
|
- Ζαρά Κουντουριώτης
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης
2 Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα
3 Εισαγωγή Sockets Δικτυακή επικοινωνία χαμηλού επιπέδου Σε client-server εφαρμογές: Ο server παρέχει κάποια υπηρεσία Ο client χρησιμοποιεί αυτή την υπηρεσία (πχ. Εμφανιση δεδομένων ενός query σε ΒΔ) Ανάγκη για αξιόπιστη επικοινωνία: TCP TCP: παρέχει ένα αξιόπιστο, point-to-point επικοινωνιακό κανάλι το οποίο χρησιμοποιούν οι εφαρμογές client-server στο Internet για να επικοινωνήσουν.
4 Τι είναι το 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 Χρήση του πακέτου java.net Βασική τάξη Socket Throw: public Socket(InetAddress address, int port) public Socket(String host, int port) UnknownHostException, IOException
6 Επικοινωνία μέσω Sockets Unicast 1 to 1 Multicast Πχ. αποστολή αρχείου από ένα κόμβο σε έναν άλλο Σε well-known port για όλους τους κόμβους Χρησιμοποιούμε UDP socket Πχ. Για να βρούμε ένα bootstrap κόμβο
7 Client/Server Example ServerSocket s = new ServerSocket(5008); Ο server παρακολουθεί το port 5008 Ακούει για συνδέσεις σε αυτό το port Socket insock = s.accept(); Ο server μπλοκάρει Περιμένει να φτάσει μια σύνδεση από τον client
8 Client/Server Example Πώς επικοινωνούν οι απομακρυσμένες διεργασίες? Μέσω streams InputStream instr = insock.getinputstream(); Για να διαβάζουμε ότι στέλνεται από την άλλη πλευρά της σύνδεσης OutputStream outstr = insock.getoutputstream(); Για να στείλουμε στην άλλη πλευρά της σύνδεσης
9 void openserver() { ServerSocket providersocket = null; Socket connection = null; String message = null; providersocket = new ServerSocket(4321, 10); 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(); catch (IOException ioexception) { ioexception.printstacktrace(); finally { // Closing connection providersocket.close(); catch (IOException ioexception) { ioexception.printstacktrace();
10 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(" ", 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! 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();
11 Μόνο ένας client? Το πρόβλημα με το προηγούμενο παράδειγμα: Εξυπηρετεί ένα client κάθε φορά βάζοντας στην ουρά τους υπόλοιπους Χρειαζόμαστε παράλληλη επεξεργασία των clients Τι κάνουμε τότε? Θέτουμε maximum μέγεθος στην ουρά ServerSocket(8500, 100) Και εξυπηρετούμε κάθε αίτηση με ένα νέο Thread (αργότερα...)
12 Διανομή Δεδομένων στο δίκτυο Unicast: Multicast Broadcast Ένας στέλνει, ένας συγκεκριμένος λαμβάνει Ένας στέλνει, Πολλοί λαμβάνουν (ομάδα από παραλήπτες) Ένας στέλνει, όλοι λαμβάνουν Επίσης anycast, geocast κτλ.
13 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();
14 Multicast Sender 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); 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);
15 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, ίδια
16 Γιατί χρειαζόμαστε threads? Παράλληλη επεξεργασία πχ. web server: Threads για παράλληλη αποστολή αρχείων σε κάθε client Threads στη μεριά του server για να εξυπηρετεί πολλούς clients Γρήγορη επικοινωνία μέσω shared memory Χρήση όλως των διαθέσιμων επεξεργαστών Επίδοση λιγότερος χρόνος για create / destroy για thread σε σχέση με process
17 Challenges Συγχρονισμός μεταξύ των threads που μοιράζονται τους ίδιους πόρους Η ταυτόχρονη εκτέλεση μπορεί να δημιουργήσει δυσκολίες
18 Race condition And Concurrent access Ταυτόχρονη προσπέλαση κρίσιμων περιοχών από πλέον του ενός thread. Δε θέλουμε δυο ή και περισσότερα νήματα να ανανεώνουν μια κοινή δομή δεδομένων ή μεταβλητή ή αντικείμενο κ.τ.λ. Οι synchronized methods μπορούν να καλεστούν ταυτόχρονα από πολλά threads Μόνο ένα thread θα προσπελάσει τη μέθοδο κάθε φορά public synchronized void mymethod(){ someintvar++;
19 Java Threads Κάθε εφαρμογή ξεκινά με ένα νήμα Εκτελεί τη μέθοδο main της εφαρμογής Το νήμα αυτό μπορεί να δημιουργήσει άλλα Διάφοροι τρόποι διακοπής εκτέλεσης Αναμονή εισόδου / εξόδου Αναμονή χρονομέτρου (sleep) Αναμονή γεγονότος (wait) Προτεραιότητες νημάτων Κάθε νήμα έχει προτεραιότητα 1 (χαμηλή) έως 10 (υψηλή) Η προτεραιότητα κληρονομείται από τον γονέα Χρονοπρογραμματισμός ανάλογα με την προτεραιότητα Διακοπτόμενος ή μη διακοπτόμενος χρονοπρογραμματισμός
20 Java Threads Νήματα: υποστηρίζονται μέσω της τάξης Thread Thread (String όνομα_νήματος) Thread () void start() void run () Κατασκευάζει ένα νήμα με συγκεκριμένο όνομα Κατασκευάζει ένα νήμα με όνομα "Thread-#" Ξεκινά την εκτέλεση ενός νέου νήματος (μέθοδος run()) Τα δύο νήματα εκτελούνται παράλληλα Η μέθοδος που περιέχει τον κώδικα του νήματος Κάθε thread ορίζει τη δική της run() void setname (String όνομα) / String getname () Θέτει/επιστρέφει το όνομα του νήματος
21 Java Threads static Thread currentthread () Επιστρέφει μία αναφορά προς το εκτελούμενο νήμα void sleep (int διάστημα) void yield () Αποκοιμίζει το νήμα για διάστημα msec Παραχωρεί τον επεξεργαστή σε άλλα νήματα void interrupt () Στέλνει στο νήμα ένα σήμα διακοπής σ ένα νήμα Αν το νήμα είναι σε κοιμισμένο ή σε αναμονή ξυπνάει Αλλιώς το νήμα πρέπει να ελέγχει ρητά αν έχει λάβει διακοπές boolean isinterrupted () Επιστρέφει true αν το νήμα έχει διακοπεί
22 Java Threads boolean isalive () Επιστρέφει true αν το νήμα εκτελείται void setpriority (int προτεραιότητα) / int getpriority () Θέτει/επιστρέφει την προτεραιότητα του νήματος void join (long διάστημα) Περιμένει τον τερματισμό του νήματος για διάστημα msec Αν το διάστημα είναι 0, αναμονή για πάντα void join (): Ισοδύναμη με join(0) void checkaccess () Εξετάζει αν έχουμε πρόσβαση στο νήμα Εξαίρεση αν δεν έχουμε, επιστροφή αν έχουμε Χρήσιμη για εκσφαλμάτωση εφαρμογών
23 Java Threads ThreadGroup getthreadgroup () Επιστρέφει την ομάδα του νήματος int activecount () Επιστρέφει το πλήθος ενεργών νημάτων της ομάδας int enumerate (Thread[] πίνακας) Αντιγράφει κάθε ενεργό νήμα της ομάδας στον πίνακα Αν ο πίνακας είναι μικρός, δεν αποθηκεύονται όλα String tostring () Επιστρέφει όνομα, προτεραιότητα και ομάδα του νήματος void dumpstack () Εμφανίζει τη στοίβα κλήσεων των μεθόδων του νήματος Χρήσιμη για εκσφαλμάτωση εφαρμογών
24 Thread Example public class mythread extends Thread { String input; public mythread(string input) { this.input = input; public void run() { for (int i = 0; i < 5; i++) { System.out.println(i + ":\t" + input); sleep((int) (Math.random() * 1000)); 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();*/
25 Runnable public class mythreadrunnable implements Runnable { String input; public mythreadrunnable(string input) { this.input = input; public void run() { for (int i = 0; i < 5; i++) { System.out.println(i + ":\t" + input); Thread.sleep((int) (Math.random() * 1000)); 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
26 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();
27 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
28 Ερωτήσεις???
Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης
Φροντιστήριο Α' Κατανεμημένα Συστήματα 2013-2014 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή
Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1
Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή
Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα
ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα
Κινητά και Διάχυτα Συστήματα. Ενότητα # 3: Νήματα και ταυτοχρονισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κινητά και Διάχυτα Συστήματα Ενότητα # 3: Νήματα και ταυτοχρονισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Νήματα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΝΗΜΑΤΑ
Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων
Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται
14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης
14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής
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
ιαδικτυακές Εφαρµογές
ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port
Διάλεξη Εισαγωγή στη Java, Μέρος Γ
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος Γ Νήματα (Threads) στην Java Συγχρονισμός Producer-Consumer
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Java Sockets, Threads, Ασκήσεις Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων SOCKETS 2 Διαδιεργασιακή επικοινωνία με Sockets
Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net
Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets
Ειδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά
Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα
Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002
HY335 4ο Φροντιστήριο
HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία
Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:
Εισαγωγή στη γλώσσα προγραμματισμού Java 41 6. Threads Πολλές γλώσσες προγαμματισμού όπως και η Java διαθέτουν εργαλεία για την υλοποίηση threads στα προγράμματά τους. Αυτές οι γλώσσες καλούνται multithreading
ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1
ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο
Πολυνηµατικές εφαρµογές σε Java
Πολυνηµατικές εφαρµογές σε Java Σταύρος Πολυβίου Τί είναι ένα νήµα (thread); Ας ορίσουµε πρώτα το τί είναι µία διεργασία (process): Ένα αυτοδύναµο περιβάλλον εκτέλεσης (selfcontained execution environment).
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,
Ειδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
(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.
13. Νήματα. 13.1 Νήματα και χρήση νημάτων στη Java. 13.1.1. Τι είναι τα νήματα; 13.1.2. Τρία μέρη ενός νήματος
13. Νήματα Ολοκληρώνοντας αυτό το κεφάλαιο θα μπορείτε Να κατανοείτε την έννοια του νήματος (thread) Να δημιουργείτε διακριτά νήματα στη Java, που θα ελέγχουν τον κώδικα και τα δεδομένα που χρησιμοποιούνται
{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }
11.2 Sockets 11.2.1 Το μοντέλο Client - Server και μερικοί ορισμοί Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ( client - server ). Ο εξυπηρετητής
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 15η: 31/08/2006 1 Εισαγωγή
Αντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java
ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα
ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021
ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021 18 Οκτωβρίου 2006 Η εργασία είχε σαν στόχο να δημιουργηθεί ένα κατανεμημένο σύστημα ελέγχου συσκευών μιας κουζίνας.συγκεκριμένα
Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
ΠΛΗΡΟΦΟΡΙΚΗ Ι 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
Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής
Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Όροι IP διεύθυνση (IP address) Ένας 32 bit αριθμός που χρησιμοποιείται
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Συγχρονισμός (Concurrency) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διεργασίες (processes) και Νήματα (threads) - Συγχρονισμός Νημάτων, Προβλήματα, Λύσεις - Οι τροποποιητές
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Εισαγωγή στα Java Νήµατα. Τι είναι ένα thread (1/9)
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 15η: 31/08/2006 1 Εισαγωγή
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.
Εισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Εγχειρίδιο Συναρτήσεων. 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 που σχετίζεται με αυτή Σε
Αρχεία και Ρεύματα. Αρχεία
Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα
Κεφάλαιο 1. Νήματα (Threads). Time Sharing
Κεφάλαιο 1. Νήματα (Threads). Time Sharing Η επεξεργαστική ισχύς είναι ένας πόρος περιορισμένος (ιδιαίτερα στις προηγούμενες δεκαετίες) ο οποίος θέλουμε να εξυπηρετεί ταυτόχρονα πολλές εργασίες. Στους
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου
08 Πολυνηματικός προγραμματισμός στο JVM
08 Πολυνηματικός προγραμματισμός στο JVM Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Πολυνηματικός multi threaded προγραμματισμός
Κατανεμημένα Συστήματα. 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
4 η ιάλεξη: Signals UDP Sockets
Εργαστήριο ικτύων Υπολογιστών 4 η ιάλεξη: ικτυακός Προγραμματισμός Signals UDP Sockets TCP sockets και signals Όταν σε ένα TCP server κάνουμε fork (γεννάμε διεργασίες-παιδιά servers για να εξυπηρετήσουμε
Εισαγωγή στον Κατανεμημένο Προγραμματισμό
Εισαγωγή στον Κατανεμημένο Προγραμματισμό Περιεχόμενα Βασικές γνώσεις υποδοχών δικτύων Ιστορία του κατανεμημένου προγραμματισμού Εξέλιξη των πλαισίων ανάπτυξης επιχειρηματικών εφαρμογών Βασικές γνώσεις
Εισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ
ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Αντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7
Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1
Ανάπτυξη δικτυακού παιχνιδιού με δυνατότητα συμμετοχής ακροατηρίου.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΜΣ ΔΙΔΑΚΤΙΚΗΣ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κατεύθυνση: Δικτυοκεντρικά Συστήματα Μάθημα: Δικτυακός Προγραμματισμός Ακαδημαϊκό έτος: 2011-2012 Διδάσκων:
Παράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Εισαγωγή στην 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
άσκηση Hide UI Elements 7.2 Try and Catch
7.1 Hide UI Elements Στο Android Studio όταν θέλουμε να κρύψουμε οτιδήποτε (κάποιο Button, ένα TextView, ένα ImageView κλπ) μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή: setvisibility(view.invisible)
Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1
Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution
Λειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ
3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 145 ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ Βραχνός Ευριπίδης Καθηγητής
6. Εξαιρέσεις στη γλώσσα Java
6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις
Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Λογικά λάθη public class ShowLogicErrors
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Το πρόγραμμα 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 υποστηρίζει
Εργαστήριο Κατανεμημένων Συστημάτων
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων Εργαστήριο Κατανεμημένων Συστημάτων Σημειώσεις Φεβρουάριος 2012 Περιεχόμενα 1. Εισαγωγή...
Λειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Remote Method Invocation (RMI)
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Remote Method Invocation (RMI) Εισαγωγή Η αποµακρυσµένη επίκληση µεθόδων (RMI), επιτρέπει σε
Προγραμματισμός Ταυτόχρονος Προγραμματισμός
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
50 Ketseo,Theoni Sarif,Omar 104
Κ24: Προγραμματισμός Συστήματος 3η Εργασία Εαρινό Εξάμηνο 2016 Προθεσμία Υποβολής: Κυριακή 5 Ιουνίου 2016 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την χρήση
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον
ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP
ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Τεκμηρίωση κώδικα
Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Τεκμηρίωση κώδικα Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Γαβαλάς Δαμιανός dgavalas@aegean.gr Λογικά
Γαβαλάς Δαμιανός dgavalas@aegean.gr
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #10 η : Ίνες και πολυνηματικός προγραμματισμός, Δυναμικές δομές δεδομένων στη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr 1 Νήματα Ένα νήμα (thread) από
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Δοµικά στοιχεία Πίνακες Το κόσκινο του Ερατοσθένη Αντιγραφή πινάκων
Διεργασίες (Processes)
Διεργασία (process) ή καθήκον (task) Διεργασίες (Processes) στοιχειώδης οντότητα/δραστηριότητα υπολογισμού (processing entity/activity) εκτέλεση ενός προγράμματος ένα (κύριο) νήμα (thread)/ρεύμα ελέγχου/εκτέλεσης
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:
Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi
Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει
Αντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA
Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Λιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή Οποιαδήποτε κλάση
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 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 υπηρεσία επιτρέπει σε έναν
Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων
Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο
Λειτουργικά Συστήματα. Εισαγωγή
Λειτουργικά Συστήματα Εισαγωγή Λειτουργικά Συστήματα Ι 4/10/2016 Περιληπτικά Στο σημερινό μάθημα θα δούμε ποια είναι η θέση του Λειτουργικού Συστήματος στην οργάνωση ενός ηλεκτρονικού υπολογιστή. Σπύρος
Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα
2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων
2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει