I/O Multiplexing select() e poll()
|
|
- Donata Fede
- 8 anni fa
- Visualizzazioni
Transcript
1 I/O Multiplexing select() e pll() Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. Mdelli di I/O Mdelli di I/O Blcking I/O Nnblcking I/O Quand un perazine di I/O nn può essere cmpletata senza mettere il prcess in pausa, nn l si mette in pausa, ma si ritrna un errre I/O multiplexing (select() e pll()) Il prgramma si blcca in una call a select(), ma è in grad di gestire più canali Signal driven I/O (SIGIO) Il prgramma nn si blcca mai, ma deve gestire pprtunamente i segnali in arriv dal kernel Asynchrnus I/O (psix.1 ai_ functins) Cme spra, ma il kernel nn ci avvisa quand una perazine di I/O può essere iniziata, bensì quand è terminata È l unica mdalità effettivamente asincrna (il prcess nn viene mai blccat) Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
2 Mdelli di I/O I/O multiplexing serve quand un hst deve gestire all stess temp descrittri multipli (scket e input) Scket multiple Listening scket e cnnected scket TCP e UDP scket Servizi e prtclli multipli Due fasi distinte per le perazini di input 1. Attesa che i dati sian dispnibili 2. Cpia dei dati dal kernel al prcess Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 490 Blcking I/O applicazine kernel recvfrm() System call Nessun dispnibile Attendi i dati Il prcess si blcca ad una call a recvfrm() dispnibile cpia in crs ricezine Return OK cpia cmpleta Cpia i dati dal kernel all utente Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
3 NnBlcking I/O applicazine kernel recvfrm() System call EWOULDBLOCK Nessun dispnibile Il prcess chiama ripetutamente recvfrm() attendend di ricevere i dati (plling) recvfrm() recvfrm() System call EWOULDBLOCK System call Nessun dispnibile dispnibile cpia in crs Attendi i dati Cpia i dati dal kernel all utente ricezine Return OK applicazine Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 492 I/O Multiplexing select() e pll() applicazine kernel Il prcess si blcca ad una call a select() attendend che una delle pssibili scket diventi dispnibile in lettura select() recvfrm() System call return readable System call Nessun dispnibile dispnibile cpia in crs Attendi i dati Il prcess si blcca mentre i dati vengn cpiati nell applicatin buffer ricezine Return OK cpia cmpleta Cpia i dati dal kernel all utente Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
4 Signal driver I/O SIGIO applicazine kernel Il prcess cntinua l esecuzine Attivazine SIGIO Signal Handler Sigactin System call return Nessun dispnibile Attendi i dati Il prcess si blcca mentre i dati sn cpiati nell applicatin buffer Signal Handler recvfrm() ricezine invi SIGIO System call Return OK dispnibile cpia in crs cpia cmpleta Cpia i dati dal kernel all utente Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 494 Asynchrnus I/O applicazine kernel ai_read() System call Nessun dispnibile return Attendi i dati Il prcess cntinua l esecuzine dispnibile cpia in crs Signal handler ricezine Invia segnale specificat in ai_read() cpia cmpleta Cpia i dati dal kernel all utente Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
5 Cnfrnt tra i mdelli di I/O blcking nnblcking I/O multiplexing signal-driven I/O asynchrnus I/O initiate check check initiate check check check blcked Attesa dati check check ready initiate ntificatin initiate cmplete blcked cmplete blcked cmplete blcked cmplete ntificatin Cpia dati dal kernel all utente 1 fase trattata differentemente, 2 fase trattata all stess md Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. Gestisce entrambe le fasi 496 Blcking vs Nnblcking Di default le scket sn blccanti Quand una syscall nn può essere cmpletata immediatamente, il prcess viene sspes attendend che sia cmpletata Quattr categrie di system call blccanti Operazini di input: read, readv, recv, recvfrm, e recvmsg Blcking: sleep finchè i dati nn sn dispnibili (almen 1 byte per TCP e un per UDP) Nnblcking: ritrn immediat cn errre EWOULDBLOCK Operazini di utput: write, writev, send, sendt, e sendmsg Blcking: sleep per TCP scket se l spazi nel buffer di invi nn è sufficiente Nnblcking: se nn c è spazi nel buffer di invi, ritrn immediat cn errre EWOULDBLOCK. Se l spazi è parziale, ritrna il numer di byte cpiati (shrt cunt) Nta: UDP nn ha send buffer. Un perazine di utput nn è mai blccante La funzine accept Blcking: sleep finchè si rende dispnibile una cnnessine Nnblcking: ritrn immediat cn errre EWOULDBLOCK La funzine cnnect (sl per TCP) Blcking: sleep finchè la cnnessine è instaurata Nnblcking: ritrn immediat cn errre EINPROGRESS se la cnnessine è in crs Nta: la cnnect per UDP nn è un reale three-way handshake Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
6 Nnblcking I/O È pssibile creare scket nn blccanti attravers fcntl() Che sta per file cntrl #include <unistd.h> #include <fcntl.h> sckfd = scket(pf_inet, SOCK_STREAM, 0); fcntl(sckfd, F_SETFL, O_NONBLOCK); impsta il file status flag al valre specificat da arg ritrna un valre null in cas di success -1 in cas di errre Si tratta di perazini ausiliarie che è pssibile eseguire su un file descriptr che nn riguardan la nrmale lettura e scrittura di dati ma la maniplazine e ilcntrll sia delle lr prprietà, che di tutta una serie di ulteriri funzinalità che il kernel può mettere a dispsizine Il prttip di fcntl() dipende dal cmand impartit #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd) int fcntl(int fd, int cmd, lng arg) int fcntl(int fd, int cmd, struct flck * lck) Valri di ritrn: diversi a secnda dell'perazine -1 in cas di errre: errn settata cn il relativ cdice errre Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 498 Nnblcking vs I/O Multiplexing In cas di scket nn blccanti Si può interrgare (pll) la scket per ttenere infrmazini Se nn ci sn dati ritrna -1 cn errn settat a EWOULDBLOCK In gni cas busy-waiting nn è una buna strategia Oppure usare la select (Synchrnus I/O Multiplexing) Permette di mnitrare diverse scket all stess temp Avvisand quand alcune sn prnte In lettura In scrittura Hann sllevat eccezini - Da nn cnfndersi cn le Java Exceptin Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
7 Megli la select(), ma La select() è un dei metdi più lenti per mnitrare scket Esistn diverse alternative, tra cui libevent ( I meccanismi interni sn cmpletamente indipendenti dalle API espste Supprta kqueue, event prts, POSIX select(), Windws select(), pll e epll Permette l svilupp di applicazini prtabili E dispnibile per piattafrme Linux, *BSD, Mac OS X, Slaris, Windws, Frnisce il meccanism di ntifica di eventi tutt ra più scalabile Può essere usat per applicazini multi-thread Island i singli eventi csì che un singl thread ne abbia access Cntrlland gli accessi a eventi cndivisi Frnisce un meccanism sfisticat per I/O di rete bufferizzat Cn supprt per scket, filtri, limitazini sul rate, SSL, Include il supprt di diversi utili prtclli ( DNS, HTTP, RPC, ) Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 500 #include <sys/time.h> #include <sys/types.h> #include <unistd.h> select() e fd_set int select(int numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeut); La select() mnitra insiemi (set) di descrittri di file readfds: per vedere se si può leggere da un fd es. per leggere da stdin e da sckfd, basta aggiungere 0 e sckfd al set readfds writefds: idem per scritture exceptfds: per verificare l esistenza di eccezini un eccezine nn è un errre (ad es., l arriv di dati urgenti ut-f-band) numfds deve essere pst pari a fd max + 1 fd max è il fd più grande cntrllat Al ritrn viene restituit il numer di descrittri prnti readfds, writefds e exceptfds sarann mdificati per riflettere quali tra gli fd selezinati risultan prnti Macr Descrizine Per frtuna esistn macr per perare sugli insiemi di tip fd_set Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. FD_SET(int fd, fd_set *set); FD_CLR(int fd, fd_set *set) FD_ISSET(int fd, fd_set *set) FD_ZERO(fd_set *set) FD_COPY(fd_set *fdset_rig, fd_set *fdset_cpy); Aggiunge fd a set Rimuve fd dal set Ritrna ver se fd è in set Pulisce tutte le entry da set Cpia un fd set 501 7
8 select() e struct timeval struct timeval permette di specificare un timeut All scadere, se nessun fd è prnt, la select() ritrna struct timeval { int tv_sec; int tv_usec; ; // secndi // micrsecndi Al ritrn timeut ptrebbe essere aggirnata per mstrare quant temp manca fin all scadere del timeut Dipende dalla versine di Unix Settand struct timeval a 0, frza la select() a trnare immediatamente (timeut immediat) Serve per fare plling su tutti i fd nel set Settand struct timeval a NULL, frza la select() a nn andare mai in timeut Serve per attendere finchè un fd nel set è prnt E pssibile evitare di avere un cert set, mettendl a NULL Fate attenzine: nn fate affidament sul cmput del temp (sprattutt in micrsecndi) Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 502 Descrittri prnti In lettura Il numer di byte di dati nel buffer di ricezine è più grande di lw-water mark Settabile cn l pzine SO_RCVLOWAT Di slit pari a 1 byte la cnnessine è chiusa in lettura In una listening scket il numer di cnnessini cmpletate è maggire di 0 C è un errre pendente In scrittura Il numer di byte dispnibili nel buffer di invi è più grande di lw-water mark Settabile cn l pzine SO_SNDLOWAT Di slit pari a 2048 byte La cnnessine è chiusa in scrittura C è un errre pendente Eccezini pendenti Quand esistn dati ut-f-band per la scket Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
9 Un semplice esempi #include <stdi.h> #include <sys/time.h> #include <sys/types.h> #include <unistd.h> #define STDIN 0 int main(vid) { struct timeval tv; fd_set readfds; tv.tv_sec = 2; tv.tv_usec = ; FD_ZERO(&readfds); FD_SET(STDIN, &readfds); // dn't care su writefds e exceptfds: select(stdin+1, &readfds, NULL, NULL, &tv); if (FD_ISSET(STDIN, &readfds)) printf( E stat premut un tast!\n"); else printf("timeut!\n"); return 0; Questini di prtabilità: dipende dalla piattafrma in us: L us della select() cn datagram scket L update del temp rimanente prima del timeut in struct timeval Megli nn affidarsi a tal valre se si vule che la prpria applicazine sia prtabile Ptete usare gettimefday() Una scket in asclt cn listen() va aggiunta al set readfds Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 504 select() vs. pll() Stria select() intrdtta nel 1983 in 4.2BSD Unix (BSD) pll() intrdtta nel 1986 in SVR3 Unix (System V) In linux nel 1997 Funzinalità: le stesse, cambian i dettagli select() svrascrive gli fd_set indicand quali fd sn prnti; pll() nn mdifica i dati in input pll() gestisce mlti fd (anche più di 1024) senza grssi prblemi; select() usa bitmask di taglia fissata ed è men cnveniente su alcuni sistemi per supprtare più di 1024 fd è necessari mdificare FD_SETSIZE pll() gestisce più tiplgie di eventi ma ai fini pratici nn sn rilevanti diversi valri di timeut: pll() cnsidera millisecndi, select() un struct timeval Entrambe incraggian un apprcci lp-style e nn event-based Velcità: la stessa, incredibilmente lenta (megli librerie eventbased) select() frza una scansine dei primi fd max file descriptr; la pll() n (una piccla vittria per la pll()) select() usa 4 bit di dati per fd, mentre la pll() ne usa 64 bits per fd (una piccla vittria per la select() se pensate alla cpia dei dati in kernel space) Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
10 select() vs. pll() Prtabilità select () Esiste da parecchi ed è presente dappertutt. Un prblema cn gli fd_set: nn si sa quand si verifica verflw sulla bitmask (nn si può verificare l FD_SETSIZE in md prtabile) Mlte versini di Unix permettn di ridefinire FD_SETSIZE a cmpile time, ma nn Linux L include header richiest per l fd_set varia da sistema a sistema Alcuni sistemi mdifican l struct timeval. In tali casi se si ripete la select() si ha bisgn di inizializzare ad gni cicl il timeut pll() Nn esiste su vecchie versini di Unix su Windws pre-vista. Su alcune versini di Mac OS X la versine è buggata. La maggir parte delle prime implementazini wrappan la select() Il md di settare bit è specificat nell standard, ma varia tra implementazini diverse Cmplessità Tutte le funzini event-driven rendn il cdice mlt più cmpless e difficile da seguire rispett all us di select() e pll() Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 512 pll() # include <sys/pll.h> int pll(struct pllfd fds[ ], nfds_t nfds, int timeut); struct pllfd fds[ ]: gni entry cntiene tipicamente int fd: indica quale fd mnitrare shrt events: una bitmap che rappresenta gli eventi da mnitrare È pssibile usare tramite OR ( ) le seguenti macr POLLIN: dati prnti per recv() POLLOUT: dati prnti per send() POLLRDNORM: recv() di dati nrmali POLLWRNORM: dati nrmali prnti per send() POLLRDBAND: recv() di dati pririty band POLLPRI: recv() di dati high pririty POLLWRBAND: send() di dati pririty band shrt revents: una bitmap che rappresenta quali eventi si sn verificati Oltre ai precedenti, è pssibile usare POLLERR: errre POLLHUP: scket chiusa dalla cntrparte POLLNVAL: prblemi cn il scket descriptr nfds_t nfds: numer di fd settati in fds[ ] int timeut: espress in millisecndi se negativ si attende all infinit se 0 ritrna immediatamente Il valre di ritrn indica su quanti fd si è verificat un event 0 in cas di timeut -1 in cas di errre Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
11 Cndizini per revents POSIX lascia mlti buchi nelle sue definizini Tutti i dati TCP reglari e UDP sn cnsiderati nrmali Dati TCP ut-f-band sn pririty band Cnnessini chiuse in lettura sn cnsiderate dati nrmali La read() seguente ritrnerà 0 La presenza di errri può essere cnsiderata un dat nrmale un errre La read() seguente ritrnerà -1 La dispnibilità di una nuva cnnessine su una listening scket può essere cnsiderata un dat nrmale pririty data Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 514 pll() int s1, s2; int rv; char buf1[256], buf2[256]; struct pllfd ufds[2]; s1 = scket(pf_inet, SOCK_STREAM, 0); s2 = scket(pf_inet, SOCK_STREAM, 0); // suppniam di essere cnnessi ad un server // cnnect(s1,...)... // cnnect(s2,...)... // si setta l array dei file descriptrs // // in quest esempi, ci accntentiam di distinguere se // ci sn dati dati ut-f-band prnti per una recv() // check per dati nrmali ut-f-band ufds[0].fd = s1; ufds[0].events = POLLIN POLLPRI; // check sl per dati nrmali ufds[1].fd = s2; ufds[1].events = POLLIN; Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 1 // attendi il verificarsi di eventi sulla scket // cn 3.5 secndi di timeut rv = pll(ufds, 2, 3500); if (rv == -1) { perrr("pll"); else if (rv == 0) { printf("timeut!\n"); else { // cntrlla se ci sn eventi su s1: if (ufds[0].revents & POLLIN) { recv(s1, buf1, sizef buf1, 0); // dati nrmali if (ufds[0].revents & POLLPRI) { // dati ut-f-band recv(s1, buf1, sizef buf1, MSG_OOB); // cntrlla se ci sn eventi su s2: if (ufds[1].revents & POLLIN) { recv(s1, buf2, sizef buf2, 0);
12 Oltre pll() e select() Alternative event-driven più mderne, nn standardizzate epll: Linux kqueue: FreeBSD, NetBSD, OpenBSD, Darwin /dev/pll: Slaris, HPUX, pllset: AIX, event Cmpletin: Slaris 10 I/O Cmpletin Prts: Windws O librerie che permettn di scrivere prgrammi event-based in md prtabile libev libevent Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 516 pselect() #include <sys/select.h> int pselect(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timespec *timeut, sigset_t *sigmask) A differenza della select() usa un struct timespec per indicare cn maggire precisine (in nansecndi) il timeut e nn ne aggirna il valre in cas di interruzine prende un argment aggiuntiv sigmask che è il puntatre ad una maschera di segnali La maschera crrente viene sstituita da questa immediatamente prima di eseguire l'attesa, e ripristinata al ritrn della funzine. L'us di sigmask è stat intrdtt all scp di prevenire pssibili race cnditin quand ci si deve prre in attesa che un fd diventi dispnibile un segnale (es. SIGINT) venga intercettat In sstanza una pselect() esegua in maniera atmica sigset_t sigsaved; sigprcmask(sig_setmask, &sigmask, &sigsaved); ready = select(nfds, &readfds, &writefds, &exceptfds, timeut); sigprcmask(sig_setmask, &sigsaved, NULL); Il vantaggi sta prpri nell atmicità dell implementazine Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
13 Pssibile sluzine: impstare un signal handler vut per il segnale, csì che l arriv del segnale interrmpa la select() pselect() un semplicissim esempi Sluzine crretta: usare la pselect() static vid handler(int sig) { /* d nthing */ int main(int argc, char *argv[]) { fd_set readfds; struct sigactin sa; int nfds, ready; /* Establish signal handler */ sa.sa_handler = handler; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sigactin(sigint, &sa, NULL); /*... */ ready = select(nfds, &readfds, NULL, NULL, NULL); /*... */ Dp che la select() ritrna, se errn == EINTR, sappiam che la select() è stata interrtta da un segnale e pssiam agire di cnseguenza. Race Cnditin: se SIGINT viene ricevut dp la chiamata a sigactin(), ma prima della select(), nn interrmperà la select() e il segnale andrà pers. Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. sigset_t emptyset, blckset; sigemptyset(&blckset); /* Blck SIGINT */ sigaddset(&blckset, SIGINT); sigprcmask(sig_block, &blckset, NULL); /* Establish signal handler */ sa.sa_handler = handler; sa.sa_flags = 0; sigemptyset(&sa.sa_mask); sigactin(sigint, &sa, NULL); /* Inizializza nfds and readfds */ /* Sblcca il signale, e invca pselect */ sigemptyset(&emptyset); ready = pselect(nfds, &readfds, NULL, NULL, NULL, &emptyset); /* */ Il cdice funzina perchè SIGINT è sblccat sl quand il cntrll è passat al kernel. Il risultat è che nn c è alcun punt in cui il segnale può essere inviat prima che venga eseguita la pselect(). 518 I/O Multiplexing cn Nnblcking I/O Us cngiunt di nnblcking I/O e select() Per evitare busy waiting velcizzand l I/O multiplexing Parte semplice ricrdarsi di settare la scket cme nnblccante gestire crrettamente EWOULDBLOCK - Di slit è sufficiente ignrarl Parte cmplicata gestire crrettamente i buffer di invi e ricezine Ecc perché si preferisce usare server multiprcess multithread stdin tiptr &t[maxline] Già spediti Dati da inviare al server Buffer dispnibile per letture da stdin tptr scket friptr &fr[maxline] Già spediti Dati da inviare a stdut Buffer dispnibile per letture da scket Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. frptr stdut
14 I/O Multiplexing cn Nnblcking I/O Divers è per la nnblcking cnnect(), che ritrna EINPROGRESS se una cnnessine è in crs Il three-way handshake cntinua Tramite select() si può cntrllare l stat della cnnessine Tre usi per una nnblcking cnnect() Si esegue altr mentre il three-way handshake è in crs Si pssn stabilire più cnnessini cntempraneamente Attendend sulla select() che la cnnessine sia cmpleta, pssiam accrciare il timeut per la cnnect() tramite il timeut della select() Che di default varia tra i 75 secndi ad alcuni minuti Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 520 nnblcking cnnect() int cnnect_nnb(int sckfd, cnst SA *saptr, scklen_t salen, int nsec) { int flags, n, errr; scklen_t len; d_set rset, wset; struct timeval tval; flags = fcntl(sckfd, F_GETFL, 0); fcntl (sckfd, F_SETFL, flags O_NONBLOCK); errr = 0; if ( (n = cnnect(sckfd, (struct sckaddr *) saptr, salen)) < 0) if (errn!= EINPROGRESS) return (-1); /* errre di cnnessine */ if (n == 0) /* la cnnect è stata stabilita immediatamente */ fcntl(sckfd, F_SETFL, flags); /* ripristina la scket blccante */ return (0); FD_ZERO (&rset); FD_SET(sckfd, &rset); wset = rset; tval. tv_sec = nsec; tval.tv usec = 0; if ( (n = Select(sckfd + 1, &rset, &wset, NULL, nsec? &tval : NULL)) == 0) { clse(sckfd); /* timeut */ errn = ETIMEDOUT; return (-1); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. Un esempi parziale che implementa una cnnect() nn blccante usand la select() La versine cmpleta necessita di ulteriri cntrlli
15 I/O Multiplexing cn Nnblcking I/O Prblema In teria l us della accept() all intern di una select() nn necessita di rendere la scket nnblccante In pratica c è una race cnditin dvuta alla nn atmicità delle perazini Quand il client chiude la cnnessine tra la select() e la accept() blcca il server indefinitivamente Sluzine Settare la scket cme nnblccante Ignrare gli errri EWOULDBLOCK e ECONNABORTED Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 522 Signal-Driven I/O SIGIO Sn richiesti tre passi Stabilire un signal handler per il segnale SIGIO ( SIGPOLL su certe piattafrme) Settare il scket wner cn F_SETOWN di fcntl() Abilitare signal-driven I/O cn F_SETFL di fcntl() per attivare il flag O_ASYNC SIGIO viene generat Per Scket UDP, quand Arriva un Si verifica un errre asincrn Per scket TCP, trpp spess da renderl inutile una richiesta di cnnessine su una listening scket è cmpletata Una richiesta di discnnessine è iniziata Una richiesta di discnnessine è cmpletata La metà di una cnnessine è stata chiusa cn shutdwn() I dati sn arrivati I dati sn stati inviati Un errre asincrn si è verificat pessima nmenclatura. In realtà serve per ricevere ntifiche sui segnali SIGIO e SIGURG Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
16 Esercizi C 6 Si implementi una versine semplificata di una chatrm, in cui i client invian messaggi all Ech Server in maniera asincrna e quest ultim li rispedisce a tutti i client a lui cnness ad eccezine del mittente. Si utilizzi I/O multiplexing per gestire crrettamente l alternanza stretta dei client e la presenza di più scket descriptr nel server. Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 524 Esercizi C 7 Si implementi un server che ffra due servizi su due prte cnsecutive: 1. sulla prima in input stringhe della frma nr 1 p nr 2 restituisce l esit dell perazine p {+, -, *, / applicata agli interi nr 1 e nr 2 ; 2. sulla secnda in input stringhe della frma p nr restituisce l esit dell perazine p {exp, lg, sqrt applicata al flat nr. L esit delle perazini (binarie e unarie risp.) sarà restituit a tutti i client cnnessi al rispettiv servizi. Il client iterativamente frnirà nuve espressini al server, lasciand il servizi secnd una delle due seguenti mdalità (a scelta dell studente): 1. il server chiuderà la cnnessine alla ricezine della perazine e ; 2. Il client si scllegherà senza avvisare il server, che dvrà in gni cas ripulire gli fd_set usati. Si implementi anche il rispettiv client. Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
17 Timeut Ci sn tre mdi per mettere un timeut su una perazine di I/O su una scket Chiamata a alarm(), che genera il segnale SIGALRM all scadere del cuntdwn POSIX cmpliant Può interferire cn altre chiamate a alarm() Usare la select(), che ha un timeut già implementat Usare le pzini SO_RCVTIMEO and SO_SNDTIMEO Nn sempre queste pzini sn implementate Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. 526 Timeut cn alarm() static vid sig_alrm(int); vid dg_cli(file *fp, int sckfd, cnst SA *pservaddr, scklen_t servlen) { int n; char sendline[maxline], recvline[maxline + 1]; signal(sigalrm, sig_alrm); while (fgets(sendline, MAXLINE, fp)!= NULL) { sendt(sckfd, sendline, strlen(sendline), 0, pservaddr, servlen); alarm(5); if ( (n = recvfrm(sckfd, recvline, MAXLINE, 0, NULL, NULL)) < 0) { if (errn == EINTR) fprintf(stderr, "scket timeut\n"); else err_sys("recvfrm errr"); else { espress in secndi alarm(0); recvline[n] = \0 ; /* null terminate */ fputs(recvline, stdut); se 0 nessun allarme static vid sig_alrm(int sign) viene schedulat { return; /* sl per interrmpere la recvfrm() */ Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
18 Timeut cn select() Inglband tale funzinalità in una singla funzine #include <unistd.h> #include <sys/time.h> #include <sys/types.h> #include <sys/scket.h> int recvtimeut(int s, char *buf, int len, int timeut) { fd_set fds; int n; struct timeval tv; // si settan i file descriptr set FD_ZERO(&fds); FD_SET(s, &fds); // si setta l struct timeval per il timeut tv.tv_sec = timeut; tv.tv_usec = 0; Cas d us // timeut di 10 secndi n = recvtimeut(s, buf, sizef buf, 10); if (n == -1) { // errre perrr("recvtimeut"); else if (n == -2) { // timeut else { // usa i dati in buf // si attende il timeut i dati n = select(s+1, &fds, NULL, NULL, &tv); if (n == 0) return -2; // timeut! if (n == -1) return -1; // errre // dati in arriv, usare il classic recv() return recv(s, buf, len, 0); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I. Funzine recvtimeut() Valri di ritrn: - 0: cnnessine chiusa - 1: errre - 2: timeut 528 Esercizi C 8 Si implementi un server che riceva in input un giudizi (inter cmpres tra 1 e 10) e frnisca cme utput la media dei giudizi ttenuti da tutti i client e il numer di giudizi pervenuti. Ogni client può inviare un numer illimitat di giudizi. Sarà il server a dver gestire eventuali discnnessini. Ogni t secndi, il server dvrà inviare ad gni client cnness la cppia (media, numer) dei giudizi pervenuti. L studente è liber di scegliere se utilizzare la select() in md pprtun la funzine alarm(). Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan D.I
I/O Multiplexing select() e poll()
I/O Multiplexing select() e pll() Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2014-2015 Università
DettagliFunzioni bloccanti e soluzioni
Funzioni bloccanti e soluzioni La funzione accept() e le funzioni per la gestione dell I/O (ad es., read() e write()) sono bloccanti Ad es., le funzioni read() e recv() rimangono in attesa finché non vi
DettagliI/O su Socket TCP: read()
I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una
DettagliProtocolli applicativi
Prgrammazine cn le Scket Crs di laurea in Cmunicazine Digitale Labratri di sistemi e reti A.A. 2010-2011 Simne Bassis bassis@dsi.unimi.it Labratri di sistemi e reti (Cmunicazine Digitale) - A.A. 2010-2011
DettagliTimeout. Socket Avanzati. Funzione alarm() Client echo UDP con alarm
I semestre 02/03 Socket Avanzati Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Timeout Abbiamo visto
DettagliProblema. I/O Multiplexing. Struttura delle Operazioni di Lettura. Modelli di I/O. Prof. Vincenzo Auletta
a.a. 2003/04 Problema I/O Multiplexing Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Un applicazione
DettagliConversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2011-2012. Simone Bassis bassis@dsi.unimi.
Cnversine di nmi e indirizzi Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2011-2012 Simne Bassis bassis@dsi.unimi.it Indirizzi Java mette a dispsizine delle classi appsite per cntenere
DettagliE.C.M. Educazione Continua in Medicina. Servizi web. Manuale utente
E.C.M. Educazine Cntinua in Medicina Servizi web Manuale utente Versine 1.0 maggi 2015 E.C.M. Servizi web: invi autmatic Indice 2 eventi e pian frmativ Indice Revisini 3 1. Intrduzine 4 2. 5 2.1 Verifica
DettagliPthread Posix Thread
Pthread Psix Thread Crs di laurea in Cmunicazine Digitale Labratri di Reti di calclatri A.A. 2009-2010 Simne Bassis bassis@dsi.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2011-2012 Università
DettagliLaboratorio Reti di Calcolatori (A.A ) Delfina Malandrino.
Laboratorio Reti di Calcolatori (A.A. 2008-2009) I/O Multiplexing Delfina Malandrino delmal@dia.unisa.it it http://www.dia.unisa.it/professori/delmal/ Problema 2 Un applicazione deve gestire più input
DettagliFunzioni bloccanti e soluzioni. Funzioni bloccanti e soluzioni (2) Parametri della funzione select() Funzione select()
Funzioni bloccanti e soluzioni La funzione accept() e le funzioni per la gestione dell I/O (ad es., read() e write()) sono bloccanti Ad es., le funzioni read() e recv() rimangono in attesa finché non vi
DettagliUnix Socket. Corso di laurea in Comunicazione Digitale Laboratorio di Reti di calcolatori A.A Simone Bassis
Unix Scket Crs di laurea in Cmunicazine Digitale Labratri di Reti di calclatri A.A. 009-00 Simne Bassis bassis@dsi.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 0-0 Università di Milan D.S.I.
DettagliROBOMAIL 1.5 Configurazione
ROBOMAIL 1.5 Cnfigurazine Registrazine del prdtt Eseguire il file MCMLicenser.exe presente nella cartella di installazine del prdtt (\rbmail.service) Inserire Cdice Licenza e Cdice
DettagliOpzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni
a.a. 2003/04 Opzioni del Socket Socket Options Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Ogni socket
DettagliLaboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella
Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Niccolò Iardella niccolo.iardella@unifi.it 1 Esercitazione 5 Programmazione con i socket Parte 2
DettagliCentro di competenza per la progettazione di sistemi dedicati
Strumenti di sistema e diagnstica Tracce di esercitazine per l us degli strumenti di diagnstica di rete. Si faccia riferiment alle slides, ai testi di riferiment per il crs ed all aiut n-line per i vari
DettagliAggiornamento remoto della chiave hardware
AMV S.r.l. Via San Lrenz, 106 34077 Rnchi dei Leginari (Grizia) Italy Ph. +39 0481.779.903 r.a. Fax +39 0481.777.125 E-mail: inf@amv.it www.amv.it Cap. Sc. 10.920,00 i.v. P.Iva: IT00382470318 C.F. e Iscriz.
DettagliLABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Socket in linguaggio C: server concorrente single-process 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione
DettagliMicrosoft SQL Server 2005, 2008 R2 e 2012 Raccomandazioni Marzo 2013
Micrsft SQL Server 2005, 2008 R2 e 2012 Raccmandazini Marz 2013 1. Micrsft SQL Server 2005 PrefSuite 2006.3 e PrefSuite 2008 sn cmpatibili cn questa versine di SQL. L investiment in Micrsft SQL Server
Dettaglie/fiscali - Rel. 04.01.03
e/fiscali - Rel. 04.01.03 Mntebelluna, 07 nvembre 2013 e/fiscali - Fix 04.01.03 Dcumentazine di rilasci 24 ORE Sftware S.p.A. 07/11/2013 Pag. 1 di 13 INDICE 1 FIX 04.01.03 DI E/FISCALI... 3 2 NOTE DI INSTALLAZIONE...
DettagliNovità relative all assessment tool
Nvità relative all assessment tl La dcumentazine e gli strumenti di supprt di Friendly Wrk Space sn sttpsti a cntinui interventi di rielabrazine, aggirnament e perfezinament. Nel 2014 è stata ripetutamente
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che
DettagliIToolS AT commands server. Version 3.3 12/11/2012
ITlS AT cmmands server 1 Smmari Descrizine... 3 Funzinament... 3 Esempi... 6 2 Descrizine Il cmpnente ITlS AtServer presente nel namespace ITlS.Cmpnents.Netwrk.Mdem cnsente di inviare SMS ed email attravers
Dettaglie/fiscali - Rel. 04.01.01
e/fiscali - Rel. 04.01.01 Mntebelluna, 17 ttbre 2013 e/fiscali - Fix 04.01.01 Dcumentazine di rilasci 24 ORE Sftware S.p.A. 14/10/2013 Pag. 1 di 14 INDICE 1 FIX 04.01.01 DI E/FISCALI... 3 2 NOTE DI INSTALLAZIONE...
DettagliDatagramSocket. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2011-2012. Simone Bassis bassis@dsi.unimi.it.
DatagramScket Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2011-2012 Simne Bassis bassis@dsi.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2011-2012 Università di Milan D.S.I.
DettagliE/Fiscali - Rel. 04.03.01
E/Fiscali - Rel. 04.03.01 Rimini, 09 gennai 2015 E/Fiscali - Fix 04.03.01 Dcumentazine di rilasci TSS S.p.A. 26/01/2015 Pag. 1 di 14 INDICE 1 FIX 04.03.01 DI E/FISCALI... 3 2 NOTE DI INSTALLAZIONE... 4
DettagliEsempi di Client e Server
Esempi di Client e Server Crs di laurea in Cmunicazine Digitale Labratri di Reti di calclatri A.A. 009-00 Simne Bassis bassis@dsi.unimi.it #include #include #include #include
DettagliHR-COMUNICAZIONI rel 01.00.00
HR-COMUNICAZIONI rel 01.00.00 Infrmazini e requisiti tecnici per attivazine HR-COMUNICAZIONI versin 01.00.00 Cn il caricament della presente applicazine, i mduli che cmpnevan la sluzine HR Wrk Flw fin
DettagliAcronis Backup & Recovery 10
Acrnis Backup & Recvery 10 Server fr Linux Guida intrduttiva Quest dcument descrive cme installare e iniziare a utilizzare Acrnis Backup & Recvery 10 Server fr Linux. 1. Sistemi perativi supprtati Linux
DettagliCenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it
Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
DettagliPannello di controllo
Pannell di cntrll TeamPrtal Pannell di cntrll TeamPrtal Pannell di cntrll 1 Pannell di cntrll TeamPrtal Pannell di cntrll Nei sistemi perativi Linux, una vlta installat TeamPrtal, si avrà a dispsizine
DettagliCONTROLLO SCADENZA FIRMA DIGITALE. Come visualizzare la scadenza del certificato [data inizio e fine validità] relativo al Gestore certificati utente
CONTROLLO SCADENZA FIRMA DIGITALE Cme visualizzare la scadenza del certificat [data inizi e fine validità] relativ al Gestre certificati utente E' pssibile visualizzare i dettagli del certificat intestat
DettagliALTA VELOCITA SIMMETRICA
ALTA VELOCITA SIMMETRICA Il servizi ffre un cllegament a Internet dedicat, flessibile, ad elevate velcità e prestazini. La cnnessine permanente ad Internet è realizzabile su gran parte del territri nazinale
DettagliATLAS Installazione : INSTALLAZIONE DI ATLAS SUL SERVER DI TEST CENTER
ATLAS Installazine : INSTALLAZIONE DI ATLAS SUL SERVER DI TEST CENTER Installazine di Atlas sul server PROCEDURA Cme facci ad installare Atlas sul Server di Test Center? Quali sn le caratteristiche minime
DettagliInstallazione e creazione sito
Installazine e creazine sit INSTALLAZIONE Dppi clic sul file «setup.exe» Prima finestra di installazine Cliccare su «Successiv» Secnda finestra di installazine In questa finestra è pssibile: Scegliere
DettagliNovità: Correzione di errori: Altro
Nvità: È stata aggiunta alle pzini di cnfigurazine generale del prgrama la pssibilità di cnfigurare il cllegament al server tramite prxy. Si accettan questi tipi di prxy: SOCKS v4, SOCKS v5, HTTP 1.1 e
DettagliGESTIRE E MANTENERE UN AMBIENTE WINDOWS SERVER 2003 PER MCSA WINDOWS 2000
GESTIRE E MANTENERE UN AMBIENTE WINDOWS SERVER 2003 PER MCSA WINDOWS 2000 UN BUON MOTIVO PER Durata: 40 re [cd. E004] Quest crs e' pensat per amministratri di sistema su Windws 2000 cn esperienza nella
DettagliGestione Agenti. Software per il Calcolo provvigioni per Agenti e Venditori Software GESAGE - Specifiche del prodotto
Gestine Agenti Sftware per il Calcl prvvigini per Agenti e Venditri Sftware GESAGE - Specifiche del prdtt EBC Cnsulting Gestine delle risrse umane http://www.ebccnsulting.cm Sftware H1 Hrms GESAGE Gestine
DettagliSPEDIZIONE CONFIGURAZIONE ED INSTALLAZIONE AMBIENTE SYSINT/W
SPEDIZIONE Applicativ: SysintGateway Versine: 20150300 Oggett: Rilasci versine COMPLETA Data di rilasci: 27.04.2015 CONFIGURAZIONE ED INSTALLAZIONE AMBIENTE SYSINT/W Requisiti S.O. Windws: Interfaccia:
DettagliSIP. Bibliografia. o IETF, SIP: Session Initiation Protocol, rfc 3261 http://www.ietf.org/rfc/rfc3261.txt
SIP Sessin initiatin prtcl Standard IEEE Una visine sul lung perid Tutte le telefnate avverrann tramite Internet Gli utenti sarann identificati tramite nme e-mail e nn numeri di telefn Pssiam raggiungere
DettagliLaboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella
Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Niccolò Iardella niccolo.iardella@unifi.it 1 Esercizi Programmazione con i socket 2 Programma di
DettagliSistemi operativi Modulo II I semafori 2 Select
Il sistema operativo LINUX Semafori 2 Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica La system call read è bloccante Non
DettagliRegione Calabria Dipartimento n.9 Lavori Pubblici ed Infrastrutture
UNIONE EUROPEA REPUBBLICA ITALIANA REGIONE CALABRIA Regine Calabria Dipartiment n.9 Lavri Pubblici ed Infrastrutture Via Crispi 33-88100 CATANZARO SPECIFICHE SIERC: INTEGRAZIONE PROTOCOLLO SIAR POR Calabria
DettagliKleos per ipad. Guida rapida. Ver 1.0.0. Help Desk: 080.3492828 - hd.avvocati@wki.it
Kles per ipad Guida rapida Ver 1.0.0 Help Desk: 080.3492828 - hd.avvcati@wki.it Smmari Installazine... 3 Lgin... 3 Menù principale... 3 Hme page... 4 Ricerca Pratiche... 4 Dettagli della pratica... 5 Sggetti
DettagliComputazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
DettagliIntroduzione alle applicazioni di rete
Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza
DettagliLe Socket in C Invio e Ricezione Dati
Le Scket in C Invi e Ricezine Dati Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Labratri di Reti di Calclatri (Infrmatica) - A.A. 2014-2015 Università
DettagliSincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.
Processi parte III Sincronizzazione e comunicazione tra processi in Unix Segnali: usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Pipe: struttura dinamica,
DettagliINPS. Area Aziende. Procedura Internet per la trasmissione delle domande relative agli sgravi contrattazione di II livello per l anno 2009
Istitut Nazinale Previdenza Sciale INPS Direzine Centrale Sistemi Infrmativi e Tecnlgici Area Aziende Prcedura Internet per la trasmissine delle dmande relative agli sgravi cntrattazine di II livell per
DettagliHTTP adaptation layer per generico protocollo di scambio dati
HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003
DettagliMANUALE UTENTE (per il Modello di rilevazione in MS Excel)
FLUSSO MONITORAGGIO INTESE Racclta dati 1 gennai 30 giugn 2009 MANUALE UTENTE (per il Mdell di rilevazine in MS Excel) Lmbardia Infrmatica S.p.A. INDICE 1 Premessa...3 2 Intrduzine...4 2.1 UdP Anagrafica
DettagliLABORATORI DI INFORMATICA 1 MANUALE STUDENTE
LABORATORI DI INFORMATICA 1 MANUALE STUDENTE Indice 1. Gestine Sessine di lavr 1.1. Lgin al sistema 1.2. Strumenti a dispsizine dell studente 1.3. Chiusura della sessine 2. Cmandi Linux Principali 2.1.
DettagliModalità di trasferimento dati tra. Amministrazioni Aeroportuali ed INPS
Istitut Nazinale Previdenza Sciale Direzine Centrale Sistemi Infrmativi e Tecnlgici Mdalità di trasferiment dati tra Amministrazini Aerprtuali ed INPS Ver. 1.0 Maggi 2009 Dtt. A. Allegra Tel. 06 59055006
DettagliVia F. Lana, 1-25020 FLERO (BS) Tel. 0303582748 Fax 03072131184 www.themissoluzioni.it info@themissoluzioni.it. gruppo axelera.
Via F. Lana, 1-25020 FLERO (BS) Tel. 0303582748 Fax 03072131184 www.sluzini.it inf@sluzini.it grupp axelera sluzini Obiettiv Scp del presente dcument è descrivere il prdtt Nprinting, il più evlut add-in
DettagliMessaggio del servizio di assistenza clienti
Messaggi del servizi di assistenza clienti OGGETTO: Cisc WebEx: Patch standard applicat il [[DATE]] per [[WEBEXURL]] Cisc WebEx: Patch standard il [[DATE]] Cisc WebEx sta inviand quest messaggi ai cntatti
DettagliEsercitazione [5] Input/Output su Socket
Esercitazione [5] Input/Output su Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo
DettagliManuale Utente. Data : 06/06/2012 Versione : 1.9
Sistema Infrmativ di EMITTENTI Data : 06/06/2012 Versine : 1.9 Stria delle mdifiche Data Versine Tip di mdifica 09/07/2006 1.0 Creazine del dcument 10/04/2007 1.1 Mdifica del dcument 24/04/2007 1.2 Mdificata
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto
DettagliGuida descrittiva del programma Gestione Magazzino
Guida descrittiva del prgramma Gestine Magazzin Per accedere al prgramma l utenza impstata di default è Amministratre senza passwrd dp il lgin se è il prim access il prgramma vi richiederà l inseriment
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliConversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A Simone Bassis
Cnversine di nmi e indirizzi Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A. 2014-2015 Simne Bassis bassis@di.unimi.it Indirizzi Java mette a dispsizine delle classi appsite per cntenere
DettagliGuida per la compilazione on-line delle domande di partecipazione al concorso
Cnferiment degli incarichi di funzini didattiche a persnale dell Azienda Ospedaliera Universitaria Federic II Guida per la cmpilazine n-line delle dmande di partecipazine al cncrs Intrduzine La prcedura
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliASP RAGUSA - Test verifica Recupero Dati - Patrimonio - Cespiti v1.0.docx. 29/07/2013 Antonio Derna
Asp Ragusa Piazza Igea n. 1 ASP RAGUSA - Test verifica Recuper Dati - Patrimni - Cespiti INFORMAZIONI SULLA VERSIONE Prgett: Emess da: Rivist da: Prtcll: Titl: Nme file: Data: Asp Ragusa: Distribuit a:
DettagliLab. di Sistemi Operativi - Esercitazione n 9- -Thread-
Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -
DettagliLaboratorio di Sistemi Operativi
Le FIFO pipe vs fifo la pipe può essere usata solo tra processi "imparentati" (che hanno un antenato comune che ha creato la pipe) la fifo consente di scambiare dati tra processi qualsiasi 2 1 FIFO (named
DettagliL API socket ed i daemon
L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/
DettagliProgrammazione dei socket con TCP #2
I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket
DettagliLaboratorio di Sistemi Operativi
II Semestre - Marzo/Giugno 2008 matricole congr. 0 mod 3 I/O non bufferizzato-2 dup, dup2 System Call sync, fsync, fdatasync fcntl 2 1 Condivisione di file Unix supporta la possibilità che più processi
DettagliInizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
DettagliQUANDO WINDOWS XP NON SI AVVIA
Tecnlgie infrmatiche QUANDO WINDOWS XP NON SI AVVIA In quest articl viene descritta la prcedura per ripristinare un sistema cn Windws XP che nn è più pssibile avviare a causa di un errre nel Registr di
Dettagli1 INTRODUZIONE 4 1.1 SCOPO DEL DOCUMENTO 4 1.2 PANORAMICA DI IMAGICLE APPLICATIONSUITE 4 2 IMAGICLE STONEFAX 5 2.1 UNA SOLUZIONE DI SERVER FAX IP
1 INTRODUZIONE 4 1.1 SCOPO DEL DOCUMENTO 4 1.2 PANORAMICA DI IMAGICLE APPLICATIONSUITE 4 2 IMAGICLE STONEFAX 5 2.1 UNA SOLUZIONE DI SERVER FAX IP SEMPLICE, PRATICA E RISERVATA 5 3 STONEFAX - COME INVIARE
DettagliI Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina
M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura
DettagliLa gestione informatizzata del farmaco
Azienda Ospedaliera di Verna Dipartiment di Medicina Clinica e Sperimentale Medicina Interna B - Reumatlgia La gestine infrmatizzata del farmac Crdinatre Stefania Discnzi Reggi Emilia 11-12 XII 2008 CRITICITA
DettagliTRASMISSIONE DATI CON PROTOCOLLO XON-XOFF (1)
MANUALE D USO TRASMISSIONE DATI CON PROTOCOLLO XON-XOFF (1) Valid per: CUSTOM ENGINEERING: KUBE, MAX etc MWCR SAREMA: EXTRA, RECORD, SX3 SAREMA DITRON: Recrd EJ, JUMP, Grill EJ EMOTIQ : Opera e Nta COMPATIBILE
DettagliA. Ferrari. File. in C
File in C stream - flussi in C la gestine dei file avviene attravers un fluss di cmunicazine per utilizzare un file è necessari dichiarare una variabile di tip puntatre al file (ad un ggett di tip FILE)
DettagliJ+... J+3 J+2 J+1 K+1 K+2 K+3 K+...
Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad
DettagliInformazioni di base e sviluppo di applicazioni web
Infrmazini di base e svilupp di applicazini web Al termine del crs il partecipante sarà in grad di sviluppare una Rich Internet Applicatin tramite l ambiente di svilupp Instant Develper utilizzand un mtre
DettagliRegole per ottenere il riconoscimento IATF, 2 edizione, Sanctioned Interpretations
Regle per ttenere il ricnsciment IATF, 2 edizine, Sanctined Interpretatins Le Regle per ttenere il ricnsciment IATF, 2 edizine, sn state pubblicate nel 2004. Le seguenti Sanctined Interpretatins sn state
DettagliIngegneria del Software: JDBC. laura.bacci@unipv.it
Ingegneria del Sftware: JDBC laura.bacci@unipv.it Che csa è JDBC Un insieme di API standard per accedere ai database relazinali Separa e nascnde i dettagli dell specific database all applicazine che l
DettagliSERVIZIO FIPH - FULL IP PBX HOSTED. Servizio GoCall
SERVIZIO FIPH - FULL IP PBX HOSTED Servizi GCall Numer dcument: 111/a versine 1.32 Data : 01/05/2012 Oggett: Redattre dcument: VIS 4.0 GCall Casella Vcale Bagnara Massimilian File H:\Manualistica\Inviare
Dettaglie/fiscali - Rel. 04.01.04
e/fiscali - Rel. 04.01.04 Rimini, 09 dicembre 2013 e/fiscali - Fix 04.01.04 Dcumentazine di rilasci 24 ORE Sftware S.p.A. 12/12/2013 Pag. 1 di 15 INDICE 1 FIX 04.01.04 DI E/FISCALI... 3 2 NOTE DI INSTALLAZIONE...
DettagliAl termine dell operazione verrà visualizzato il modulo aggiunto
Grupp Pste Italiane Istruzini per la richiesta del servizi Pstecert Pstemail Certificata Mduli e tken PKCS#11 Aggiungi mdul Selezinare a partire dal prpri cmputer (smart card) cartelle presenti sul Tken
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliSenTaClAus Sentiment Tagging & Clustering Analysis on web & social contents
Via Marche 10 56123 Pisa Phne +39.050.552574 Fax +39.1782239361 inf@netseven.it - www.netseven.it P.IVA 01577590506 REGIONE TOSCANA POR CReO FESR 2007 2013 LINEA D INTERVENTO 1.5.a - 1.6 BANDO UNICO R&S
DettagliNota di rilascio protocollo client / server. Vers. 5.02.02
30 gennai 2013 Nta di rilasci prtcll client / server. Vers. 5.02.02 referente Marc Stanisci Stefan Cciancich rivlt a biettiv autrizzat IAQ-AQ-MD-01-bis Pag.1 di 16 30 gennai 2013 SOMMARIO 1. TABELLA ANAGRAFICA...
DettagliCAPITOLO 7 - SCAMBIO DI MESSAGGI
CAPITOLO 7 - SCAMBIO DI MESSAGGI Lo scambio di messaggi è una forma di comunicazione nel quale un processo richiede al sistema operativo di mandare dei dati direttamente ad un altro processo. In alcuni
DettagliLaboratorio di Sistemi Operativi
II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int
DettagliLaboratorio di Reti di Calcolatori
Laboratorio di Reti di Calcolatori Socket UDP. Paolo D Arco Abstract Scopo della lezione è descrivere le funzioni che l interfaccia dei socket offre per far interagire client e server attraverso il protocollo
DettagliFYF per Point Manuale Operativo
FYF per Pint Manuale Operativ 1. Indice 1. Indice... 2 2. Access a FYF... 3 3.1. Ricerca pratiche... 5 3.2. Creazine Nuva Pratica... 7 3.3. Lavrazine pratiche da ritrasmettere... 11 Cnsumer Sales and Distributin
DettagliUDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing
a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it
DettagliLaboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2017/2018. Ing. Carlo Vallati
Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2017/2018 Ing. Carlo Vallati carlo.vallati@unipi.it 1 Esercizi Programmazione con i socket 2 Programma di oggi
DettagliRecord locking con la system call fcntl
Record locking con la system call fcntl Il record locking è un metodo per disciplinare la cooperazione tra processi. Permette ad un processo di poter accedere ad un file in modo esclusivo. È utile quindi
DettagliThread: sincronizzazione Esercitazioni del 09 Ottobre 2009
Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria October 10, 2009 Sincronizzazione - 1 1 Esercizio 1: Sincronizzazione - 1 Qual è il problema
DettagliSPEDIZIONE CONFIGURAZIONE ED INSTALLAZIONE AMBIENTE SYSINT/W
SPEDIZIONE Applicativ: SysintGateway Versine: 20150600 Oggett: Rilasci versine COMPLETA Data di rilasci: 18.12.2015 CONFIGURAZIONE ED INSTALLAZIONE AMBIENTE SYSINT/W Requisiti S.O. Windws: Interfaccia:
DettagliObiettivo. Dal problema al risultato Algoritmo. Imparare a PROGRAMMARE
Obiettiv Imparare a PROGRAMMARE LA PROGRAMMAZIONE: Algritmi e prgrammi Imparare a cstruire PROGRAMMI che permettan, tramite l us di cmputer, di rislvere prblemi di divers tip. Prblema Dal prblema al risultat
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliTimeout. Socket Avanzati. Client echo UDP con alarm. Funzione alarm()
Università degli studi di Salerno Laurea in Informatica a.a. 2003/04 Socket Avanzati Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 1 Timeout Abbiamo visto molte
Dettagli