CAPITOLO 23 PROBLEMA DEL BARBIERE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CAPITOLO 23 PROBLEMA DEL BARBIERE"

Transcript

1 CAPITOLO 23 PROBLEMA DEL BARBIERE NEGOZIO DEL BARBIERE (20 norma 50 clienti) La figura riporta una pianta della sala del barbiere e come si vede ipotizza che ci siano presenti tre sedie per il taglio e che tre barbieri operano nella sala, nella sala c è un divano di capienza di massimo quattro persone sedute e uno spazio per altre persone in piedi. Inoltre la sala è dotata di una cassa per effettuare i pagamenti. Il numero massimo di persone presenti nel negozio non può essere più di venti per via delle limitazioni di legge, ma si suppone che ci sia la possibilità di soddisfare fino a 50 clienti. Quando il negozio contiene il numero massimo di clienti, nessun nuovo cliente può entrare, l eccedenza è evidente che rimane in attesa fuori.. Quando entra un cliente se c è posto si siede sul divano, altrimenti rimane in piedi; quando un barbiere è libero, il primo ad essere servito è il cliente che ha atteso più a lungo sul divano e che quindi si porta ad una sedia barbiere libera. Ovviamente ogni volta che un cliente transita per passare dal divano ad una sedia barbiere, uno in piedi occupa il posto sul divano. Quando il barbiere termina informa di aver finito il cliente il quale essendo stato servito, va alla cassa per il pagamento. Poiché la cassa è unica, un solo cliente per volta può pagare. SIGNIFICATO DEI SEMAFORI La tabella riporta i semafori utilizzati per la gestione del problema del barbiere e il significato delle primitive wait e signal che agiscono sul semaforo stesso. Il semaforo capacita_max gestisce la capacità del negozio in termini di numero di clienti presenti. La primitiva wait(capacita_max) consente al cliente che aspetta che ci sia posto nel negozio di poter entrare, signal(capacita_max) consente invece ad un cliente che esce dal negozio di informare che ora c è un nuovo posto e quindi un nuovo cliente può entrare. 1

2 Il semaforo divano coordina il sedersi e l alzarsi dei clienti dal divano. wait(divano) consente ad un cliente in attesa di sedersi, signal(divano) è la primitiva con la quale chi si alza dal divano consente ad un cliente in piedi di accomodarsi. Il semaforo sedia_barbiere è utilizzato per l uso corretto delle tre sedie dei barbieri assicurando che non più di tre clienti alla volta siano serviti contemporaneamente. La primitiva wait(sedia_barbiere) fa si che un cliente che aspetta che si liberi una sedia del barbiere possa accomodarsi, invece signal(sedia_barbiere) fa si che un nuovo cliente si porti dal divano alla sedia per essere servito. Il semaforo cliente_pronto è necessario per assicurarsi che ci siano clienti seduti sulle sedie dei barbieri pronti per il taglio. Con la primitiva wait(cliente_pronto) il barbiere aspetta che ci sia un cliente seduto, con signal(cliente_pronto) il cliente avvisa il barbiere di essersi seduto. Il semaforo finito gestisce il tempo in cui il cliente rimane seduto per il taglio, con wait(finito) il cliente aspetta che il taglio sia terminato mentre con signal(finito) il barbiere avvisa quando il taglio è terminato. Il semaforo lascia_sedia_b serve al cliente per informare di aver lasciato la sedia e di conseguenza il barbiere lancerà signal( sedia barbiere). Un nuovo cliente si potrà accomodare mentre che il barbiere si porta alla cassa. Con la primitiva wait(lascia_sedia_b) il barbiere aspetta che il cliente si alzi, invece con signal(lascia_sedia_b) il cliente avvisa il barbiere quando si alza dalla sedia. Il semaforo pagamento è necessario per il pagamento del cliente al barbiere presso l unica cassa presente nel negozio, per cui il pagamento avviene un cliente alla volta. La primitiva wait(pagamento) permette che il cassiere aspetti che il cliente paghi invece con signal(pagamento) il cliente avvisa il cassiere che ha pagato. Il semaforo ricevuta è utilizzato al fine di rilasciare la ricevuta al cliente per il taglio effettuato. Dunque con la wait(ricevuta) il cliente aspetta una ricevuta, con signal(ricevuta) il cassiere segnala di aver ricevuto il pagamento. Infine poiché ai barbieri è affidato anche il compito di cassieri, il semaforo coord è utilizzato sia per il controllo dei barbieri che devono effettuare i tagli sia per le operazioni di cassa. Con wait(coord) si aspetta che il barbiere termini il taglio o che la cassa deve incassare il pagamento, con signal(coord) si segnala che c è un barbiere disponibile o che la cassa abbia ricevuto il pagamento e che può rilasciare la ricevuta. ALGORITMO DEL BARBIERE INGIUSTO program barbiere1; var capacita_max: semaforo (:=20); divano: semaforo (:=4); sedia_barbiere, coord: semaforo (:=3); cliente_pronto, finito, lascia_sedia_b, pagamento, ricevuta: semaforo (:=0); procedure cliente; wait(capacita_max); wait(divano); wait(sedia_barbiere); signal(divano); signal(cliente_pronto); wait(finito); signal(lascia_sedia_b); signal(pagamento); wait(ricevuta); esci dal negozio; signal (capacita_max); procedure barbiere; La slide presenta l algoritmo del barbiere ingiusto. Il codice presenta la definizione e l inizializzazione delle variabili semaforo. Il programma principale attiva 50 clienti, 3 barbieri e il processo cassiere. La procedura cliente coordinata tramite le primitive wait e signal effettua le seguenti operazioni: esci dal negozio. Ognuna di queste operazioni coinvolge delle risorse che devono essere gestite garantendone la mutua esclusione per cui è necessario l utilizzo di semafori che debbano precedere e seguire ognuna di queste operazioni. L azione entra nel negozio è preceduta da wait(capacita_max) per cui il cliente aspetta che ci sia posto nel negozio prima di entrare, altrettanto l operazione esci dal negozio è seguita da una signal(capacita_max) che avvisa il prossimo cliente di poter entrare. Una volta entrato nel negozio, il cliente ha necessità di sedersi sul divano per cui effettua una wait(divano) con cui il cliente aspetta che si liberi un posto sul divano una volta ottenuto si siede con siedi sul divano ed effettua una wait(sedia_barbiere) con cui aspetta che si liberi una sedia del barbiere. Ottenuta questa si alza dal 2

3 wait(cliente_pronto); taglia i capelli; signal(finito); wait(lascia_sedia_b); signal(sedia_barbiere); procedure cassiere; wait(pagamento); prendi il denaro; signal(ricevuta); (*programma principale*) par cliente; 50 volte; cliente; barbiere; barbiere; barbiere; cassiere; par end. divano con l operazione alzati dal divano ed effettua una signal(divano) con cui avvisa il prossimo cliente che aspetta di sedersi che un posto si è liberato. Il cliente a questo punto effettua l operazione siedi sulla sedia del barbiere ed esegue una signal(cliente_pronto) che avvisa il barbiere che il cliente si è seduto. Con wait(finito) il cliente aspetta che il taglio sia finito e segue l operazione di lascia la sedia del barbiere. Con la primitiva signal(lascia_sedia_b) il cliente avvisa il barbiere che si è alzato, successivamente effettua il pagamento, con l operazione paga, emette una signal(pagamento) con cui avvisa il cassiere che sta pagando ed esegue wait(ricevuta) con cui si pone in attesa che il cassiere segnali di aver accettato il pagamento. La procedura barbiere presenta in un ciclo infinito l operazione fondamentale di taglia i capelli, tale operazione è preceduta e seguita da una serie di primitive che gestiscono i vari semafori. Inizialmente viene effettuata la primitiva wait (cliente_pronto) con cui il barbiere aspetta che un cliente si sieda, successivamente con wait(coord) si coordina con gli altri barbieri e si porta ala taglio dei capelli. A questo punto avviene l operazione di taglia i capelli e successivamente vengono lanciate le primitive signal(coord) e signal(finito) con cui rispettivamente si segnala che c è un barbiere disponibile e con cui il barbiere avvisa il cliente che il taglio è terminato. Con wait(lascia_sedia_b) il barbiere aspetta che il cliente si alzi dalla sedia ed infine con signal(sedia_barbiere) avvisa che una propria sedia è vuota. La procedura cassiere effettua in un ciclo infinito l operazione di prendi il denaro, tale operazione è preceduta dalle primitive wait(pagamento) e wait(coord) con cui rispettivamente il cassiere aspetta che il cliente paghi e con cui si aspetta che un barbiere sia libero per fare il cassiere. L istruzione prendi il denaro è poi seguita da signal(coord) e signal(ricevuta) con cui rispettivamente si segnala che c è un barbiere disponibile e con cui il cassiere segnala di aver accettato il pagamento. TRATTAMENTO INGIUSTO DEI CLIENTI Supponiamo che tre clienti sono in attesa di finito, dovrebbero alzarsi nell'ordine in cui si sono seduti ma se uno dei tre finisce prima il suo signal finito, costringe l'altro che si è seduto prima ad uscire! Questo si è generato per mancanza di corrispondenza tra cliente e processocliente e di conseguenza tra barbiere e cliente. L algoritmo presentato provoca un trattamento ingiusto dei clienti a causa di un problema di temporizzazione. Supponiamo che ci siano tre clienti seduti su tre sedie per il taglio, secondo la politica First-In-First-Out con cui sono gestite le code di attesa attraverso la primitiva wait(finito) il primo cliente che ha occupato la sedia del barbiere deve essere il primo a lasciarla. Questo provoca il fatto che se un cliente ha terminato prima perché ha pochi capelli o perché il barbiere ha lavorato più velocemente non può alzarsi se il cliente che si è seduto prima di lui non ha terminato o nel caso ciò avvenga un cliente terminerebbe senza aver completato il taglio. 3

4 BARBIERE EQUO! Assegna un numero ad ogni cliente usando un contatore; Serializza l'accesso al contatore tramite il semaforo mutex1 ed il semaforo finito del caso precedente è ora sostituito da un array finito[numcli], il semaforo mutex2 si occupa invece della serializzazione del barbiere al cliente mentre che la varibile locale cliente_b fa corrispondere il numero del cliente al barbiere restituisca come numcli del wait(finito[numcli]). Il problema del barbiere ingiusto viene risolto introducendo ulteriori variabili e semafori. Ad ogni cliente che entra nel negozio viene associato un numero diverso dato dalla variabile intera contatore il cui accesso è protetto dal semaforo mutex1. Il semaforo finito viene sostituito da un array di 50 semafori per cui quando un cliente è seduto su una sedia esegue wait(finito[numcli]) con cui aspetta sul proprio semaforo e quando un barbiere finisce esegue signal(finito[numcli]) per liberare il giusto cliente. Il semaforo mutex2 è utilizzato invece per il coordinamento tra il barbiere e il cliente. E necessario dire che il barbiere conosce il numero del cliente grazie all utilizzo della coda incoda1 in cui ogni cliente inserisce il proprio numero subito prima di attivare il semaforo cliente_pronto. Quando un barbiere è pronto per il taglio decoda1(cliente_b) toglie un numero in cima alla coda e lo mette nella variabile locale del barbiere cliente_b. ALGORITMO DEL BARBIERE EQUO program barbiere2; var capacita_max: semaforo (:=20); divano: semaforo (:=4); sedia_barbiere, coord: semaforo (:=3); mutex1, mutex2: semaforo (:=1); cliente_pronto, lascia_sedia_b, pagamento, ricevuta: semaforo (:=0); finito: array [1..50] of semaforo (:=0); contatore: integer; procedure cliente; var numcli: integer; wait(capacita_max); wait(mutex1); contatore:=contatore+1; numcli:=contatore; signal(mutex1); wait(divano); wait(sedia_barbiere); signal(divano); wait(mutex2); incoda1(numcli); signal(cliente_pronto); signal(mutex2); wait(finito[numcli]); signal(lascia_sedia_b); signal(pagamento); wait(ricevuta); esci dal negozio; signal (capacita_max); procedure barbiere; var cliente_b:integer; La slide presenta l algoritmo del barbiere equo in cui è possibile osservare la definizione ed inizializzazione dei nuovi semafori mutex1 e mutex2, l array finito dei 50 semafori e il contatore intero dei clienti. All interno della programma principale il contatore dei clienti è inizializzato a zero. Nella procedura cliente quando il cliente entra nel negozio viene eseguita una wait(mutex1) che permette di serializzare l accesso al contatore che viene incrementato di una unità, dunque alla variabile locale numcli che indica il numero del cliente viene associato il valore del contatore. Dopo di che viene effettuata la primitiva signal(mutex1) con cui si avvisa che il semaforo è libero. Quando il cliente si siede sulla sedia del barbiere viene emessa la primitiva wait(mutex2) che serializza l accesso al barbiere, dunque il numero del cliente è inserito in una coda con l istruzione incoda(numcli). Al termine del taglio quando il cliente è pronto viene eseguita un signal(mutex2) e una wait(finito[numcli]). Nella procedura barbiere quando il cliente è pronto per il taglio viene eseguita la primitiva wait sul semaforo mutex2 e l istruzione decoda1(cliente_b) per estrarre il numero del cliente dalla coda, a questo punto avviene una signal(mutex2) e una volta terminato il taglio si segnala la 4

5 wait(cliente_pronto); wait(mutex2); decoda1(cliente_b); signal(mutex2); taglia i capelli; signal(finito[client_b]); wait(lascia_sedia_b); signal(sedia_barbiere); liberazione del cliente con signal(finito[cliente_b]). procedure cassiere; wait(pagamento); prendi il denaro; signal(ricevuta); (*programma principale*) contatore:=0; par cliente; 50 volte; cliente; barbiere; barbiere; barbiere; cassiere; par end. 5

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE

CAPITOLO 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

Dettagli

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1

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

Dettagli

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

Dettagli

Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette. Problema dei Fumatori di sigarette

Problema 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):

Dettagli

Monitor. Le procedure entry sono le sole operazioni che possono essere utilizzate dai processi per accedere alle variabili comuni.

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

Dettagli

Le risorse. Alcune definizioni

Le 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

Dettagli

Hilzer s Barbershop problem

Hilzer s Barbershop problem The Little Book of Semaphores by Allen B. Downey http://greenteapress.com/semaphores/ Versione più complicata del classico problema del barbiere 1 Il nostro barbershop ha tre sedie, tre barbieri, e un'area

Dettagli

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

SEMAFORI 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

Dettagli

Sushi bar problem. The Little Book of Semaphores by Allen B. Downey

Sushi 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

Dettagli

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

Dettagli

Monitor [Hoare 74] Uso del monitor

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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T5 C2 Produttore-consumatore 1 Prerequisiti Concetto di semaforo Risorsa permanente o consumabile Sincronizzazione Significato e uso di wait() e signal() 2 1 Introduzione Ci

Dettagli

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

Dettagli

Sistemi Operativi e Laboratorio, Prova del 5/4/2016

Sistemi Operativi e Laboratorio, Prova del 5/4/2016 Nome: Cognome: Matricola: fila: posto: corso: 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

Dettagli

UNIVERSITÀ DEGLI STUDI DI BERGAMO

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

Dettagli

SEMAFORI. Semaforo. s--; Il valore di un semaforo s è legato al numero delle operazioni wait e signal eseguite su di esso dalla relazione:

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

Architettura degli Elaboratori 2

Architettura 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

Dettagli

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Uno spool di stampa di un sistema multithread che gestisce due stampanti fisiche, è organizzato con un thread gestore che gestisce le

Dettagli

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Un sistema con 5 processi (A,, C,, ) e risorse dei tipi R1, R2, R3, R4, rispettivamente di molteplicità [7, 7, 3, 6], utilizza l algoritmo

Dettagli

ESERCIZIO SincrAmbGlob-1

ESERCIZIO 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

Dettagli

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Java 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

Dettagli

Chiamata di procedura remota

Chiamata 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

Dettagli

Sistemi Operativi e Laboratorio, Prova del 15/01/2014

Sistemi Operativi e Laboratorio, Prova del 15/01/2014 Cognome e nome: Matricola: Corso [A/B] : fila: posto: Esercizio 1 (4 punti) Si consideri un processore che dispone dei registri speciali PC (program counter), PS (program status) e SP (stack pointer),

Dettagli

Chiamata di procedura remota

Chiamata 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

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO 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

Dettagli

Libreria Linux Threads. Threads nel S.O. Linux. Primitive per la gestione dei thread. Portabilità: libreria pthreads (Posix).

Libreria Linux Threads. Threads nel S.O. Linux. Primitive per la gestione dei thread. Portabilità: libreria pthreads (Posix). Threads nel S.O. Linux Il thread è un processo leggero che può condividere uno spazio di indirizzi (o parte di esso) con il padre e gli altri processi della gerarchia cui appartiene. Realizzato a livello

Dettagli

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

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Lettori e scrittori, Barbiere sonnolento

Lettori e scrittori, Barbiere sonnolento DTI / ISIN / Titolo principale della presentazione 1 Lettori e scrittori, Barbiere sonnolento Amos Brocco, Ricercatore, DTI / ISIN 14 maggio 2012 Lettori e scrittori Problema che riproduce una situazione

Dettagli

Scheme: liste e vettori

Scheme: liste e vettori a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Scheme: liste e vettori Liste e coppie.......................................... 2451 Dichiarazione di

Dettagli

Il monitor. Costrutti linguistici per la sincronizzazione

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

Dettagli

Esercizi Programmazione Concorrente

Esercizi Programmazione Concorrente Esercizio 1- Prelievo Moduli Nella segreteria dell Università N studenti devono compilare il modulo per la Domanda di Laurea. All apertura della segreteria una impiegata ha disposto M copie del modulo

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE ESEMPI DI SIMULAZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Esempi di simulazione Presentiamo alcuni esempi

Dettagli

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

Dettagli

Esercitazioni 3 e 4. Sincronizzazione dei Processi (2 a parte)

Esercitazioni 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

Dettagli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a

Dettagli

ESEMPI DI SIMULAZIONE

ESEMPI DI SIMULAZIONE ESEMPI DI SIMULAZIONE Corso di Tecniche di Simulazione, a.a. 2005/2006 Francesca Mazzia Dipartimento di Matematica Università di Bari 7 Marzo 2006 Francesca Mazzia (Univ. Bari) ESEMPI DI SIMULAZIONE 7/03/2006

Dettagli

6. Sincronizzazione dei Processi. Esempio: Produttore- Consumatore con n elementi. Esempio: Produttore- Consumatore con n elementi

6. Sincronizzazione dei Processi. Esempio: Produttore- Consumatore con n elementi. Esempio: Produttore- Consumatore con n elementi 1 6. Sincronizzazione dei Processi Importante: l accesso concorrente a dati condivisi può produrre dati inconsistenti processi cooperanti attraverso la condivisione di dati devono agire in modo ordinato,

Dettagli

Sistemi Operativi e Laboratorio, Prova del?/?/?

Sistemi Operativi e Laboratorio, Prova del?/?/? Nome: Cognome: Matricola: fla: posto: corso: Esercizio 1 Quali delle seguenti operazioni possono essere eseguite da un processo in stato utente? Operazione: Invocare l istruzione TSL (test and set lock-tipo

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

Corso. di FONDAMENTI DI RETI DI TELECOMUNICAZIONI. Martino De Marco

Corso. di FONDAMENTI DI RETI DI TELECOMUNICAZIONI. Martino De Marco Politecnico di Milano Sede di Cremona A.A. 2003/04 Corso di FONDAMENTI DI RETI DI TELECOMUNICAZIONI Martino De Marco (demarco@cremona.polimi.it) ESERCITAZIONE VALUTAZIONE DELLE PRESTAZIONI ESERCITAZIONE:

Dettagli

Il monitor. Sistemi Operativi T AA

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

Dettagli

Architettura degli Elaboratori 2. Concetti preliminari (1) Concetti preliminari (2) Concetti preliminari (3) Grafo di allocazione delle risorse

Architettura 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

Dettagli

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 7 Mutex Condition Esempi di utilizzo

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 7 Mutex Condition Esempi di utilizzo Sistemi operativi ì Corso di Laurea Triennale in Ingegneria Informatica Lezione 7 Mutex Condition Esempi di utilizzo Domande sulle lezioni passate? Sommario ì Sincronizzazione ì Mutex ì Variabili condition

Dettagli

Sistemi operativi - Concetti ed esempi -Settima edizione

Sistemi 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

Dettagli

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 4 anno accademico 2015-2016 Mario Verdicchio Numeri primi Si definisce primo un numero intero maggiore di 1 che ha due soli divisori: se stesso e 1 Esempi di numeri primi:

Dettagli

Sistemi Operativi 9 luglio 2013 Compito

Sistemi Operativi 9 luglio 2013 Compito Si risponda ai seguenti quesiti, giustificando le risposte. Gli esercizi e le domande marcate con l asterisco (*) devono essere svolti soltanto da chi ha in piano di studi l esame di Sistemi Operativi

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

TERMINA ESECUZIONE A B =85 85 C =90 90 D = E = INIZIA ESECUZIONE

TERMINA ESECUZIONE A B =85 85 C =90 90 D = E = INIZIA ESECUZIONE ESERCIZIO Scheduling 1 In un sistema vengono generati 5 processi (A,B,C,D,E), con durate (in millisecondi) sotto specificate: Processo Durata A 25 B 6 C 5 D 15 E 1 Tutti i processi avanzano senza mai sospendersi.

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

CAPITOLO 19 MUTUA ESCLUSIONE SUPPORTO SOFTWARE

CAPITOLO 19 MUTUA ESCLUSIONE SUPPORTO SOFTWARE CAPITOLO 19 MUTUA ESCLUSIONE SUPPORTO SOFTWARE SUPPORTO SOFTWARE Le slides che seguono definiscono il software e quindi i programmi che possono essere utilizzati per garantire la mutua esclusione tra processi

Dettagli

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms 1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva l algoritmo di scheduling nel sistema Windows Vista (e

Dettagli

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

Dettagli

SISTEMI OPERATIVI. Semafori. Semafori

SISTEMI OPERATIVI. Semafori. Semafori SISTEMI OPERATIVI 04.a Semafori Semafori Approfondimento sulla mutua escluone Manipolazione di risorse mutex Strategie di soluzione Lock e Un Primitive semaforiche 1 Approfondimento sulla mutua escluone

Dettagli

Università 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 Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 14 Giovedì 22-11-2018 Scheduling in UNIX Poiché UNIX è un sistema multiutente

Dettagli

Scheme: struttura del programma e campo di azione

Scheme: struttura del programma e campo di azione «a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Scheme: struttura del programma e campo di azione Definizione e campo di azione...........................

Dettagli

SOLUZIONE. ESERCIZIO PRODUTTORE CONSUMATORE (semafori)

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

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

Cicli. S i a i = a 1 + a 2 + a a n

Cicli. S i a i = a 1 + a 2 + a a n Cicli Esprimono in modo compatto e generali l'esecuzione di uno stesso blocco di codice per più volte Anche in matematica sono presenti operatori che eseguono di fatto un ciclo (ad es. sommatoria e produttoria)

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Sincronizzazione Semafori Si considerino tre processi (A, B e C) i quali devono eseguire alcune operazioni

Dettagli

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

Dettagli

SOLUZIONE. <l auto arriva all ingresso I> while PostiDisponibili == 0

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

Dettagli

Cosa sono i semafori?

Cosa sono i semafori? Semafori Cosa sono i semafori? I semafori sono primitive fornite dal sistema operativo per permettere la sincronizzazione tra processi e/o thread. Semafori di mutua esclusione con i thread POSIX 2 Operazioni

Dettagli

Sistema : collezione di componenti (elementi, entità) interdipendenti che interagiscono fra loro in accordo a specifiche predefinite.

Sistema : collezione di componenti (elementi, entità) interdipendenti che interagiscono fra loro in accordo a specifiche predefinite. Sistema : collezione di componenti (elementi, entità) interdipendenti che interagiscono fra loro in accordo a specifiche predefinite. Studio, analisi del sistema al variare delle caratteristiche operative.

Dettagli

8 DEADLOCK. 8.1 Modello del Sistema. 8.1 Modello del Sistema

8 DEADLOCK. 8.1 Modello del Sistema. 8.1 Modello del Sistema 1 8 DEADLOCK Deadlock =:= situazione in cui 2 o più processi sono in attesa infinita di risorse possedute da tali processi I SO di oggi non trattano (prevengono) il problema ci devono pensare gli utenti.

Dettagli

Prof. Pagani Corrado PROGRAMMAZIONE CONCORRENTE

Prof. Pagani Corrado PROGRAMMAZIONE CONCORRENTE Prof. Pagani Corrado PROGRAMMAZIONE CONCORRENTE INTRODUZIONE La programmazione imperativa si basa su un modello di esecuzione sequenziale Tale modello si applica a un singolo programma eseguito da un singolo

Dettagli

Esercizi Esame. Esercizio 1. Soluzione. Esercizio 2

Esercizi Esame. Esercizio 1. Soluzione. Esercizio 2 Esercizio 1 Esercizi Esame Un sistema software è costituito da due processi produttori, identici, che scrivono messaggi su un buffer capace di memorizzare sino a due messaggi. I processi produttori devono

Dettagli

ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse

ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse In un sistema operativo che utilizza la rilocazione statica e gestisce la memoria con partizioni fisse, la memoria fisica ha un ampiezza

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO 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

Dettagli

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

2. Simulazione discreta: approcci alla simulazione

2. Simulazione discreta: approcci alla simulazione Anno accademico 2008/09 Elementi di un programma di simulazione Controllore Tempo di simulazione Generatore dei dati di input Entità Eventi Attività Stati Processi Simulazione per eventi: le classi L approccio

Dettagli

Sistemi operativi. Lez. 9: primitive per la concorrenza i semafori

Sistemi operativi. Lez. 9: primitive per la concorrenza i semafori Sistemi operativi Lez. 9: primitive per la concorrenza i semafori Disabilitazione interrupt Due processi possono trovarsi in sezione critica simultaneamente solo perché chi vi è entrato per primo è stato

Dettagli

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A

Sistemi 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

Dettagli

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file. ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE La gestione delle periferiche

Dettagli

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 9 problema 2 6 problema 3 5 problema 4 10 totale 30

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 9 problema 2 6 problema 3 5 problema 4 10 totale 30 Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 18 Settembre 2018 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 9 problema 2 6

Dettagli

Sincronizzazione Le sezioni scritiche

Sincronizzazione 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

Dettagli

Politecnico di Milano Sede di Cremona A.A. 2012/13. Corso di RETI DI COMUNICAZIONE E INTERNET (Modulo 1)

Politecnico di Milano Sede di Cremona A.A. 2012/13. Corso di RETI DI COMUNICAZIONE E INTERNET (Modulo 1) Politecnico di Milano Sede di Cremona A.A. 2012/13 Corso di RETI DI COMUNICAZIONE E INTERNET (Modulo 1) Martino De Marco email: martino.demarco@mail.polimi.it skype: martino.demarco ESERCITAZIONE VALUTAZIONE

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

Sincronizzazione dei processi. Capitolo 5 -- Silberschatz

Sincronizzazione 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

Dettagli

= PTHREAD_MUTEX_INITIALIZER

= PTHREAD_MUTEX_INITIALIZER MUTEX Prof.ssa Sara Michelangeli Quando si programma in modalità concorrente bisogna gestire le problematiche di accesso alle eventuali sezioni critiche. Una sezione critica è una sequenza di istruzioni

Dettagli

i. Diagramma di GANTT relativo all esecuzione dei quattro processi:

i. Diagramma di GANTT relativo all esecuzione dei quattro processi: 1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva il funzionanmento di un server web basato su thread multipli.

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3. COMPITO DI RICERCA OPERATIVA ESERCIZIO 1. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 x 1 + x 2 2 2x 1 + x 2 x 1 0 x 2 0 Si trasformi questo problema in forma standard e lo si

Dettagli

Stack e nidificazione dei sottoprogrammi Cos è un sottoprogramma? La chiamata di un sottoprogramma... 6

Stack e nidificazione dei sottoprogrammi Cos è un sottoprogramma? La chiamata di un sottoprogramma... 6 Stack e nidificazione dei sottoprogrammi... 2 Cos è un sottoprogramma?... 2 La chiamata di un sottoprogramma... 6 Lo stack... 9 Il nesting dei sottoprogrammi.... 12 Lo stack pointer... 17 Stack e nidificazione

Dettagli

Sistemi Operativi e Laboratorio, Prova del 9/9/2016

Sistemi Operativi e Laboratorio, Prova del 9/9/2016 Nome: Cognome: Matricola: corso: fila: posto: Esercizio 1 (4 punti) In un sistema che gestisce la memoria con paginazione, sono presenti i processi A, B e C. Lo stato di occupazione della memoria al tempo

Dettagli

CORSO DI INFORMATICA Maria Grazia Celentano

CORSO DI INFORMATICA Maria Grazia Celentano CORSO DI INFORMATICA Maria Grazia Celentano INFORMATICA E PROGRAMMAZIONE L Informatica è definita come la Scienza della Rappresentazione e dell Elaborazione dell informazione o, in altri termini, lo studio

Dettagli

Università degli Studi di Bologna Sede di Cesena. Corso di Laurea in Scienze dell Informazione. Anno Accademico 1998/99

Università degli Studi di Bologna Sede di Cesena. Corso di Laurea in Scienze dell Informazione. Anno Accademico 1998/99 Università degli Studi di Bologna Sede di Cesena Cso di Laurea in Scienze dell Infmazione Anno Accademico 1998/99 Sistemi per l elabazione dell infmazione II ADA Esercizi Stefano Clemente clemente@csr.unibo.it

Dettagli

CICLO FOR. for contatore:= valore_iniziale to valore_finale do begin istruzione 1; istruzione 2; istruzione n; end;

CICLO FOR. for contatore:= valore_iniziale to valore_finale do begin istruzione 1; istruzione 2; istruzione n; end; CICLO FOR Il ciclo FOR è una particolare struttura iterativa che viene utilizzata per ripetere un blocco di istruzioni per un numero di volte che è noto a priori, a differenza del ciclo REPEAT-UNTIL e

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

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

Linguaggio C++ 5. Strutture cicliche

Linguaggio C++ 5. Strutture cicliche 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 5 Strutture cicliche Linguaggio C++ 5 1 Strutture cicliche Utilizzate per ripetere un certo numero di volte

Dettagli

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 + x 3 x 1 x 2 + x 3 = 1 x 1 x 2 + x 4 = 1 x 2 + x 5 = 2. x 1, x 2, x 3, x 4 0

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 + x 3 x 1 x 2 + x 3 = 1 x 1 x 2 + x 4 = 1 x 2 + x 5 = 2. x 1, x 2, x 3, x 4 0 COMPITO DI RICERCA OPERATIVA ESERCIZIO 1. (7 punti) Sia dato il seguente problema di PL: max x 1 + x 2 + x 3 x 1 x 2 + x 3 = 1 x 1 x 2 + x 4 = 1 x 2 + x 5 = 2 x 1, x 2, x 3, x 4, x 5 0 Lo si risolva con

Dettagli

ESERCIZIO N 14 (2010) 1 PUNTO. Si consideri il seguente frammento di pseudocodice:

ESERCIZIO N 14 (2010) 1 PUNTO. Si consideri il seguente frammento di pseudocodice: ESERCIZIO N 14 (2010) 1 PUNTO scrivi( Inserisci un numero intero compreso fra -10000 e 10000: ) leggi(r) c 1 c r*c s 1 se (c

Dettagli

Esercitazione [11] Riepilogo sui Semafori. Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo

Esercitazione [11] Riepilogo sui Semafori. Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Esercitazione [11] Riepilogo sui Semafori Leonardo Aniello - aniello@dis.uniroma1.it Daniele ConoD'Elia - delia@dis.uniroma1.it Federico Lombardi - lombardi@dis.uniroma1.it Sistemi di Calcolo - Secondo

Dettagli