I/O Multiplexing select() e poll()

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I/O Multiplexing select() e poll()"

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 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à

Dettagli

Funzioni bloccanti e soluzioni

Funzioni 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

Dettagli

I/O su Socket TCP: read()

I/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

Dettagli

Protocolli applicativi

Protocolli 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

Dettagli

Timeout. Socket Avanzati. Funzione alarm() Client echo UDP con alarm

Timeout. 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

Dettagli

Problema. I/O Multiplexing. Struttura delle Operazioni di Lettura. Modelli di I/O. Prof. Vincenzo Auletta

Problema. 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

Dettagli

Conversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2011-2012. Simone Bassis bassis@dsi.unimi.

Conversione 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

Dettagli

E.C.M. Educazione Continua in Medicina. Servizi web. Manuale utente

E.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

Dettagli

Pthread Posix Thread

Pthread 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à

Dettagli

Laboratorio Reti di Calcolatori (A.A ) Delfina Malandrino.

Laboratorio 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

Dettagli

Funzioni bloccanti e soluzioni. Funzioni bloccanti e soluzioni (2) Parametri della funzione select() Funzione select()

Funzioni 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

Dettagli

Unix Socket. Corso di laurea in Comunicazione Digitale Laboratorio di Reti di calcolatori A.A Simone Bassis

Unix 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.

Dettagli

ROBOMAIL 1.5 Configurazione

ROBOMAIL 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

Dettagli

Opzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni

Opzioni 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

Dettagli

Laboratorio 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 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

Dettagli

Centro di competenza per la progettazione di sistemi dedicati

Centro 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

Dettagli

Aggiornamento remoto della chiave hardware

Aggiornamento 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.

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO 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

Dettagli

Microsoft SQL Server 2005, 2008 R2 e 2012 Raccomandazioni Marzo 2013

Microsoft 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

Dettagli

e/fiscali - Rel. 04.01.03

e/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...

Dettagli

Novità relative all assessment tool

Novità 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

Dettagli

Università 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. 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

Dettagli

IToolS AT commands server. Version 3.3 12/11/2012

IToolS 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

Dettagli

e/fiscali - Rel. 04.01.01

e/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...

Dettagli

DatagramSocket. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 2011-2012. Simone Bassis bassis@dsi.unimi.it.

DatagramSocket. 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.

Dettagli

E/Fiscali - Rel. 04.03.01

E/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

Dettagli

Esempi di Client e Server

Esempi 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

Dettagli

HR-COMUNICAZIONI rel 01.00.00

HR-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

Dettagli

Acronis Backup & Recovery 10

Acronis 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

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni 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

Dettagli

Pannello di controllo

Pannello 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

Dettagli

CONTROLLO SCADENZA FIRMA DIGITALE. Come visualizzare la scadenza del certificato [data inizio e fine validità] relativo al Gestore certificati utente

CONTROLLO 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

Dettagli

ALTA VELOCITA SIMMETRICA

ALTA 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

Dettagli

ATLAS Installazione : INSTALLAZIONE DI ATLAS SUL SERVER DI TEST CENTER

ATLAS 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

Dettagli

Installazione e creazione sito

Installazione 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

Dettagli

Novità: Correzione di errori: Altro

Novità: 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

Dettagli

GESTIRE E MANTENERE UN AMBIENTE WINDOWS SERVER 2003 PER MCSA WINDOWS 2000

GESTIRE 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

Dettagli

Gestione Agenti. Software per il Calcolo provvigioni per Agenti e Venditori Software GESAGE - Specifiche del prodotto

Gestione 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

Dettagli

SPEDIZIONE CONFIGURAZIONE ED INSTALLAZIONE AMBIENTE SYSINT/W

SPEDIZIONE 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:

Dettagli

SIP. Bibliografia. o IETF, SIP: Session Initiation Protocol, rfc 3261 http://www.ietf.org/rfc/rfc3261.txt

SIP. 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

Dettagli

Laboratorio 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 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

Dettagli

Sistemi operativi Modulo II I semafori 2 Select

Sistemi 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

Dettagli

Regione Calabria Dipartimento n.9 Lavori Pubblici ed Infrastrutture

Regione 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

Dettagli

Kleos per ipad. Guida rapida. Ver 1.0.0. Help Desk: 080.3492828 - hd.avvocati@wki.it

Kleos 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

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione 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:

Dettagli

Introduzione alle applicazioni di rete

Introduzione 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

Dettagli

Le Socket in C Invio e Ricezione Dati

Le 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à

Dettagli

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.

Sincronizzazione 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,

Dettagli

INPS. Area Aziende. Procedura Internet per la trasmissione delle domande relative agli sgravi contrattazione di II livello per l anno 2009

INPS. 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

Dettagli

HTTP adaptation layer per generico protocollo di scambio dati

HTTP 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

Dettagli

MANUALE UTENTE (per il Modello di rilevazione in MS Excel)

MANUALE 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

Dettagli

LABORATORI DI INFORMATICA 1 MANUALE STUDENTE

LABORATORI 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.

Dettagli

Modalità di trasferimento dati tra. Amministrazioni Aeroportuali ed INPS

Modalità 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

Dettagli

Via 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.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

Dettagli

Messaggio del servizio di assistenza clienti

Messaggio 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

Dettagli

Esercitazione [5] Input/Output su Socket

Esercitazione [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

Dettagli

Manuale Utente. Data : 06/06/2012 Versione : 1.9

Manuale 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

Dettagli

Università 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. 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

Dettagli

Guida descrittiva del programma Gestione Magazzino

Guida 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

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per 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

Dettagli

MODELLO 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 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

Dettagli

Conversione di nomi e indirizzi. Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A Simone Bassis

Conversione 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

Dettagli

Guida per la compilazione on-line delle domande di partecipazione al concorso

Guida 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

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. 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

Dettagli

ASP RAGUSA - Test verifica Recupero Dati - Patrimonio - Cespiti v1.0.docx. 29/07/2013 Antonio Derna

ASP 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:

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

Lab. 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 -

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio 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

Dettagli

L API socket ed i daemon

L 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/

Dettagli

Programmazione dei socket con TCP #2

Programmazione 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

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio 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

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione 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

Dettagli

QUANDO WINDOWS XP NON SI AVVIA

QUANDO 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

Dettagli

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

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 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

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I 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

Dettagli

La gestione informatizzata del farmaco

La 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

Dettagli

TRASMISSIONE DATI CON PROTOCOLLO XON-XOFF (1)

TRASMISSIONE 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

Dettagli

A. Ferrari. File. in C

A. 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)

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... 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

Dettagli

Informazioni di base e sviluppo di applicazioni web

Informazioni 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

Dettagli

Regole per ottenere il riconoscimento IATF, 2 edizione, Sanctioned Interpretations

Regole 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

Dettagli

Ingegneria del Software: JDBC. laura.bacci@unipv.it

Ingegneria 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

Dettagli

SERVIZIO FIPH - FULL IP PBX HOSTED. Servizio GoCall

SERVIZIO 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

Dettagli

e/fiscali - Rel. 04.01.04

e/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...

Dettagli

Al termine dell operazione verrà visualizzato il modulo aggiunto

Al 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

Dettagli

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

OTTAVA 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

Dettagli

SenTaClAus Sentiment Tagging & Clustering Analysis on web & social contents

SenTaClAus 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

Dettagli

Nota di rilascio protocollo client / server. Vers. 5.02.02

Nota 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...

Dettagli

CAPITOLO 7 - SCAMBIO DI MESSAGGI

CAPITOLO 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

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio 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

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio 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

Dettagli

FYF per Point Manuale Operativo

FYF 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

Dettagli

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

UDP. 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

Dettagli

Laboratorio 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 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

Dettagli

Record locking con la system call fcntl

Record 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

Dettagli

Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009

Thread: 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

Dettagli

SPEDIZIONE CONFIGURAZIONE ED INSTALLAZIONE AMBIENTE SYSINT/W

SPEDIZIONE 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:

Dettagli

Obiettivo. Dal problema al risultato Algoritmo. Imparare a PROGRAMMARE

Obiettivo. 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

Dettagli

Introduzione al Linguaggio C

Introduzione 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

Dettagli

Timeout. Socket Avanzati. Client echo UDP con alarm. Funzione alarm()

Timeout. 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