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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Reti e problematiche di Rete

Reti e problematiche di Rete Reti e problematiche di Rete I Processi Concorrenti Enrico Cavalli Anno Accademico 2008-2009 I problemi con i processi concorrenti 1 I processi concorrenti La concorrenza tra processi avviene secon diverse

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

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

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

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

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

Processi parte V. Processi parte V. Sincronizzazione dei processi mediante monitor: Sintassi Funzionamento Implementazione

Processi parte V. Processi parte V. Sincronizzazione dei processi mediante monitor: Sintassi Funzionamento Implementazione Processi parte V Processi parte V Sincronizzazione dei processi mediante monitor: Sintassi Funzionamento Implementazione Monitor Il costrutto monitor permette di definire un tipo di dato astratto e di

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

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

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

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

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche 5.1 Implementazione dei monitor con i semafori Un monitor è un tipo di

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Sincronizzazione Inconsistenza di dati condivisi: i rischi dell'interleaving nei processi concorrenti La race condition Il problema della "sezione critica" dei processi concorrenti e la soluzione

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

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

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

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

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione Informatica 3 Informatica 3 LEZIONE 6: Il controllo dell esecuzione Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Lezione 6 - Modulo 1 La gestione delle eccezioni Politecnico

Dettagli

Sincronizzazione e coordinamento nel distribuito

Sincronizzazione e coordinamento nel distribuito Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

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

Sincronizzazione dei processi

Sincronizzazione dei processi Sincronizzazione dei processi Sincronizzazione dei processi Background Il problema della sezione critica Hardware di sincronizzazione Semafori Problemi classici di sincronizzazione Monitor 6.2 Background

Dettagli

LA SINCRONIZZAZIONE TRA PROCESSI

LA SINCRONIZZAZIONE TRA PROCESSI LA SINCRONIZZAZIONE TRA PROCESSI E' più complesso scrivere programmi concorrenti rispetto a programmi sequenziali in quanto non basta essere sicuri della correttezza dei singoli moduli ma è necessario

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

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

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

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

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

SCD. Criteri di sincronizzazione. Criteri di sincronizzazione. Criteri di valutazione 2. Criteri di valutazione 1. Condizioni di sincronizzazione 1

SCD. Criteri di sincronizzazione. Criteri di sincronizzazione. Criteri di valutazione 2. Criteri di valutazione 1. Condizioni di sincronizzazione 1 Criteri di valutazione 2 Anno accademico 2015/16 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD È interessante applicare questo schema di valutazione ai costrutti

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

Indice dei Contenuti

Indice dei Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /24 Global State - 3 Mutua esclusione e sistemi concorrenti - 7 Algoritmi per la Mutua Esclusione - 10 Algoritmi basati su autorizzazioni

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

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

Esempio. chan request = [0] of { byte }; active proctype Server() { byte client; end: do :: request? client -> printf("client %d\n", client); od }

Esempio. chan request = [0] of { byte }; active proctype Server() { byte client; end: do :: request? client -> printf(client %d\n, client); od } Canali in Promela Sistemi distribuiti un sistema distribuito è costituito da un insieme di processi e un insieme di canali di comunicazione ogni processo rappresenta un nodo di computazione del sistema

Dettagli

Sistemi Operativi Sincronizzazione tra Processi

Sistemi Operativi Sincronizzazione tra Processi Sistemi Operativi Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo

Dettagli

22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /24 Global State - 3 Mutua esclusione e sistemi concorrenti - 7 Algoritmi per la Mutua Esclusione - 10 Algoritmi basati su autorizzazioni

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

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

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

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

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

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

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

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

SISTEMI OPERATIVI. Sincronizzazione in Java (Monitor e variabili condizione in Java)

SISTEMI OPERATIVI. Sincronizzazione in Java (Monitor e variabili condizione in Java) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) LABORATORIO Sincronizzazione in Java (Monitor e variabili condizione in Java) Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Dove die( stringa ) è una funzione di utilità del php che stampa la stringa e fa terminare lo script.

Dove die( stringa ) è una funzione di utilità del php che stampa la stringa e fa terminare lo script. I file in PHP Un file è un archivio elettronico contenente informazioni (dati) memorizzate su memoria di massa. Il file ha la caratteristica di consentire la lettura, la scrittura e la modifica dei dati

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

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

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

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale

Dettagli

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi Il modello a processi Consideriamo un informatico appassionato di cucina che

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

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

AA 2014-2015. 20. Nomi, binding

AA 2014-2015. 20. Nomi, binding AA 2014-2015 20. Nomi, binding 1 Nomi Un nome in un linguaggio di programmazione è esa;amente quello che immaginate o la maggior parte dei nomi sono definia dal programma (gli idenaficatori) o ma anche

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

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

Dettagli

PRINCIPI DI SISTEMI OPERATIVI

PRINCIPI DI SISTEMI OPERATIVI PRINCIPI DI SISTEMI OPERATIVI ESERCIZIO del 28 NOVEMBRE 2003 Un distributore di benzina ha a disposizione P pompe e una cisterna da L litri. Le automobili arrivano al distributore e richiedono un certo

Dettagli

Il costrutto monitor

Il costrutto monitor Il Monitor 1 Monitor Definizione del monitor Esempi d uso Realizzazione del costrutto monitor Realizzazione di politiche di gestione delle risorse Chiamate innestate a procedure del monitor Realizzazione

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

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

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

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi Lezione 10 Cenni ai sistemi operativi distribuiti 2. Gestione della CPU e della memoria nei multiprocessori Gestione dei processi Scheduling Bilanciamento del carico Migrazione dei processi Gestione della

Dettagli

Posix Threads: l evoluzione dei processi UNIX

Posix Threads: l evoluzione dei processi UNIX Posix Threads: l evoluzione dei processi UNIX Raffaele Quitadamo, PhD in Computer Science Università di Modena e Reggio Emilia quitadamo.raffaele@unimore.it Sommario Pthreads vs Unix processes L API per

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