Interprocess Communications - II. Franco Maria Nardini



Documenti analoghi
Interprocess Communications. Franco Maria Nardini

Introduzione alle applicazioni di rete

I Socket. Laboratorio Software M. Grotto R. Farina

Corso di Laboratorio di Sistemi Operativi

Files, File I/O, File Sharing. Franco Maria Nardini

Esercizio 2. Client e server comunicano attraverso socket TCP

IPC System V. Code di messaggi

Cenni di programmazione distribuita in C++ Mauro Piccolo

Socket TCP. seconda parte

Inter-Process Communication

Sistemi Operativi: Programmazione di Sistema

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Paradigma client-server

Organizzazione Monolitica

Pronto Esecuzione Attesa Terminazione

Inter-Process Communication

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

CREAZIONE PROCESSI IN UNIX 20

INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line)

INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line) IPC. Memoria Condivisa

Sistemi Operativi (modulo di Informatica II)

I/O su Socket TCP: read()

Inter Process Communication. Laboratorio Software C. Brandolese

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

L API socket ed i daemon

Protocolli applicativi: FTP

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

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Capitolo Silberschatz

Transmission Control Protocol

Sistemi operativi. Esempi di sistemi operativi

Laboratorio di Programmazione in rete

Libero Emergency PC. Sommario

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

URI. Introduzione. Pag. 1

Esercitazioni - 2. Corso Reti ed Applicazioni Mauro Campanella Como 2003

Bibliografia: Utenti e sessioni

rsystem Maximiliano Marchesi

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

INTERPROCESS COMMUNICATION 27

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

Programmazione dei socket con TCP #2

Configurazione client di posta elettronica per il nuovo servizio . Parametri per la Configurazione dei client di posta elettronica

Introduzione al Linguaggio C

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

DNS-Tunneling. Reference to. Ettore di Giacinto Luca Montunato

FPf per Windows 3.1. Guida all uso

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247

CAPITOLO 7 - SCAMBIO DI MESSAGGI

Agent, porte, connettività e reti L agent di Kaseya utilizza la porta 5721 per comunicare con il server, ma che tipo di porta è?...

Configurazione FileZilla Server

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Altri tipi di connessione

Java e JavaScript. Krishna Tateneni Traduzione della documentazione: Luciano Montanaro Manutenzione della traduzione: Federico Zenith

Corso di Reti di Calcolatori T

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Manuale Utente MyFastPage

Socket & RMI Ingegneria del Software - San Pietro

Controllo Winsock di Visual Basic

MANUALE BREVE PER IL DOCENTE TUTOR

Esercitazione [5] Input/Output su Socket

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Inizializzazione degli Host. BOOTP e DHCP

Reti di Telecomunicazione Lezione 6

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

ARP (Address Resolution Protocol)

Manuale Utente PEC e Client di Posta tradizionale

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

Standard Nazionale di Comunicazione Mercato Gas

Lorenzo Sarti Materiale didattico sarti

Esercitazione E6 Esercizi d esame

FASE 1: Definizione del tema, degli obiettivi e del target con il cliente... (da cui dipendono le scelte successive!)

19. LA PROGRAMMAZIONE LATO SERVER

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

NOZIONI BASE PER ESERCITAZIONI

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Guida all uso di Java Diagrammi ER

Gestione assistenza. Servizio di PEC. Impostazioni di Mozilla Thunderbird

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

Maschere di sottorete a lunghezza variabile

Appunti di Sistemi Operativi. Enzo Mumolo address web address :

SISTEMA CONTROLLO RONDE NFC

MANUALE EDICOLA 04.05

Installazione del software Fiery per Windows e Macintosh

Transcript:

Interprocess Communications - II Franco Maria Nardini

XSI IPC Tre tipi di IPC introdotti da System V: semafori shared memory code di messaggi Comunicazioni tra processi su stesso host Tutte consentono comunicazione asincrona

XSI IPC Ogni struttura IPC è identificata mediante un identificatore intero non negativo che il kernel usa per riferire la risorsa diversamente dai file descriptors (?), non sono piccoli crescono e tornano a zero, quando raggiunto il MAX_INT Serie di comandi e system calls per interagire msgget(2), semop(2) ipcs(1)

XSI IPC: Semafori Un semaforo è: un contatore per consentire il corretto accesso ad una risorsa condivisa da parte di processi multipli Per ottenere la risorsa, un processo deve: testare il semaforo che controlla la risorsa se valore > 0, decremento la risorsa e la uso. al termine, incremento di nuovo il valore se valore == 0, aspetto finché valore > 0 I semafori sono ottenuti con semget(2), controllati con semctl(2). Le operazioni sono fatte con semop(2).

Esempio $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ semdemo.c $ cc -Wall./semdemo.c $./a.out (prima shell) $./a.out (seconda shell) $ ipcs -s $ ipcrm -s semid (rimuove il semaforo)

XSI IPC: Shared Memory Metodo più veloce di IPC Consiste nell accedere ad una memoria condivisa a volte controllata con semafori ottenimento di un identificatore di memoria condivisa con shmget(2) collegamento del segmento condiviso allo spazio degli indirizzi di un processo con shmat(2) scollegamento con shmdt(2)

Esempio $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ shmdemo.c $ cc -Wall./shmdemo.c $./a.out ViBoccioTutti:)! $ ipcs

Esempio $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/memory-layout.c $ cc -Wall./memory-layout.c $./a.out

XSI IPC: Message Queues Liste linkate (?) di messaggi memorizzate dal kernel Creare e aprire una coda con msgget(2) Aggiungere un messaggio a fine coda con msgsnd(2) Controllo della coda con msgctl(2) Ricezione messaggi dalla coda msgrcv(2)

XSI IPC: Message Queues Il messaggio ha una struttura definita dall utente

Altre Code

Sockets

UNIX/LOCAL domain si crea un socket usando socket(2) ci si attacca al socket usando bind(2) bindare un nome in dominio UNIX, corrisponde a creare un file sul file system entrambe i processi devono conoscere e concordare il nome del socket i file servono per il rendezvous, non per il message delivery quando la connessione è stabilita il socket deve esser rimosso con unlink(2)

Esempio $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ udgramsend.c $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ udgramread.c $ cc -Wall./udgramsend.c -o send $ cc -Wall./udgramread.c -o read

Esempio 1$./read 2$ ls -l 2$./send socket 1$ (?)

Internet Domain utilizzano Internet! :) diversamente dai socket visti prima, i nomi di socket Internet non passano dal file system non c e bisogno di unlink dopo la chiusura indirizzo può essere un qualsiasi indirizzo di rete valido porte riservate a root: 1-1023 richiesta di una specifica porta con bind(2) determinare la porta usata con getsocketname()

Esempio $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ dgramsend.c $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ dgramread.c $ cc -Wall./dgramsend.c -o send $ cc -Wall./dgramread.c -o read

Esempio 1$./read 2$./send localhost #porta 1$ (?)

Stream Sockets connessioni asimmetriche: un processo richiede connessione, l altro processo accetta la richiesta un socket creato per ogni richiesta accettata socket sotto ascolto con listen(2) richieste in attesa accettate con accept(2) accept(2) blocca se nessuna connessione disponibile select(2) per controllare la presenza di connessioni in attesa

Esempio $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ streamread.c $ wget http://hpc.isti.cnr.it/~nardini/siselab/12/ streamwrite.c $ cc -Wall./streamread.c -o read $ cc -Wall./streamwrite.c -o write

Esempio 1$./read 2$./write localhost #porta 1$ (?)

Manipolare il socket I/O su socket è fatto su descrittori, come normale I/ O visto finora read(2) e write(2) possono esser usate. Alcuni usi avanzati hanno bisogno di funzioni adhoc: send(2), sendto(2), sendmsg(2) recv(2), recvfrom(2), recvmsg(2)

Manipolare il socket Per gestire le proprietà del socket: setsockopt(2)

Homework Esercizio 8: scrivere una chat bidirezionale. Il processo client e server si scambiano stringhe che vengono stampate a video E salvate su un file di testo (una stringa per riga).