CAPITOLO 27 SCAMBIO DI MESSAGGI
|
|
|
- Ugo Casagrande
- 10 anni fa
- Visualizzazioni
Transcript
1 CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali: devono essere sincronizzati per garantire la mutua esclusione, e hanno bisogno di scambiarsi informazioni per cooperare. Un modo per soddisfare entrambi è lo scambio di messaggi: tale tipologia di comunicazione è implementato per sistemi a singolo processore basati su l'interazione tra microkernel e ha il vantaggio di un implementazione naturale sui sistemi distribuiti e sui processi è multiprocessori con memoria condivisa (SMP). fondamentalmente Lo scambio di messaggi prevede che non ci siano risorse condivise (per questo viene affidato allo detta anche shared nothing, nessuna condivisione), inoltre non include meccanismi quali l uso scambio di dei lock o analoghi per ottenere la mutua esclusione poiché l uso dei soli messaggi permette, ai messaggi. processi che devono interagire tra loro, di garantirsi la mutua esclusione e di scambiare informazioni per la cooperazione. In questa tecnica si sfrutta un canale di comunicazione logico sul quale viaggia un messaggio destinato ad un indirizzo. PRIMITIVE DI SINCRONIZZAZIONE Due processi possono interagire fra di loro scambiandosi messaggi, cosa che fanno usando le due primitive send() receive() PRIMITIVE DI SINCRONIZZAZIONE send(destinazione,messaggio) receive(sorgente,messaggio) Un sistema di Inter Process Communication (IPC) fornisce almeno le due primitive send(messaggio) e receive(messaggio). La comunicazione avviene tramite queste due sole primitive. La specifica di queste due primitive può dunque essere: send(destinazione, messaggio) receive(sorgente, messaggio) CARATTERISTICHE PROGETTUALI DI SISTEMI A SCAMBIO DI MESSAGGI Sono ora presentate le caratteristiche di progettazione dei sistemi di messaggi per comunicazione interprocessore e sincronizzazione. Una send può essere bloccante o non bloccante, invece una receive può essere bloccante, non bloccante o con test di messaggio d arrivo. Rispetto all indirizzamento questo può essere diretto o indiretto. Il formato di un messaggio può essere a lunghezza fissa o variabile. Il tipo di gestione delle code dei messaggi può essere FIFO o a priorità. SINCRONIZZAZIONE 1
2 La slide elenca le combinazioni più comuni del send e receive. Send bloccante e receive bloccante Sia il mittente sia il ricevente sono bloccati fino al completamento dell operazione (rendez-vous). Tale combinazione permette una sincronizzazione stretta tra processi. A questa tipologia di scambio di messaggi appartiene anche la chiamata di procedura remota (RPC Remote Procedure Call) detta anche rendez-vous esteso Send non bloccante e receive bloccante Anche se il mittente può continuare, il ricevente deve aspettare l arrivo del messaggio. Questa combinazione permette di inviare vari messaggi a vari destinatari molto velocemente. Il processo che è in attesa di ricevere un messaggio per poter continuare rimane bloccato fino alla avvenuta ricezione del messaggio. Es.: server che fornisce un servizio o una risorsa ad altri processi. Send non bloccante e receive non bloccante Né il mittente né il destinatario deve aspettare In molti casi scegliere una send non bloccante è la più naturale opzione per la programmazione concorrente. Se la primitiva send è usata per chiamare un operazione di output, come la stampa, essa consente al processo di mandare la richiesta in forma di messaggio e continuare l esecuzione. Un pericolo potenziale della send non bloccante è che un errore potrebbe portare ad una situazione in cui un processo continua a generare messaggi; siccome non c è modo di bloccare il mittente, i messaggi possono consumare le risorse di sistema, in particolare il tempo di processore e lo spazio dei buffer, a danno degli altri processi e del sistema operativo. Inoltre, la send non bloccante lascia al programmatore il compito di controllare che un messaggio arrivi a destinazione: i processi devono mandare messaggi di risposta per confermare la ricezione di un messaggio. Per la primitiva receive, la versione bloccante sembra la scelta più naturale per molti casi di programmazione concorrente. In genere un processo che richiede un messaggio avrà bisogno, per procedere, delle informazioni in esso contenute; tuttavia, se un messaggio è perso, cosa che può accadere nei sistemi distribuiti, o se un processo fallisce prima di poter mandare il messaggio, il processo ricevete rimarrà bloccato per sempre. Il problema si può risolvere utilizzando una receive non bloccante; in questo secondo caso il pericolo è che ogni messaggio, inviato dopo che il processo ha già effettuato la receive corrispondente, andrà perso. Un altro approccio possibile è dare al processo la possibilità di controllare se c è un messaggio in arrivo prima di effettuare la receive; oppure specificare più di un mittente in una receive. Quest ultima possibilità è utile quando un processo aspetta messaggi proveniente da processi diversi, e se solo un messaggio è sufficiente per continuare l esecuzione. INDIRIZZAMENTO Per instaurare una comunicazione fra processi è necessario che fra i parametri delle specifiche send e receive vi siano il destinatario e il mittente dei messaggi. Ci sono due tipi di indirizzamenti: diretto e indiretto. 2
3 INDIRIZZAMENTO DIRETTO Nell indirizzamento diretto, ogni processo che intenda comunicare deve nominare esplicitamente il ricevente e il trasmittente della comunicazione. In questo schema le funzioni primitive send e receive si definiscono come segue: send(p, messaggio) consente di inviare un messaggio al processo P. receive(q,messaggio) consente di ricevere un messaggio dal processo Q. All interno di questo schema, un canale di comunicazione ha le seguenti caratteristiche: tra ogni coppia di processi che intendono comunicare si stabilisce automaticamente un canale ed i processi devono conoscere solo la reciproca identità; un canale è associato esattamente a due processi ed esiste esattamente un canale tra ciascuna coppia di processi. Questo schema ha una simmetria nell indirizzamento, vale a dire che per poter comunicare il trasmittente e il ricevente devono nominarsi a vicenda e ritorna utile per i processi concorrenti che cooperano. Una variante di questo schema si avvale della asimmetria dell indirizzamento. Soltanto il trasmittente nomina il ricevente, mentre il ricevente non deve nominare il trasmittente: ad esempio un processo server per la stampante deve accettare richieste di stampa da qualunque processo. Per tali applicazioni, un approccio più efficace è l uso dell indirizzamento implicito: il parametro sorgente della primitiva receive serve per rispondere al mittente del messaggio quando l operazione è compiuta. In questo schema le primitive receive e send si definiscono come segue: receive(ind, messaggio) variabile ind. send(ind,messaggio) che consente di ricevere un messaggio da qualsiasi processo il cui nome è specificato nella che consente di inviare un messaggio al processo il cui nome è memorizzato nella variabile ind INDIRIZZAMENTO INDIRETTO Con l indirizzamento indiretto, i messaggi s inviano a delle caselle (dette anche porte), che li ricevono. Una porta si può considerare in modo astratto come un oggetto nel quale i processi possono introdurre e prelevare messaggi ed è identificata in modo unico. In questo schema un processo può comunicare con altri processi tramite un certo numero di porte ma due processi possono comunicare solo se condividono una porta. In questo caso le primitive send e receive si definiscono nel modo seguente: send(a,messaggio) 3
4 consente di inviare un messaggio alla porta A; receive(a,messaggio) consente di ricevere un messaggio dalla porta A. Consideriamo ora alcuni problemi nell uso dell indirizzamento indiretto. Si supponga che i processi P1, P2 e P3 condividano la porta A. Il processo P1 invia un messaggio ad A, supponiamo anche che P2 e P3 eseguono una receive da A. Quale processo, fra P2 e P3 riceverà il messaggio? La soluzione dipende dallo schema che si sceglie: Si può fare in modo che un canale sia associato al massimo a due processi. Si può consentire a un solo processo alla volta di eseguire un operazione receive. Si può consentire al sistema di decidere arbitrariamente quale processo riceverà il messaggio (il messaggio sarà ricevuto da P2 o da P3, ma non da entrambi). Il sistema può comunicare l identità del ricevente e del trasmittente. RELAZIONI MITTENTE-RICEVENTE Lo scambio di messaggi consente di instaurare una comunicazione di tipo uno-a-uno, uno-a-molti, molti-a-uno, molti-amolti. Le relazioni uno-a-uno permettono connessioni private fra due processi. in questo modo s isolano le interazioni fra i due da possibili interferenze causate da errori degli altri processi. Questa tipologia di relazione instaura un canale di tipo simmetrico, spesso chiamato semplicemente canale o link. Le relazioni uno-a-molti permettono di avere un mittente e molti destinatari: è utile per applicazioni dove un messaggio o qualche informazione deve essere mandata ad un insieme di processi. Le relazioni molti-a-uno sono tipiche delle interazioni client/server, dove un processo fornisce un servizio per molti processi. In questo caso i processi client specificano il destinatario delle loro richieste e il processo server è pronto a ricevere messaggi da qualunque client. Nelle relazioni uno-a-molti e molti-a-uno la casella prende il nome di porta e il canale che si viene ad instaurare ha uno schema di tipo asimmetrico. In questo schema la porta è a tutti gli effetti una coda di messaggi solitamente gestita con politica FIFO. Nelle relazioni di tipo molti-a-molti i processi client inviano richieste non ad un particolare server, ma ad uno qualunque scelto tra un insieme di server equivalenti. Questo caso comporta problemi di natura realizzativa, infatti, il supporto a tempo di esecuzione del linguaggio deve garantire che un messaggio di richiesta sia inviato a tutti i processi server e deve assicurare che, non appena il messaggio è ricevuto da uno di essi, lo stesso non sia più disponibile per tutti gli altri server. ASSEGNAZIONE DELLE CASELLE L associazione dei processi alle caselle di posta può essere statica o dinamica. Spesso le porte sono associate staticamente ad un processo particolare, cioè la porta è creata e assegnata permanentemente al processo. Analogamente, una relazione uno-a-uno viene di solito definita staticamente e permanentemente. Quando ci sono molti mittenti, l associazione di un mittente ad una casella può avvenire dinamicamente, tramite l uso di primitive come connect e disconnect. 4
5 Una porta può appartenere al processo o al sistema. Se appartiene a un processo, cioè fa parte del suo spazio d indirizzi, occorre distinguere ulteriormente tra il proprietario, che può soltanto ricevere messaggi tramite la porta, e l utente, che può solo inviare messaggi alla porta. Poiché ogni porta ha un unico proprietario, non può sorgere confusione su chi debba ricevere un messaggio inviato a una determinata porta. Quando un processo che possiede una porta termina, questa scompare, e qualsiasi processo che invii un messaggio alla porta di un processo già terminato deve essere informato della sua scomparsa. Il processo che crea una nuova porta è il proprietario predefinito della porta, inizialmente è l unico processo che può ricevere messaggi attraverso questa porta. Tuttavia, il diritto di proprietà e il diritto di ricezione si possono passare ad altri processi per mezzo di idonee chiamate al sistema. Naturalmente questa disposizione potrebbe dar luogo alla creazione di più riceventi per ciascuna porta. D altra parte, una porta posseduta dal sistema operativo è indipendente e non è legata ad alcun processo in particolare. Il sistema operativo offre un meccanismo che permette a un processo le seguenti operazioni: creare una nuova porta; inviare e ricevere messaggi tramite la porta; rimuovere una porta. FORMATO DEL MESSAGGIO I messaggi Il formato dei messaggi dipende dagli obiettivi del sistema di scambio di messaggi e dall uso di un possono essere a singolo computer o di un sistema distribuito. Per alcuni sistemi operativi i progettisti hanno scelto messaggi corti di lunghezza fissata, in modo da minimizzare il sovraccarico e lo spazio richiesto, inoltre lunghezza fissa o a lunghezza variabile Nel caso più la realizzazione a livello di sistema è semplice anche se i limiti imposti rendono più difficile il compito della programmazione. Se è necessario passare una gran quantità di dati, si possono mettere i dati in un file e indicare semplicemente il nome del file nel messaggio. generale di L uso di messaggi di dimensione variabile costituisce un approccio più flessibile e anche se la scelta di messaggi a messaggi a dimensione variabili richiede una realizzazione più complessa a livello del sistema, il lavoro lunghezza di programmazione risulta semplificato. variabile il formato di un messaggio è il seguente: / Il messaggio p è formato da due parti: un intestazione, che contiene informazioni riguardo al messaggio un corpo, che contiene il messaggio vero e proprio. L intestazione può contenere un identificatore del mittente e del destinatario del messaggio un campo per la lunghezza un campo che indica il tipo di messaggio eventualmente ci possono essere delle informazioni di controllo, come un puntatore per creare una lista di messaggi, un numero sequenziale per tenere traccia dei messaggi mandati dal mittente al destinatario, e un campo per la priorità. ORGANIZZAZIONE DELLE CODE FIFO Sia che la comunicazione sia diretta che indiretta, i messaggi scambiati tra processi comunicanti risiedono in code temporanee. Tipicamente viene utilizzata come politica di gestione delle code la CON PRIORITA' FIFO, in alternativa si può permettere la definizione di livelli di priorità che consentano al ricevente Anche con di decidere quale dei messaggi in coda processare per primo. Fondamentalmente esistono tre modi esame da parte per realizzare queste code. del ricevente che può Capacità zero decidere quale La coda ha lunghezza massima 0, quindi il canale non può avere messaggi in attesa al suo gestire prima interno. In questo caso il trasmittente deve fermarsi finché il ricevente prende in consegna il messaggio. Capacità limitata La coda ha lunghezza finita n, quindi al suo interno possono risiedere al massimo n messaggi. L operazione send è virtualmente bloccante. Se la coda non è piena, quando s invia un nuovo messaggio, quest ultimo è posto in fondo alla coda, il messaggio viene copiato oppure si tiene un puntatore a quel messaggio. Il trasmittente può proseguire la propria esecuzione senza essere 5
6 costretto ad attendere. Ma il canale ha comunque una capacità limitata; se è pieno, il trasmittente deve fermarsi nell attesa che ci sia spazio disponibile nella coda. Capacità illimitata La coda ha una lunghezza potenzialmente infinita, quindi al suo interno può attendere un numero indefinito di messaggi. Il trasmittente non si ferma mai. L operazione send è non bloccante. Il caso con capacità zero è talvolta chiamato sistema a scambio di messaggi senza memorizzazione transitoria (no buffering); gli altri due prendono il nome di sistema a scambio di messaggi con memorizzazione transitoria automatica (automatic buffering). MUTUA ESCLUSIONE Con l'uso di messaggi program mutuaesclusione; const n= ; (*numero di processi*); procedure P(i; integer) ; var msg: messaggio; repeat receive (mutex, msg); <sezione critica>; send (mutex, msg); <resto del programma> forever end; (*programma principale*) crea_casella (mutex); send (mutex, null); par P(1);. P(n); parend end. L algoritmo riportato presenta uno dei modi di usare lo scambio di messaggi per garantire la mutua esclusione. S ipotizza l uso di una receive bloccante e una send non bloccante. Un gruppo di processi concorrenti condivide una casella della posta, mutex, che è usata normalmente dai processi per mandare e ricevere; la casella è inizializzata con un singolo messaggio vuoto. Un processo che vuole entrare nella sezione critica prima cerca di ricevere un messaggio; se la casella è vuota, il processo è bloccato. Quando un processo ha ricevuto il messaggio, entra nella sezione critica e al termine rimanda il messaggio alla casella, così il messaggio rappresenta un permesso di accesso (token) che è passato da un processo all altro. La soluzione precedente ipotizza che, se più di un processo esegue la receive, allora: Se c è un messaggio, questo è consegnato ad un solo processo e gli altri sono bloccati. Se la coda dei messaggi è vuota, tutti i processi sono bloccati, e quando arriva un messaggio, un solo processo è attivato e riceve il messaggio. Questa ipotesi vale praticamente per tutti i sistemi con scambio di messaggi. PRODUTTORE/CONSUMATORE con buffer limitato ed uso di messaggi const capacita = ; {capacità del buffer} null = ; {messaggio vuoto} var i:integer; procedure produttore; var pmsg: messaggio; while true do receive (cas_produci, pmsg); pmsg:=produci; send (cas_consuma, pmsg); end end; procedure consumatore; var cmsg: messaggio; while true do Un altro esempio dell uso dello scambio di messaggi è una soluzione del problema del produttore/consumatore con buffer limitato: utilizzando le capacità di mutua esclusione dello scambio di messaggi. L algoritmo sfrutta lo scambio di messaggi per passare dati insieme con segnali. Si usano due caselle: quando il produttore genera dei dati, li manda alla casella cas_consuma tramite dei messaggi, e finché c è un messaggio in quella casella, il consumatore può consumare. Quindi cas_consuma serve da buffer, e i dati del buffer sono organizzati come coda di messaggi; la dimensione del buffer è data dalla variabile globale capacita. Inizialmente la casella cas_produci contiene un numero di messaggi vuoti pari alla capacità del buffer; il numero diminuisce per ogni dato prodotto e aumenta per ogni dato consumato. Questo approccio è piuttosto flessibile: ci possono essere molti produttori e consumatori, a patto che tutti abbiano accesso ad entrambe le caselle. Il sistema può anche essere distribuito, con tutti i produttori e la casella cas_produci in un sito, e tutti i consumatori e la casella cas_consuma in un altro. 6
7 end; receive(cas_consuma, cmsg); consuma(cmsg); send(cas_produci, null) end {processo genitore} crea_casella(cas_produci); crea_casella(cas_consuma); for i = 1 to capacita do send(cas_produci,null); par produttore; consumatore; parend end 7
Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi
Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione
Pronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
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à
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
Esempio produttori consumatori. Primitive asincrone
Primitive asincrone Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione. Il supporto a tempo di esecuzione deve fornire un meccanismo di accodamento dei
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected]
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected] POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
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
Sommario. G. Piscitelli
Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1
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
Reti di Telecomunicazione Lezione 8
Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica [email protected] Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 5 Giovedì 19-03-2015 1 Intensità del traffico e perdita dei pacchetti La componente
Gestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
Comunicazione tra Processi
Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo
A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
MODELLO AD AMBIENTE GLOBALE
MODELLI DI INTERAZIONE TRA PROCESSI Modello ad ambiente globale ( global environment ) Modello a scambio di messaggi ( message passing ) MODELLO AD AMBIENTE GLOBALE Il sistema è visto come un insieme di
Mutua esclusione distribuita
Sincronizzazione del clock Il clock di CPU distribuite non é sincronizzato Clock fisico (difficile) / Clock logico (semplice) In molti casi basta sincronizzare il clock logico Sincronizzazione del clock
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI
UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all
Il problema del produttore e del consumatore. Cooperazione tra processi
Il problema del produttore e del consumatore Cooperazione tra processi Risorsa consumabile I processi disgiunti possono interferire tra loro a causa dell'uso di risorse permanenti, ma ognuno di essi ignora
Approccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
Database. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Excel. A cura di Luigi Labonia. e-mail: [email protected]
Excel A cura di Luigi Labonia e-mail: [email protected] Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
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
SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007
2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?
Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.
Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia
ARCHITETTURA DI RETE FOLEGNANI ANDREA
ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce
Organizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE
1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma
TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP
Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo
Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al
Strutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
La Gestione delle risorse Renato Agati
Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File
MODELLISTICA DI IMPIANTI E SISTEMI 2
MODELLISTICA DI IMPIANTI E SISTEMI 2 Indice 1 Dalla traccia al modello 2 1.1 BAS................................................ 4 I Traccia Si consideri il problema della gestione efficiente dei servizi
File system II. Sistemi Operativi Lez. 20
File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco
NAVIGAORA HOTSPOT. Manuale utente per la configurazione
NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento
Il Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
FPf per Windows 3.1. Guida all uso
FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Modello di Controllo dell Accesso basato sui ruoli (RBAC)
Modello di Controllo dell Accesso basato sui ruoli (RBAC) POLITICHE RBAC Sistemi di tipo Role Based Access Control (RBAC) assegnano i privilegi non agli utenti, ma alla funzione che questi possono svolgere
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
Protezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
CREAZIONE DI UN AZIENDA
CREAZIONE DI UN AZIENDA La creazione di un azienda in Businesspass avviene tramite la funzione Aziende Apertura azienda ; dalla medesima sarà possibile richiamare le aziende precedentemente create per
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.
(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)
(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste
SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.
SCENARIO Personas SCENARIO È una delle tecniche che aiuta il designer a far emergere le esigente dell utente e il contesto d uso. Gli scenari hanno un ambientazione, attori (personas) con degli obiettivi,
Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.
E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
Gestione del processore e dei processi
Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore
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
Monitor. Introduzione. Struttura di un TDA Monitor
Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione
CAPITOLO 24 I MONITOR
EFFETTO DELLE PRIMITIVE - signal E wait SUI SEMAFORI CAPITOLO 24 I MONITOR I semafori sono un mezzo efficace per la gestione della mutua esclusione in ambienti con processi concorrenti, ma spesso è difficile
La Fatturazione Elettronica
Informazioni Generali : La trasmissione di una fattura elettronica in formato Xml alla PA, obbligatoria a partire dal prossimo giugno (a scaglioni) avviene attraverso il Sistema di Interscambio (SdI),
Introduzione ai Metodi Formali
Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di
Scenario di Progettazione
Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Laboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: V. Lonati Progetto Compagnie aeree valido per la prova in itinere di gennaio 2013 1 Il problema Numerose compagnie aeree si spartiscono il traffico aereo
Informatica per la comunicazione" - lezione 13 -
Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la
Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento
I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere
2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
Sistemi Operativi. 5 Gestione della memoria
Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria
Creare una nuova spedizione personalizzata.
Gestione spedizioni La piattaforma ecommerce compry.it offre una gestione estremamente potente dei costi di spedizione da applicare al cliente che effettua acquisti. Il sistema, oltre al classico calcolo
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
Capitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
MANUALE UTENTE. TeamPortal Liste Distribuzioni 20120100
MANUALE UTENTE 20120100 INDICE Introduzione... 3 1 - Messaggi... 4 1.1 Creazione / Modifca Email... 6 1.2 Creazione / Modifca Sms... 8 2 -Liste... 10 3 Gruppi Liste... 15 4 Tipi Messaggi... 17 5 Amministrazione...
La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo
La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due
Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL
STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione
Il costrutto monitor [Hoare 74]
Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry, o public) ad una struttura dati comune a più processi, tale che: Le operazioni
INFORMATICA. Il Sistema Operativo. di Roberta Molinari
INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
EXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
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,
Scenari esemplificativi di utilizzo delle Mailing List
Scenari esemplificativi di utilizzo delle Mailing List La Mailing List è un particolare tipo di account che permette di definire al proprio interno un insieme di destinatari ai quali sarà possibile spedire
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Università Politecnica delle Marche. Progetto Didattico
Università Politecnica delle Marche Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e dell Automazione Sede di Ancona Anno Accademico 2011-2012 Corso di Tecnologie WEB Docente prof. Alessandro
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Progettazione di Basi di Dati
Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello
Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi
Introduzione alla Programmazione Orientata agli Oggetti Classi, Oggetti e Messaggi Agenda 1. La metodologia di progettazione ad oggetti Concetti fondamentali: oggetti, classi, messaggi 2. I concetti fondamentali
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
Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.
www.playnet.it agg. Documento 1/03/2007 REGOLE DEL CLIENT Le regole del client sono un sistema di smistamento dei messaggi (arrivati) fra le varie cartelle di posta presenti sul server. Possono essere
