Architettura degli elaboratori 2 - T. Vardanega 1
|
|
- Severina Zamboni
- 4 anni fa
- Visualizzazioni
Transcript
1 " % &'( &( È ) Architettura degli elaboratori - T. Vardanega Pagina Architettura degli elaboratori - T. Vardanega Pagina define N / posizioni del contenitore / typedef int semaforo; / P decrementa, V incrementa, 0 blocca / semaforo mutex = ; semaforo non-pieno = N; semaforo non-vuoto = 0; void produttore(){ void consumatore(){ while(){ while(){ prod = produci(); P(&non-vuoto); P(&non-pieno); P(&mutex); P(&mutex); prod = preleva(); inserisci(prod); V(&mutex); V(&mutex); V(&non-pieno); V(&non-vuoto); Il corretto ordinamento di P e V è critico Architettura degli elaboratori - T. Vardanega Pagina 3 &'( P(&mutex); / accesso esclusivo al contenitore / P(&non-pieno); / attesa spazi nel contenitore /,%-. / Architettura degli elaboratori - T. Vardanega Pagina &0..(. &3.63.7( &/( ". % 8." Architettura degli elaboratori - T. Vardanega Pagina Architettura degli elaboratori - T. Vardanega Pagina 6 Architettura degli elaboratori - T. Vardanega
2 7 % 9& /(. Wait&:;( <= =< Signal&:;(<= =< > Architettura degli elaboratori - T. Vardanega Pagina 7 monitor PC condition non-vuoto, non-pieno; integer contenuto := 0; procedure inserisci(prod : integer); if contenuto = N then wait(non-pieno); <inserisci nel contenitore>; contenuto := contenuto ; if contenuto = then signal(non-vuoto); function preleva : integer; if contenuto = 0 then wait(non-vuoto); preleva := <preleva dal contenitore>; contenuto := contenuto ; if contenuto = N- then signal(non-pieno); end monitor; procedure Produttore; while true do prod := produci; PC.inserisci(prod); procedure Consumatore; while true do prod := PC.preleva; Architettura degli elaboratori - T. Vardanega Pagina Wait, Signal &(. Signal Wait Signal?%. synchronized. wait&( notify&( synchronized 8.wait&( %. / Architettura degli elaboratori - T. Vardanega Pagina 9 Architettura degli elaboratori - T. Vardanega Pagina 0 class monitor{ private int contenuto = 0; public synchronized void inserisci(int prod){ if (contenuto == N) blocca(); <inserisci nel contenitore>; contenuto = contenuto ; if (contenuto == ) notify(); public synchronized int preleva(){ if (contenuto == 0) blocca(); prod = <preleva dal contenitore>; contenuto = contenuto - ; if (contenuto == N-) notify(); return prod; private void blocca(){ try{wait(); catch(interruptedexception exc) {; static final int N = < >; static monitor PC = new monitor(); // PC.inserisci(prod); // produttore // prod = PC.preleva(); // consumatore 8 / A 8 &(, &(.. & ( Architettura degli elaboratori - T. Vardanega Pagina Architettura degli elaboratori - T. Vardanega Pagina Architettura degli elaboratori - T. Vardanega
3 9 < < Send&.( < Receive&.( < 0 0?? 0 &B(? 0 Architettura degli elaboratori - T. Vardanega Pagina 3 Architettura degli elaboratori - T. Vardanega Pagina & ( / Send(canale, msg){ Receive(canale, vtg){ if canale->stato { if canale->stato { canale->casella = msg; vtg = canale->casella; canale->stato = false; canale->stato = false; <sveglia destinatario>; <sveglia mittente>; canale->stato = true; canale->stato = true; canale->casella = msg; &canale->casella = &vtg; <sospendi mittente>; <sospendi destinatario>; Architettura degli elaboratori - T. Vardanega Pagina msg canale->casella Visione lato mittente Memoria copia Visione lato destinatario Memoria Architettura degli elaboratori - T. Vardanega Pagina 6 vtg canale->casella Una sola scrittura nella memoria del destinatario Casella postale (mailbox) ad posizione 7 C?.? %?" vtg ".. C & ( Architettura degli elaboratori - T. Vardanega Pagina &'D( 9 &( &( Architettura degli elaboratori - T. Vardanega Pagina 8 Architettura degli elaboratori - T. Vardanega 3
4 void produttore(){ message msg; prod = produci(); receive(consumatore,&msg); crea(&msg,prod); send(consumatore,&msg); while (); Restituisce messaggi vuoti Inizialmente N, poi per volta Invia messaggi con prodotto void consumatore(){ message msg; crea(&msg, ); for(i=0;i<n;i) send(produttore,&msg); receive(produttore,&msg); prod = estrai(&msg); send(produttore,&msg); while (); E 8. E Architettura degli elaboratori - T. Vardanega Pagina 9 prod prod 8? Architettura degli elaboratori - T. Vardanega Pagina &'(. &( &(? G 8 Architettura degli elaboratori - T. Vardanega Pagina Architettura degli elaboratori - T. Vardanega Pagina ilosofi a cena - &'( 3 void filosofo_i_esimo(){ medita(); P(f[i]); P(f[(i)%N]); mangia(); 3 V(f[(i)%N]); while (); L accesso alla prima forchetta non garantisce l accesso alla seconda H Architettura degli elaboratori - T. Vardanega Pagina 3 ilosofi a cena - 3 &( void filosofo_i_esimo(){ OK = 0; medita(); P(f[i]); if (f[(i)%n]) { sleep(t); P(f[(i)%N]); OK = ; while (OK); mangia(); V(f[(i)%N]); while (); Un attesa a durata fissa difficilmente genera una situazione differente Architettura degli elaboratori - T. Vardanega Pagina Architettura degli elaboratori - T. Vardanega
5 ilosofi a cena Architettura degli elaboratori - T. Vardanega Pagina 0 Architettura degli elaboratori - T. Vardanega Pagina 6 0. &( 8 I 0 9 Architettura degli elaboratori - T. Vardanega Pagina 7 Architettura degli elaboratori - T. Vardanega Pagina 8 0.,% " % " ", ) 8 Architettura degli elaboratori - T. Vardanega Pagina 9 0 C H, Architettura degli elaboratori - T. Vardanega Pagina 30 Architettura degli elaboratori - T. Vardanega
Comunicazione e sincronizzazione tra processi Indice. Comunicazione e sincronizzazione. Esempio 1. Monitor - 1. Monitor - 2. Monitor - 3.
tra processi tra processi Indice Meccanismi. Monitor. Scambio di messaggi.3 Barriere Problemi classici 3 Stallo Monitor - La soluzione mediante semafori è di uso difficile e rischioso Un posizionamento
DettagliSincronizzazione tra processi 2. Sincronizzazione tra processi 1. Sincronizzazione tra processi 4. Sincronizzazione tra processi 3
1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo di ordinamento reciproco In realtà, molti processi condividono risorse e informazioni funzionali La condivisione richiede l
DettagliSincronizzazione tra processi 2. Sincronizzazione tra processi 1. Sincronizzazione tra processi 4. Sincronizzazione tra processi 3
Sincronizzazione tra processi 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo di ordinamento reciproco In realtà molti processi condividono risorse e informazioni funzionali
DettagliSincronizzazione tra processi 1
Sincronizzazione tra processi 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo di ordinamento reciproco In realtà molti processi condividono risorse e informazioni funzionali
DettagliSCD. Comunicazione tra processi. Comunicazione tra processi. UniPD - SCD 2008/9 - Sistemi Concorrenti e Distribuiti 1. Premesse 1. Esempio.
Anno accademico 2008/9 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Premesse 1 I processi di un sistema concorrente sono raramente indipendenti l uno dall altro
DettagliSCD. Comunicazione tra processi. Comunicazione tra processi. UniPD - SCD 2007/8 - Corso di Sistemi Concorrenti e Distribuiti 1. Premesse 1.
Anno accademico 2007/8 Corso di Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD I processi di un sistema concorrente sono raramente indipendenti l uno dall altro
DettagliSistemi 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
DettagliSCD. Comunicazione tra processi. Comunicazione tra processi. Premesse 2. Variabili condivise 1. Premesse 1. Un modello di comunicazione sceglie tra
Premesse 2 Anno accademico 2016/17 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Un modello di comunicazione sceglie tra Comunicazioni dirette tra entità attive
DettagliArchitettura degli Elaboratori 2
Architettura degli Elaboratori 2 Esercitazioni 2 Grafo di allocazione delle risorse Comunicazione tra processi A. Memo - 2004 Grafo di allocazione delle risorse è uno strumento grafico utile per l individuazione
DettagliSCD. Comunicazione tra processi. Comunicazione tra processi. Premesse 2. Variabili condivise 1. Premesse 1. Un modello di comunicazione sceglie tra
Premesse 2 Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Un modello di comunicazione sceglie tra Comunicazioni dirette tra entità attive
Dettagli6 Il Sistema Operativo Indice (segue) 6.4 La gestione dei processi Sincronizzazione tra processi - 1
6 Il Sistema Operativo Indice (segue) Sincronizzazione e comunicazione tra processi (Inter-Process Communication) Situazioni catastrofiche (deadlock) Il Sistema Operativo Architettura degli elaboratori
DettagliIl 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
DettagliIl monitor. Sistemi Operativi T AA
Il monitor Sistemi Operativi T AA 2011-2012 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (public o entry) ad una struttura dati comune a più
DettagliSistemi operativi - Concetti ed esempi -Settima edizione
Capitolo 6: Sincronizzazione dei processi Capitolo 6: Sincronizzazione dei processi Introduzione Problema della sezione critica Soluzione di Peterson Hardware per la sincronizzazione Semafori Problemi
DettagliSoluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione. Soluzioni ai problemi di Mutua EsclusionePrimitive di sincronizzazione
Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione Soluzioni basate su primitive di sincronizzazione Le primitive di sincronizzazione piú comuni sono: Lock (mutex) - realizzati in
DettagliIl monitor. Costrutti linguistici per la sincronizzazione
Il monitor 1 Costrutti linguistici per la sincronizzazione I semafori costituiscono un meccanismo molto potente per la sincronizzazione dei processi. Tuttavia, il suo uso può risultare troppo a basso livello.
DettagliJava Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java
programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class
DettagliPrimitive asincrone. Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione.
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
DettagliChiamata di procedura remota
Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da
DettagliChiamata di procedura remota
Chiamata di procedura remota Meccanismo di comunicazione e sincronizzazione tra processi in cui un processo che richiede un servizio ad un altro processo rimane sospeso fino al completamento del servizio
DettagliIl monitor. Sistemi Operativi T AA
Il monitor Sistemi Operativi T AA 2009-2010 1 Costrutti linguistici per la sincronizzazione I semafori costituiscono un meccanismo molto potente per la sincronizzazione dei processi. Tuttavia, il loro
DettagliI Thread in Java parte 2: Sincronizzazione. Sistemi Operativi T AA
I Thread in Java parte 2: Sincronizzazione Sistemi Operativi T AA 2010-2011 1 Sincronizzazione: wait e notify wait set: coda di thread associata ad ogni oggetto, inizialmente vuota. I thread entrano ed
DettagliI Thread in Java! parte 2:! Sincronizzazione!
I Thread in Java! parte 2:! Sincronizzazione! 1 Sincronizzazione: wait e notify wait set: coda di thread associata ad ogni oggetto, inizialmente vuota. I thread entrano ed escono dal wait set utilizzando
DettagliMonitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi.
Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni
DettagliMonitor [Hoare 74] Uso del monitor
Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni
DettagliEsercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune
Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune a) Uso di una risorsa condivisa Siano P 1, P 2, P 3,, P k i processi che condividono l uso di una risorsa comune
DettagliIl 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
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 9 Giovedì 10-11-2016 Semafori un semaforo s è una struttura dati gestita
DettagliSistemi 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
DettagliIl Modello a scambio di messaggi
Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;
DettagliArchitettura degli Elaboratori 2. Concetti preliminari (1) Concetti preliminari (2) Concetti preliminari (3) Grafo di allocazione delle risorse
Architettura degli Elaboratori 2 Esercitazione 2 Scheduling: grafo di allocazione delle risorse Synchronization: comunicazione tra processi A. Memo - 2005 Concetti preliminari () L esecuzione dei programmi
DettagliAlgoritmo di Dekker. Algoritmo di Peterson
shared int turn = P; shared boolean needp = false; shared boolean needq = false; cobegin P // Q coend Riassunto Utile Concorrenza Algoritmo di Dekker process P { needp = true; while (needq) if (turn ==
DettagliUniversità degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B. Esercitazioni 3 e 4
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 3 e 4 Sincronizzazione dei Processi (2 a parte) Problemi classici di sincronizzazione
DettagliEsercitazioni 3 e 4. Sincronizzazione dei Processi (2 a parte)
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 3 e 4 Sincronizzazione dei Processi (2 a parte) Problemi classici di sincronizzazione
DettagliProblema dei Produttori e dei Consumatori
Problema dei Produttori e dei Consumatori Appartiene alla categoria di problemi nei quali l esecuzione di un processo dipende dall esecuzione di un altro, per cui è necessaria una comunicazione asincrona
DettagliCenni storici 1. Anni 50: i S/O hanno origine con i primi elaboratori a programma memorizzato
Cenni storici 1 Anni 50: i S/O hanno origine con i primi elaboratori a programma memorizzato Modalità di esecuzione batch (a lotti) gestita da un operatore umano Tutto l elaboratore a disposizione di un
DettagliSistemi 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
DettagliSEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)
SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a
DettagliMonitor. Le procedure entry sono le sole operazioni che possono essere utilizzate dai processi per accedere alle variabili comuni.
Monitor Costrutto sintattico che associa un insieme di procedure ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni permesse su quella struttura.
DettagliUniversità degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B. Esercitazioni 7 e 8
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 7 e 8 Bounded Buffer con sincronizzazione Java (1) public class BoundedBuffer private
DettagliModello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
DettagliEsempio 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
DettagliSincronizzazione tra processi
Sincronizzazione tra processi Sommario Introduzione Problema della sezione critica Consistenza dei dati Soluzioni basate su attesa attiva (busy waiting) Metodi software Metodi hardware Semafori Primitive
DettagliSincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Produttore-Consumatore Produttore e consumatore con memoria limitata Utilizza
DettagliIl 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
DettagliMeccanismi 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
DettagliModello 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 type messaggio = record origine:. ; destinazione:. ;
DettagliMultitheading. Corso di Laurea in Informatica. Sperimentazioni di Linguaggi di Programmazione: Paradigmi di Programmazione. a.a.
Multitheading Corso di Laurea in Informatica Sperimentazioni di Linguaggi di Programmazione: Paradigmi di Programmazione a.a. 1999/2000 Matteo Baldoni 1 Thread multipli all interno di un Task thread PC
DettagliIl modello a scambio di messaggio
Il modello a scambio di messaggio Ciascun processo evolve in un proprio ambiente che non può essere modificato direttamente da altri processi. Quindi non esiste memoria condivisa e le risorse sono tutte
DettagliIl 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
DettagliComunicazione con sincronizzazione estesa
Comunicazione con sincronizzazione estesa 1 Chiamate di procedura remota e rendez-vous Chiamata di procedura remota Rendez vous Linguaggio ADA 2 Chiamata di operazione remota Meccanismo di comunicazione
DettagliJava 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
DettagliNona Esercitazione. Thread e memoria condivisa Sincronizzazione tramite semafori
Nona Esercitazione Thread e memoria condivisa Sincronizzazione tramite semafori Agenda Esercizio 1 DA SVOLGERE Sincronizzazione avanzata produttore consumatore tramite semafori Esercizio 2 DA SVOLGERE
DettagliInterazione tra Processi. Sistemi Operativi T AA
Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti (Esercizi) Esercizio 8 Scrivere una classe classe Modular che rappresenti un elemento dell anello modulare Z/nZ (somma e prodotti modulo n). La classe deve avere: una funzione
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA9 B3.2 Produttore-consumatore 1 Prerequisiti Elementi di programmazione concorrente Mutua esclusione Produttore-consumatore 2 1 Introduzione In questa Unità vediamo
DettagliLe risorse. Alcune definizioni
Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa
DettagliProblema del buffer limitato. Lorenzo Gallucci
Problema del buffer limitato Lorenzo Gallucci Buffer limitato Immaginiamo una struttura dati che contiene delle informazioni La struttura può, in ogni momento, avere dello spazio libero oppure no Se vi
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune
DettagliEsercitazioni 7 e 8. Bounded Buffer con sincronizzazione Java (1)
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 7 e 8 Bounded Buffer con sincronizzazione Java (1) public class BoundedBuffer private
DettagliIl 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// Riferimento al canale da processi esterni << nome del processo >>.channel; // Primitiva send send << valore >> to << porta >>;
// MODELLO A SCAMBIO DI MESSAGGI // Dichiarazione di un canale per messaggi di tipo intero // PORT: Canale 1-N (dichiarato sul ricevente) port int channel; // Riferimento al canale da processi esterni
DettagliRealizzazione 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
DettagliEsercizio Sincronizzazione Thread
Esercitazione di oratorio 17/10/2007 Esercizio Il laboratorio di Informatica del Polo Marzotto e utilizzato da tre tipi di utenti, studenti, tesisti e professori ed ogni utente deve fare una richiesta
DettagliEsercizio sui Semafori
Esercizio sui Semafori Allocazione di una risorsa con politica prioritaria (SJF) (v. Esercitazione 9, es.2) 1 Traccia (1/2) Si realizzi una applicazione Java che risolva il problema dell allocazione di
DettagliInterazione tra Processi
Interazione tra Processi 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono indipendenti se l esecuzione di ognuno non è in alcun modo influenzata dall altro.
DettagliLABORATORIO DI SISTEMI OPERATIVI
LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Thread POSIX nel sistema Linux (parte
DettagliUniversità degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B.
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
DettagliEsercitazione 15. Il problema dello Sleeping Barber
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
DettagliIntroduzione. 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
DettagliEsempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un
Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un giocatore, ogni giocatore una scheda Ci vengono già fornite le classi necessarie
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello
DettagliProgrammazione concorrente
Programmazione concorrente Univ. di Udine (Univ. di Udine) Programmazione concorrente 1 / 39 Programmazione concorrente Non un diverso paradigma di programmazione, ma una feature aggiuntiva a paradigmi
DettagliUniversità degli Studi di Padova - Corso di Laurea in Informatica
Università degli Studi di Padova - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 40 min dalla sua presentazione.
DettagliSISTEMI 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?
DettagliEsercitazione 3 Programmazione Concorrente nel linguaggio go. 13 Novembre 2017
Esercitazione 3 Programmazione Concorrente nel linguaggio go 13 Novembre 2017 1 Concorrenza in go 2 creazione goroutine Sintassi : Esempio go func IsReady(what string, minutes int64)
DettagliSincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Produttore-Consumatore Produttoree consumatorecon memorialimitata Utilizzaun
DettagliSystem.out.print("\tATTENZIONE: hi inserito un valore non valido!\n");
Creare un applicazione console che dato l indice della borsa di Milano nel giorno precedente, calcola la variazione percentuale rispetto al valore dell indice del giorno corrente. import java.io.*; public
DettagliJava 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
DettagliSincronizzazione di thread POSIX
Sincronizzazione di thread POSIX Sincronizzazione I thread condividono la memoria Rischio di race condition Necessari meccanismi di sincronizzazione mutex (semaforo binario) condition variable I mutex
DettagliProblema dei Produttori e dei Consumatori. Domenico Cotroneo Dipartimento di Informatica e Sistemistica
Problema dei Produttori e dei Consumatori Domenico Cotroneo Dipartimento di Informatica e Sistemistica Definizione Due Due categorie di diprocessi: Produttori, che chescrivono un un messaggio su sudi diuna
DettagliCorso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E11 Esercizi su array e array di array C. Limongelli Gennaio 2012 1 Contenuti Fusione di due array ordinati, con eliminazione di
DettagliFondamenti di Informatica 1 - Compito A
Fondamenti di Informatica 1 - Compito A Prof. Marco Gavanelli 18 Giugno 2007 Esercizio (16 punti) Un programma in linguaggio C deve accedere ad un database di studenti, memorizzato in un file binario studenti.bin.
DettagliJava Thread. Thread. Un thread
Java Thread Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliSemafori. Semafori classici con i thread POSIX 2
Semafori classici Semafori I semafori sono primitive, implementate attraverso dei contatori, fornite dal sistema operativo per permettere la sincronizzazione tra processi e/o thread. Per queste primitive
DettagliTela (Teaching Language)
Tela (Teaching Language) Paradigma imperativo Dichiarazioni di variabili, costanti, moduli Programma strutturato in moduli innestati Scope statico Passaggio dei parametri per valore Corpo del modulo =
DettagliProcessi 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
DettagliEsercizio 1. richiesta. server. cliente. # i 2. operazione 3. rilascio
Esercizio 1 A partire dalla soluzione della gestione di un pool di risorse equivalenti con priorità (poolprio.go), realizzare la gestione di un pool di risorse equivalenti senza priorità. richiesta 1 cliente
DettagliSistemi Operativi. Lezione 7-bis Esercizi
Sistemi Operativi Lezione 7-bis Esercizi Esercizio Problema dei lettori e scrittori Un insieme di processi condivide un file dal quale alcuni possono solo leggere i dati, altri solo scriverli Più lettori
DettagliNona Esercitazione. Thread e memoria condivisa Sincronizzazione tramite semafori
Nona Esercitazione Thread e memoria condivisa Sincronizzazione tramite semafori Agenda Esercizio 1 DA SVOLGERE Sincronizzazione avanzata produttore consumatore tramite semafori Esercizio 2 DA SVOLGERE
DettagliCAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1
CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliPrima provetta di Sistemi Operativi 28/10/2010
Prima provetta di Sistemi Operativi 28/10/2010 1) (1pt) Descrivere almeno due differenze tra le architetture Microkernel e Monolitiche Le architetture microkernel eseguono un ridotto numero di funzioni
DettagliCorso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO
Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Richiamo di una Proprietà Se la proprietà è privata, è visibile solo dai metodi della classe, se pubblica invece anche dai metodi al di fuori
DettagliReti 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
DettagliSushi bar problem. The Little Book of Semaphores by Allen B. Downey
Sushi bar problem The Little Book of Semaphores by Allen B. Downey http://greenteapress.com/semaphores/ 1 Sushi bar problem Immaginiamo di avere un sushi bar con 5 sedie. Se un cliente arriva e c'è una
DettagliSEMAFORI. Semaforo. s--; Il valore di un semaforo s è legato al numero delle operazioni wait e signal eseguite su di esso dalla relazione:
Semaforo SEMAFORI Una variabile di tipo semaforico viene definita come una variabile intera non negativa, cui è possibile accedere solo tramite le due operazioni wait e signal definite nel seguente modo:
Dettagli