Sincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
|
|
- Tommasa Turco
- 6 anni fa
- Visualizzazioni
Transcript
1 Sincronizzazione Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
2 2 Specifiche Le soluzioni software al problema della si basano sull utilizzo di variabili globali Disponibili nei sistemi a memoria condivisa Analizzeremo il caso con due soli soli P (o T) Denominati P i (T i ) e P j (T j ) Dato i allora j=1-i e viceversa Ovvero se i=0 allora j=1-i=1 e viceversa Casi con più di due P (o T) sono complessi in quanto le procedure analizzate non sono facilmente generalizzabili Inoltre supporremo esistano i valori logici TRUE (1) e FALSE (0)
3 3 int flag[2] = {FALSE, FALSE; Mutua esclusione: Soluzione 1 P while (TRUE) { i / T i while (flag[j]); flag[i] = TRUE; flag[i] = FALSE; P while (TRUE) { j / T j while (flag[i]); flag[j] = TRUE; flag[j] = FALSE; Mutua esclusione Progresso Attesa definita Simmetria?
4 4 int flag[2] = {FALSE, FALSE; Mutua esclusione: Soluzione 1 P while (TRUE) { i / T i while (flag[j]); flag[i] = TRUE; flag[i] = FALSE; P while (TRUE) { j / T j while (flag[i]); flag[j] = TRUE; flag[j] = FALSE; Mutua esclusione non assicurata P i e P j possono accedere alla contemporaneamente
5 5 Mutua esclusione: Soluzione 1 La soluzione 1 prevede l utilizzo di Un vettore globale di flag " busy" Il test e il set di tali flag Non garantisce la mutua esclusione in La tecnica fallisce in quanto La variabile di lock viene controllata e modificata mediante due istruzioni a sè stanti Le due istruzioni sono interrompibili (ovvero non sono eseguite in maniera atomica)
6 6 Mutua esclusione: Soluzione 1 La variabile di flag " busy" è detta di lock Serve a proteggere la Anche se la soluzione fosse corretta, i cicli di controllo del flag effettuano una "attesa attiva" (busy waiting) Sprecano CPU time Sono accettabili solo se l attesa è molto breve Una attesa, ovvero un meccanismo di lock, che utilizza il busy waiting viene talvolta denominato spin lock
7 7 Mutua esclusione: Soluzione 2 int flag[2] = {FALSE, FALSE; Scambio di ordine tra test e set nel codice P while (TRUE) { i / T i flag[i] = TRUE; while (flag[j]); flag[i] = FALSE; P while (TRUE) { j / T j flag[j] = TRUE; while (flag[i]); flag[j] = FALSE; Mutua esclusione Progresso Attesa definita Simmetria?
8 8 int flag[2] = {FALSE, FALSE; Mutua esclusione: Soluzione 2 P while (TRUE) { i / T i flag[i] = TRUE; while (flag[j]); flag[i] = FALSE; P while (TRUE) { j / T j flag[j] = TRUE; while (flag[i]); flag[j] = FALSE; Progresso non garantito P i e P j possono rimanere bloccati per sempre (deadlock)
9 9 Mutua esclusione: Soluzione 2 La soluzione 2 tenta di risolvere il problema della soluzione 1 con un approccio simmetrico Invece di testare e settare il flag prima effettua il set e poi il test Può non esserci progresso, ovvero si può presentare deadlock Come la soluzione 1 presenta busy waiting con spin lock
10 10 Mutua esclusione: Soluzione 3 int turn = i; Oppure int turn = j; P i / T i while (TRUE) { while (turn!=i); turn = j; P j / T j while (TRUE) { while (turn!=j); turn = i; Mutua esclusione Progresso Attesa definita Simmetria?
11 11 Mutua esclusione: Soluzione 3 int turn = i; Oppure int turn = j; P i / T i while (TRUE) { while (turn!=i); turn = j; P j / T j while (TRUE) { while (turn!=j); turn = i; Attesa non definita P i e P j accedono alla in maniera alternata Se P i (P j ) non è interessato P j (P i ) va in starvation
12 12 Mutua esclusione: Soluzione 3 La soluzione 3 prevede L uso di una variabile che indica di chi è il "turno" La ME viene garantita mediante cessione del turno La soluzione prevede alternanza e attesa non definita Come le soluzioni 1 e 2 presenta busy waiting con spin lock
13 13 int turn = i; int flag[2] = {FALSE, FALSE; Mutua esclusione: Soluzione 4 Oppure int turn = j; while (TRUE) { P i / T i flag[i] = TRUE; turn = j; while (flag[j] && turn==j); flag[i] = FALSE; while (TRUE) { P j / T j flag[j] = TRUE; turn = i; while (flag[i] && turn==i); flag[j] = FALSE; Mutua esclusione Progresso Attesa definita Simmetria?
14 14 Mutua esclusione: Soluzione 4 int turn = i; int flag[2] = {FALSE, FALSE; Oppure int turn = j; Mutua esculsione? while (TRUE) { P i / T i flag[i] = TRUE; turn = j; while (flag[j] && turn==j); flag[i] = FALSE; In SEE flag[j]==false OR turn==i P i e P j possono entrare insieme? No, perchè se sono entrambi sul while turn==i oppure turn==j, non entrambi Se però P j è in e P i arriva dopo può entrare? Se P j è dentro ha fatto richieta e flag[j]==true, poi però P i arriva alla richiesta e pone turn==j. Quindi P j attenderà
15 15 Mutua esclusione: Soluzione 4 int turn = i; int flag[2] = {FALSE, FALSE; Oppure int turn = j; Progresso? while (TRUE) { P i / T i flag[i] = TRUE; turn = j; while (flag[j] && turn==j); flag[i] = FALSE; Se P i è sul ciclo e P j esce, P j mette flag[j]=false e P i entra P i /P j può rimanere bloccato solo sul ciclo while Se P i è sul ciclo e P j non vuole entrare, allora flag[j]==false e P i entra Se P i è sul ciclo e P j è anch esso sul while, uno dei due entra (vedere cond. ME)
16 16 Mutua esclusione: Soluzione 4 int turn = i; int flag[2] = {FALSE, FALSE; Oppure int turn = j; Attesa definita? while (TRUE) { P i / T i flag[i] = TRUE; turn = j; while (flag[j] && turn==j); flag[i] = FALSE; P j è in ed è "velocissimo" a ciclare e a richiedere la. P i può attendere per sempre? P j assegna FALSE a flag[j] ma subito dopo TRUE. Assegna però turn=i e quindi abilita P i ad entrare e P j attende
17 17 Mutua esclusione: Soluzione 4 int turn = i; int flag[2] = {FALSE, FALSE; Oppure int turn = j; Simmetria? while (TRUE) { P i / T i flag[i] = TRUE; turn = j; while (flag[j] && turn==j); flag[i] = FALSE; while (TRUE) { P j / T j flag[j] = TRUE; turn = i; while (flag[i] && turn==i); flag[j] = FALSE;... Verificata... Codici simmetricamente identici
18 18 int turn = i; int flag[2] = {FALSE, FALSE; Mutua esclusione: Soluzione 4 Oppure int turn = j; while (TRUE) { P i / T i flag[i] = TRUE; turn = j; while (flag[j] && turn==j); flag[i] = FALSE; while (TRUE) { P j / T j flag[j] = TRUE; turn = i; while (flag[i] && turn==i); flag[j] = FALSE; Soluzione corretta Soddisfa tutte le condizione della
19 19 Mutua esclusione: Soluzione 4 La prima soluzione software completa è dovuta a G. L. Peterson [1981] Garantisce Mutua esclusione Progresso (no deadlock) Attesa limitata (no starvation) Simmetria Il P (o T) in attesa è comunque in busy waiting su spin lock Permane il problema del consumo della risorsa CPU time
20 20 Conclusioni In generale le soluzioni software al problema delle risultano complesse e inefficienti L assegnazione o il controllo di una variabile da parte di un P/T è una operazione invisibile agli altri P/T Le operazioni di controllo e modifica non sono atomiche, quindi si possono avere reazioni al valore presunto di una variabile invece che a quello reale Le soluzioni per n P/T sono complesse McGuire [1972] Lamport [1974]
Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzioni hardware al problema della SC possono essere classificate
DettagliSincronizzazione Le sezioni scritiche
Sincronizzazione Le sezioni scritiche Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Ambiente di sviluppo Concorrenza e sincronizzazione Programmazione concorrente (tramite
DettagliMUTUA ESCLUSIONE. Esempi di mutua esclusione
MUTUA ESCLUSIONE Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i
DettagliLa mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione
La (dai sistemi concorrenti ai sistemi distribuiti) Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo
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
DettagliStallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Stallo di processi Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Stallo (deadlock) Condizione di stallo (deadlock) Un P/T richiede
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
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
DettagliSincronizzazione dei processi. Capitolo 5 -- Silberschatz
Sincronizzazione dei processi Capitolo 5 -- Silberschatz Processi cooperanti Nei moderni SO, i processi vengono eseguiti concorrentemente Possono essere interrotti in qualunque momento nel corso della
DettagliSistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A
Nome: Cognome: Matricola: corso: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei
DettagliMutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12
Mutua esclusione Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Accesso concorrente alle risorse Consideriamo un sistema in cui N processi vogliono accedere
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
DettagliSISTEMI OPERATIVI. Sincronizzazione in Java (Java object lock e segnali wait-notify-notifyall)
SISTEMI OPERATIVI (MODULO DI INFORMATICA II) LABORATORIO Sincronizzazione in Java (Java object lock e segnali wait-notify-notifyall) Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università
DettagliUNIVERSITÀ DEGLI STUDI DI BERGAMO
UNIVERSITÀ DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE E METODI MATEMATICI Corso di Laurea in Ingegneria Informatica/Meccanica Esame di Sistemi Operativi a.a. 2008-09 (Modulo di
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
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
DettagliUniversità degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica
Università degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo
DettagliSistemi operativi Sincronizzazione fra processi
Sistemi operativi 2003-2004 Sincronizzazione fra processi Introduzione I processi devono poter comunicare tra loro in modo strutturato e preciso Per passarsi informazioni Per non interferire con gli altri
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
DettagliSistemi 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
DettagliSequential Functional Chart (SFC) - Parte 2
Sequential Functional Chart (SFC) - Parte 2 Vincenzo Suraci Automazione STRUTTURA DEL NUCLEO TEMATICO STRUTTURE DI COLLEGAMENTO Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 2 STRUTTURE DI COLLEGAMENTO
DettagliCORSO DI PROGRAMMAZIONE
ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative
DettagliThread: sincronizzazione Esercitazioni del 16 Ottobre 2009
Thread: sincronizzazione Esercitazioni del 16 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria 19 ottobre 2009 Sequenze di esecuzione - 2 Sequenze di esecuzione - 2 Esercizio 1 Sequenze di
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 8 Martedì 8-11-2016 1 Algoritmi di scheduling basati sulle priorità Assegnano
DettagliVerifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al
Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione
DettagliLab 4: Locks, Condition Variables in Java
Dept. of Computer Science Lab 4: Locks, Condition Variables in Java Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Esercizi Lab3
DettagliSequential Functional Chart
Sequential Functional Chart Nel 1975 nasce il GRAFCET GRAPHe de Coordination Etapes Transitions Nel 1987 è stato adottato come standard internazionale dall IEC (Comitato Elettrotecnico Internazionale)
Dettagliistruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso
Programmazione Concorrente sequenze critiche e mutua esclusione istruzioni atomiche deadlock sincronizzazione e semafori settembre 2009 programmazione concorrente 1 modello di esecuzione sequenziale istruzioni
DettagliDecima Esercitazione. Accesso a risorse condivise tramite Monitor Java
Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
Dettagli1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione
1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.
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ù
DettagliSistemi operativi. Lez. 6: primitive per la concorrenza e semafori
Sistemi operativi Lez. 6: primitive per la concorrenza e semafori Supporto alla concorrenza L algoritmo di Peterson consente una soluzione del problema della concorrenza che non richiede alcun presupposto
DettagliCAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE
CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato
DettagliYYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta
YYY02 Esercizi per Teoria Esercizi per preparazione alla prova scritta Esercizio YYY02_02 - Busy Waiting In linguaggio ANSI C, siano dichiarate le seguenti variabili, e siano queste variabili debitamente
DettagliCooperazione tra Processi
Cooperazione tra Processi Principi Il problema della sezione critica: le race condition Supporto hardware Semafori Monitor Scambio di messaggi Barriere Cos è la concorrenza? È un tema centrale nella progettazione
Dettagli1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia
1. Quali sono le componenti principali dei sistemi operativi? 2. Si descriva il meccanismo attraverso cui i programmi in esecuzione richiamano i servizi dei sistemi operativi. 1. Le componenti principali
DettagliProgrammazione in C. Requisiti didattici
Programmazione in C Requisiti didattici Nessun requisito specifico Tutti gli argomenti vengono trattati in maniera completa e incrementale Nozioni elementari di Matematica di base Fisica di base Capacità
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
DettagliIntroduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni
Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 1 Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni Angelo Montanari Dipartimento di Matematica e Informatica
DettagliSOLUZIONE. <l auto arriva all ingresso I> while PostiDisponibili == 0
ESERCIZIO parcheggio Un parcheggio per auto della capacità di 10 posti è dotato di un unico ingresso I e un unica uscita U. L ingresso e l uscita sono controllate da sbarre. Le auto sono thread di uno
DettagliSCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1
Premesse 2 Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD I sistemi a tempo reale devono assicurare correttezza temporale oltre che funzionale
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
DettagliSistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15
Sistemi in tempo reale: applicazioni alla robotica Sistemi in tempo reale: applicazioni alla robotica p.1/15 Sistemi operativi Hardware Firmware Kernel Driver Applicazioni Interfacce Sistemi in tempo reale:
DettagliEsercitazione 2: Java Thread
Esercitazione 2: 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
DettagliEsercitazione 2: Java Thread. Java Thread. Java Thread. Un thread:
Esercitazione 2: 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
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
DettagliI sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas
I sistemi operativi (prima parte) Le esigenze dell informatica moderna Computer facili da usare Gestione di grandi archivi di dati Esecuzione di più programmi sulla stessa macchina Collegamento in rete
DettagliEsercizi sul problema del deadlock
Esercizi sul problema del deadlock 1. Si consideri la situazione in cui vi siano in esecuzione quattro processi P A, P B, P C e P D con la matrice delle risorse allocate e la matrice del numero massimo
DettagliEsercitazione maggio 2011
Esercitazione 11 23 maggio 2011 Monitor in Java Esercizio 1 In un sito di interesse geologico e` possibile visitare una grotta sotterranea, raggiungibile soltanto attraverso uno stretto cunicolo. Per motivi
DettagliEsercizi Esercizi Università di Salerno
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2015-2016 Esercizi Esercizi Università di Salerno 1. In un sistema si possono presentare solo due tipi di processi: lettori P l e scrittori P s. Dove i
DettagliL'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata.
Transazioni L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Una transazione è una astrazione per un DBMS
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
DettagliSistema operativo: Gestione dei processi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2009/2010 Sistema operativo: Gestione dei processi La presente dispensa e da
DettagliConcorrenza e sincronizzazione
Concorrenza e sincronizzazione Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Cosa faremo oggi 2 Concorrenza Sincronizzazione Concorrenza 3 Nei programmi Java fino ad ora sviluppati è presente
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
DettagliModello a memoria comune
Modello a memoria comune 1 Interazione nel modello a Memoria Comune Se la macchina concorrente e` organizzata secondo il modello a memoria comune: PROCESSO=THREAD Comunicazione attraverso dati/risorse
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
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliI costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni
Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di
DettagliCompitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
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
DettagliProblema dei Fumatori di sigarette. Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette
1 3 processi fumatori 1 processo tabaccaio Ogni fumatore esegue ripetutamente un ciclo in cui prepara una sigaretta e poi la fuma Per preparare la sigaretta un fumatore ha bisogno di 3 ingredienti (risorse):
DettagliSistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >
Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego
Dettagli6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale
45 6.6 Regioni Critiche Condizionali 6.7 Monitor Costrutti linguistici inventati per evitare i problemi di programmazione che facilmente si fanno con i semafori Attenzione con i thread: in tale ambiente
DettagliCOMANDI ITERATIVI. Ivan Lanese
COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito
DettagliSistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente
Sistemi Operativi Lez. 6: Problemi classici della programmazione concorrente Produttore e consumatore Uno dei problemi classici della programmazione concorrente è il problema del produttore consumatore.
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliESERCIZIO SincrAmbGlob-1
ESERCIZI DI SINCRONIZZAZIONE TRA THREAD CON SEMAFORI ESERCIZIO SincrAmbGlob-1 Si consideri un sistema nel quale è definito il semaforo sem1 e i thread P1, P2 e P3. Al tempo t il semaforo sem1 ha la seguente
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzione condizionale switch Istruzioni di salto break e continue Uso di variabili di tipo boolean Variabili di tipo array (monodimensionali)
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliSISTEMI OPERATIVI. Sincronizzazione dei processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)
SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Sincronizzazione dei processi Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Il problema
DettagliSistemi Operativi Modulo I. Il Deadlock (o Stallo)
Sistemi Operativi Modulo I Primo canale (A-L) A.A. 2017/2018 Corso di Laurea in Informatica Il Deadlock (o Stallo) Igor Melatti Sapienza Università di Roma Dipartimento di Informatica Il Deadlock o Stallo
DettagliProblemi con la concorrenza. Sincronizzazione di processi e thread (1) Problemi con la concorrenza. Il problema della concorrenza
Sincronizzazione di processi e thread (1) Problemi con la concorrenza #define NITER 1000000 int count = 0; void *ThreadAdd(void *); /*thread s function prototype */ int main(int argc, char * argv[]) pthread_t
DettagliEsecuzione concorrente
Esecuzione concorrente Un SO consiste in un gran numero di processi che vengono eseguiti più o meno contemporaneamente dal processore L esecuzione concorrente introduce un insieme di problematiche che
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
DettagliGestione dei compiti
1 of 18 23/10/2006 103 Gestione dei compiti Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Domanda n. 1 Argomento: Logica booleana Domanda: Qual e' il risultato
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
DettagliOrdinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita
Lezione 11 Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Ordinamento degli eventi Un sistema monoprocessore Unico clock Unica memoria Ordinamento degli eventi Mutua esclusione Deadlock
DettagliSISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004
SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004 Cognome: Nome: Matricola: ESERCIZIO 1, teoria (6 punti) a) riportate lo pseudocodice che descrive l implementazione dell operazione
DettagliSOLUZIONE. ESERCIZIO PRODUTTORE CONSUMATORE (semafori)
ESERCIZIO PRODUTTORE CONSUMATORE (semafori) In un sistema operativo, i thread A (produttore) e B (consumatore) cooperano scambiandosi messaggi attraverso un buffer di 10 celle, ciascuna capace di contenere
DettagliGestione periferiche I/O
Gestione periferiche I/O Compiti del sottosistema IO Nascondere al programmatore i dettagli delle interfacce hw e dei dispositivi (utilizzo di controllori) Omogeneizzare la gestione di dispositivi diversi
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliSistemi Operativi Appello del 10 luglio 2017 Versione Compito A Cognome e nome: Matricola: Posto:
Non è consentita la consultazione di libri o appunti in forma cartacea o elettronica, né l'uso di palmari e cellulari. Quesito 1: 1 punto per risposta giusta, diminuzione di 0,33 punti per risposta sbagliata,
DettagliLe strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliCapitolo 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
DettagliCorso di Informatica 2 Prof. Sciuto; Lezione su Bus e I/O.
Corso di Informatica 2 Prof. Sciuto Comunicazione di I/O Daniele Paolo Scarpazza Dipartimento di Elettronica e Informazione Politecnico di Milano 30 Maggio 2005 1 Convenzioni sui termini e sui segnali
DettagliEsercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata e Senza Starvation
Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata e Senza Starvation Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo
DettagliPHP Lezione 4. Istruzione condizionale IF. Sintassi IF: if (condizione) { istruzioni; }
Università degli Studi di Milano Dipartimento di Informatica e Comunicazione Corso di Laurea in Scienze e Tecnologie della Comunicazione Musicale Informatica Generale - Prof. Luca A. Ludovico PHP Lezione
DettagliCampionamento e memoria. Sommario. Sommario. M. Favalli
Sommario Campionamento e memoria M. Favalli Engineering epartment in Ferrara 2 Latch di tipo 3 Sommario (ENIF) Analisiesintesideicircuitidigitali / 29 (ENIF) Analisiesintesideicircuitidigitali 2 / 29 2
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.
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,
DettagliStruttura Logica del S.O:
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
DettagliSommario. 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
DettagliUniversità degli Studi di Ferrara Facoltà di Ingegneria Corso di Ingegneria del Software (IIa parte) - Prova scritta
Università degli Studi di Ferrara Facoltà di Ingegneria Corso di Ingegneria del Software (IIa parte) - Prova scritta Esercizio 1 (8 punti) 9 settembre 2008 Tempo: 2h30m Si modelli con una rete di Petri
DettagliPensiero computazionale. Lezione 3 Istruzioni condizionali Eventi, messaggi Variabili
Pensiero computazionale Lezione 3 Istruzioni condizionali Eventi, messaggi Variabili Algebra di Boole Il ramo dell algebra in cui le variabili possono assumere solo due valori: true (1, vero) o false (0,
DettagliESERCITAZIONE 5!! 7 dicembre 2016!! Programmazione concorrente in ADA!!
ESERCITAZIONE 5!! 7 dicembre 2016!! Programmazione concorrente in ADA!! 1 Programmazione concorrente in ADA 2 Risorse utili Compilatore linux: gnat Comando per compilazione: gnat make programma.adb Per
DettagliIstruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
Dettagli