* Costrutto linguistico che incapsula la sincronizzazione di mutua esclusione all interno della definizione della risorsa (Brinch Hansen, Hoare)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "* Costrutto linguistico che incapsula la sincronizzazione di mutua esclusione all interno della definizione della risorsa (Brinch Hansen, Hoare)"

Transcript

1 1

2 * Costrutto linguistico che incapsula la sincronizzazione di mutua esclusione all interno della definizione della risorsa (Brinch Hansen, Hoare) * Associa ad una struttura dati un insieme di procedure * Il compilatore verifica che: - nessun altra operazione sia consentita - un solo processo alla volta sia attivo entro il monitor * Esempio di dichiarazione e di chiamata di monitor (Brinch Hansen): type Esempio=monitor;... var...; (* variabili locali *) var N1:Esempio; Procedure entry Nome proc1(var...); (* chiamata di una procedura del begin... end; monitor *) procedure entry Nome_proc2(var...); N1.Nome_proc1(...); begin... end; procedure Nome_proc(var...); begin... end; begin (* inizializzazione variabili locali *) end; 2

3 * Le variabili locali descrivono lo stato della struttura dati * Nome_proc1... Nome_procN sono le uniche operazioni che possono accedere alla struttura dati * Le strutture dati comuni alle procedure sono permanenti (tra successive esecuzioni delle procedure del monitor) * Oltre alle procedure entry possono essere definite nel monitor altre procedure utilizzabili dalle procedure entry * Fasi di controllo dell uso di una risorsa non condivisibile tra processi concorrenti con monitor: - controllo che un solo processo alla volta acceda alle strutture dati comuni: solo una procedura del monitor e attiva simultaneamente - controllo della sincronizzazione tra i processi mediante l uso di una condizione logica 3

4 * Variabili condition (Hoare): - controllo della sincronizzazione: il processo puo usare una risorsa se una condizione logica e vera, altrimenti e sospeso - usa un nuovo tipo di variabili, var x, y: condition; - operazioni su una variabile condition: wait e signal. * processo in attesa sulla variabile x: x.wait. Risveglio di un processo sospeso su x: x.signal * x.wait sospende il processo che la esegue finche un altro processo non esegue x.signal * Regole di simcronizzazione: cosa succede dopo una signal su una variabile condizione su cui sono sospesi diversi processi? Quale processo avanza? - proposta di Hoare: il processo appena svegliato va in esecuzione - proposta di Brinch Hansen: il processo che chiama la signal deve uscire subito dal monitor (si puo fare semplicemente usando signal come ultima istruzione del monitor). L avanzamento e deciso dallo scheduler. 4

5 * esempio: produttore/ consumatore in Concurrent Pascal con i monitor type buffer_circolare=monitor; var buffer:array[0..n-1] of messaggio; testa, coda: 0..N-1; cont:0..n; non_pieno, non_vuoto: condition; procedure entry enter(x:messaggio); begin if cont=n then non_pieno.wait; buffer[coda]:=x; coda:=(coda+1) mod N; cont:=cont+1; non_vuoto.signal; end; procedure entry remove(var x:messaggio); begin if cont=0 then non_vuoto.wait; c:=buffer[testa]; testa:=(testa+1) mod N; cont:=cont-1; non_pieno.signal; end; begin cont:=0; testa:=0; coda:=0; end; end; var dati: buffer_circolare; procedure Produttore; procedure Consumatore; var a:messaggio; var b:messaggio; begin begin while true do while true do begin begin produce(a); dati.enter(a); dati.remove(b); consuma(b); end; end; end; end; 5

6 * esempio: produttore/ consumatore in ADA con i monitor monitor produttore_consumatore is B:array(0..N-1) of Integer; In_ptr; Out_ptr: integer:=0; Count:integer:=0; Not_full, Not_empty: condition; Procedure Enter(I: in integer) is Begin If Count=N then wait(not_full); endif; B(In_ptr):=I; In_ptr:=(In_ptr+1) mod N; Signal(Not_empty); end Enter procedure Remove(I: out Integer) is begin if Count=0 then wait(not_empty); endif; I:=B(Out_ptr); Out_ptr:=(Out_ptr+1) mod N; Signal(Not_full); end Remove; end produttore_consumatore; task body Produttore is task body Consumatore is I:Integer; I:Integer; begin begin loop loop Produce(I); Remove(I); Enter(I); Consume(I); end loop; end loop; end Produttore; end Consumatore; 6

7 * Emulazione di semafori con i monitor in ADA monitor Emulazione_Semafori is S:Integer:=S0; Not_zero: condition; Procedure Sem_Down is Begin If S=0 then wait(not_zero); end if; S:=S-1; end Sem_Down; Procedure Sem_Up is Begin S:=S+1; Signal(Not_zero); end Sem_Up; end Emulazione_Semafori * Emulazione di monitor con i semafori: molto piu difficile. E necessario: - un semaforo S per la mutua esclusione delle procedure del monitor - un semaforo C_Semaphore per ogni variabile condizione wait(c) C_count:=C_count+1; signal(c) if(c_count>0) then Up(S); Up(C_Semaphore); Down(C_Semaphore); end if; Down(S); Up(S); C_count:=C_count+1; * Problemi con i monitor: - hanno bisogno di un linguaggio che li metta a disposizione - inoltre, i monitor sono stati progettati per sistemi con memoria comune; non funzionano in ambiente distribuito Modelli a scambio di messaggi 7

8 * Due processi comunicano attraverso un canale (astrazione logica) * Sono necessari degli strumenti linguistici per specificare la sorgente e la destinazione dei messaggi * Comunicazione simmetrica: i due processi si specificano a vicenda. Esempio: comunicazione tipo pipeline P1 P2 Pn-1 Pn * Comunicazione asimmetrica: solo il mittente specifica il destinatario. Esempio: comunicazione tipo cliente-servitore * Schema Client-Server: - Processo come gestore di una risorsa - Il cliente invia una richiesta di servizio al server - Il server soddisfa le varie richieste una alla volta * Costrutti linguistici: Send, Receive 8

9 * Tipi di Send: * Send asincrona: il processo continua l esecuzione dopo la Send (Send non e un punto di sincronizzazione) - puo essere richiesto uno scambio di messaggi di sincronizzazione - e necessaria la bufferizzazione dei messaggi - se il buffer e pieno: - il mittente si sospende - la Send solleva una eccezione al mittente * Send sincrona: il processo si blocca in attesa che il messaggio sia stato ricevuto (Send e un punto di sincronizzazione) - non e necessaria la bufferizzazione - scrittura e verifica dei programmi facilitata * Send tipo chiamata di procedura remota - il cliente e strutturato mediante una sequenza Send/Receive - Send sincrona: la sincronizzazione con il ricevente continua finche non viene inviata la risposta - Send: punto di sincronizzazione 9

10 * Tipi di Receive: * Receive di tipo bloccante: il ricevente si sospende finche non viene inviato un messaggio * Receive di tipo non bloccante: verifica lo stato del canale e restituisce un messaggio o una eccezione di canale vuoto -svantaggio: bisogna fare uso di attesa attiva * Esempi di primitive asincrone: send(processo_ricevente, messaggio); /* inserisce messaggio nella coda di ingresso del processo ricevente ed esce */ receive(processo_mittente, messaggio); /* analizza la coda di ingresso del processo che la esegue: se vuota si blocca, altrimenti estrae el primo messaggio */ 10

11 * Esempio di utilizzo delle primitive: Produttore/Consumatore con N messaggi Produttore { do{ Produce(&messaggio); receive(consumatore, &m); /* aspetta l arrivo di un messaggio vuoto */ send(consumatore, messaggio); }while(true); } Consumatore { for(i=0; i<n; i++) send(produttore, m); /* spedisce N messaggi vuoti */ do{ receive(produttore, &messaggio); send(produttore, m); /* invia un messaggio vuoto */ consuma(messaggio); }while(true); } * Esempio di algoritmo per il problema del produttore/consumatore con un buffer server con comunicazioni asincrone Produttore 1 dati dati Consumatore 1 Produttore N dati Buffer Server pronto dati Consumatore M 11

12 Process Buffer_Server { do{ receive(mittente, messaggio); if (il messaggio e un segnale di pronto) { if (coda dati vuota) aggiungi mittente nella coda dei consumatori pronti; else preleva un messaggio dalla coda dei dati pronti per essere per essere inviati; send(mittente,messaggio); } else /* il messaggio e un dato */ { if(coda di consumatori vuota) inserisci i dati nella coda dei dati pronti per essere inviati; else { preleva un consumatore pronto dalla coda dei consumatori pronti; send(consumatore, messaggio); } }while(true); Process cosumatore_j { do { send(buffer_server, pronto ); receive(mittente, &messaggio); consuma(messaggio); }while(true); } Process produttore_i { do{ produci(&dati); send(buffer_server,dati); }while(true); } 12

13 * Variante dello scambio di messaggi: - basato su una nuova struttura dati: Mailbox - coda di messaggi usata da piu mittenti e piu destinatari - una mailbox piena sospende i processi mittenti - ogni destinatario e caratterizzato da un numero di porta * Variante dello scambio di messaggi: - basato su una comunicazione pipeline - essenzialmente una mailbox con un mittente e un destinatario 13

14 1) Concurrent Pascal (Brinch Hansen 77) * Formato da tre tipi di moduli ( o tipi di sistema) - Processo (struttura dati privata piu programma sequenziale) - Classe (tipi di dati astratti cui puo accedere un solo processo) - Monitor * Ogni tipo di sistema e allocato staticamente in fase di caricamento (non c e allocazione dinamica di memoria) * I tipi di sistema sono globali, ma la visibilita e controllata dai diritti d accesso 2) Modula (Wirth 77) * Applicazioni in tempo reale * Meccanismo di base per l incapsulamento e la protezione delle informazioni: Module (unita di programma al cui interno possono essere definiti costanti, tipi, variabili, procedure) * Visibilita : tramite una define_list (oggetti locali -> visibili all esterno) tramite una use_list (oggetti esterni -> visibili all interno) * I processi non possono essere creati dinamicamente * Interface module: corrisponde al monitor 14

15 3) Modula-2 (Wirth 82) * Fornisce il meccanismo delle coroutines 4) Mesa (Xeroc 79) * Programmazione di sistemi * Moduli di programma e moduli di definizione (interfacce) * Liste di import/export (visibilita ed incapsulamento di informazioni) * Consente di definire procedure come tipi di dati * Aritmetica dei puntatori * Gestione di eventi * Gestione di coroutines ( port ) * Creazione dinamica di procesi ( fork ) * Monitor, con broadcast per svegliare tutti i processi in attesa e risveglio automatico dopo un time-out 15

16 5) Pascal-plus (Welsh 79) * Proces * Monitor * Envelope (corrisponde alla classe del Concurrent Pascal o al module di Modula) * Regole di visibilia : un identificatore puo essere esportato se preceduto da * * Esempio di envelope: envelope Nome(..vars..);... (* variabili locali e procedure *) begin I; (* inizializzazione *) ***; (* istruzione di separazione *) S; (* rilascio della risorsa gestita da envelope *) 16

17 * Programmazione distribuita: Elaborazione congiunta e coordinata eseguita da piu processi fisicamente distribuiti che si scambiano messaggi * In un sistema fisicamente distribuito, i messaggi sono scambiati attraverso canali di comunicazione. Il formato dei messaggi e definito dai protocolli * Comunicazione nei sistemi ditribuiti - comunicazione sincrona: * se il ricevitore non e pronto, il trasmettitore si blocca e viceversa. * RENDEZ-VOUS: sincronizzazione tra due processi tramite comunicazione - comunicazione asincrona: * il trasmettitore invia messaggi quand e pronto * Buffering: richiesto dalla comunicazione asincrona * Direzione del flusso dei dati: - sistemi asincroni: usano un flusso in una sola direzione - sistemi sincroni: possono avere flusso dei dati in una o due direzioni 17

18 * Creazione di processi: - statica: tutti i processi esistono quando inizia l esecuzione * vantaggi: predicibilita della esecuzione; implementazione piu efficiente * svantaggi: incapacita di adattarsi alle richieste computazionali - dinamica: alcuni processi sono creati durante l esecuzione * vantaggi: flessibilita sul numero dei processi * uso dinamico delle risorse * bilanciamento del carico computazionale tra i processi 18

19 Cenni di ADA * Identificatori, case insensitive, commenti (--...) * Esempio di programma in ADA procedure Esempio is g: integer:=0; -- variabili globali procedure incr(p: in integer) is -- in, out, in out l: integer; -- variabile locale begin l:=p+1; g:=l+g; end incr; function Square(i: in integer) return integer is begin return i*i; end Square; begin g:=g*5; incr(7); g=square(g); ens Esempio; * tipi predefiniti: integer, float, character, boolean, string * statement: if-then-elsif-else-endif, loop-endloop, while C loop-endloop, for in loop - endloop, exit... * tipi definiti dall utente: enumerativi, array, record, puntatori, task 19

20 * tasking in ADA: primitive linguistiche per la programmazione concorrente - comunicazione sincrona: i processi concorrenti si distinguono tra task accettori e task chiamanti. - i task accettori hanno delle porte di ingresso (entry point) e dei punti di sincronizzazione ( accept ) - un task chiamante chiama un entry point dell accettore - modello asimmetrico: due task devono raggiungere insieme un punto di incontro per comunicare --> Rendez-Voous - il punto di incontro si trova nel task accettore - il task chiamante deve coniscere l identita dell accettore, e il punto di rendez-vous (entry) - il task accettore non e tenuto a conoscere l identita del chiamante 20

21 * schema di Rendez-Vous task Esempio_accettore is entry Aggiungi(I:in integer); entry Rimuovi(I: out integer); end Esempio_accettore; task body Esempio_accettore is begin accept Aggiungi(I: in Integer) do --- end Aggiungi; end Esempio_accettore; task Chiamante Esempio.Aggiungi(I:integer); * sincronizzazione tra task comunicanti: - Se il task chiamante chiama l entry point prima che l accettore raggiunga l accept, si sospende e accetta - Se viceversa l accettore arriva all istruzione accept, si sospende e aspetta che il chiamante chiami l entry point * un task accettore puo avere molti accepts, * molti task chiamanti possono chiamare l entry: vengono messi in coda FIFO 21

22 * Packages in ADA - Package: un insieme di dati e dichiarazioni di procedure complete e messe in libreria - Esempio: package text_io: with text_io; procedure Main_program is begin text_io, Put_line( Buon Giorno ); end Main_program; * Sommario di Ada - istruzioni di controllo derivate dal Pascal - struttura delle procedure derivata dal Pascal - uso di package per funzioni di libreria - supporto di programmazione concorrente con i task - tipi definiti dall utente - gestione delle eccezioni - Packages di semafori binari e contatori - Monitor - creazione dinamica di processi 22

23 1) OCCAM (Inmos 88) - modello di programmazione concorrente basato sul meccanismo Rendez-vous - ogni istruzione e un processo: il programmatore indica esplicitamente i processi sequenziali e quelli paralleli 2) LINDA (gelenter 85-89) - basato su sequenze tipicizzate di dati: Tuple Space (TS) - TS e assimilabile ad una sequenza di procedure 3) PLITS (Programming Language in the Sky) (Feldmann 79) - primitive asincrone: messaggi memorizzati in code FIFO - tipo message: record di slot (nome, valore) - costrutto di base: modulo. Un programma e un insieme di moduli 23

24 4) CSP (Communicating Sequential Processes) (Hoare 78) - specifica di processo : <id processo>::<corpo del processo> - specifica di concorrenza nel corpo del processo: [<processo1>//<processo2>//...//<processon>]; - primitive di invio e ricezione di messaggi: <destinatario>!<espressione> <sorgente>?<variabile> - processi e canali statici - uso del nome dei processi per denotare un canale 5) DP (Distributed Processes) (Brinch Hansen 78) - primo esempio di linguaggio basato su chiamate a procedura remota - applicazioni in tempo reale (piu processori privi di memoria comune) - programma in tempo reale: insieme di processi distribuiti che iniziano contemporaneamente e continuano fino alla fine del sistema - schema di processo: Process None; <variabili locali>; <procedure locali>; <procedure globali>; begin --- end; - interazioni tra processi mediante chiamate a procedure remote 24

25 4) CHILL (Ccitt HIgh Level Language) (Helf 81) - linguaggio di uso generale orientato ad applicazioni in tempo reale - modello a memoria comune - scambio di messaggi - creazione ( start P ), attivazione e terminazione ( stop P ) dinamica di processi - condivisione di codice tra processi - interazioni tra processi anche tramite variabili globali 5) SR (Syncronizing Resources) (Andrews 81) - procedure remote - costrutto port per denotare i canali - comunicazione asincrona - variabili globali 6) Gypsy (Good 79) - applicazioni dedicate su architetture mono e multi CPU - comunicazione tramite messaggi asincroni 7) Starmode (Cook 80) - ispirato a DP - basato sul costrutto module 25

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

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

Dettagli

MODELLO AD AMBIENTE GLOBALE

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

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto Modello a scambio di messaggi type messaggio = record origine: ; destinazione: ; contenuto:

Dettagli

Esempio produttori consumatori. Primitive asincrone

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

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i

Dettagli

Il costrutto monitor [Hoare 74]

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

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

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?

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI 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:

Dettagli

Il costrutto monitor [Hoare 74]

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

Dettagli

Il problema del produttore e del consumatore. Cooperazione tra processi

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

Dettagli

Pronto Esecuzione Attesa Terminazione

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

Dettagli

CAPITOLO 24 I MONITOR

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

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

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

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

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

Dettagli

Il descrittore di processo (PCB)

Il descrittore di processo (PCB) Il descrittore di processo (PC) Il S.O. gestisce i processi associando a ciascuno di essi un struttura dati di tipo record detta descrittore di processo o Process Control lock (PC) Il PC contiene tutte

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

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Monitor. Introduzione. Struttura di un TDA Monitor

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

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

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Sistemi Operativi Esercizi Sincronizzazione

Sistemi Operativi Esercizi Sincronizzazione Sistemi Operativi Esercizi Sincronizzazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Esercizi Sincronizzazione Sistemi Operativi - Claudio Palazzi 14 Semafori (1) Semafori: variabili intere contano

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di 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 auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

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

Dettagli

Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI

Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI Comunicazione La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI Concettualmente la comunicazione point to point e' molto semplice: Un processo invia un

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Sommario. G. Piscitelli

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

Dettagli

Capitolo 7: Sincronizzazione

Capitolo 7: Sincronizzazione Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1

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

Sistemi Operativi (modulo di Informatica II)

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à

Dettagli

Meccanismi di sincronizzazione: Semafori e Monitor

Meccanismi di sincronizzazione: Semafori e Monitor Meccanismi di sincronizzazione: Semafori e Monitor 1 Introduzione Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura

Dettagli

Send/receive sincrona, assumendo che la condivisione avvenga mediante riferimenti logici coincidenti, invece che con capability.

Send/receive sincrona, assumendo che la condivisione avvenga mediante riferimenti logici coincidenti, invece che con capability. Implementazione delle primitive di comunicazione Send/receive sincrona, assumendo che la condivisione avvenga mediante riferimenti logici coincidenti, invece che con capability. Struttura dati canale {

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

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

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

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

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

Dettagli

Comunicazione tra Processi

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

Dettagli

Comunicazione tra Processi

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

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Introduzione ai Metodi Formali

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

Dettagli

La Gestione delle risorse Renato Agati

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

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

I THREAD O PROCESSI LEGGERI Generalità I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

GESTIONE DEI PROCESSI

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

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Fasi di creazione di un programma

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

Dettagli

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

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Concetto di processo

Dettagli

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale Introduzione Meccanismi di sincronizzazione: Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura di programmi

Dettagli

Allocazione dinamica della memoria - riepilogo

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

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Access Control List (I parte)

Access Control List (I parte) - Laboratorio di Servizi di Telecomunicazioni Access Control List (I parte) Indice Cosa sono le ACL? Interfacce Inbound & Outbound Wildcard mask Configurare una ACL standard ACL extended Named ACL Posizionamento

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

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

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

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

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

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

A. Carullo Introduzione a Visual Basic. Introduzione a

A. Carullo Introduzione a Visual Basic. Introduzione a Introduzione a Visual Basic 1 Indice degli argomenti trattati Cos è Visual Basic? L ambiente di sviluppo Visual Basic I passi per la creazione di un progetto VB Operazioni più comuni in un progetto VB

Dettagli

Il Sistema Operativo

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

Dettagli

Lezione 8. La macchina universale

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

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

progam ponteasensounicoalaternato ; type dir = ( nord, sud );

progam ponteasensounicoalaternato ; type dir = ( nord, sud ); Esercizio di Sincronizzazione Tra Processi: Ponte a Senso Unico Alternato Un ponte contiene una sola csia di traffico consentendo così l'accesso a macchine provenienti da una sola direzione per volta,

Dettagli

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

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Le reti. Introduzione al concetto di rete. Classificazioni in base a Le reti Introduzione al concetto di rete Classificazioni in base a Software di rete OSI e TCP/IP Definizione di rete Vantaggi delle reti Reti ad architettura centralizzata e distribuita Sistemi aperti

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

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

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

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

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

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

Dettagli

Sistemi Operativi. Lezione 7 Comunicazione tra processi

Sistemi Operativi. Lezione 7 Comunicazione tra processi Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Dettagli

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

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

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

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Java threads (2) Programmazione Concorrente

Java threads (2) Programmazione Concorrente Java threads (2) emanuele lattanzi isti information science and technology institute 1/28 Programmazione Concorrente Utilizzo corretto dei thread in Java emanuele lattanzi isti information science and

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Organizzazione Monolitica

Organizzazione Monolitica Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Scuola Superiore Sant Anna. Progetto parte Unix. AA 2008-2009: Distributed File Repository

Scuola Superiore Sant Anna. Progetto parte Unix. AA 2008-2009: Distributed File Repository Scuola Superiore Sant Anna Progetto parte Unix AA 2008-2009: Distributed File Repository Distributed File Repository Descrizione del sistema da realizzare Progettare e implementare un server che mantiene

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

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

Dettagli

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Threading T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Caratteristiche principali dei thread Consentono di eseguire elaborazioni simultanee in un programma scritto in C#. Possono essere

Dettagli

Protocolli applicativi: FTP

Protocolli applicativi: FTP Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione

Dettagli