Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBettina Fusco Modificato 11 anni fa
1
Il modello cliente/servente per l’implementazione di applicazioni
l’interfaccia Socket per l’implementazione di applicazioni Prof. Alfio Lombardo
2
IL PROBLEMA DEL RENDEZ-VOUS
Processo A Processo A Processo A Processo B Processo B Processo B Messaggio Messaggio
3
IL PROBLEMA DEL RENDEZ-VOUS
Processo B Messaggio Processo A Processo A Processo B
4
MODELLO CLIENTE - SERVENTE
Richiesta Risposta
5
La gestione della concorrenza nel server
Cliente Remote Login Server INTERNET Cliente Cliente
6
Connessione 2 Connessione 1 Richiesta Risposta CLIENTE 2 SERVENTE
MASTER SERVENTE Connessione 2 CLIENTE 1 CLIENTE 1 Connessione 1 SERVENTE SLAVE 1 Richiesta Risposta
7
I Scenario: Ack Write LA GESTIONE DEI CRASH NEL SERVER Richiesta
SERVENTE CLIENTE Richiesta Risposta
8
I Scenario: Ack Write No Transaction Richiesta Risposta CLIENTE
SERVENTE CLIENTE Richiesta Risposta
9
II Scenario Write Ack SERVENTE CLIENTE Richiesta Risposta
10
? II Scenario Write Ack Duplicate Transaction Richiesta Richiesta
CLIENTE SERVENTE Richiesta Richiesta ? Risposta
11
Ripristino dei guasti nel Server
Strategia del Servente Strategia del Cliente Ack Write Write Ack Ritrasmetti in S0 AF(W) AWF F(AW) F(WA) WAF WF(A) Ritrasmetti in S1 NO OK DUP DUP OK NO Ritrasmetti in S0 Ritrasmetti OK DUP Non Ritrasmetti NO S1 = stato di attesa della conferma
12
POLITICHE DI GESTIONE DEI GUASTI NEL SERVER
At most once At least once
13
Kernel del Sistema Operativo contenente il
L’interfaccia socket AP1 AP2 AP3 Funzioni di sistema Kernel del Sistema Operativo contenente il software TCP/UDP
14
Il concetto di Socket Definizione: Generalizzazione del meccanismo di
accesso ai file in Unix che fornisce un punto di accesso per la comunicazione
15
Un socket identifica localmente il canale
Il “canale” di comunicazione tra due Applicativi è rappresentato da: Client port Addr, IP Client Addr, IP Server Addr, Server port Addr Appl. process Appl. process Un socket identifica localmente il canale tra due Applicativi
16
Modalita’ c.o.: Servente
socket = socket(family, type, protocol) family ::= {PF_INET, PF_APPLETALK, PF_PUP, ...} type::= {SOCK_STREAM, SOCK_DGRAM, …..} Socket( ) bind (socket,localaddr,addrlen) Bind( ) Listen( ) listen(socket,qlength) Accept( ) newsocket accept(socket,addr,addrlen) Fork( ) fork( ) master slave close(socket) Close( ) recv(sock,*buf,length,flags) Recv( ) send(sock,*buf, length,flags) Send( )
17
Modalita’ c.o.: Cliente Socket( )
int connect(socket,destaddr,addrlength ) Connect( ) Send( ) Recv( )
18
Servente Cliente Socket( ) Bind( ) Listen( ) Accept( ) Fork( )
Close( ) Recv( ) Send( ) Cliente Socket( ) Connect( ) Send( ) Recv( ) slave master
19
Modalita’ c.l. Servente Cliente Socket( ) Socket( ) Bind( ) Bind( )
RecvFrom( ) int recvfrom(sock,*buf, length, flags,sourceaddr,addrlength ) RecvFrom( ) SendTo( ) RecvFrom( ) int sendto(sock,*buf, length, flags,destaddr,addrlength ) SendTo( )
20
Inter-Process Communication
Esercizio consigliato: IPC Macrolezione 05 (ipermediale) Inter-Process Communication
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.