Le risorse. Alcune definizioni
|
|
|
- Gabriela Biagi
- 9 anni fa
- Просмотров:
Транскрипт
1 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 è sempre una entità astratta rappresentata da operandi di istruzioni (o procedure) e il suo uso consiste nell esecuzione di una delle istruzioni (o procedure) applicabili a detti operandi Una risorsa, sia essa fisica o logica, è quindi un oggetto costituito da procedure e da una struttura dati allocati in memoria. Alcune definizioni Allocare una risorsa ad un processo significa rendere visibile la risorsa al processo in modo che questi ne possa richiedere l uso ossia richiedere l esecuzione di una delle sue procedure. L allocazione può essere: statica: la risorsa è allocata ad un processo alla sua creazione e deallocata alla sua terminazione dinamica: la risorsa e allocata e deallocata ad un processo durante la sua evoluzione 1
2 Una risorsa può essere: Alcune definizioni dedicata: se è allocata ad un solo processo condivisa: se è allocata a più di un processo. privata o locale: se dedicata e allocata staticamente comune o globale: se condivisa e/o allocata dinamicamente ad uso esclusivo: se deve essere usata da un processo alla volta. Detta sezione critica una sequenza di istruzioni che deve essere eseguita in modo esclusivo dai processi che possono eseguirla nel proprio contesto, le procedure d uso di una risorsa ad uso esclusivo costituiscono un insieme di sezioni critiche Il gestore delle risorse Al concetto di risorsa si associa sempre il concetto di gestore, ossia di una entità il cui compito è quello o di consentire agli stessi processi la corretta allocazione delle risorse comuni controllandone il corretto utilizzo o di utilizzare le risorsa per eseguire le operazioni richieste dai processi Il gestore delle risorse fisiche è sempre un componente del S.O. mentre il gestore delle risorse logiche può anche essere un componente di programma utente o lo stesso programmatore 2
3 Compiti del gestore Compiti del gestore sono: consentire ai processi che desiderano usare risorse comuni di risolvere il problema della mutua esclusione per garantire il corretto utilizzo delle risorse ad uso esclusivo eseguire l operazione sulla risorsa per conto dei processi. Il problema della mutua esclusione può essere risolto: con l allocazione dinamica della risorsa ad un unico processo disciplinando le richieste di utilizzo delle risorse condivise allocate staticamente Il gestore può essere il programmatore che effettua l allocazione statica delle risorse in fase di stesura di un programma utilizzando le regole di visibilità del linguaggio e che può risolvere il problema di uso esclusivo di una risorsa da parte di un processo rendendola privata un componente dell elaborazione che in alternativa: A) consente ai processi che operano su risorse comuni di risolvere il problema della mutua esclusione o mediante l allocazione dinamica della risorsa ad un unico processo o disciplinando l accesso alle risorse condivise allocate staticamente dal programmatore B) esegue l operazione sulla risorsa per conto dei processi 3
4 Il componente l elaborazione può essere CASO A: la risorsa gestore costituita dalla struttura dati di gestione e da procedure che operano su tale struttura. La risorsa gestore è una risorsa condivisa per i processi che intendono utilizzare la risorsa gestita. La risorsa gestore è ad uso non esclusivo ed è allocata staticamente dal programmatore. Le procedure che operano sulla risorsa gestore ne costituiscono le procedure d uso CASO B: un processo gestore di cui la struttura dati di gestione costituisce una risorsa privata. La risorsa gestore la struttura dati di gestione memorizza lo stato della risorsa gestita e gli identificatori dei processi che la utilizzano o che attendono di utilizzarla le procedure operando sulla struttura dati di gestione consentono ad un processo di : verificare se la sua richiesta d uso della risorsa può essere soddisfatta e in caso contrario di sospendersi di prendere nota del rilascio della risorsa al termine delle operazioni rilasciare una risorsa dopo il suo uso e di sboccare eventuali altri processi in attesa 4
5 Il processo gestore Il processo gestore deve includere: una struttura dati di gestione, che memorizza lo stato della risorsa gestita e gli identificatori dei processi che sta servendo e che attendono di essere serviti la struttura dati della risorsa gestita procedure che, operando sulla struttura dati della risorsa gestita ne consentono l uso Modelli di programmazione concorrente Le interazioni tra processi possono essere gestite con riferimento a due distinti modelli di programmazione concorrente: modello a memoria globale o a memoria comune modello a scambio di messaggio o a memoria locale Il nucleo di un S.O. rende disponibili ai processi le primitive per risolvere i problemi di interazione secondo entrambi i modelli 5
6 Il modello a memoria globale Le risorse comuni sono oggetti memorizzati nella memoria comune ai processi che interagiscono. Pertanto: la competizione si manifesta nell accesso alle risorse comuni ad uso esclusivo o ad uso non esclusivo ma con un numero massimo di utilizzatori minore del numero di processi richiedenti la cooperazione si realizza mediante lo scambio di informazioni tramite risorse comuni Il gestore di risorse nel modello a memoria globale Nel modello un gestore di risorse può essere: una risorsa gestore residente nella memoria comune un processo gestore con cui cooperano i processi che competono scambiando informazioni tramite risorse comuni. Poiché il processo gestore comunque richiede a sua volta un gestore per cooperare con i processi utenti, nel modello a memoria comune in pratica il gestore è sempre una risorsa 6
7 Il gestore di risorse nel modello a memoria locale nel modello a memoria locale il gestore di risorse e sempre un processo a servizio dei processi utenti il processo gestore e detto server mentre i processi utenti sono detti client Virtualizzazione delle risorse La virtualizzazione di una risorsa consiste nel fare apparire privata una risorsa comune. Detti richiesta e rilascio le procedure della risorsa gestore è possibile virtualizzare per i processi utenti la risorsa gestita definendo, per ogni possibile procedura d uso proc_uso_i della risorsa, una procedura uso_di_risorsa_virtuale Procedure uso_di risorsa_virtuale... richiesta proc_uso_i rilascio end 7
8 I semafori Un semaforo è un oggetto costituito da una variabile sem di tipo semaforo e da due procedure wait e signal. Al livello di macchina virtuale definita dal nucleo il semaforo è costituito da una variabile di tipo intero non negativo (sem>=0) che ne esprime il valore ed è allocata nella memoria comune e dalle primitive: wait(sem): repeat until sem> 0; sem:= sem - 1 signal(sem):sem:= sem + 1; che il processo chiamante esegue sul proprio processore virtuale Realizzazione dei semafori Il nucleo del S.O. realizza un semaforo in modo da trasformare l attesa attiva del processo sul proprio processore virtuale, che si manifesta se il processo esegue una wait con sem=0, in una attesa passiva per liberare il processore reale su cui il processo è running A tal fine il tipo semaforo viene implementato con un tipo: record contatore: integer; primo: coda; ove contatore contiene il valore del semaforo e primo consente di implementare la coda dei processi in attesa sul semaforo come coda dei loro PCB 8
9 Realizzazione dei semafori La primitiva wait diventa: procedure wait(sem); if sem.contatore=0 then <inserisci il PCB del processo running in sem.coda> context_switch; else sem.contatore=sem.contatore -1; Realizzazione dei semafori La primitiva signal diventa: procedure signal(sem) if <la coda sem.coda non è vuota> then <estrai dalla coda il primo PCB e ponilo nella coda dei PCB dei processi ready> else sem.contatore:= sem.contatore + 1 end 9
10 Il gestore di una risorsa R ad uso esclusivo, condivisa ed allocata staticamente La mutua esclusione nell uso di R può essere garantita dal seguente gestore: var mutex:semaforo procedure richiesta wait(mutex) end procedure rilascio signal (mutex) end Il gestore di un insieme di risorse equivalenti e ad uso esclusivo, Detto N il numero di risorse R i equivalenti, la mutua esclusione nell uso di una R i è ottenuta allocandola dinamicamente con il gestore: var mutex:semaforo initial(1); risorse:semaforo initial(n); libero array [1..N] of boolean initial (true); procedure richiesta (var x:1..n); var i: 0..N wait (risorse); wait(mutex); i:=0; repeat i:=i+1 until libero[i]; libero[i]:= false; x:=i; signal (mutex); procedure rilascio (x:1..n) wait (mutex); libero[i]:= true; signal(mutex); signal (risorse); 10
11 Sincronizzazione di processi cooperanti La forma più elementare di cooperazione tra due processi è la loro sincronizzazione senza scambio di informazioni: Ciò è facilmente ottenibile con l uso di semafori. Esempio Siano: P m un processo master avente funzione di controllo P s un processo slave che attende di essere attivato var sem: semaforo initial (0) Pm:... signal (sem);... Ps:...wait (sem);... Schema produttore/consumatore La forma più evoluta di cooperazione tra due processi è quella dello schema produttore/consumatore in cui due o più processi scambiano informazioni attraverso uno o più buffer. Produttore: processo che genera un messaggio e lo deposita in un buffer Consumatore: processo che preleva un messaggio da un buffer e lo utilizza Vincoli di cooperazione Il produttore non può inserire un nuovo messaggio in un buffer pieno Il consumatore non può prelevare un messaggio in un buffer vuoto 11
12 Schema produttore/consumatore Lo schema può essere risolto costruendo un gestore che renda disponibili le procedure: richiesta_buffer_vuoto(buf), rilascio_buffer_pieno(buf) richiesta_buffer_pieno(buf), rilascio_buffer_vuoto(buf) con cui è possibile costruire le procedure: procedure invio(x:messaggio); richiesta_buffer_vuoto(buf); buf:=x; rilascio_buffer_pieno(buf); procedure ricezione(x:messaggio); richiesta_buffer_pieno(buf); x:=buf; rilascio_buffer_vuoto(buf); Schema produttore/consumatore Possibili realizzazioni delle procedure di richiesta e rilascio Caso A: n produttori, m consumatori, 1 buffer var buffer_disponibile: semaforo initial(1); messaggio_disponibile: semaforo initial(0); procedure richiesta_buffer_vuoto(buf); wait (buffer_disponibile); procedure rilascio_buffer_pieno(buf); signal(messaggio_disponibile); procedure richiesta_buffer_pieno(buf); wait (messaggio_disponibile); procedure rilascio_buffer_vuoto(buf); signal(buffer_disponibile); 12
13 Schema produttore/consumatore procedure richiesta_buffer_pieno(buf); wait(messaggio_disponibile); prelievo_buffer_pieno(buf); procedure rilascio_buffer_vuoto(buf); deposito_buffer_vuoto(buf) signal(buffer_disponibile) Schema produttore/consumatore Caso B: n produttori, m consumatori, k buffer var buffer_disponibile: semaforo initial(k); messaggio_disponibile: semaforo initial(0); procedure richiesta_buffer_vuoto(buf); wait(buffer_disponibile); prelievo_buffer_vuoto(buf); procedure rilascio_buffer_pieno(buf); deposito_buffer_pieno(buf) signal(messaggio_disponibile) 13
14 Schema produttore/consumatore Le procedure di prelievo e deposito hanno una struttura che dipende dal tipo di struttura dati utilizzata. Ad esempio: procedure prelievo_buffer_vuoto(buf); wait(mutex1); <preleva un buffer dalla coda dei buffer liberi e restituisci il puntatore in buf>; signal (mutex1) procedure deposito_buffer_pieno(buf); wait(mutex2); <immetti il buffer buf nella coda dei buffer pieni >; signal (mutex2) Schema produttore/consumatore procedure prelievo_buffer_pieno(buf); wait(mutex2); <preleva un buffer dalla coda dei buffer pieni e restituisci il puntatore in buf>; signal (mutex2) procedure deposito_buffer_vuoto(buf); wait(mutex1); <immetti il buffer buf nella coda dei buffer liberi >; signal (mutex1) 14
15 Uno schema produttore/consumatore semplificato Nel seguito si riporta una possibile soluzione semplificata dello schema produttore/consumatore. La soluzione prevede di realizzare il pool di buffer con una coda circolare in cui un produttore immette gestendo un puntatore coda e un consumatore preleva gestendo un puntatore testa. La soluzione e semplificata in quanto, nel caso di piu produttori e consumatori, non consente il parallelismo tra i produttori in fase di riempimento dei buffer e quello dei consumatori in fase di svuotamento. 15
16 16
17 17
18 I semafori privati un semaforo e privato per un processo P se solo P può eseguire sul semaforo una primitiva wait tutti i processi che condividono il semaforo possono eseguire la primitiva signal il semaforo privato e inizializzato a zero i semafori privati consentono di realizzare gestori di risorse di tipo risorsa in cui la procedura di rilascio implementa una politica di scheduling del processo da sbloccare scelta in funzione della risorsa gestita e quindi differente a seconda dei casi 18
19 I semafori privati si noti che pur essendo il primo schema di realizzazione delle procedure di acquisizione e rilascio meno elegante ed ottimizzato e l unico che consente, se e tecnicamente possibile, di ripartire una risorsa rilasciata da un processo tra piu processi in attesa ovvero di sbloccare con un rilascio piu processi contemporaneamente quanto sopra e possibile in quanto e possibile mettere in ciclo la verifica dell esistenza di almeno un processo sospeso per il quale la condizione di sincronizzazione e soddisfatta e, in caso affermativo, la scelta del processo da attivare e l allocazione della risorsa richiesta con conseguente aggiornamento della quantità di risorsa disponibile. 19
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
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
Modelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
Modelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
Modelli di interazione tra processi
Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema
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
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
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
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
Modello 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
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
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
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
Sistemi 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.
PROCESSI 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
I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
Allocazione 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
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
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 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Il Sistema Operativo
Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI
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.
19 - 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
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
ACSO Programmazione di Sistema e Concorrente
ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività
Il supporto al sistema operativo
Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami [email protected] 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
Interazione 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
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Decima 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
Sincronizzazione. 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
La gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
CAPITOLO 23 PROBLEMA DEL BARBIERE
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
Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)
Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi
Linguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
Strutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
Corso di Programmazione Concorrente. I Monitor. Valter Crescenzi
Corso di Programmazione Concorrente I Monitor Valter Crescenzi [email protected] http://crescenzi.inf.uniroma3.it Sommario Monitor e Tipi di Dato Astratto sintassi & semantica Le primitive wait
Programmazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
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
I THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere
I Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
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
Sistemi 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
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):
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo
4. I moduli in Access 2000/2003
LIBRERIA WEB 4. I moduli in Access 2000/2003 Il modulo è uno degli oggetti del database di Access e rappresenta un insieme di dichiarazioni e routine scritte con il linguaggio Visual Basic, memorizzate
Modello a scambio di messaggi
Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;
I processi: concetti di base, context switch e scheduling
Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva
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 - [email protected] Daniele ConoD'Elia - [email protected] Federico Lombardi - [email protected] Sistemi di Calcolo - Secondo
CAPITOLO 24 I MONITOR
EFFETTO DELLE PRIMITIVE - signal E wait SUI SEMAFORI CAPITOLO 24 I MONITOR I semafori sono un mezzo efficace per la gestione della mutua esclusione in ambienti con processi concorrenti, ma spesso è difficile
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
Algoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
Sistemi 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
Sistemi Operativi. Lezione 7 Comunicazione tra processi
Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt
Sequential 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)
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
Il Modello a scambio di messaggi
Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria
Sistemi Operativi: Concetti Introduttivi
Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione
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
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono
n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita
Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale
