Esercitazione [8] Pipe e FIFO
|
|
|
- Raffaello Landi
- 10 anni fa
- Visualizzazioni
Transcript
1 Esercitazione [8] Pipe e FIFO Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica e Automatica A.A
2 Sommario Soluzione esercizio su EchoServer multi-thread Obiettivi dell esercitazione Pipe Esercizio: Logger Named pipe (FIFO) Esercizio: EchoProcess su FIFO
3 Soluzione Esercizio su EchoServer multi-thread Esercizio: completare l EchoServer in modalità multi-thread Soluzione o La struct handler_args_t richiede: Un campo int per il descrittore della socket Un campo struct sockaddr_in* per i dati di rete del client o In connection_handler(), va fatta la free della struct handler_args_t Era stata allocata nel main thread tramite malloc() Va prima fatta la free della struttura dati con le info sul client, allocata anch essa nel main thread tramite calloc() o Creazione thread per gestione connessione Assegnare valori alla struct handler_args_t pthread_create() con gestione errori pthread_detach() Preparare la memoria per le info sul client per la connessione successiva
4 Obiettivi Esercitazione [8] Implementare comunicazione inter-processo tramite pipe o Usando pipe semplici tra processi «relazionati» o Usando FIFO tra processi non «relazionati»
5 Riepilogo sulle pipe Meccanismo di comunicazione inter-processo Canale di comunicazione unidirezionale int pipe(int fd[2]) o fd[0] descrittore di lettura o fd[1] descrittore di scrittura o ritorna 0 in caso di successo, -1 altrimenti Chiamate a read() su pipe ritornano 0 quando tutti i descrittori di scrittura sono stati chiusi Chiamate a write() su pipe causano SIGPIPE («broken pipe») quando tutti i descrittori di lettura sono stati chiusi
6 Esercizio: Logger Un logger è un componente software che scrive su un file tutta una serie di informazioni rilevanti per l applicazione o Usato in genere per il monitoring delle applicazioni server o Fornisce dati su eventuali problemi occorsi a runtime Scenario o EchoServer multi-thread o Il server istanzia un processo figlio (il Logger) Il Logger riceve dati via pipe dal padre Li scrive sul log file (aperto in append mode) Il padre reindirizza il proprio canale stderr su questa pipe Risultato: ogni messaggio scritto dal padre su stderr viene «trasferito» via pipe al Logger e quindi scritto sul log file
7 Esercizio: Logger Come reindirizzare un canale? Funzione dup: int dup(int fd) o Effettua una copia del descrittore fd usando il primo descrittore inutilizzato (quello con valore minimo in tabella!) o Ritorna il nuovo descrittore in caso di successo, -1 altrimenti Funzione dup2: int dup2(int oldfd, int newfd) o Come dup() ma, invece di usare il descrittore inutilizzato avente valore minimo, usa newfd o Se newfd esiste ed è aperto, viene prima chiuso Un canale fd1 è reindirizzato su fd2 invocando dup2(fd2, fd1) o fd1 diventa un alias di fd2 Read/write sul «vecchio» descriptor fd1 sono reindirizzate su fd2
8 Esercizio: Logger Processi in gioco Processo Logger (figlio di EchoServer) scritture in append comunicazione via pipe Server side Processo EchoServer Multi-thread comunicazione via socket File di log Processo Processo Processo Client Client Client Esercizio: completare il codice lato server (EchoServer e Logger)
9 Riepilogo sulle named pipe (FIFO) Simili alle pipe, consentono tuttavia comunicazione tra processi non «relazionati» (nessun legame padre-figlio via fork) Una FIFO è un file speciale per comunicazione unidirezionale Creazione: int mkfifo(const char *path, mode_t mode) o path: nome della FIFO (non in uso da altri file) o mode: permessi da associare alla FIFO (es. 0666) o Ritorna 0 in caso di successo, -1 altrimenti Apertura: int open(const char *path, int oflag) o Nome FIFO e modalità di apertura (O_RDONLY, O_WRONLY, etc) o Ritorna il descrittore della FIFO, -1 altrimenti Chiusura: int close(int fd) Rimozione: int unlink(const char *path)
10 Esercizio: EchoProcess su FIFO Il server prepara (crea) due FIFO o fifo_echo per inviare messaggi al client o fifo_client per ricevere messaggi dal client La comunicazione client-server avviene tramite queste due FIFO Esercizio: completare il codice del client e del server fifo_client EchoProcess Client fifo_echo
Esercitazione [6] Client/Server con Socket
Esercitazione [6] Client/Server con Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di
Esercitazione [5] Input/Output su Socket
Esercitazione [5] Input/Output su Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo
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
rsystem Maximiliano Marchesi [email protected]
Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 [email protected] Sommario Introduzione..................................................................................
Esercitazione [7] Client/Server con Socket
Esercitazione [7] Client/Server con Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Federico Lombardi - [email protected] Sistemi di Calcolo - Secondo
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
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:
Files, File I/O, File Sharing. Franco Maria Nardini
Files, File I/O, File Sharing Franco Maria Nardini UNIX file types UNIX non richiede una struttura interna del file. Dal punto di vista del sistema operativo c e un solo tipo di file. Struttura e interpretazione
I puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
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,
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
Telematica II 17. Esercitazione/Laboratorio 6
Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che
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
Telematica II 12. Esercitazione/Laboratorio 4
Server UDP in JAVA Telematica II 12. Esercitazione/Laboratorio 4 DayTime daemon UDP Port 13 obiettivo realizzazione di un servizio per l invio della data/orario del server al client utilizzo di un datagram
Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese
Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione
Sistemi Operativi: Programmazione di Sistema
Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2011/2012 Prof. Luca Ferrari e-mail: [email protected] telefono: 055 4237454
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
Esercizio 2. Client e server comunicano attraverso socket TCP
Esercizio 1 Scrivere una applicazione client/server in cui: Il client, in un ciclo infinito: Legge una stringa da standard input Invia al processo server la stringa. Il server visualizza: L'IP da cui si
IPC System V. Code di messaggi
IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile
CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica-Informatica-Telecomunicazioni a.a. 2001-2002 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 Trasferimento
Esercitazione [11] Riepilogo sui Semafori. Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo
Esercitazione [11] Riepilogo sui Semafori Leonardo Aniello - [email protected] Daniele ConoD'Elia - [email protected] Federico Lombardi - [email protected] Sistemi di Calcolo - Secondo
Allocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria
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 -
Socket TCP. seconda parte
Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)
Sistemi Operativi (modulo di Informatica II)
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità
I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX
A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili
Altri tipi di connessione
Altri tipi di connessione Francesca Martelli [email protected] Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo
ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX
ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX Introduzione In questa dispensa sono stati raccolti alcuni esercizi di programmazione C in ambiente Unix, tratti dagli esami di Sistemi Operativi svoltisi
I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D
I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D C O N F I G U R A R E L A M A I L 1) Aperto il programma, cliccare su strumenti > impostazioni account. 2) Si
Socket & RMI Ingegneria del Software - San Pietro
Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 6 Alessandro Dal Palù email: [email protected] web: www.unipr.it/~dalpalu Interazione tra Processi I processi concorrenti possono interagire
ESERCITAZIONE PREPARAZIONE ALL ESAME INGEGNERIA DEL SOFTWARE
ESERCITAZIONE PREPARAZIONE ALL ESAME INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 [email protected] DESIGN
Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-
Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -
Guida di Opzioni Fiery 1.3 (client)
2015 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto previsto in Avvisi legali. 27 gennaio 2015 Indice 3 Indice...5
Nuovo Order Manager per il software NobelProcera
Nuovo Order Manager per il software NobelProcera Guida rapida versione 1 Il nuovo Order Manager facilita i processi e le procedure di invio degli ordini mediante il sistema NobelProcera, che comprendono
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
1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client
RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di un
SISTEMI OPERATIVI DISTRIBUITI
SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching
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 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
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
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
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected]
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected] Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
IBM Lotus Notes 8.5.2 Guida per utenti
IBM Lotus Notes 8.5.2 Guida per utenti Andreas Ponte Belsoft AG Indice Generale Guida per utenti IBM Lotus Notes 8.5.2...1 Utilizzo di Lotus Notes...3 Invio mail...3 Firma...4 Gestione cartelle e regole...5
Sistemi Mobili e Wireless Android - Servizi
Sistemi Mobili e Wireless Android - Servizi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat [email protected] Servizi Un servizio è un componente
Modulo Antivirus per Petra 3.3. Guida Utente
Modulo Antivirus per Petra 3.3 Guida Utente Modulo Antivirus per Petra 3.3: Guida Utente Copyright 1996, 2005 Link s.r.l. (http://www.link.it) Questo documento contiene informazioni di proprietà riservata,
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 5 Alessandro Dal Palù email: [email protected] web: www.unipr.it/~dalpalu Processi in Unix Approfondimenti: http://gapil.gnulinux.it/download/
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
01/05/2013 Istruzioni per l installazione
01/05/2013 Istruzioni per l installazione Il documento descrive le procedure rivolte a utenti esperti per l installazione del codice di ABCD SW su una macchina fisica che abbia funzioni di Server. Progetto
AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema
AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel
MANUALE UTENTE Fiscali Free
MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato
Z3 B1 Message Addon Invio Massivo Documenti via Email e Fax per SAP Business One
Z3 B1 Message Addon Invio Massivo Documenti via Email e Fax per SAP Business One Manuale Z3 B1 Message Versione 2.60 Pagina 1 di 19 Sommario Introduzione... 3 Installazione... 3 Attivazione... 3 Configurazione...
Drivers. Introduzione Tipologie Struttura Interazione con il kernel
Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità
CAP.8: Il file system
Struttura interna del sistema operativo Linux CAP.8: Il file system Primitive per la gestione dei file 28/10/2013 File System Il gestore del file system è quel componente del Sistema Operativo che realizza
Inizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
UML - Unified Modeling Language
UML E CASI D USO UML - Unified Modeling Language Linguaggio stardardizzato per identificare e modellizzare le specifiche di un S.I. Coerente con il paradigma della programmazione ad oggetti Definito a
Sistemi operativi basati sul web
Sistemi operativi basati sul web Anno Accademico 2009-2010 Relatore: Ch.mo prof. Porfirio Tramontana Candidato: Mirolla Salvatore Matricola:576/260 Introduzione ai sistemi operativi basati sul Web A differenza
Corso di Laurea in Informatica, A.A. 2014 2015
ESERCITAZIONE DIAGRAMMI UML INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 [email protected] DIAGRAMMI DEI CASI D
PIANO DI LAVORO A.S. 2015/16
Istituto Tecnico Industriale Leonardo Da Vinci con sez. Commerciale annessa Borgomanero (NO) PIANO DI LAVORO A.S. 2015/16 Materia: Tecnologie e progettazione di sistemi informatici e di telecomunicazioni
Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)
Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -
INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.
Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 Dynamic Host Configuration Protocol [email protected] Prima di iniziare... Gli indirizzi IP privati possono essere
Corso basi di dati Installazione e gestione di PWS
Corso basi di dati Installazione e gestione di PWS Gianluca Di Tomassi Email: [email protected] Università di Roma Tre Cosa è PWS? Il Personal Web Server altro non è che una versione ridotta del
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo
Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client
dall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
IPC Inter Process Communication
Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni
La sincronizzazione è legata alla implementazione delle pipe: int pipe(int fd[2]);
int pipe(int fd[2]); Le pipe sono canali di comunicazione unidirezionali che costituiscono un primo strumento di comunicazione (con diverse limitazioni), basato sullo scambio di messaggi, tra processi
Lezione 1 Introduzione
Lezione 1 Introduzione Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano I Servizi Web Un Servizio Web è un implementazione software
Il Web Server e il protocollo HTTP
Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,
GUIDA AL PRONTUARIO MOBILE
GUIDA AL PRONTUARIO MOBILE 1 SOMMARIO Installazione...3 Configurazione...3 Utilizzo...3 Note...10 INDICE DELLE FIGURE Figura 1: schermata di presentazione...4 Figura 2: schermata di login...4 Figura 3:
