Προγραµµατισµός ικτύων Ε-01

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

Download "Προγραµµατισµός ικτύων Ε-01"

Transcript

1 Προγραµµατισµός ικτύων Ε-01 4η ιάλεξη ιδάσκων: Νίκος Ντάρµος [ Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων

2 Στο σηµερινό µάθηµα... Μεταφέρσιµος προγραµµατισµός µε sockets. Σχεδιαστικά µοντέλα δικτυακών εφαρµογών. Εισαγωγή σε Ϲητήµατα υλοποίησης πελατών και εξυπηρετητών.

3 Εισαγωγή Μεταφέρσιµος προγραµµατισµός µε sockets

4 Βασική δοµή προγραµµάτων Εισαγωγή Βασική δοµή προγραµµάτων Προβληµατικές περιοχές Συνδεσµοστραφής επικοινωνία Client Server Ασυνδεσµική επικοινωνία socket(2) socket(2) Client Server bind(2) socket(2) socket(2) Client Server I/O connect(2) write(2) read(2) close(2) Connection Request Connection Termination listen(2) accept(2) read(2) write(2) close(2) Client Server I/O sendto(2) recvfrom(2) close(2) bind(2) recvfrom(2) sendto(2) close(2)

5 Βασική δοµή προγραµµάτων Εισαγωγή Βασική δοµή προγραµµάτων Προβληµατικές περιοχές Πελάτης 1 Αναγνώριση της τοποθεσίας του εξυπηρετητή. ιεύθυνση IP ή συµβολικό όνοµα κόµβου. Αριθµός ϑύρας δικτυακής επικοινωνίας. Μετατροπή δεδοµένων σε αναπαράσταση δικτύου. 2 ηµιουργία socket πελάτη. 3 Ανάθεση αριθµού ϑύρας στο socket πελάτη. 4 Σύνδεση στο socket του εξυπηρετητή. 5 Ανταλλαγή δεδοµένων µε τον εξυπηρετητή. 6 Τερµατισµός σύνδεσης.

6 Βασική δοµή προγραµµάτων Εισαγωγή Βασική δοµή προγραµµάτων Προβληµατικές περιοχές Εξυπηρετητής 1 Αναγνώριση της τοποθεσίας του εξυπηρετητή. ιεύθυνση IP ή συµβολικό όνοµα κόµβου. Αριθµός ϑύρας δικτυακής επικοινωνίας. Μετατροπή δεδοµένων από αναπαράσταση κόµβου σε αναπαράσταση δικτύου. 2 ηµιουργία socket εξυπηρετητή. 3 έσµευση του socket στην προκαθορισµένη διεύθυνση και ϑύρα. 4 ηµιουργία ουράς αναµονής στο socket του εξυπηρετητή. 5 Αποδοχή επόµενης αίτησης σύνδεσης πελάτη. 6 Ανταλλαγή δεδοµένων µε τον πελάτη. 7 Τερµατισµός σύνδεσης.

7 Προβληµατικές περιοχές Εισαγωγή Βασική δοµή προγραµµάτων Προβληµατικές περιοχές Προσοχή! Η διαλειτουργικότητα είναι ευθύνη του προγραµµατιστή! ιαφορετικοί τύποι δεδοµένων ανάλογα την αρχιτεκτονική & το λειτουργικό σύστηµα του κόµβου. ιαφορετικές δοµές δεδοµένων και κλήσεις συστήµατος, ανάλογα το επιλεγµένο πρωτόκολλο επιπέδου διαδικτύου. Μετατροπή διεύθυνσης κόµβου σε δυαδική αναπαράσταση. Μετατροπή διεύθυνσης IP από συµβολοσειρά σε δυαδική αναπαράσταση. Μετατροπή συµβολικού ονόµατος κόµβου από συµβολοσειρά σε δυαδική αναπαράσταση. Μετατροπή των παραπάνω σε αναπαράσταση δικτύου. Μετατροπή ϑύρας/υπηρεσίας σε δυαδική αναπαράσταση. Μετατροπή αριθµού ϑύρας από συµβολοσειρά σε δυαδική αναπαράσταση. Μετατροπή συµβολικού ονόµατος υπηρεσίας από συµβολοσειρά σε δυαδική αναπαράσταση. Μετατροπή των παραπάνω σε αναπαράσταση δικτύου. ηµιουργία socket συγκεκριµένης οικογένειας πρωτοκόλλων. Υποχρησιµοποίηση διαθέσιµων διευθύνσεων κόµβου.

8 Εισαγωγή Κύρια προβλήµατα: δυαδική αναπαράσταση και µέγεθος του τύπου δεδοµένων. υαδική αναπαράσταση: Big-endian ή little-endian. Αλλάζει ανάλογα την αρχιτεκτονική του επεξεργαστή & το λειτουργικό σύστηµα. Παράδειγµα: Μέγεθος: x86, x86_64: little-endian. Sun Sparc <V9, PowerPC: big-endian. Alpha AXP, Sun Sparc V9: επιλέγει το firmware ή/και το λειτουργικό. ίκτυο: πάντα big-endian. Τα πρότυπα ορίζουν κάποια ελάχιστα µεγέθη για τους ϐασικούς τύπους. Το πραγµατικό µέγεθος αλλάζει ανάλογα την αρχιτεκτονική του επεξεργαστή & το λειτουργικό σύστηµα. Παράδειγµα: long int: 16-bit CPU: 2 bytes (Intel Pentium ). 32-bit CPU: 4 bytes (Intel Pentium 4, Motorola 68k, ARM, Sun Sparc <V9). 64-bit CPU: 8 bytes (Alpha AXP, Intel Pentium 4, Sun Sparc V9).

9 Εισαγωγή Αναπαράσταση htons(3), htonl(3), ntohs(3), ntohl(3) (h: host, n: network, s: 16-bit int, l: 32-bit int). Μέγεθος Τα πρότυπα ορίζουν ϐασικούς τύπους δεδοµένων σταθερού/προκαθορισµένου µεγέθους. int_16_t, int_32_t, int_64_t, u_int_16t,... <sys/types.h>, <inttypes.h>,... Το API των sockets ορίζει ϐασικούς τύπους δεδοµένων σταθερού/προκαθορισµένου µεγέθους. sa_family_t, in_port_t,... <sys/types.h>, <sys/socket.h>, <netinet/in.h>,... Ο τελεστής sizeof επιστρέφει το µέγεθος του τύπου σε bytes. Καλό είναι, όταν µεταφέρουµε δεδοµένα, να συµπεριλαµβάνουµε και το µέγεθός τους.

10 Εισαγωγή Εξάρτηση από το πρωτόκολλο επιπέδου διαδικτύου οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Ο κώδικάς µας µπορεί να χρησιµοποιηθεί σε πολλά διαφορετικά συστήµατα. Κόµβοι µόνο µε IPv4 διευθύνσεις. Κόµβοι µόνο µε IPv6 διευθύνσεις. Κόµβοι µε «dual IP stack» (υποστηρίζουν IPv4 και IPv6 ταυτόχρονα). Οι διευθύνσεις των κόµβων και των υπηρεσιών αποθηκεύονται σε δοµές δεδοµένων διαφορετικές για κάθε πρωτόκολλο επιπέδου διαδικτύου. Πολλές συναρτήσεις του BSD sockets API παίρνουν ως όρισµα την «οικογένεια πρωτοκόλλων» ( πρωτόκολλο επιπέδου διαδικτύου). Πολλοί κόµβοι έχουν περισσότερες από µια διευθύνσεις. Πως µπορούµε να κάνουµε το πρόγραµµά µας ανεξάρτητο του πρωτοκόλλου στο επίπεδο διαδικτύου;

11 Εισαγωγή Οι δοµές δεδοµένων struct sockaddr* οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων struct sockaddr struct sockaddr { sa_family_t char }; sa_family; sa_data[14]; struct sockaddr_un struct sockaddr_un { unsigned char sun_len; sa_family_t sun_family; char sun_path[104]; }; struct sockaddr_in struct sockaddr_in { unsigned char sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8]; }; struct sockaddr_in6 struct sockaddr_in6 { unsigned char sin6_len; sa_family_t sin6_family; in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; uint32_t sin6_scope_id; }; struct in_addr struct in_addr { in_addr_t s_addr; }; struct in6_addr struct in6_addr { uint8_t u6_addr8[16]; }; #define s6_addr u6_addr8

12 Εισαγωγή Μέγεθος των δοµών struct sockaddr* οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Οι συναρτήσεις του BSD sockets API παίρνουν ως όρισµα δείκτη σε struct sockaddr. Πάντα όµως χρησιµοποιούµε κάποια από τις άλλες δοµές. Πρόβληµα: πως γνωρίζει η συνάρτηση το µέγεθος ή/και τον τύπο της δοµής που χρησιµοποιήσαµε; Λύση Α : ίνουµε και το µέγεθος της δοµής ως όρισµα στη συνάρτηση. struct sockaddr_in sin; bind(..., (struct sockaddr*)sin, sizeof(sin)); Λύση Β : Η συνάρτηση ελέγχει το πεδίο sa_family και αποφασίζει ανάλογα. struct sockaddr* sa; int salen; if (sa->sa_family == AF_INET) salen = sizeof(struct sockaddr_in); else if (sa->sa_family == AF_INET6) salen = sizeof(struct sockaddr_in6); else if (...) Λύθηκε το πρόβληµα;

13 Εισαγωγή Μέγεθος των δοµών struct sockaddr* οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Κάποιες συναρτήσεις «επιστρέφουν» δείκτες σε δοµή sockaddr. Παράδειγµα: ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); Πρόβληµα: Πως ξέρουµε τι είδους δοµή ϑα µας επιστρέψει για να έχουµε δεσµεύσει τον κατάλληλο χώρο; Λύση: Χρησιµοποιούµε την δοµή sockaddr_storage. struct sockaddr_storage ss; socklen_t sslen = sizeof(ss); recvfrom(..., (struct sockaddr *)&ss, &sslen);

14 Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Κλήσεις που πρέπει να ξεχάσουµε! inet_ntoa(3), inet_aton(3), inet_ntop(3), inet_pton(3), inet_netof(3), inet_lnaof(3), inet_makeaddr(3), inet_addr(3), inet_network(3). gethostbyname(3), gethostbyname2(3), gethostbyaddr(3). getservbyname(3), getservbyport(3).

15 Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Οι «παλαιότερες» συναρτήσεις ανάλυσης ονοµάτων κόµβων δουλεύουν µόνο για διευθύνσεις IPv4. struct hostent* gethostbyname(const char *name); int inet_aton(const char *cp, struct in_addr *pin); in_addr_t inet_addr(const char *cp); in_addr_t inet_network(const char *cp); char* inet_ntoa(struct in_addr in); in_addr_t inet_lnaof(struct in_addr in); in_addr_t inet_netof(struct in_addr in); Οι «νεώτερες» συναρτήσεις ανάλυσης ονοµάτων κόµβων δέχονται ως όρισµα το address family. struct hostent* gethostbyname2(const char *name, int af); struct hostent* gethostbyaddr(const void *addr, socklen_t len, int af); const char* inet_ntop(int af, const void *src, char *dst, socklen_t size); int inet_pton(int af, const char *src, void *dst);

16 Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Οι κλασσικές συναρτήσεις µετατροπής συµβολικών ονοµάτων κόµβων και διευθύνσεων IP σε δυαδική αναπαράσταση περιπλέκουν πολύ τον κώδικα. 1 char *ep; 2 struct hostent *hp; 3 struct sockaddr_in sin; 4 5 hp = gethostbyname(hostname); 6 if (hp) { 7 if (sizeof(sin.sin_addr)!= hp->h_length) { 8 fprintf(stderr, "unexpected address length\n"); 9 exit(1); 10 } 11 memcpy(sin.sin_addr, hp->h_addr, sizeof(sin.sin_addr)); 12 } else { 13 if (inet_pton(af_inet, hostname, &sin.sin_addr)!= 1) { 14 fprintf(stderr, "%s: invalid hostname\n"); 15 exit(1); 16 } 17 }

17 Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Οι κλασσικές συναρτήσεις µετατροπής συµβολικών ονοµάτων υπηρεσιών και αριθµών ϑύρας σε δυαδική αναπαράσταση περιπλέκουν πολύ τον κώδικα. 1 unsigned long ul; 2 struct sockaddr_in sin; 3 struct servent *sp; 4 char *ep = NULL; 5 6 sp = getservbyname(servname, protoname); 7 if (sp) { 8 sin.sin_port = sp->s_port; 9 } else { 10 errno = 0; 11 ul = strtoul(servname, &ep, 10); 12 if (servname[0] == \0 errno!= 0!ep 13 *ep!= \0 ul > 0xffff) { 14 fprintf(stderr, "%s: invalid servname\n"); 15 exit(1); 16 } 17 sin.sin_port = htons(ul & 0xffff); 18 }

18 Εισαγωγή Η απάντηση: getaddrinfo(3) οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων ουλεύει ανεξάρτητα από το πρωτόκολλο επιπέδου διαδικτύου. Αντικαθιστά όλες τις προηγούµενες συναρτήσεις και απλοποιεί σηµαντικά τον κώδικα. Είναι ιδιαίτερα ευέλικτη. Με hints.ai_flags = AI_NUMERICHOST µπορούµε να αποφύγουµε αναζητήσεις στο DNS. Με hostname = NULL µας δίνει µία δοµή addrinfo που αντιστοιχεί στο loopback. Με hints.ai_flags = AI_PASSIVE µας δίνει µία δοµή addrinfo που αντιστοιχεί στο wildcard address ( , ::), κατάλληλη για να δηµιουργήσουµε socket εξυπηρετητή. Χειρίζεται όλες τις διευθύνσεις IPv4 και IPv6 (συµπεριλαµβανοµένων και scoped διευθύνσεων). int getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res); void freeaddrinfo(struct addrinfo *ai); struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; };

19 Εισαγωγή Η απάντηση: getaddrinfo(3) οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων 1 int error; 2 struct addrinfo hints, *res; 3 static struct sockaddr_storage ss; 4 memset(&hints, 0, sizeof(hints)); 5 hints.ai_socktype = SOCK_STREAM; 6 if(getaddrinfo(hostname, servname, &hints, &res)) { 7 fprintf(stderr, "%s/%s: %s\n", hostname, servname, 8 gai_strerror(error)); 9 exit(1); 10 } 11 if (res->ai_addrlen > sizeof(ss)) { 12 fprintf(stderr, "sockaddr too large\n"); 13 exit(1); 14 } 15 memcpy(&ss, res->ai_addr, res->ai_addrlen); 16 freeaddrinfo(res);

20 Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Τα παραπάνω ισχύουν και για τη µετατροπή από δυαδική αναπαράσταση σε συµβολοσειρά. 1 struct in_addr in; 2 struct hostent *hp; 3 struct servent *sp; 4 struct sockaddr_in sin; 5 char hbuf[inet_addrstrlen]; printf("address: %s\n", inet_ntoa(in)); /* not thread safe */ 9 if (inet_ntop(af_inet, &in, buf, sizeof(buf))!= 1) { /* thread safe */ 10 fprintf(stderr, "could not translate address\n"); 11 exit(1); 12 } 13 printf("address: %s\n", hbuf); if (!(hp = gethostbyaddr(&in, sizeof(in), AF_INET))) { /* not thread safe */ 16 fprintf(stderr, "could not reverse-lookup address\n"); 17 exit(1); 18 } 19 printf("fqdn: %s\n", hp->h_name); if ((sp = getservbyport(sin.sin_port, "tcp"))) 22 printf("port: %s\n", sp->s_name); 23 else 24 printf("port: %u\n", ntohs(sin.sin_port));

21 Εισαγωγή Η απάντηση: getnameinfo(3) οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων ουλεύει ανεξάρτητα από το πρωτόκολλο επιπέδου διαδικτύου. Αντικαθιστά όλες τις σχετικές παλαιότερες συναρτήσεις και απλοποιεί σηµαντικά τον κώδικα. Το τελευταίο όρισµα καθορίζει την συµπεριφορά της. Με NI_NUMERICHOST ή/και NI_NUMERICSERV µπορούµε να αποφύγουµε αναζητήσεις στο DNS και στο αρχείο των υπηρεσιών αντίστοιχα. Με NI_NAMEREQD επιστρέφει συµβολικό όνοµα, αλλιώς λάθος. Χειρίζεται όλες τις διευθύνσεις IPv4 και IPv6 (συµπεριλαµβανοµένων και scoped διευθύνσεων IPv6). int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);

22 Εισαγωγή Η απάντηση: getnameinfo(3) οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων 1 struct sockaddr *sa; 2 int salen, error; 3 char hbuf[ni_maxhost], sbuf[ni_maxserv]; 4 5 if (getnameinfo(sa, salen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), 0)) { 6 fprintf(stderr, "error: %s\n", gai_strerror(error)); 7 exit(1); 8 } 9 printf("addr: %s port: %s\n", hbuf, sbuf); if(getnameinfo(sa, salen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), 12 NI_NUMERICHOST NI_NUMERICSERV)) { 13 fprintf(stderr, "error: %s\n", gai_strerror(error)); 14 exit(1); 15 } 16 printf("addr: %s port: %s\n", hbuf, sbuf) if (getnameinfo(sa, salen, hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) { 19 fprintf(stderr, "error: %s\n", gai_strerror(error)); 20 exit(1); 21 } 22 printf("fqdn: %s\n", hbuf);

23 Εισαγωγή Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων Η socket(2) δέχεται ως όρισµα την οικογένεια πρωτοκόλλων διαδικτύου. Μπορούµε να δηµιουργήσουµε ένα socket ανεξάρτητο του πρωτοκόλλου διαδικτύου; Οχι, αλλά µπορούµε να µην χρησιµοποιούµε απευθείας τα AF_INET και AF_INET6! Οι υπόλοιπές συναρτήσεις του BSD sockets API δέχονται ως όρισµα δείκτη σε δοµή sockaddr. Πως θα αρχικοποιήσουµε τις δοµές αυτές χωρίς να χρησιµοποιήσουµε τα AF_INET ή AF_INET6; Πολλοί κόµβοι έχουν περισσότερες από µια διευθύνσεις. Τι γίνεται αν κάποιες από αυτές δεν είναι «λειτουργικές»; Η getaddrinfo(3) µας δίνει ό,τι χρειαζόµαστε.

24 Πελάτης Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων 1 int error, sd; 2 struct addrinfo hints, *res, *cur; 3 memset(&hints, 0, sizeof(hints)); 4 hints.ai_socktype = SOCK_STREAM; 5 if(getaddrinfo(hostname, servname, &hints, &res)) { 6 fprintf(stderr, "%s/%s: %s\n", hostname, servname, gai_strerror(error)); 7 exit(1); 8 } 9 if (res->ai_addrlen > sizeof(ss)) { 10 fprintf(stderr, "sockaddr too large\n"); 11 exit(1); 12 } 13 for (cur = res; cur; cur = cur->ai_next) { 14 if ((sd = socket(cur->ai_family, cur->ai_socktype, cur->ai_protocol)) < 0) 15 continue; 16 if (!connect(sd, cur->ai_addr, cur->ai_addrlen)) 17 break; 18 close(sd); 19 } 20 if (!cur) { 21 fprintf(stderr, "No destination to connect to\n"); 22 exit(1); 23 } 24 freeaddrinfo(res);

25 Εξυπηρετητής Εισαγωγή οµές δεδοµένων Κλήσεις συστήµατος και οικογένεια πρωτοκόλλων 1 int error, sd; 2 struct addrinfo hints, *res, *cur; 3 memset(&hints, 0, sizeof(hints)); 4 hints.ai_socktype = SOCK_STREAM; 5 hints.ai_flags = AI_PASSIVE; 6 if(getaddrinfo(null, servname, &hints, &res)) { 7 fprintf(stderr, "%s/%s: %s\n", hostname, servname, gai_strerror(error)); 8 exit(1); 9 } 10 if (res->ai_addrlen > sizeof(ss)) { 11 fprintf(stderr, "sockaddr too large\n"); 12 exit(1); 13 } 14 for (cur = res; cur; cur = cur->ai_next) { 15 if ((sd = socket(cur->ai_family, cur->ai_socktype, cur->ai_protocol)) < 0) 16 continue; 17 if (!bind(sd, cur->ai_addr, cur->ai_addrlen)) 18 break; 19 close(sd); 20 } 21 if (!cur) { 22 fprintf(stderr, "Unable to bind socket\n"); 23 exit(1); 24 } 25 freeaddrinfo(res); 26 if (listen(sd, 5)) { 27 perror("listen"); 28 exit(1); 29 }

26 Εισαγωγή Μοντέλα Σχεδιαστικά µοντέλα δικτυακών εφαρµογών

27 Εισαγωγή Μοντέλα Εισαγωγή Το API των BSD sockets και το επίπεδο µεταφοράς εν γένει προσφέρει συνδέσεις από άκρο σε άκρο. εν καθορίζει όµως: Πως κάποιος πελάτης ϑα ϐρει έναν αντίστοιχο εξυπηρετητή. Πως ϑα συγχρονίζονται τα δύο άκρα επικοινωνίας. Την µορφή και τη σηµασιολογία των δεδοµένων που ϑα ανταλλάξουν. Την εσωτερική λειτουργία (business logic) των πελατών και των εξυπηρετητών. Η µορφή και η σηµασιολογία των δεδοµένων, καθώς και η εσωτερική λειτουργία, καθορίζονται σε µεγάλο ϐαθµό από το πρωτόκολλο του επιπέδου εφαρµογών που υλοποιούν τα δύο άκρα. Τα προβλήµατα της εύρεσης εξυπηρετητή και του «συγχρονισµού» των δύο άκρων καθορίζονται από το σχεδιαστικό µοντέλο της εφαρµογής. Βασικά σχεδιαστικά µοντέλα: Μοντέλο Πελάτη Εξυπηρετητή (client--server). Μοντέλο Πελάτη Ουράς Πελάτη (client--queue--client). Μοντέλο Οµοτίµων Εταίρων (peer-to-peer). Υβριδικά µοντέλα.

28 Μοντέλο Πελάτη Εξυπηρετητή Εισαγωγή Μοντέλα Μοντέλο Πελάτη Εξυπηρετητή Μοντέλο Πελάτη Ουράς Πελάτη Μοντέλο Οµοτίµων Εταίρων Το ϐασικότερο µοντέλο όλων. Τα υπόλοιπα µοντέλα µπορούν να περιγραφούν ως ειδικές περιπτώσεις του. Υπάρχουν δύο διαφορετικοί ϱόλοι: Πελάτης: συνδέεται στον εξυπηρετητή προκειµένου να λάβει κάποια υπηρεσία. Εξυπηρετητής: αναµένει συνδέσεις από πελάτες προκειµένου να τους παρέχει κάποια υπηρεσία. Η επικοινωνία έχει τη µορφή: αίτηµα πελάτη επεξεργασία στον εξυπηρετητή απάντηση εξυπηρετητή.

29 Μοντέλο Πελάτη Ουράς Πελάτη Εισαγωγή Μοντέλα Μοντέλο Πελάτη Εξυπηρετητή Μοντέλο Πελάτη Ουράς Πελάτη Μοντέλο Οµοτίµων Εταίρων Στο µοντέλο αυτό υπάρχουν δύο ϱόλοι: πελάτες και παθητικές ουρές (passive queues). Βασική αρχή λειτουργίας: 1 Ο πελάτης εισάγει σε µία ουρά ένα αίτηµά του. 2 Κάποιος άλλος πελάτης ελέγχει την ουρά για νέες αιτήσεις. Αφαιρεί µία, την επεξεργάζεται και αποθηκεύει το αποτέλεσµα στην ουρά. 3 Ο αρχικός πελάτης ελέγχει την ουρά για απαντήσεις. Πολύ απλός τρόπος επικοινωνίας εφαρµογών. Υπερκεράστηκε από το µοντέλο οµοτίµων εταίρων.

30 Μοντέλο Οµοτίµων Εταίρων Εισαγωγή Μοντέλα Μοντέλο Πελάτη Εξυπηρετητή Μοντέλο Πελάτη Ουράς Πελάτη Μοντέλο Οµοτίµων Εταίρων Κάθε κόµβος είναι ταυτόχρονα πελάτης και εξυπηρετητής. Ολοι οι κόµβοι είναι ίσοι. Εκτελούν τον ίδιο κώδικα. Είναι το ίδιο σηµαντικοί (ασήµαντοι;) εν υπάρχει single point of failure. Πολλά «παρακλάδια»: «Καθαρά» (pure) και «υβριδικά» (hybrid). οµηµένα και αδόµητα. Κεντρικοποιηµένα και αποκεντρικοποιηµένα.

31 Σχεδιαστικά ζητήµατα Σχεδιαστικά Ϲητήµατα

32 Σχεδιαστικά ζητήµατα Σχεδιαστικά Ϲητήµατα ιαλειτουργικότητα σε διαφορετικούς κόµβους και µε διαφορετικά πρωτόκολλα. Συνδεσµοστραφής ή ασυνδεσµική επικοινωνία; ιατήρηση κατάστασης στον εξυπηρετητή, στον πελάτη, σε κανέναν ή και στους δύο; Παραµετροποίηση πελάτη και εξυπηρετητή και επιλογή διευθύνσεων και ϑυρών. Ταυτοχρονισµός σε πελάτη και εξυπηρετητή και αποφυγή αδιεξόδων και λιµοκτονίας. Ζητήµατα ασφαλείας και αντοχής σε λάθη και «αντίξοες συνθήκες».

33 Σχεδιαστικά ζητήµατα ιαλειτουργικότητα ιαλειτουργικότητα σε διαφορετικές αρχιτεκτονικές. ιαλειτουργικότητα σε διαφορετικά λειτουργικά συστήµατα/περιβάλλοντα. ιαλειτουργικότητα σε IPv4 και IPv6.

34 Σχεδιαστικά ζητήµατα Συνδεσµοστραφής/ασυνδεσµική επικοινωνία Η επιλογή εξαρτάται από τις απαιτήσεις της εφαρµογής. Εφαρµογές µετάδοσης ϕωνής και ϐίντεο, εφαρµογές πραγµατικού χρόνου και γενικά εφαρµογές που µπορούν να ανεχθούν απώλεια πληροφοριών επιλέγουν ασυνδεσµική επικοινωνία. Για µεταφορά µεγάλου όγκου δεδοµένων, αλληλεπιδραστικές εφαρµογές και γενικά εφαρµογές που απαιτούν αξιοπιστία επιλέγουν συνδεσµοστραφή επικοινωνία. Χαρακτηριστικά ασυνδεσµικής επικοινωνίας: «Γρήγορη»: δεν απαιτεί την εγκαθίδρυση σύνδεσης πριν την αποστολή δεδοµένων και δεν προβλέπει µηνύµατα αποδοχής ή αναµετάδοση πακέτων. Μικρές απαιτήσεις σε πόρους συστήµατος. Ευκολία στην υλοποίηση αν δεν απαιτείται αξιοπιστία, αρκετά «επίπονη» διαφορετικά. Απαιτείται σχεδιασµός και υλοποίηση µηχανισµών ανίχνευσης σφαλµάτων και ανάνηψης. Απαιτείται καλή γνώση των πρωτοκόλλων του επιπέδου διαδικτύου. Χαρακτηριστικά συνδεσµοστραφούς επικοινωνίας: Αυξηµένες απαιτήσεις πόρων συστήµατος. Αξιόπιστη επικοινωνία. Ευκολία υλοποίησης: ο χρήστης διαχειρίζεται µόνο την εγκαθίδρυση σύνδεσης, Το επίπεδο µεταφοράς παρέχει µηχανισµούς ανίχνευσης σφαλµάτων και ανάνηψης. «Αργή» όταν το δίκτυο είναι ασταθές/αναξιόπιστο. ε µπορεί να χρησιµοποιηθεί για εφαρµογές που απαιτούν broadcast και multicast.

35 Σχεδιαστικά ζητήµατα ιατήρηση κατάστασης Η διατήρηση κατάστασης σχετικά µε την επικοινωνία (state) µπορεί να γίνεται στο εξυπηρετητή, στον πελάτη, και στους δύο ή σε κανέναν. Η επιλογή και πάλι εξαρτάται από τις ανάγκες της εφαρµογής και του πρωτοκόλλου που υλοποιεί. Το state (µπορεί να) αφορά: Πληροφορίες ταυτοποίησης του πελάτη ή/και του εξυπηρετητή. Πληροφορίες για τα δεδοµένα που έχουν µεταφερθεί. Πληροφορίες για τα εκκρεµόντα αιτήµατα.

36 Σχεδιαστικά ζητήµατα ιατήρηση κατάστασης Λειτουργία χωρίς διατήρηση κατάστασης: Μόνο στις απλούστερες των περιπτώσεων (π.χ. daytime, echo, κτλ.) Κατάλληλη µόνο για εφαρµογές που δεν απαιτούν εγκαθίδρυση «συνεδρίας» (session). Μικρότερη πολυπλοκότητα: καµία διατήρηση/ανταλλαγή στοιχείων σύνδεσης. Λειτουργία µε διατήρηση κατάστασης στον πελάτη: Ο πελάτης διατηρεί πληροφορία για την σύνδεσή του µε τον εξυπηρετητή (π.χ. δεδοµένα ταυτοποίησης, αιτήµατα σε εκκρεµότητα, πληροφορίες συνεδρίας, κτλ.) Ο πελάτης επισυνάπτει τα δεδοµένα αυτά σε κάθε αίτηµά του. + Πιο ανθεκτική σε λάθη του δικτύου και καλύτερα κλιµακώσιµη. Μεγαλύτερες απαιτήσεις εύρους Ϲώνης δικτύου. Απαιτείται έλεγχος στον εξυπηρετητή για «λάθη» στα δεδοµένα του πελάτη. Λειτουργία µε διατήρηση κατάστασης στον εξυπηρετητή: Ο εξυπηρετητής διατηρεί πληροφορία για τον κάθε πελάτη/σύνδεση. + Καλύτερη απόδοση: δεν απαιτείται η αποστολή πληροφοριών σύνδεσης από τον πελάτη σε κάθε επικοινωνία. Απαιτείται έλεγχος στον εξυπηρετητή για τα δεδοµένα και την ταυτότητα του κάθε πελάτη. Σαφώς µεγαλύτερες απαιτήσεις πόρων συστήµατος στον εξυπηρετητή.

37 Σχεδιαστικά ζητήµατα Παραµετροποίηση Επιλογή από τον χρήστη των ϐασικών παραµέτρων της σύνδεσης/υπηρεσίας. ιεύθυνση/συµβολικό όνοµα και αριθµός ϑύρας/όνοµα υπηρεσίας εξυπηρετητή στον οποίο ϑα συνδεθεί ο πελάτης. ιεύθυνση/συµβολικό όνοµα και αριθµός ϑύρας/όνοµα υπηρεσίας στο οποίο ϑα περιµένει εισερχόµενες αιτήσεις ο εξυπηρετητής. Επιλογή πρωτοκόλλων επιπέδου διαδικτύου και µεταφοράς. Αυξάνει την χρησιµότητα των εφαρµογών πελάτη και εξυπηρετητή. ιευκολύνει τον έλεγχο και την αποσφαλµάτωσή τους. Μπορεί να γίνεται: Απευθείας στον κώδικα. Στην γραµµή εντολών. Μέσω κάποιου αρχείου ϱυθµίσεων. Μέσω κάποιας άλλης (τοπικής ή αποµακρυσµένης) υπηρεσίας.

38 Σχεδιαστικά ζητήµατα Ταυτοχρονισµός Αφορά την δυνατότητα παράλληλης αποστολής ή/και επεξεργασίας αιτηµάτων. Υπάρχει σε διάφορα επίπεδα: Επίπεδο δικτύου: υπεύθυνα είναι τα πρωτόκολλα µε την πολυπλεξία που παρέχουν. Επίπεδο πελάτη: συνήθως απλά παρέχεται από το λειτουργικό σύστηµα. Επίπεδο εξυπηρετητή: σηµαντικό κοµµάτι του σχεδιασµού και της υλοποίησης µιας εφαρµογής. Ταυτοχρονισµός µπορεί να επιτευχθεί µε: Πολλαπλές διεργασίες (processes). Κάθε διεργασία αποτελεί ακριβές αντίγραφο της αρχικής, µε δικό της χώρο διευθύνσεων (address space, heap, stack, registers, κτλ.) Πληρώνουµε το κόστος του context switching. Πολλαπλά νήµατα (threads). Κάθε νήµα εκτελεί τον κώδικα µίας «συνάρτησης» και µοιράζεται των χώρο διευθύνσεων µε τα υπόλοιπα νήµατα της διεργασίας. Θεωρητικά δεν υπάρχει κόστος για context switching πρακτικά όµως υπάρχει... Σχεδίαση ϐασισµένη σε συµβάντα (data/event-driven design) και ασύγχρονη Ε/Ε. Ο πελάτης/εξυπηρετητής αποτελείται από µία διεργασία µε ένα νήµα εκτέλεσης. εν υπάρχει καθόλου context switching. Ενδείκνυται για περιπτώσεις που ο χρόνος εξυπηρέτησης των αιτηµάτων είναι µικρός ή στον οποίο επικρατεί το κόστος Ε/Ε. Υβριδικές λύσεις που συνδυάζουν τα παραπάνω.

39 Σχεδιαστικά ζητήµατα Ασφάλεια Από τη στιγµή που ένα σύστηµα έχει περισσότερους από έναν χρήστες, υπάρχει απαίτηση για διαχωρισµό και ασφάλεια. Ετσι, προβλέπονται µηχανισµοί για: Ταυτοποίηση και πιστοποίηση (authentication): επαλήθευση ταυτότητας πελάτη. Εξουσιοδότηση (authorization): έλεγχος πρόσβασης και δικαιωµάτων πελάτη. Εµπιστευτικότητα (confidentiality): µόνο ο αποστολέας και ο παραλήπτης έχουν πρόσβαση στα δεδοµένα. Ακεραιότητα (integrity): τα δεδοµένα δεν αλλάζουν κατά τη µεταφορά τους. ιαθεσιµότητα (availability): οι υπηρεσίες και τα δεδοµένα ϑα είναι διαθέσιµα όταν Ϲητηθούν. Μη αποκήρυξη (non-repudiation): καταγραφή συναλλαγών ώστε να µη µπορεί κάποιο µέλος να αρνηθεί τις πράξεις του αργότερα.

40 Στο επόµενο µάθηµα...

41 Στο επόµενο µάθηµα... Ταυτοχρονισµός πελάτη και εξυπηρετητή. Ελεγχος πρόσβασης, συγχρονισµός.

Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ

Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ σελίδα 1 Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ Περιεχόµενα Αναφορά στις αλλαγές που επιφέρει το IPv6 στην ανάπτυξη δικτυακών εφαρµογών

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

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 3η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

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

Ζητήματα Σχεδίασης Λογισμικού Πελάτη

Ζητήματα Σχεδίασης Λογισμικού Πελάτη Ζητήματα Σχεδίασης Λογισμικού Πελάτη Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Αναγνώριση Τοποθεσίας Εξυπηρετητή Για την αναγνώριση της διεύθυνσης και της θύρας ενός εξυπηρετητή ο πελάτης μπορεί να

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

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά

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

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

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

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 Δικτυακός Προγραμματισμός Βασικές Έννοιες: IP addresses,

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

Υποδοχείς (Sockets) Προγραμματισμός II 1

Υποδοχείς (Sockets) Προγραμματισμός II 1 Υποδοχείς (Sockets) Προγραμματισμός II 1 lalis@inf.uth.gr Υποδοχείς Ειδικές δομές διαδιεργασιακής επικοινωνίας Προσπελάζονται μέσω περιγραφέων αρχείων μπορεί να χρησιμοποιηθούν οι read, write, close μπορεί

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

Εργαστήριο Δικτύων Υπολογιστών

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 3 η Διάλεξη: Δικτυακός Προγραμματισμός Unix Socket programming Μοντέλο client-server O βασικός τύπος δικτυακών εφαρμογών είναι client - server H σχέση server και client μπορεί

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

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

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

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

Δικτυακός Προγραμματισμός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας

Δικτυακός Προγραμματισμός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Δικτυακός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Δικτυακός, Douglas E. Comer, David L. Stevens, Εκδόσεις ΙΩΝ,

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

Επικοινωνία Διεργασιών στο Internet με POSIX Sockets

Επικοινωνία Διεργασιών στο Internet με POSIX Sockets Επικοινωνία Διεργασιών στο Internet με POSIX Sockets ΣΤ Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας plam@inf.teilam.gr, 2016 Δήλωση Οι διαφάνειες βασίζονται

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

Socket Application Programming Interface

Socket Application Programming Interface Socket Application Programming Interface Εισαγωγή Το socket είναι ένας τύπος διεπαφής μεταξύ των προγραμμάτων εφαρμογής και του λογισμικού πρωτοκόλλων Είναι ευρέως διαθέσιμο για να διασφαλίζεται η μεταφερσιμότητα

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

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

Επικοινωνία Client/Server Υποδοχές

Επικοινωνία Client/Server Υποδοχές Επικοινωνία Client/Server Υποδοχές Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία με Υποδοχές 1 Ορισμός των Υποδοχών (sockets) Τα sockets προσφέρουν μια γενικευμένη ικανότητα

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

Δικτυακός προγραμματισμός

Δικτυακός προγραμματισμός Δικτυακός προγραμματισμός (hands on) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Μοντέλο client-server O βασικός τύπος δικτυακών εφαρμογών είναι client - server H σχέση

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

Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή

Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Ταυτόχρονοι και Επαναληπτικοί Εξυπηρετητές Επαναληπτικός εξυπηρετητής: επεξεργάζεται μόνο μία αίτηση τη φορά. Ταυτόχρονος

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

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

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

4 η ιάλεξη: Signals UDP Sockets

4 η ιάλεξη: Signals UDP Sockets Εργαστήριο ικτύων Υπολογιστών 4 η ιάλεξη: ικτυακός Προγραμματισμός Signals UDP Sockets TCP sockets και signals Όταν σε ένα TCP server κάνουμε fork (γεννάμε διεργασίες-παιδιά servers για να εξυπηρετήσουμε

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

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

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

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

{ int pipe(int fd[ ]) close

{ int pipe(int fd[ ]) close 104 { { { { { { 105 pipe { int pipe(int fd[ ]) { fd[0] fd[1] {, -,,, write read { close { pipe 0-1 106 pipe /* File: pipe_demo.c */ #include /* For printf */ #define READ 0 /* Read end of pipe

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

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη Deadline πρώτης ϕάσης : 13 Δεκεμβρίου 2016, 23:59 * Εμπνευσμένο και υλοποιημένο από το Μανώλη Σουρλίγκα :) Γενική περιγραϕή Στο οικοσύστημα του

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

Εγχειρίδιο Συναρτήσεων. 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) Socket *sopen(const int type, const int protocol, const char *host, const char *service) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε

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

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

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

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

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

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

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

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

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1 Σύστηµα CORBA οµή συστήµατος Μεταβίβαση παραµέτρων Μοντέλα επικοινωνίας υναµικές κλήσεις Αναφορές αντικειµένων Ονόµατα αντικειµένων ιαχείριση αντικειµένων Υλοποίηση συστηµάτων CORBA Κατανεµηµένα Συστήµατα

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

Συνεχής ροή πολυµέσων

Συνεχής ροή πολυµέσων Συνεχής ροή πολυµέσων Εισαγωγή ικτυακά πρωτόκολλα Πολυµέσα και δίκτυα Συνεχής ροή Ροή από εξυπηρετητές ιστοσελίδων Ροή από εξυπηρετητές µέσων Πρωτόκολλο RTSP Πρωτόκολλο RTP οµή πακέτων RTP Πρωτόκολλο RTCP

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΗΜΙΟΥΡΓΙΑ ΔΙΕΡΓΑΣΙΑΣ WEB-SERVER ΜΕ ΝΗΜΑΤΑ (THREADS) ΣΕ LINUX ΚΑΛΟΠΗΤΑΣ ΚΩΝΣΤΑΝΤΙΝΟΣ - 4190 ΣΒΕΝΤΖΟΥΡΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ - 4086 ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΞΑΝΘΗΣ

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

Topic 5: Sockets. *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη

Topic 5: Sockets. *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη Topic 5: Sockets *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη Επικοινωνία διεργασιών σε διαφορετικούς υπολογιστές Έχουµε δει(ή θαδούµε) διαδιεργασιακή

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη

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

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

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

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

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

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

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

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 8η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

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

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

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

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

υναµικές οµές εδοµένων

υναµικές οµές εδοµένων υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 1999-2000 ΜΑΘΗΜΑ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ : Θ. ΑΠΟΣΤΟΛΟΠΟΥΛΟΣ ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CLIENT-SERVER(πελάτη-εξυπηρετητή)

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1 Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής

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

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

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

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

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

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

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

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

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

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

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

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

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

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

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

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 7η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

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

Οι δείκτες στη γλώσσα C

Οι δείκτες στη γλώσσα C Οι δείκτες στη γλώσσα C Δείκτης είναι µία µεταβλητή η οποία περιέχει σαν τιµή µία διεύθυνση της µνήµης Η τιµή ενός δείκτη δείχνει σε µία άλλη µεταβλητή, η οποία µπορεί να προσεγγισθεί έµµεσα µε τους ειδικούς

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

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

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

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές. οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές. ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Παράδειγµα Πρόβληµα: Να γράψετε

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στον προγραµµατισµό των Sockets στο UNIX Γ. ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές

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

HY-335a Project: microtcp, μία lightweight TCP βιβλιοθήκη. Deadline πρώτης ϕάσης : 19/11/ :59

HY-335a Project: microtcp, μία lightweight TCP βιβλιοθήκη. Deadline πρώτης ϕάσης : 19/11/ :59 HY-335a Project: microtcp, μία lightweight TCP βιβλιοθήκη Deadline πρώτης ϕάσης : 19/11/2017 23:59 Γενική περιγραϕή Στο οικοσύστημα του Internet of Things (IoT) υπάρχει μια ευρεία γκάμα από δικτυακές συσκευές.

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.4 Πρωτόκολλο Μέχρι τώρα περιγράψαμε συνδέσεις, που χρησιμοποιούν το πρωτόκολλο TCP. Θυμηθείτε, ότι το TCP είναι υπεύθυνο για το τεμαχισμό των μηνυμάτων σε τμήματα και την επανασύνδεση τους στον προορισμό.

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

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

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

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

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

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

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κατανεµηµένα Συστήµατα Αρχείων (1/2)» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Σύστηµα αρχείων Αποθήκευση, προσπέλαση και διαχείριση δεδοµένων

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ Μεταπτυχιακό Πρόγραµµα Σπουδών Τµήµατος Εφαρµοσµένης Πληροφορικής Θεσσαλονίκη, Ιούνιος 2007 Στόχοι χρήση αντικειµενοστρεφούς

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

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Ασκήσεις Επανάληψης Ενδιάµεσης

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 9η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

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

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

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

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

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

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

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

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

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

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

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

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

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

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα Στόχοι κεφαλαίου ίκτυα υπολογιστών (Κεφαλαιο 15 στο βιβλιο) Περιγραφή των κύριων θεµάτων σχετικά µε τα δίκτυα υπολογιστών Αναφορά στα διάφορα είδη δικτύων Περιγραφή των διαφόρων τοπολογιών των τοπικών

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

Κατανεµηµένασυστήµατα αρχείων

Κατανεµηµένασυστήµατα αρχείων Κατανεµηµένασυστήµατα αρχείων Θέµατα σχεδίασης ιεπαφή υπηρεσίας αρχείων και ευρετηρίων Ονόµατα και αναγνωριστικά Οργάνωση εξυπηρετητών Σηµασιολογία (κατα)µερισµού αρχείων Ενταµίευση αρχείων Συνέπεια συστήµατος

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06 Τεχνολογικά Επιτεύγµατα Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Ανάπτυξη ισχυρών µικροεπεξεργαστών ηµιουργία τοπικών δικτύων υψηλών ταχυτήτων «Εισαγωγή στα Κατανεµηµένα Λειτουργικά Συστήµατα»

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή

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

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

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

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

Διάλεξη 9: Δυναμική Δέσμευση Μνήμης

Διάλεξη 9: Δυναμική Δέσμευση Μνήμης Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 9: Δυναμική Δέσμευση Μνήμης (Κεφάλαιο 17.1-17.4, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 9-1

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

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

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

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1 Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος

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

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

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

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

50 Ketseo,Theoni Sarif,Omar 104

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

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

Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1

Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 lalis@inf.uth.gr Ουρά μηνυμάτων Αποθήκη μηνυμάτων στην μνήμη του λειτουργικού Περιορισμένος αριθμός / όγκος μηνυμάτων Κάθε μήνυμα είναι

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

ΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης

ΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΤΜ PROJECT Άννα Τριανταφύλλου ΑΕΜ : 456 επιβλέπων καθηγητής: Μηνάς Δασυγένης Περιεχόμενα 1. 2. 3.

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω

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

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

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

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

Ατομική Διπλωματική Εργασία ΕΠΕΚΤΑΣΗ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΚΑΙ ΔΗΜΙΟΥΡΓΙΑ ΔΙΕΠΑΦΗΣ ΧΡΗΣΤΗ. Σωτήρης Σωτηρίου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Ατομική Διπλωματική Εργασία ΕΠΕΚΤΑΣΗ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΚΑΙ ΔΗΜΙΟΥΡΓΙΑ ΔΙΕΠΑΦΗΣ ΧΡΗΣΤΗ. Σωτήρης Σωτηρίου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Ατομική Διπλωματική Εργασία ΕΠΕΚΤΑΣΗ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΚΑΙ ΔΗΜΙΟΥΡΓΙΑ ΔΙΕΠΑΦΗΣ ΧΡΗΣΤΗ Σωτήρης Σωτηρίου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μάιος 2017 i ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 8ο Δικτύωση TCP/IP Μιχαηλίδης Παναγιώτης Περιεχόμενα Δικτύωση TCP/IP Τι είναι το TCP/IP; Επίπεδα, διευθύνσεις, ΝΑΤ Πρωτόκολλα: ARP, DHCP TCP/IP H πιο κοινή

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