Deadlock e Starvation
|
|
|
- Romina Perri
- 10 anni fa
- Просмотров:
Транскрипт
1 DTI / ISIN / Titolo principale della presentazione 1 Deadlock e Starvation Amos Brocco, Ricercatore, DTI / ISIN 3 aprile 2012
2 Condivisione di risorse In un sistema si trovano delle risorse che possono essere utilizzate (correttamente) solo da un processo/thread alla volta stampanti dischi variabili in memoria Per gestire gli accessi concorrenti si usano dei meccanismi di mutua esclusione che garantiscono a un processo/thread l'accesso esclusivo a una risorsa
3 Utilizzo di una risorsa (1) Richiesta della risorsa...attesa se la risorsa è occupata il processo è bloccato o può terminare con un errore (2) Utilizzo della risorsa (3) Rilascio della risorsa
4 Condivisione di risorse Cosa succede se più risorse cercano di accedere contemporaneamente alla stessa risorsa?
5 STOP 5 Un esempio STOP STOP STOP
6 Un altro esempio Supponiamo che due applicazioni, X e Y, vogliano fare una fotocopia... Entrambe le applicazioni hanno bisogno di avere accesso esclusivo alla stampante e allo scanner Il programmatore di X ha deciso di richiedere prima lo scanner e poi la stampante Il programmatore di Y ha deciso di richiedere prima la stampante e poi lo scanner Applicazione X Risorse condivise Applicazione Y richiede disponibile? OK! richiede disponibile? OK! richiede disponibile? NO! richiede disponibile? NO! Non può continuare l'esecuzione! Non può continuare l'esecuzione! tempo
7 7 E il sistema operativo? Ci si potrebbe chiedere perché il sistema operativo non regoli semplicemente la situazione togliendo la risorsa a un processo che la detiene... Applicazione X Risorse condivise Applicazione Y richiede disponibile? OK! richiede disponibile? OK! richiede disponibile? NO! richiede disponibile? NO! richiede disponibile? OK! sistema operativo
8 8 Risorse non pre-rilasciabili Distinguiamo due tipi di risorse: Risorse pre-rilasciabili: (preemptable) possono essere tolte a un processo senza causare errori Risorse non pre-rilasciabili: (nonpreemptable) il processo da errore se le risorse vengono tolte
9 9 Deadlock Un deadlock si può verificare quando più processi/thread ottengono accesso esclusivo a una risorsa Un insieme di processi/thread è in deadlock se ogni processo dell'insieme è in attesa di un evento (il rilascio di una risorsa) che solo un altro processo dell'insieme può causare I processi dell'insieme non possono continuare la loro esecuzione, né rilasciare le risorse che detengono in quel momento
10 10 Esempio: senza deadlock #include <pthread.h> #include <stdio.h> pthread_mutex_t alpha; pthread_mutex_t beta; void* pallino() { pthread_mutex_lock(&alpha); printf("pallino: Ho alpha!\n"); pthread_mutex_lock(&beta); printf("pallino: Ho beta!\n"); pthread_mutex_unlock(&beta); printf("pallino: Ho rilasciato beta!\n"); pthread_mutex_unlock(&alpha); printf("pallino: Ho rilasciato alpha!\n"); } void* pinco() { pthread_mutex_lock(&alpha); printf("pinco: Ho alpha!\n"); pthread_mutex_lock(&beta); printf("pinco: Ho beta!\n"); pthread_mutex_unlock(&beta); printf("pinco: Ho rilasciato beta!\n"); pthread_mutex_unlock(&alpha); printf("pinco: Ho rilasciato alpha!\n"); } void main() { pthread_t t1, t2; pthread_mutex_init (&alpha, NULL); pthread_mutex_init (&beta, NULL); pthread_create(&t1, NULL, &pinco, NULL); pthread_create(&t2, NULL, &pallino, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); pthread_mutex_destroy (&alpha); pthread_mutex_destroy (&beta); }
11 11 Esempio: possibile deadlock #include <pthread.h> #include <stdio.h> pthread_mutex_t alpha; pthread_mutex_t beta; void* pallino() { pthread_mutex_lock(&beta); printf("pallino: Ho beta!\n"); pthread_mutex_lock(&alpha); printf("pallino: Ho alpha!\n"); pthread_mutex_unlock(&alpha); printf("pallino: Ho rilasciato alpha!\n"); pthread_mutex_unlock(&beta); printf("pallino: Ho rilasciato beta!\n"); } void* pinco() { pthread_mutex_lock(&alpha); printf("pinco: Ho alpha!\n"); pthread_mutex_lock(&beta); printf("pinco: Ho beta!\n"); pthread_mutex_unlock(&beta); printf("pinco: Ho rilasciato beta!\n"); pthread_mutex_unlock(&alpha); printf("pinco: Ho rilasciato alpha!\n"); } void main() { pthread_t t1, t2; pthread_mutex_init (&alpha, NULL); pthread_mutex_init (&beta, NULL); pthread_create(&t1, NULL, &pinco, NULL); pthread_create(&t2, NULL, &pallino, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); pthread_mutex_destroy (&alpha); pthread_mutex_destroy (&beta); }
12 12 Condizioni necessarie per avere un deadlock Mutua esclusione ogni risorsa è assegnata al massimo a un processo / thread Richiesta incrementale i processi / thread che detengono una risorsa possono richiedere altre risorse Risorse non pre-rilasciabili Le risorse assegnate non possono essere tolte dal sistema operativo. Sono i processi / thread stessi che devono rilasciarle Attesa circolare Deve esistere una catena circolare di due o più processi in cui ogni processo attende una risorsa posseduta dal processo successivo nella catena
13 13 Modellizzazione dei deadlock Con un grafo di allocazione è possibile modellizzare i processi e le risorse, in modo da rilevare i possibili deadlock R Risorsa P Processo Una freccia da una risorsa a un processo indica che la risorsa è in possesso del processo R P P detiene la risorsa R Una freccia da un processo a una risorsa indica che il processo è in attesa di quella risorsa P R P è in attesa della risorsa R (attualmente detenuta da un altro processo)
14 14 Deadlock Se nel grafo di allocazione sono presenti dei cicli significa che c'è un deadlock P1 R1 R2 P2
15 15 Come gestire un deadlock Esistono diverse strategie ignorare il problema riconoscere la situazione e risolverla gestire in modo adeguato le allocazioni di risorse evitare una delle quattro condizioni necessarie per un deadlock
16 16 Ignorare il problema... algoritmo dello struzzo (metti la testa sotto la sabbia e fai finta che il problema non esiste) Se il problema non si presenta troppo spesso (o con meno frequenza rispetto ad altri problemi, es. hardware), e se la soluzione risulta troppo complessa, è meglio non pagare il prezzo soluzione implementata dai sistemi operativi attuali
17 17 Riconoscere la situazione di deadlock e risolverla Possiamo costruire un grafo di allocazione e controllare costantemente se ci sono deadlock se abbiamo più di una risorsa per ogni tipo diventa troppo complesso
18 18 Vettori e matrici di allocazione Questo metodo permette di riconoscere situazioni di deadlock in sistemi in cui esistono più risorse per ogni tipo (es. due stampanti) Indichiamo, in un vettore delle risorse esistenti E, il numero di risorse per ogni classe che abbiamo sul sistema: E = ( ) una stampante quattro scanner due lettori DVD cinque chiavette USB
19 19 Vettori e matrici di allocazione In un altro vettore delle risorse disponibili A, il numero di risorse per ogni classe che sono attualmente disponibili (non utilizzate da processi) sul sistema: A = ( ) una stampante uno scanner disponibile disponibile nessun lettore DVD disponibile una chiavetta USB disponibile
20 20 Vettori e matrici di allocazione Per specificare come sono attualmente assegnate le risorse utilizziamo una matrice di allocazione C : ogni riga indica le risorse allocate attualmente ad un processo le colonne indicano come le risorse sono allocate attualmente stampante lettore DVD scanner chiavetta USB C = Processo 1 Processo 2 Processo 3 Processo 4
21 21 Vettori e matrici di allocazione Le richieste future di ogni processo sono indicate in una matrice di richiesta R : ogni riga indica le risorse necessarie al processo per continuare l'esecuzione e poi terminare stampante lettore DVD scanner chiavetta USB R = Processo 1 Processo 2 Processo 3 Processo 4
22 22 Vincoli La somma delle risorse allocate e di quelle disponibili deve essere uguale al numero delle risorse esistenti Un processo non avere accesso a più risorse di quelle esistenti (allocazione corrente + richieste future risorse esistenti)
23 23 Algoritmo di verifica (algoritmo del banchiere) Dato il vettore delle risorse disponibili A, cerco nella matrice delle richiesta R un processo P che è possibile soddisfare: se trovo un processo valido, aggiungo i valori nella riga di C corrispondente a P al vettore A, cancello le righe corrispondenti a P dalle matrici R e C e ricomincio se non trovo niente l'algoritmo termina Se quando l'algoritmo termina ci sono ancora processi nella matrice il sistema è in deadlock un sistema è in uno stato sicuro se c'è un ordine di schedulazione per cui ogni processo riesce a terminarsi
24 24 Esempio R1 R2 R3 R4 A = ( ) E = ( ) C = R = P1 P2 P3 P4 Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... Posso scegliere P1, P2, o P3: scelgo P2 A = ( ) C = R = Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... Posso scegliere P1, P3, o P4: scelgo P4 A = ( ) C = R =
25 25 Esempio Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... Posso scegliere P1 o P3: scelgo P3 A = ( ) C = R = Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... scelgo P1 l'algoritmo termina A = ( ) C = R = Il sistema era in uno stato sicuro, non c'è rischio di deadlock!
26 26 Un altro esempio R1 R2 R3 R4 A = ( ) E = ( ) C = R = P1 P2 P3 P4 Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... Posso scegliere solo P2 A = ( ) C = R = Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... Posso scegliere solo P3 A = ( ) C = R =
27 27 Un altro esempio Cerco nella matrice delle richiesta R un processo P che è possibile soddisfare... Non posso scegliere nessun processo! sia P1 che P4 richiedono 3 risorse di tipo R3, ma solo 2 sono disponibili A = ( ) C = R = stato non sicuro: rischio un deadlock!
28 28 Recupero da un deadlock Se ci si trova in una situazione di deadlock, come ci si deve comportare?
29 29 Pre-rilascio (preemption) Se è possibile tolgo una risorsa a un processo e la passo ad un altro processo dipende dalla risorsa: per esempio con una stampante si può interrompere la stampa corrente, mettere da parte quanto già stampato, passare il controllo ad un altro processo, e poi riprendere spesso difficile o impossibile
30 30 Rollback Periodicamento salvo lo stato di esecuzione (memoria, risorse) dei processi (checkpoint) se ho un deadlock il processo che ha la risorsa viene reinizializzato (rollback) all'ultimo checkpoint prima dell'acquisizione checkpoint checkpoint DEADLOCK! acquisizione risorsa tempo rollback
31 31 Uccisione di un processo Per risolvere il deadlock uccido uno dei processi in attesa circolare Quale processo? Chi sceglie?
32 32 Evitare i deadlock Possiamo prevenire i deadlock evitando una delle quattro condizioni necessarie?
33 33 Impedire la mutua esclusione Senza mutua esclusione non è possibile che un processo blocchi una risorsa...ma possono nascere dei conflitti...una possibile soluzione è permettere a un solo processo di utilizzare una risorsa: es. stampante: un processo che vuole stampare salva il documento in una directory di spooling; un demone (server) con accesso esclusivo alla stampante prende un documento alla volta dalla directory e lo stampa... ma non tutte le risorse possono funzionare così!
34 34 Impedire le richieste incrementali Se un processo che detiene una risorsa non può richiederne altre possiamo evitare una delle condizioni necessarie per un deadlock non realistico! Possiamo richiedere ai processi di definire in anticipo quali risorse richiederanno, così da verificare se il sistema va incontro a uno stato non sicuro non realistico! Oppure richiediamo che un processo deve rilasciare tutte le risorse (almeno temporaneamente) prima di richiederne un'altra, e poi provare a ri-acquisirle tutte non efficiente!
35 35 Rendere le risorse prerilasciabili Rendendo le risorse prerilasciabili perché il sistema non sa in che stato queste verranno tolte ai processi.
36 36 Impedire l'attesa circolare Per eliminare l'attesa circolare possiamo richiedere che un processo può detenere solo una risorsa alla volta, e se ne vuole un'altra deve prima rilasciare quella corrente In alternativa possiamo numerare tutte le risorse e definire la seguente regola di acquisizione: i processi possono richiedere risorse ma solo se in ordine numerico... funziona, ma è difficile implementare questo meccanismo in modo da soddisfare tutti i processi e gli utenti!
37 37 Two-phase locking Per evitare i deadlock sono state sviluppate delle tecniche specifiche, come il two-phase locking L'algoritmo si compone di due fasi: 1. Il processo cerca di acquisire tutte le risorse di cui ha bisogno, una alla volta se ci riesce, passa alla fase 2 altrimenti rilascia tutte le risorse finora acquisite 2. Il processo opera sulle risorse e le rilascia
38 38 Two-phase locking Utilizzato nei sistemi di basi dati Non applicabile in ogni situazione non è sempre possibile ricominciare il processo di acquisizione se una delle risorse non è disponibile
39 39 Starvation In alcuni casi è possibile che un processo rimanga in attesa indefinita anche senza essere in deadlock Esempio: consideriamo un servizio tecnico che risponde alle domande degli utenti via il sistemista controlla periodicamente la sua casella di posta e prende le domande in entrata, e visto che viene pagato in base al numero di domande che riesce ad evadere, sceglie sempre quelle più corte se c'è un invio continuo di domande corte e semplici, l'utente che invierà una domanda molto lunga potrebbe non ricevere mai una risposta in un sistema di scheduling con politica Shortest-Job-First i lavori lunghi possono dover attendere per sempre Si parla di starvation (morte per fame) soluzione: cambiare politica di esecuzione (es. First-come first-served)
Deadlock (stallo) Parte III. Deadlock
Parte III Deadlock Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 III - 1 Deadlock (stallo) Su di un tavolo ci sono un piatto ed una forchetta A e B sono seduti al tavolo, per mangiare ciascuno
Sistemi 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
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di
SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007
2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si
Corso di Programmazione Concorrente
Corso di Programmazione Concorrente Stallo Valter Crescenzi [email protected] http://www.dia.uniroma3.it/~crescenz Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita
LA SINCRONIZZAZIONE TRA PROCESSI
LA SINCRONIZZAZIONE TRA PROCESSI E' più complesso scrivere programmi concorrenti rispetto a programmi sequenziali in quanto non basta essere sicuri della correttezza dei singoli moduli ma è necessario
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
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
Sistemi Operativi Kernel
Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base
Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi
Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità
Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi
Pronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
Esercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti
5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record
5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1
Gestione dei servizi all utenza. 3. Autorizzazioni
Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane e per le Informazioni bibliografiche Manuali utente per SBN WEB Gestione dei servizi all utenza 3. Autorizzazioni 1 2 1. Introduzione
Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi
Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione
www.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
Esecuzione concorrente di transazioni
Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 1-2 0 1 2 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che
Un sistema operativo è un insieme di programmi che consentono ad un utente di
INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli
Appunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
CONTROLLO DI GESTIONE DELLO STUDIO
CONTROLLO DI GESTIONE DELLO STUDIO Con il controllo di gestione dello studio il commercialista può meglio controllare le attività svolte dai propri collaboratori dello studio nei confronti dei clienti
Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling
SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time
Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1
SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time
MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.
MAPPE DI KARNAUGH 1. Generalità Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. E ovvio che più semplice è la funzione e più semplice
Sistemi Operativi SCHEDULING DELLA CPU
Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling
SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
come nasce una ricerca
PSICOLOGIA SOCIALE lez. 2 RICERCA SCIENTIFICA O SENSO COMUNE? Paola Magnano [email protected] ricevimento: martedì ore 10-11 c/o Studio 16, piano -1 PSICOLOGIA SOCIALE COME SCIENZA EMPIRICA le sue
A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
MODELLISTICA DI IMPIANTI E SISTEMI 2
MODELLISTICA DI IMPIANTI E SISTEMI 2 Indice 1 Dalla traccia al modello 2 1.1 BAS................................................ 4 I Traccia Si consideri il problema della gestione efficiente dei servizi
Eleonline gestione dello spoglio elettorale
Eleonline gestione dello spoglio elettorale Manuale Operativo Il manuale segue l'organizzazione gerarchica dell'applicativo perché questo è anche l'ordine temporale di esecuzione delle operazioni. Visione
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
Ricorsione. (da lucidi di Marco Benedetti)
Ricorsione (da lucidi di Marco Benedetti) Funzioni ricorsive Dal punto di vista sintattico, siamo in presenza di una funzione ricorsiva quando all interno della definizione di una funzione compaiono una
Un modello matematico di investimento ottimale
Un modello matematico di investimento ottimale Tiziano Vargiolu 1 1 Università degli Studi di Padova Liceo Scientifico Benedetti Venezia, giovedì 30 marzo 2011 Outline 1 Investimento per un singolo agente
Gestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
Gestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
Lo scheduling. Tipici schedulatori
Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo
Università degli Studi di Messina
Università degli Studi di Messina Guida alla Rendicontazione on-line delle Attività del Docente Versione della revisione: 2.02/2013-07 A cura di: Fabio Adelardi Università degli studi di Messina Centro
3.5.1.1 Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.
Elaborazione testi 133 3.5 Stampa unione 3.5.1 Preparazione 3.5.1.1 Aprire, preparare un documento da utilizzare come documento principale per una stampa unione. Abbiamo visto, parlando della gestione
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server
Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette
Creare una nuova spedizione personalizzata.
Gestione spedizioni La piattaforma ecommerce compry.it offre una gestione estremamente potente dei costi di spedizione da applicare al cliente che effettua acquisti. Il sistema, oltre al classico calcolo
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
I THREAD O PROCESSI LEGGERI Generalità
I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono
Calcolatori: Algebra Booleana e Reti Logiche
Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato
Guida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
La manutenzione come elemento di garanzia della sicurezza di macchine e impianti
La manutenzione come elemento di garanzia della sicurezza di macchine e impianti Alessandro Mazzeranghi, Rossano Rossetti MECQ S.r.l. Quanto è importante la manutenzione negli ambienti di lavoro? E cosa
Organizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
Calcolatori Elettronici. La memoria gerarchica La memoria virtuale
Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e
Analisi Costi-Benefici
Politica economica (A-D) Sapienza Università di Rome Analisi Costi-Benefici Giovanni Di Bartolomeo Sapienza Università di Roma Scelta pubblica Intervento pubblico realizzazione di progetti esempi: infrastrutture,
E-REGISTER ALBERTI ISTRUZIONI PER LA COMPILAZIONE DEL REGISTRO DI CLASSE
E-REGISTER ALBERTI ISTRUZIONI PER LA COMPILAZIONE DEL REGISTRO DI CLASSE Release 2. 2013 Prof.ssa Luisa Raggi Indice Ambiente di lavoro: Pulsanti/caselle principali e Gestione firme Ambiente di lavoro:
Schema Tipologia a Stella
Cos'e' esattamente una rete! Una LAN (Local Area Network) è un insieme di dispositivi informatici collegati fra loro, che utilizzano un linguaggio che consente a ciascuno di essi di scambiare informazioni.
Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.
Le equazioni Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Definizione e caratteristiche Chiamiamo equazione l uguaglianza tra due espressioni algebriche,
Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni
Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono
Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06
Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06 13 febbraio 2006 1 Descrizione Il progetto si compone delle seguenti fasi: 1. caricamento di soluzioni in formato
LA RICLASSIFICAZIONE DEI SALDI CONTABILI CON MICROSOFT ACCESS 2007
LA RICLASSIFICAZIONE DEI SALDI CONTABILI CON MICROSOFT ACCESS 2007 La fase di riclassificazione del bilancio riveste un ruolo molto importante al fine di comprendere l andamento aziendale; essa consiste,
Funzioni di Trasferimento Movimenti
Airone Gestione Rifiuti Funzioni di Trasferimento Movimenti Airone Funzione di Trasferimento Movimenti pag. 1 Indice INTRODUZIONE... 3 FUNZIONE DI TRASFERIMENTO MOVIMENTI... 3 Configurazione dell applicazione...4
Test d ipotesi. Statistica e biometria. D. Bertacchi. Test d ipotesi
In molte situazioni una raccolta di dati (=esiti di esperimenti aleatori) viene fatta per prendere delle decisioni sulla base di quei dati. Ad esempio sperimentazioni su un nuovo farmaco per decidere se
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
CitySoftware PROTOCOLLO. Info-Mark srl
CitySoftware PROTOCOLLO Info-Mark srl Via Rivoli, 5/1 16128 GENOVA Tel. 010/591145 Fax 010/591164 Sito internet: www.info-mark.it e-mail [email protected] SISTEMA DI PROTOCOLLAZIONE AUTOMATICA Realizzato
I DIECI PRINCIPI DELL ECONOMIA
Corso di Laurea in Servizio Sociale Istituzioni di Economia Introduzione allo studio dell Economia I DIECI PRINCIPI DELL ECONOMIA (Capitolo 1) Il termine economia... Deriva da una parola greca che significa
1. Il Client Skype for Business
1. Il Client Skype for Business 2. Configurare una Periferica Audio 3. Personalizzare una Periferica Audio 4. Gestire gli Stati di Presenza 5. Tabella Stati di Presenza 6. Iniziare una Chiamata 7. Iniziare
Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza
Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO
Macchine a stati finiti 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Al più alto livello di astrazione il progetto logico impiega un modello, la cosiddetta macchina a stati finiti, per descrivere
Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
Biblioteca di Cervia NOZIONI BASE DI INFORMATICA
Biblioteca di Cervia NOZIONI BASE DI INFORMATICA NOZIONI DI INFORMATICA Il PC è composto solitamente di tre parti principali: - Il Case, ovvero il contenitore del cuore del computer, da qui si accende
Matematica generale CTF
Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione
SCI Sistema di gestione delle Comunicazioni Interne > MANUALE D USO
SCI Sistema di gestione delle Comunicazioni Interne > MANUALE D USO 1 Sommario... Sommario...2 Premessa...3 Panoramica generale sul funzionamento...3 Login...3 Tipologie di utenti e settori...4 Gestione
ATTIVAZIONE SCHEDE ETHERNET PER STAMPANTI SATO SERIE ENHANCED
ATTIVAZIONE SCHEDE ETHERNET PER STAMPANTI SATO SERIE ENHANCED Il collegamento normale delle schede Ethernet è eseguito installando la scheda e collegando la macchina al sistema. Di norma una rete Ethernet
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...
BANCA DATI ANCI-CONAI
BANCA DATI ANCI-CONAI MANUALE UTENTE (REV. 30 gen 2015) A cura di Ancitel Energia e Ambiente S.p.A. Indice PREMESSA... 3 1. ACCESSO ALLA BANCA DATI... 3 2. L APPLICATIVO... 5 2.1 Primo accesso al sistema...
Manuale servizio ScambioDati
Manuale servizio ScambioDati Descrizione del servizio... 2 Accesso al servizio... 3 Sezione Upload... 4 Gestione Aree di Download... 4 Sezione Download... 6 Descrizione del servizio Accade sempre più spesso
ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma
Calcolabilità problemi facili trovare la media di due numeri stampare le linee di un file che contengono una parola problemi difficili trovare il circuito minimo data una tabella determinare la migliore
Protezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
Matematica in laboratorio
Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a
(a cura di Francesca Godioli)
lezione n. 12 (a cura di Francesca Godioli) Ad ogni categoria della variabile qualitativa si può assegnare un valore numerico che viene chiamato SCORE. Passare dalla variabile qualitativa X2 a dei valori
Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.
Esercizio 1: schedulazione con il modello di Johnson...2 Soluzione dell esercizio 1 (schedulazione con il modello di Johnson)...2 Esercizio 2: schedulazione con il modello di Hodgson...3 Soluzione dell
Capitolo 7: Sincronizzazione
Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1
Scheduling della CPU:
Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready
